[U-Boot] [PATCH] ARM: allocate pre-relocation global_data on pre-relocation stack

Reinhard Meyer u-boot at emk-elektronik.de
Thu Nov 18 14:53:09 CET 2010


> That removes the need to reserve memory above the stack
> and also removes the need for GENERATED_GBL_DATA_SIZE.
> Alignment is automatically "right" provided stack is
> aligned.
> 
> Signed-off-by: Reinhard Meyer <u-boot at emk-elektronik.de>
> ---
>  arch/arm/lib/board.c |    5 +++--
>  1 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
> index 1fd5f83..53e0f4f 100644
> --- a/arch/arm/lib/board.c
> +++ b/arch/arm/lib/board.c
> @@ -274,11 +274,12 @@ void board_init_f (ulong bootflag)
>  	init_fnc_t **init_fnc_ptr;
>  	gd_t *id;
>  	ulong addr, addr_sp;
> +	gd_t auto_gd;
>  
>  	/* Pointer is writable since we allocated a register for it */
> -	gd = (gd_t *) (CONFIG_SYS_INIT_SP_ADDR);
> +	gd = &auto_gd;
>  	/* compiler optimization barrier needed for GCC >= 3.4 */
> -	__asm__ __volatile__("": : :"memory");
> +	/* __asm__ __volatile__("": : :"memory"); */
>  
>  	memset ((void*)gd, 0, sizeof (gd_t));
>  

Are there any objections to this patch now?
I can provide a V2 where the "compiler optimization barrier" stuff is
completely removed.

Tested on: at91sam9xe / arm926ejs / top9000 and at91sam9xe-ek boards.

Best Regards,
Reinhard


More information about the U-Boot mailing list