UART2 don't work on BBB rev C - kernel 4.4.54

I can’t enable UART2, no tx, on BBB rev C, with kernel

4.4.54-ti-rt-r93
BeagleBoard.org Debian Image 2017-03-19

bellow, a sequence of commands

export SLOTS=/sys/devices/platform/bone_capemgr/slots
echo ‘BB-UART2’ > $SLOTS

I get this error:

[ 935.084183] bone_capemgr bone_capemgr: slot #11: BB-UART2 conflict P9.21 (#5:BB-UART2)
[ 935.107137] bone_capemgr bone_capemgr: slot #11: Failed verification

root@beaglebone:/home/debian# cat $SLOTS
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
4: P-O-L- 0 Override Board Name,00A0,Override Manuf,BB-UART1
5: P-O-L- 1 Override Board Name,00A0,Override Manuf,BB-UART2
6: P-O-L- 3 Override Board Name,00A0,Override Manuf,BB-UART4
7: P-O-L- 2 Override Board Name,00A0,Override Manuf,BB-SPIDEV1
8: P-O-L- 4 Override Board Name,00A0,Override Manuf,BB-I2C1
9: P-O-L- 5 Override Board Name,00A0,Override Manuf,BB-I2C2

bellow, the contents of /boot/uEnv.txt:

#Docs: uname_r=4.4.54-ti-rt-r93 #uuid= #dtb= ##BeagleBone Black/Green dtb’s for v4.1.x (BeagleBone White just works…) ##BeagleBone Black: HDMI (Audio/Video) disabled: dtb=am335x-boneblack-emmc-overlay.dtb ##BeagleBone Black: eMMC disabled: #dtb=am335x-boneblack-hdmi-overlay.dtb ##BeagleBone Black: HDMI Audio/eMMC disabled: #dtb=am335x-boneblack-nhdmi-overlay.dtb ##BeagleBone Black: HDMI (Audio/Video)/eMMC disabled: #dtb=am335x-boneblack-overlay.dtb ##BeagleBone Black: wl1835 #dtb=am335x-boneblack-wl1835mod.dtb ##BeagleBone Green: eMMC disabled #dtb=am335x-bonegreen-overlay.dtb ###U-Boot Overlays### ###Documentation: ###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 ###Custom Cape #dtb_overlay=/lib/firmware/.dtbo ###Disable auto loading of virtual capes (emmc/video/wireless) #disable_uboot_overlay_emmc=1 #disable_uboot_overlay_video=1 #disable_uboot_overlay_audio=1 #disable_uboot_overlay_wireless=1 ###Cape Universal Enable #enable_uboot_cape_universal=1 ###U-Boot fdt tweaks… #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 cape_universal=enable video=HDMI-A-1:1024x768@60e ##Example v3.8.x #cape_disable=capemgr.disable_partno= #cape_enable=capemgr.enable_partno= ##Example v4.1.x #cape_disable=bone_capemgr.disable_partno= cape_enable=bone_capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART4,BB-SPIDEV1,BB-I2C1,BB-I2C2 ##enable Generic eMMC Flasher: ##make sure, these tools are installed: dosfstools rsync #cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh uuid=05ece140-c557-48f5-b454-2ca9a1b8ed34

thanks for any help!!!

Vinicius

After a few attempts, I found that by positioning BB-UART2, on the line below on /boot/uEnv.txt, , after BB-SPIDEV1, UART2 transmits!

Cape_enable = bone_capemgr.enable_partno = BB-SPIDEV1,BB-UART1,BB-UART2,BB-UART4,BB-I2C1

I'm confused by this behavior, could anyone explain this?

thanks for all

Vinicius

kernel overlays are racy and can be hit and miss with a large number
of overlays.

Just convert to using U-Boot Overlays:

http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays

Regards,

Thank you, Robert, I will see

Regards

Vinicius