From: Simon Glass Date: Thu, 16 Jan 2025 01:27:21 +0000 (-0700) Subject: vbe: Support loading an FDT with the relocating loader X-Git-Tag: v2025.04-rc1~32^2~2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65250625c518c56b931116f23d62e0cc52f7879b;p=pandora-u-boot.git vbe: Support loading an FDT with the relocating loader Add FDT support so that this can be copied down in memory after loading and made available to the new image. Signed-off-by: Simon Glass --- diff --git a/boot/vbe_common.c b/boot/vbe_common.c index 30dd18d3c38..1926e851398 100644 --- a/boot/vbe_common.c +++ b/boot/vbe_common.c @@ -260,6 +260,26 @@ int vbe_read_fit(struct udevice *blk, ulong area_offset, ulong area_size, memmove(fdt_base_buf, fdt_base_buf + extra, fdt_size); } +#if CONFIG_IS_ENABLED(RELOC_LOADER) + image->fdt_buf = fdt_base_buf; + + ulong xpl_size; + ulong xpl_pad; + ulong fdt_start; + + if (xpl_phase() == PHASE_TPL) { + xpl_size = binman_sym(ulong, u_boot_vpl_nodtb, size); + xpl_pad = binman_sym(ulong, u_boot_vpl_bss_pad, size); + } else { + xpl_size = binman_sym(ulong, u_boot_spl_nodtb, size); + xpl_pad = binman_sym(ulong, u_boot_spl_bss_pad, size); + } + fdt_start = image->load_addr + xpl_size + xpl_pad; + log_debug("load_addr %lx xpl_size %lx copy-to %lx\n", + image->load_addr, xpl_size + xpl_pad, + fdt_start); + image->fdt_start = map_sysmem(fdt_start, fdt_size); +#endif } } if (load_addrp)