spl: fit: load kernel dtb if need

kernel FDT is for U-Boot if there is not valid one from images,
ie: resource.img, boot.img or recovery.img. It is put right
after U-Boot FDT.

This is used for U-disk bing up.

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: I348b6ea5736f46c091284c501e7e0f9c64cd2f78
This commit is contained in:
Joseph Chen 2020-11-12 09:11:52 +00:00 committed by Jianhong Chen
parent a14492767c
commit 9d23fbe3b7
2 changed files with 16 additions and 0 deletions

View File

@ -324,6 +324,21 @@ static int spl_fit_append_fdt(struct spl_image_info *spl_image,
ret = fdt_shrink_to_minimum(spl_image->fdt_addr, 8192);
#endif
/*
* If need, load kernel FDT right after U-Boot FDT.
*
* kernel FDT is for U-Boot if there is not valid one
* from images, ie: resource.img, boot.img or recovery.img.
*/
node = fdt_subnode_offset(fit, images, FIT_KERNEL_FDT_PROP);
if (node < 0)
return ret;
image_info.load_addr =
(ulong)spl_image->fdt_addr + fdt_totalsize(spl_image->fdt_addr);
ret = spl_load_fit_image(info, sector, fit, base_offset, node,
&image_info);
return ret;
}

View File

@ -933,6 +933,7 @@ int bootz_setup(ulong image, ulong *start, ulong *end);
#define FIT_LOAD_PROP "load"
#define FIT_PRE_LOAD_PROP "preload"
#define FIT_ROLLBACK_PROP "rollback-index"
#define FIT_KERNEL_FDT_PROP "kernel-fdt"
/* configuration node */
#define FIT_KERNEL_PROP "kernel"