[PATCH] rpi4: Fix compilation with larger configs

Peter Robinson pbrobinson at gmail.com
Sat Nov 15 13:09:44 CET 2025


On Sat, 15 Nov 2025 at 07:33, Ilias Apalodimas
<ilias.apalodimas at linaro.org> 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 <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>

Minor nit, it's not rpi4 specific, I'll update on commit.

Reviewed-by: Peter Robinson <pbrobinson at gmail.com>
> ---
>  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