
On 1/22/25 3:21 PM, Quentin Schulz wrote:
[...]
@@ -2395,17 +2395,18 @@ int boot_get_fdt_fit(struct bootm_headers *images, ulong addr, /* we need to apply overlays */ #ifdef CONFIG_OF_LIBFDT_OVERLAY - image_start = addr; - image_end = addr + fit_get_size(fit); - /* verify that relocation took place by load address not being in fit */ - if (load >= image_start && load < image_end) { - /* check is simplified; fit load checks for overlaps */ - printf("Overlayed FDT requires relocation\n"); + /* Relocate FDT so resizing does not overwrite other data in FIT. */ + of_flat_tree = map_sysmem(load, len); + len = ALIGN(fdt_totalsize(load), SZ_4K); + err = boot_relocate_fdt(&of_flat_tree, &len);
My bad, I mistakenly "compile-tested" this with a defconfig that doesn't enable CONFIG_OF_LIBFDT_OVERLAY so this was never built.
The compiler is actually not happy about that, it wants it cast to (char **).
@Marek, what do you prefer? We go back to having of_flat_tree a char* or do the cast in boot_relocate_fdt?
What about -- go back and add a code comment ?
btw. please try and clip the response using [...] so you won't be quoting a wall of useless text each time. The actual response is then hard to find in it.