arm: armv7: save boot arguments

Save boot arguments r[0-3] into an array for handover of bloblist from
previous boot stage.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Suggested-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
Raymond Mao 2024-02-03 08:36:23 -08:00 committed by Tom Rini
parent 1ef43f3bf2
commit 5103e69344

View File

@ -152,9 +152,38 @@ ENDPROC(c_runtime_cpu_setup)
*
*************************************************************************/
WEAK(save_boot_params)
#if (IS_ENABLED(CONFIG_BLOBLIST))
/* Calculate the PC-relative address of saved_args */
adr r12, saved_args_offset
ldr r13, saved_args_offset
add r12, r12, r13
/*
* Intentionally swapping r0 with r2 in order to simplify the C
* function we use later.
*/
str r2, [r12]
str r1, [r12, #4]
str r0, [r12, #8]
str r3, [r12, #12]
#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
.word 0
.endr
END(saved_args)
#endif
#ifdef CONFIG_ARMV7_LPAE
WEAK(switch_to_hypervisor)
b switch_to_hypervisor_ret