[PATCH] rpi4: Fix compilation with larger configs

Ilias Apalodimas ilias.apalodimas at linaro.org
Sat Nov 15 08:33:29 CET 2025


Tom reports that adding more Kconfig options fails with
board/raspberrypi/rpi/lowlevel_init.o: in function `save_boot_params':
board/raspberrypi/rpi/lowlevel_init.S:20:(.text+0x0):
relocation truncated to fit: R_AARCH64_ADR_PREL_LO21
against symbol `fw_dtb_pointer' defined in .data section
in board/raspberrypi/rpi/rpi.o
make: *** [Makefile:2029: u-boot] Error 1

Since fw_dtb_pointer lives in .data it might end up above the
+-1MB that adr can reach.
So switch over to adrp+add which has a +-4gb reach.

Reported-by: Tom Rini <trini at konsulko.com>
Closes: https://source.denx.de/u-boot/custodians/u-boot-raspberrypi/-/issues/2
Signed-off-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
---
 board/raspberrypi/rpi/lowlevel_init.S | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/board/raspberrypi/rpi/lowlevel_init.S b/board/raspberrypi/rpi/lowlevel_init.S
index 8c39b3e12e80..30c0b0c27a81 100644
--- a/board/raspberrypi/rpi/lowlevel_init.S
+++ b/board/raspberrypi/rpi/lowlevel_init.S
@@ -16,7 +16,8 @@ save_boot_params:
 
 	/* The firmware provided ATAG/FDT address can be found in r2/x0 */
 #ifdef CONFIG_ARM64
-	adr	x8, fw_dtb_pointer
+	adrp	x8, fw_dtb_pointer
+	add     x8, x8, #:lo12:fw_dtb_pointer
 	str	x0, [x8]
 #else
 	ldr	r8, =fw_dtb_pointer
-- 
2.51.0



More information about the U-Boot mailing list