On Sat, 15 Nov 2025 at 07:33, Ilias Apalodimas <[email protected]> wrote: > > 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 <[email protected]> > Closes: https://source.denx.de/u-boot/custodians/u-boot-raspberrypi/-/issues/2 > Signed-off-by: Ilias Apalodimas <[email protected]>
Minor nit, it's not rpi4 specific, I'll update on commit. Reviewed-by: Peter Robinson <[email protected]> > --- > 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 >

