[U-Boot] [PATCH 1/2] common/board_f: Add back gd init
York Sun
yorksun at freescale.com
Wed Apr 30 22:38:49 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.
>
I took a deeper look at 85xx code. We use gd before board_init_f. I can move
some of them to use return value, but for "law" operations in
arch/powerpc/cpu/mpc8xxx/law.c, we need "gd".
York
More information about the U-Boot
mailing list