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

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


On 04/30/2014 11:24 AM, Scott Wood wrote:
>>
>> Before this change, we have
>>
>> #ifndef CONFIG_X86
>> gd_t data;
>>
>> gd = &data;
>> #endif
>>
>> This is overriding the gd.
> 
> Yes, as I said, "If PPC needs gd before board_init_f(), then add PPC (or
> some other relevant symbol if it's not all PPC) to the #ifndef X86."
> 
>> 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.
> 
> The generic board is an opportunity to clean up cruft.  Non-mpc85xx can
> be dealt with when they get converted.
> 
> What 85xx currently does seems bad -- it initializes the gd, clears it,
> may or may not use it, then clears it again.  Figure out if the 85xx
> code is using gd before board_init_f().  If it is, skip the clear in
> board_init_f(), or at least clearly document what the pre-board_init_f()
> usage is and that none of those values will last (but if that's the
> case, why not use the stack for such temporary values?).  If it's not
> used, then get rid of the early gd setting and use gd on the stack like
> the other arches do.
> 

Some serious cleaning is needed. Hold on this patch. I will see how fast I can go.

York



More information about the U-Boot mailing list