Problems with Multiple Device Tree Overlays

I was having an issue loading multiple device tree overlays. I was hoping that someone could help me or maybe point me to a discussion thread I have overlooked.

The issue is that I have three device tree overlays that I would like to manually upload on my beaglebone. However, only the first of the overlays that I echo to slots will show up on pingroups and be recognized by the machine.

My device info:

root@arm:/boot/uboot# uname -a
Linux arm 3.8.13-bone40 #1 SMP Fri Jan 31 07:31:37 UTC 2014 armv7l GNU/Linux

This is how my slot configuration appears upon starting. As can be seen there are 4 overlays that are automatically loaded:

root@arm:/lib/firmware# cat /sys/devices/bone_capemgr.8/slots
0: 54:PF—
1: 55:PF—
2: 56:PF—
3: 57:PF—
4: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART2
6: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART4
7: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART5
8: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-SPIDEV1

Using the command below I am able to manually add an overlay. This will be recognized in the pingroups without issue.

root@arm:/lib/firmware# echo enable-uart3 > /sys/devices/bone_capemgr.8/slots

How my slots appear after the addition.

0: 54:PF—
1: 55:PF—
2: 56:PF—
3: 57:PF—
4: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART2
6: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART4
7: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART5
8: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-SPIDEV1
11: ff:P-O-L Override Board Name,00A0,Override Manuf,enable-uart3

However when I try to add another overlay, it appears in slots but does have any effect in pingroups. The commands I used are below.

root@arm:/lib/firmware# echo enable-gpio32> /sys/devices/bone_capemgr.8/slots

root@arm:/boot/uboot# cat /sys/devices/bone_capemgr.8/slots
0: 54:PF—
1: 55:PF—
2: 56:PF—
3: 57:PF—
4: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART2
6: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART4
7: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART5
8: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-SPIDEV1
11: ff:P-O-L Override Board Name,00A0,Override Manuf,enable-uart3
12: ff:P-O-L Override Board Name,00A0,Override Manuf,enable-gpio32

My third overlay is called enable-dcan1 but it exhibits the same behavior as above so I will not show the process of adding it.

Initially assumed that I had compiled an overlay incorrectly, but upon further experimentation I realized that the first overlay was always the one that got recognized by the machine and the other two were ignored.

A few of my thoughts:

Could the skipping of slots (4-6) and (8-11) be causing some sort of issue.

Is there a maximum number of possible overlays that I have reached which prevents any more from being recognized.

I would appreciate any help that people can supply.

Thanks,
Tim Rackers

You can combine to contents of the overlays into one custom overlay and load that (after you compile it with the device tree compiler).

Thanks for the help!

Tim