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.