[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