[U-Boot] [PATCH 1/2] common/board_f: Add back gd init

York Sun yorksun at freescale.com
Wed Apr 30 20:14:30 CEST 2014


On 04/30/2014 10:57 AM, Scott Wood wrote:
> On Wed, 2014-04-30 at 10:33 -0700, York Sun wrote:
>> On 04/28/2014 03:51 PM, York Sun wrote:
>>> For powerpc SoCs, the initial gd is in INIT_RAM, in most cases, resideing
>>> in locked D-cache. At the time the function baord_inti_f() runs, no other
>>> RAM is available as a stack. This technique has been used in
>>> arch/powerpc/lib/board.c and should be added to generic board for powerpc.
>>>
>>> Signed-off-by: York Sun <yorksun at freescale.com>
>>> ---
>>>  common/board_f.c |    5 ++++-
>>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/common/board_f.c b/common/board_f.c
>>> index cbdf06f..3a00b92 100644
>>> --- a/common/board_f.c
>>> +++ b/common/board_f.c
>>> @@ -970,7 +970,10 @@ static init_fnc_t init_sequence_f[] = {
>>>  
>>>  void board_init_f(ulong boot_flags)
>>>  {
>>> -#ifndef CONFIG_X86
>>> +#ifdef CONFIG_PPC
>>> +	gd = (gd_t *)(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_GBL_DATA_OFFSET);
>>> +	__asm__ __volatile__("" : : : "memory");
>>> +#elif !defined(CONFIG_X86)
>>>  	gd_t data;
>>>  
>>>  	gd = &data;
>>>
>>
>> Scott,
>>
>> Please review this patch.
> 
> Could you respond to the comments in the RFC patch?  No point
> duplicating them.
> 
>>  You mentioned in my RFC patch review that "gd is
>> already initialized at the beginning of board_init_f()". I think that's not the
>> case. This change is still needed to get gd correct value.
> 
> Could you elaborate?  You're setting it to the same value that
> cpu_init_early_f() set it to (on mpc85xx -- not all PPC).
> 

Before this change, we have

#ifndef CONFIG_X86
gd_t data;

gd = &data;
#endif

This is overriding the gd.

For PPC, gd is set in different places. Eg,  cpu_init_early_f() for mpc85xx,
cpu_init_f() for for mpc512x, mpc5xxx, mpc8260, mpc83xx, mpc86xx. They are all
in different files. Since we have been using this assignment in
arch/powerpc/lib/board.c for all PPC, it should be safe and clear to have
correct assignment here.

We probably don't need the memory boundary though.

York








More information about the U-Boot mailing list