Starting with U-Boot v2017.01, we’ve now enabled the ability to use device tree overlays in U-Boot. Follow the build instructions BBB U-Boot.
To enable, set [enable_uboot_overlays=1] in /boot/uEnv.txt. U-Boot will scan the 4 i2c eeprom address’s and apply the overlay in order, followed by a 5th manual option:
/boot/uEnv.txt
enable_uboot_overlays=1
U-Boot:
U-Boot will read the i2c eeprom on each of the 4 possible capes:
BeagleBone: cape eeprom: i2c_probe: 0x54:
BeagleBone: cape eeprom: i2c_probe: 0x55: /lib/firmware/BB-CAPE-DISP-CT4-00A0.dtbo
BeagleBone: cape eeprom: i2c_probe: 0x56:
BeagleBone: cape eeprom: i2c_probe: 0x57:
U-Boot applying example overlay:
loading /boot/dtbs/4.4.39-ti-r79/am335x-boneblack-emmc-overlay.dtb ...
53192 bytes read in 110 ms (471.7 KiB/s)
debug: [uboot_overlay_addr1=/lib/firmware/BB-CAPE-DISP-CT4-00A0.dtbo] ...
loading /lib/firmware/BB-CAPE-DISP-CT4-00A0.dtbo ...
4518 bytes read in 265 ms (16.6 KiB/s)
loading /boot/initrd.img-4.4.39-ti-r79 ...
5163687 bytes read in 374 ms (13.2 MiB/s)
debug: [console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1
root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet cape_universal=enable] ...
debug: [bootz 0x82000000 0x88080000:4ecaa7 88000000] ...
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
reserving fdt memory region: addr=88000000 size=e000
Loading Ramdisk to 8fb13000, end 8ffffaa7 ... OK
Loading Device Tree to 8fb02000, end 8fb12fff ... OK
Starting kernel ...
To enable a manual overlay use the dtb_overlay variable:
/boot/uEnv.txt
enable_uboot_overlays=1
dtb_overlay=/lib/firmware/BB-CAPE-5-00A0.dtbo
Regards,
The virtual capes (eMMC/HDMI/wl1835 are now enabled):
/boot/uEnv.txt:
dtb=am335x-boneblack-overlay.dtb
enable_uboot_overlays=1
BeagleBone Green Wireless:
loading /boot/vmlinuz-4.4.43-ti-r84 ...
8651176 bytes read in 592 ms (13.9 MiB/s)
loading /boot/dtbs/4.4.43-ti-r84/am335x-boneblack-overlay.dtb ...
53253 bytes read in 65 ms (799.8 KiB/s)
debug: [fdt_buffer=0x60000] ...
debug: [uboot_emmc=/lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo] ...
loading /lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo ...
1105 bytes read in 227 ms (3.9 KiB/s)
debug: [uboot_wireless=/lib/firmware/BB-BBGW-WL1835-00A0.dtbo] ...
loading /lib/firmware/BB-BBGW-WL1835-00A0.dtbo ...
4681 bytes read in 246 ms (18.6 KiB/s)
loading /boot/initrd.img-4.4.43-ti-r84 ...
5237958 bytes read in 368 ms (13.6 MiB/s)
debug: [console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet cape_universal=enable] ...
debug: [bootz 0x82000000 0x88080000:4fecc6 88000000] ...
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
reserving fdt memory region: addr=88000000 size=6e000
Loading Ramdisk to 8fb01000, end 8ffffcc6 ... OK
Loading Device Tree to 8fa90000, end 8fb00fff ... OK
Starting kernel ...
BeagleBone Black Wireless:
loading /boot/vmlinuz-4.4.43-ti-r84 ...
8651176 bytes read in 593 ms (13.9 MiB/s)
loading /boot/dtbs/4.4.43-ti-r84/am335x-boneblack-overlay.dtb ...
53253 bytes read in 65 ms (799.8 KiB/s)
debug: [fdt_buffer=0x60000] ...
debug: [uboot_emmc=/lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo] ...
loading /lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo ...
1105 bytes read in 231 ms (3.9 KiB/s)
debug: [uboot_video=/lib/firmware/BB-HDMI-TDA998x-00A0.dtbo] ...
loading /lib/firmware/BB-HDMI-TDA998x-00A0.dtbo ...
4169 bytes read in 452 ms (8.8 KiB/s)
debug: [uboot_wireless=/lib/firmware/BB-BBBW-WL1835-00A0.dtbo] ...
loading /lib/firmware/BB-BBBW-WL1835-00A0.dtbo ...
4376 bytes read in 269 ms (15.6 KiB/s)
loading /boot/initrd.img-4.4.43-ti-r84 ...
5237958 bytes read in 369 ms (13.5 MiB/s)
debug: [console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet cape_universal=enable] ...
debug: [bootz 0x82000000 0x88080000:4fecc6 88000000] ...
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
reserving fdt memory region: addr=88000000 size=6e000
Loading Ramdisk to 8fb01000, end 8ffffcc6 ... OK
Loading Device Tree to 8fa90000, end 8fb00fff ... OK
Starting kernel ...
BeagleBone Black Wireless + LCD:
loading /boot/vmlinuz-4.4.43-ti-r84 ...
8651176 bytes read in 592 ms (13.9 MiB/s)
loading /boot/dtbs/4.4.43-ti-r84/am335x-boneblack-overlay.dtb ...
53253 bytes read in 65 ms (799.8 KiB/s)
debug: [fdt_buffer=0x60000] ...
debug: [uboot_overlay_addr0=/lib/firmware/BB-BONE-LCD7-01-00A3.dtbo] ...
loading /lib/firmware/BB-BONE-LCD7-01-00A3.dtbo ...
5778 bytes read in 170 ms (32.2 KiB/s)
loading /boot/initrd.img-4.4.43-ti-r84 ...
5237958 bytes read in 370 ms (13.5 MiB/s)
debug: [console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet cape_universal=enable] ...
debug: [bootz 0x82000000 0x88080000:4fecc6 88000000] ...
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
reserving fdt memory region: addr=88000000 size=6e000
Loading Ramdisk to 8fb01000, end 8ffffcc6 ... OK
Loading Device Tree to 8fa90000, end 8fb00fff ... OK
Starting kernel ...
Some work is still needed when combining virtual capes with external capes.
Regards,
Virtual Capes can now be disabled in /boot/uEnv.txt
disable_uboot_overlay_emmc=1
disable_uboot_overlay_video=1
disable_uboot_overlay_wireless=1
eeprom overrides:
uboot_overlay_addr0=/lib/firmware/<file0>.dtbo
uboot_overlay_addr1=/lib/firmware/<file1>.dtbo
uboot_overlay_addr2=/lib/firmware/<file2>.dtbo
uboot_overlay_addr3=/lib/firmware/<file3>.dtbo
Regards,