[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