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

Albert ARIBAUD albert.aribaud at free.fr
Thu Nov 18 17:02:26 CET 2010


Le 18/11/2010 14:53, Reinhard Meyer a écrit :
>> 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.

I'm probably lagging behind... How do you ensure that the pre-relocation 
GD content ends up in the post-relocation GD (which cannot be that stack 
variable since the stack is going to be somewhere else)?

> Best Regards,
> Reinhard

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list