Don´t load custom DeviceTree on Startup

Hello,

I have a Beaglebone Black:
uname -a:

Linux c0a800a7 3.8.13-bone63 #1 SMP Mon Aug 11 20:08:34 UTC 2014 armv7l GNU/Linux

I want to load UART1, so I added to:
/boot/uEnv.txt:
cape_enable=capemgr.enable_partno=ADAFRUIT-UART1

/etc/default/capemgr:

CAPE=ADAFRUIT-UART1

but it don´t load:
dmesg | grep UART1

[ 0.000000] Kernel command line: console=ttyO0,115200n8 capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN capemgr.enable_partno=ADAFRUIT-UART1 root=UUID=319a7dc6-9ece-408a-877f-f7c38bebb825 ro rootfstype=ext4 rootwait fixrtc quiet init=/lib/systemd/systemd
[ 0.708537] bone-capemgr bone_capemgr.9: enabled_partno part_number ‘ADAFRUIT-UART1’, version ‘N/A’, prio '0’
[ 0.708576] bone-capemgr bone_capemgr.9: slot #7: 'Override Board Name,00A0,Override Manuf,ADAFRUIT-UART1’
[ 0.713023] bone-capemgr bone_capemgr.9: loader: before slot-7 ADAFRUIT-UART1:00A0 (prio 0)
[ 0.713038] bone-capemgr bone_capemgr.9: loader: check slot-7 ADAFRUIT-UART1:00A0 (prio 0)
[ 0.713052] bone-capemgr bone_capemgr.9: loader: after slot-7 ADAFRUIT-UART1:00A0 (prio 0)
[ 0.713067] bone-capemgr bone_capemgr.9: slot #7: Requesting part number/version based 'ADAFRUIT-UART1-00A0.dtbo
[ 0.713082] bone-capemgr bone_capemgr.9: slot #7: Requesting firmware ‘ADAFRUIT-UART1-00A0.dtbo’ for board-name ‘Override Board Name’, version '00A0’
[ 1.067698] bone-capemgr bone_capemgr.9: failed to load firmware 'ADAFRUIT-UART1-00A0.dtbo’
[ 1.076481] bone-capemgr bone_capemgr.9: loader: failed to load slot-7 ADAFRUIT-UART1:00A0 (prio 0)

But I can load them manual:
echo “ADAFRUIT-UART1” > /sys/devices/bone_capemgr.9/slots

cat /sys/devices/bone_capemgr.9/slots

0: 54:PF—
1: 55:PF—
2: 56:PF—
3: 57:PF—
4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN
8: ff:P-O-L Override Board Name,00A0,Override Manuf,ADAFRUIT-UART1

Where is my mistake?

Thank you!

Any particular reason why you have to load the adafruit overlays ? What about these ?

debian@beaglebone:~$ ls /lib/firmware/ | grep UART
BB-UART1-00A0.dtbo
BB-UART2-00A0.dtbo
BB-UART2-RTSCTS-00A0.dtbo
BB-UART3-00A0.dtbo
BB-UART4-00A0.dtbo
BB-UART4-RS485-00A0.dtbo
BB-UART5-00A0.dtbo

Because I don´t have this.

ls /lib/firmware/ | grep UART
ADAFRUIT-UART1-00A0.dtbo
ADAFRUIT-UART2-00A0.dtbo
ADAFRUIT-UART4-00A0.dtbo
ADAFRUIT-UART5-00A0.dtbo

But I guess this couldn´t be the problem, right?

I can only guess what is happening. I do not think this could be your fault necessarily. But perhaps something that needs loading a boot prior to load these specific overlays. I’m not sure about that, because I’ve never loaded that specific overlays . . . just the BB-UART overlays.

anyway, it could be that in order to load these specific overlays the need to be “included” in the main board device tree file. However, if you would still like to load these “automatically” at boot, perhaps using /etc/rc.local would be a better choice ? Same end goal, just a different approach.

I did find the output of dmsg a bit odd though. And notice that slot 7 is still missing after you’ve successfully loaded the overlay after boot.