In case the 'fdt_high' environment variable is set to ~0, warn users about the dangers of the fdt_high usage. This will hopefully lead to removal of most of the fdt_high ~0 usage over time.
Signed-off-by: Marek Vasut <[email protected]> --- Cc: "João Paulo Gonçalves" <[email protected]> Cc: Ilias Apalodimas <[email protected]> Cc: Sam Protsenko <[email protected]> Cc: Sughosh Ganu <[email protected]> Cc: Tom Rini <[email protected]> Cc: [email protected] --- V2: Warn unconditionally --- boot/image-fdt.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/boot/image-fdt.c b/boot/image-fdt.c index 3f0ac54f76f..a3a4fb8b558 100644 --- a/boot/image-fdt.c +++ b/boot/image-fdt.c @@ -189,6 +189,12 @@ int boot_relocate_fdt(char **of_flat_tree, ulong *of_size) /* All ones means use fdt in place */ of_start = fdt_blob; addr = map_to_sysmem(fdt_blob); + printf("WARNING:\n" + "The 'fdt_high' environment variable is set to ~0. This is known to cause\n" + "boot failures due to placement of DT at non-8-byte-aligned addresses.\n" + "This system will likely fail to boot. Unset the 'fdt_high' environment\n" + "variable and submit a fix upstream.\n"); + err = lmb_alloc_mem(LMB_MEM_ALLOC_ADDR, 0, &addr, of_len, LMB_NONE); if (err) { -- 2.51.0

