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!


So is the falcon mode u-boot on beaglebone black reduced boot time? Thanks inadvance!!



Yes, U-Boot Falcon mode is one method to speed up boot time, it does this by not loading the full build of u-boot.




Thanks for the reply.

But I have 2 more questions. Kindly revert with response.

If we apply the falcon mode on u-boot, will it skip anything that u-boot or any important feature from u-boot or from Kernel part?.

I would like to apply thin on my i.MX6 board to optimize the boot time.

  1. is it really reduces time or just moving time by skipping u-boot?

  2. Do we have any negative impact on performance level of board?

Thanks and Regards,



This depends on the device, as enabling Falcon mode just removes loading the full version of u-boot.

Normal mode:
U-Boot SPL -> U-Boot -> Kernel

Falcon mode:
U-Boot SPL -> Kernel

On some devices the full version of U-Boot is needed to initialize “all” peripherals, so while the Kernel will fully init everything, it may add extra delays into the kernel’s initialize time frame.

It “reduces” total boot time, from power on to login… Depending on device the “kernel” boot might be longer, but overall it should be shorter.

performance? Once you are booted up into the Linux Kernel there should be NO difference.



Thanks for the information.
That helped me a lot!!