How is a default Device Tree Blob determined?

I am trying to learn how a Device Tree Blob is selected (BeagleBoneBlack) if:

  1. No cape is plugged in.
  2. All dtb and cape lines in uEnv.txt are commented.

In other words a default set-up with no specific DTB or DTBO specified.

What is the process or data used for determining which DTB is used?

Regards,
Greg

We look at the eeprom:

http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/am335x_evm.h;h=150c5235d230f597641bd8a8fbd8e4afa0fd16cd;hb=HEAD#l164

Regards,

I think that’s a significant piece of info in understanding how the device tree data structure works for the Beaglebones.
I’ve got several books on the Beaglebone + Google searching did not yield an answer.

Thanks!
Greg

OK, so let’s say I have a version 4.4.30-ti-r64 kernel, and I get this after boot:

debian@BBG2:/sys/devices/platform/bone_capemgr$ 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,cape-universal

According to this (I think),
https://github.com/beagleboard/bb.org-overlays

I should be able to remove slot 4 by:

sudo sh -c “echo ‘-4’ > /sys/devices/platform/bone_capemgr/slots”

But that doesn’t work, and there is all sorts of mayhem, including this from dmesg:

[ 251.257614] Unable to handle kernel NULL pointer dereference at virtual address 0000000d

So, the question is, what is the proper procedure for removing a universal overlay, and then putting in a different one?
The config-pin utility is capable of adding an overlay, but can it remove one???

Regards,
Greg

OK, so let's say I have a version 4.4.30-ti-r64 kernel, and I get this after
boot:

debian@BBG2:/sys/devices/platform/bone_capemgr$ 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,cape-universal

According to this (I think),
GitHub - beagleboard/bb.org-overlays: Device Tree Overlays for bb.org boards

I should be able to remove slot 4 by:
sudo sh -c "echo '-4' > /sys/devices/platform/bone_capemgr/slots"

But that doesn't work, and there is all sorts of mayhem, including this from
dmesg:

[ 251.257614] Unable to handle kernel NULL pointer dereference at virtual
address 0000000d

So, the question is, what is the proper procedure for removing a universal
overlay, and then putting in a different one?
The config-pin utility is capable of adding an overlay, but can it remove
one???

removing capes works in 1-5% of overlays...

from /boot/uEnv.txt remove the cape_universal=enable and it'll come up
with nothing on your next bootup..

Regards,

Got it…info much appreciated.

Greg