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 <york...@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






_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to