[PATCH] board_r: Relocate OF_EMBED if NEEDS_MANUAL_RELOC only

Pierre-Clément Tosi ptosi at google.com
Fri Sep 9 22:16:18 CEST 2022


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 at chromium.org>
Signed-off-by: Pierre-Clément Tosi <ptosi at google.com>
---
 common/board_r.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/common/board_r.c b/common/board_r.c
index 56eb60fa27..00926dcb1e 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -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).
-- 
2.37.2.789.g6183377224-goog



More information about the U-Boot mailing list