]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
arm: armv8: Make save_boot_params simpler
authorIlias Apalodimas <ilias.apalodimas@linaro.org>
Thu, 16 Oct 2025 13:27:43 +0000 (16:27 +0300)
committerTom Rini <trini@konsulko.com>
Fri, 24 Oct 2025 19:47:50 +0000 (13:47 -0600)
The idiom used in save_boot_params is common for armv7.
In armv8 is much easier to do the same thing with adr/adrp.

So let's simplify the code a bit.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
arch/arm/cpu/armv8/start.S

index 829a620faeb61c31a7f77d8a3ce12ec7033fa3f3..40c342e97e9ba70e0c1f8c3a82b86e8df94292ea 100644 (file)
@@ -387,23 +387,18 @@ ENDPROC(c_runtime_cpu_setup)
 WEAK(save_boot_params)
 #if (IS_ENABLED(CONFIG_BLOBLIST))
        /* Calculate the PC-relative address of saved_args */
-       adr     x9, saved_args_offset
-       ldr     w10, saved_args_offset
-       add     x9, x9, w10, sxtw
-
-       stp     x0, x1, [x9]
-       stp     x2, x3, [x9, #16]
+       adrp    x9, saved_args
+       add     x9, x9, :lo12:saved_args
+       stp     x0, x1, [x9]
+       stp     x2, x3, [x9, #16]
 #endif
        b       save_boot_params_ret    /* back to my caller */
 ENDPROC(save_boot_params)
 
 #if (IS_ENABLED(CONFIG_BLOBLIST))
-saved_args_offset:
-       .long   saved_args - .  /* offset from current code to save_args */
-
-       .section .data
-       .align 2
-       .global saved_args
+.section .data
+.align 2
+.global saved_args
 saved_args:
        .rept 4
        .dword 0