Booting a FIT: The load address of the FDT blob and overlays

Alex G. at
Mon Mar 8 23:16:03 CET 2021


I was wondering about the correct load address for a devicetree in FIT. 
Normally, the dtb can be anywhere in RAM, so it doesn't make sense to 
force it to a specific address with a 'load =' FIT directive.

With bootm, the first overlay, but then fail with with:
	"Overlayed FDT requires relocation"
The reason is that bootm_find_other() will want to apply the overlays 
with the FDT in-place. This would overwrite the FIT image. But later, in 
boot_relocate_fdt(), it goes ahead and relocates the FDT anyway. So why 
not relocate the FDT, and then apply the overlays?

I also like the solution when booting FITs with SPL_LOAD_FIT_SIMPLE. In 
this case, the FDT is placed right after the firmware or OS binary, 
unless the 'load =' address is given in the FIT.


More information about the U-Boot mailing list