[PATCH v8 5/8] arm: armv8: save boot arguments
Raymond Mao
raymond.mao at linaro.org
Sat Feb 3 17:36:24 CET 2024
Save boot arguments x[0-3] into an array for handover of bloblist from
previous boot stage.
Signed-off-by: Raymond Mao <raymond.mao at linaro.org>
Suggested-by: Ard Biesheuvel <ardb at kernel.org>
---
Changes in v2
- New patch file created for v2.
Changes in V5
- Drop the dependence on OF_BOARD.
Changes in V7
- Exclude the saved_args when BLOBLIST is disabled.
Changes in V8
- Use PC-relative reference for saved_args.
- Add 4-byte alignment for saved_args.
arch/arm/cpu/armv8/start.S | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/arch/arm/cpu/armv8/start.S b/arch/arm/cpu/armv8/start.S
index 6cc1d26e5e..7461280261 100644
--- a/arch/arm/cpu/armv8/start.S
+++ b/arch/arm/cpu/armv8/start.S
@@ -370,5 +370,28 @@ ENTRY(c_runtime_cpu_setup)
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]
+#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
+saved_args:
+ .rept 4
+ .dword 0
+ .endr
+END(saved_args)
+#endif
--
2.25.1
More information about the U-Boot
mailing list