board_r: Relocate OF_EMBED if NEEDS_MANUAL_RELOC only
authorPierre-Clément Tosi <ptosi@google.com>
Fri, 9 Sep 2022 20:16:18 +0000 (21:16 +0100)
committerTom Rini <trini@konsulko.com>
Thu, 29 Sep 2022 14:10:39 +0000 (10:10 -0400)
When the embedded device tree is pointed to by the __dtb_dt_*begin
symbols, it seems to be covered by the early relocation code and doesn't
need to be manually patched.

Cc: Simon Glass <sjg@chromium.org>
Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
common/board_r.c

index 56eb60fa275338a4ce910b99583dfb1b9f2da61c..00926dcb1e10c62fc9c9ab00a03def04f141f7c7 100644 (file)
@@ -150,13 +150,13 @@ static int initr_reloc_global_data(void)
         */
        gd->env_addr += gd->reloc_off;
 #endif
-#ifdef CONFIG_OF_EMBED
        /*
         * The fdt_blob needs to be moved to new relocation address
         * incase of FDT blob is embedded with in image
         */
-       gd->fdt_blob += gd->reloc_off;
-#endif
+       if (CONFIG_IS_ENABLED(OF_EMBED) && CONFIG_IS_ENABLED(NEEDS_MANUAL_RELOC))
+               gd->fdt_blob += gd->reloc_off;
+
 #ifdef CONFIG_EFI_LOADER
        /*
         * On the ARM architecture gd is mapped to a fixed register (r9 or x18).