From 9d23fbe3b7ff738302bc92b8c367fad9584cda98 Mon Sep 17 00:00:00 2001 From: Joseph Chen Date: Thu, 12 Nov 2020 09:11:52 +0000 Subject: [PATCH] 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 Change-Id: I348b6ea5736f46c091284c501e7e0f9c64cd2f78 --- common/spl/spl_fit.c | 15 +++++++++++++++ include/image.h | 1 + 2 files changed, 16 insertions(+) diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c index 59403c9883..8b534e3574 100644 --- a/common/spl/spl_fit.c +++ b/common/spl/spl_fit.c @@ -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; } diff --git a/include/image.h b/include/image.h index 95256925b5..93a3344e7c 100644 --- a/include/image.h +++ b/include/image.h @@ -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"