[PATCH] arm: armv8: Make save_boot_params simpler

Ilias Apalodimas ilias.apalodimas at linaro.org
Thu Oct 16 15:27:43 CEST 2025


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 at linaro.org>
---
 arch/arm/cpu/armv8/start.S | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/arch/arm/cpu/armv8/start.S b/arch/arm/cpu/armv8/start.S
index 829a620faeb6..40c342e97e9b 100644
--- a/arch/arm/cpu/armv8/start.S
+++ b/arch/arm/cpu/armv8/start.S
@@ -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
--
2.43.0



More information about the U-Boot mailing list