Re: [PATCH 01/11] arm: arm926ej-s: start.S: port save_boot_params support from armv7 code

Andre Przywara
2022-01-21T01:58:07Z

On Tue, 4 Jan 2022 19:34:58 -0500
Jesse Taube <mr.bossman075@gmail.com> wrote:

Hi,

> From: Icenowy Zheng <icenowy@aosc.io>
>
> The ARMv7 start code has support for saving some boot params at the
> entry point, which is used by some SoCs to return to BROM.
>
> Port this to ARM926EJ-S start code.
>
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>

Reviewed-by: Andre Przywara <andre.przywara@arm.com>

Cheers,
Andre

> ---
> arch/arm/cpu/arm926ejs/start.S | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/arch/arm/cpu/arm926ejs/start.S b/arch/arm/cpu/arm926ejs/start.S
> index 0afcc47aad..aca7793c57 100644
> --- a/arch/arm/cpu/arm926ejs/start.S
> +++ b/arch/arm/cpu/arm926ejs/start.S
> @@ -17,6 +17,7 @@
> #include <asm-offsets.h>
> #include <config.h>
> #include <common.h>
> +#include <linux/linkage.h>
>
> /*
> *************************************************************************
> @@ -32,8 +33,13 @@
> */
>
> .globl reset
> + .globl save_boot_params_ret
> + .type save_boot_params_ret,%function
>
> reset:
> + /* Allow the board to save important registers */
> + b save_boot_params
> +save_boot_params_ret:
> /*
> * set the cpu to SVC32 mode
> */
> @@ -110,3 +116,16 @@ flush_dcache:
> #endif
> mov pc, lr /* back to my caller */
> #endif /* CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT) */
> +
> +/*************************************************************************
> + *
> + * void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3)
> + * __attribute__((weak));
> + *
> + * Stack pointer is not yet initialized at this moment
> + * Don't save anything to stack even if compiled with -O0
> + *
> + *************************************************************************/
> +WEAK(save_boot_params)
> + b save_boot_params_ret /* back to my caller */
> +ENDPROC(save_boot_params)