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

Andre Przywara andre.przywara at arm.com
Fri Jan 21 02:57:11 CET 2022


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

Hi,

> From: Icenowy Zheng <icenowy at 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 at aosc.io>
> Signed-off-by: Jesse Taube <Mr.Bossman075 at gmail.com>

Reviewed-by: Andre Przywara <andre.przywara at 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)



More information about the U-Boot mailing list