2
votes

I have an issue with my beaglebone pocket and I need help. I try to setup can0 with an MCP2551 transceiver. I load BB-CAN0-00A0.dtbo and BB-CAN1-00A0.DTBO but i have no can device in /sys/class/net and device can0 and can1 doesn't exist.

This is my version.sh log



    git:/opt/scripts/:[73593ebe3b7d3cc381eeb502d45ccb33a6ec5e78]
    eeprom:[A335PBGL00A21748EPB00201]
    model:[TI_AM335x_PocketBeagle]
    dogtag:[BeagleBoard.org Debian Image 2018-08-30]
    bootloader:[microSD]:[/dev/mmcblk0]:[U-Boot 2018.03-00002-gac9cce7c6a]:[location: dd MBR]
    kernel:[4.14.67-ti-r73]
    nodejs:[v6.14.4]
    uboot_overlay_options:[enable_uboot_overlays=1]
    uboot_overlay_options:[uboot_overlay_addr4=/lib/firmware/BB-CAN0-00A0.dtbo]
    uboot_overlay_options:[uboot_overlay_addr5=/lib/firmware/BB-CAN1-00A0.dtbo]
    uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo]
    uboot_overlay_options:[enable_uboot_cape_universal=1]
    pkg check: to individually upgrade run: [sudo apt install --only-upgrade ]
    pkg:[bb-cape-overlays]:[4.4.20180803.0-0rcnee0~stretch+20180804]
    pkg:[bb-wl18xx-firmware]:[1.20180517-0rcnee0~stretch+20180517]
    pkg:[kmod]:[23-2rcnee1~stretch+20171005]
    pkg:[librobotcontrol]:[1.0.2-git20180829.0-0rcnee0~stretch+20180830]
    pkg:[firmware-ti-connectivity]:[20170823-1rcnee1~stretch+20180328]
    groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal i2c bluetooth netdev cloud9ide gpio pwm eqep admin spi tisdk weston-launch xenomai]
    cmdline:[console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet]
    dmesg | grep pinctrl-single
    [    1.148050] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [    1.241720] pinctrl-single 44e10800.pinmux: pin PIN95 already requested by ocp:P1_28_pinmux; cannot claim for 481cc000.can
    [    1.253051] pinctrl-single 44e10800.pinmux: pin-95 (481cc000.can) status -22
    [    1.260180] pinctrl-single 44e10800.pinmux: could not request pin 95 (PIN95) from group pinmux_dcan0_pins  on device pinctrl-single
    [    1.280383] pinctrl-single 44e10800.pinmux: pin PIN97 already requested by ocp:P2_09_pinmux; cannot claim for 481d0000.can
    [    1.291556] pinctrl-single 44e10800.pinmux: pin-97 (481d0000.can) status -22
    [    1.298668] pinctrl-single 44e10800.pinmux: could not request pin 97 (PIN97) from group pinmux_dcan1_pins  on device pinctrl-single
    dmesg | grep gpio-of-helper
    [    1.156291] gpio-of-helper ocp:cape-universal: ready
    END

And my /boot/uEnv.txt:



    uname_r=4.14.67-ti-r73
    #uuid=
    #dtb=

    ###U-Boot Overlays###
    ###Documentation: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
    ###Master Enable
    enable_uboot_overlays=1
    ###
    ###Overide capes with eeprom
    #uboot_overlay_addr0=/lib/firmware/.dtbo
    #uboot_overlay_addr1=/lib/firmware/.dtbo
    #uboot_overlay_addr2=/lib/firmware/.dtbo
    #uboot_overlay_addr3=/lib/firmware/.dtbo
    ###
    ###Additional custom capes
    uboot_overlay_addr4=/lib/firmware/BB-CAN0-00A0.dtbo
    uboot_overlay_addr5=/lib/firmware/BB-CAN1-00A0.dtbo
    #uboot_overlay_addr6=/lib/firmware/.dtbo
    #uboot_overlay_addr7=/lib/firmware/.dtbo
    ###
    ###Custom Cape
    #dtb_overlay=/lib/firmware/.dtbo
    ###
    ###Disable auto loading of virtual capes (emmc/video/wireless/adc)
    #disable_uboot_overlay_emmc=1
    #disable_uboot_overlay_video=1
    #disable_uboot_overlay_audio=1
    #disable_uboot_overlay_wireless=1
    #disable_uboot_overlay_adc=1
    ###
    ###PRUSS OPTIONS
    ###pru_rproc (4.4.x-ti kernel)
    #uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo
    ###pru_rproc (4.14.x-ti kernel)
    uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo
    ###pru_uio (4.4.x-ti, 4.14.x-ti & mainline/bone kernel)
    #uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo
    ###
    ###Cape Universal Enable
    enable_uboot_cape_universal=1
    ###
    ###Debug: disable uboot autoload of Cape
    #disable_uboot_overlay_addr0=1
    #disable_uboot_overlay_addr1=1
    #disable_uboot_overlay_addr2=1
    #disable_uboot_overlay_addr3=1
    ###
    ###U-Boot fdt tweaks... (60000 = 384KB)
    #uboot_fdt_buffer=0x60000
    ###U-Boot Overlays###

    cmdline=coherent_pool=1M net.ifnames=0 quiet

    #In the event of edid real failures, uncomment this next line:
    #cmdline=coherent_pool=1M net.ifnames=0 quiet video=HDMI-A-1:1024x768@60e

    #Use an overlayfs on top of a read-only root filesystem:
    #cmdline=coherent_pool=1M net.ifnames=0 quiet overlayroot=tmpfs

    ##enable Generic eMMC Flasher:
    ##make sure, these tools are installed: dosfstools rsync
    #cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

If you have any suggestion, I don't understand what's wrong in my configuration.

Thanks

1
I think cape-universal conflicts with overlays, you might need to disable that. Is there anything about CAN in dmesg output?TBR
@TBR: this is the solution. I'd been searching for it for days. Could you put an official answer so that it's more search friendly?MB.
@MB there you go. Glad it helped to solve the issue you were having.TBR

1 Answers

1
votes

cape-universal can conflict with overlays that you're trying to load. Such as in this case.

A possible route is to disable cape-universal. Another option might be to try set things up at run-time. For a static hardware setup that won't change the former is much preferable though.

Please note that the default images for the BBB keep evolving and thus this is not an universal answer.