Beaglebone black u-boot overlays and falcon mode



with recent kernel I understand that cape management is moved from kernel to u-boot. I was using u-boot falcon mode to speed up the boot. Now I would use the recent Robert Nelson kernels (i.e. 4.14.87-bone-rt-r17) but I don’t understand how to load capes (for example to unable uarts) because with falcon mode I skip u-boot and I cannot set enable_uboot_overlays=1 and uboot_overlay_addr0=BB-UART1.dtb0 etc.
What I’m doing wrong? How can I enable uarts with recents kernels using u-boot falcon mode?



Falcon mode assumes one dtb, so you either patch your based device tree or you manually use fdtoverlay to apply the overlay to the base dtb:

voodoo@hestia:~$ fdtoverlay --help
Usage: apply a number of overlays to a base blob
	fdtoverlay <options> [<overlay.dtbo> [<overlay.dtbo>]]

<type>	s=string, i=int, u=unsigned, x=hex
	Optional modifier prefix:
		hh or b=byte, h=2 byte, l=4 byte (default)

Options: -[i:o:vhV]
  -i, --input <arg>  Input base DT blob
  -o, --output <arg> Output DT blob
  -v, --verbose      Verbose messages
  -h, --help         Print this help and exit
  -V, --version      Print version and exit



I used fdtoverlay :

fdtoverlay -i am335x-boneblack-uboot.dtb BB-BONE-eMMC1-01-00A0.dtbo BB-HDMI-TDA998x-00A0.dtbo BB-ADC-00A0.dtbo BB-UART1-00A0.dtbo -o am335x-falcon.dtb

and it worked, now the BBB boots in falcon mode with kernel 4.14.93-bone-rt-r17 and with uart1 enabled!!

Thanks you very much!