[U-Boot] [Patch v3 1/2] common/board_f: Preserve early global data
York Sun
yorksun at freescale.com
Thu May 1 23:29:32 CEST 2014
On 05/01/2014 02:21 PM, Scott Wood wrote:
> On Thu, 2014-05-01 at 14:16 -0700, York Sun wrote:
>> On 05/01/2014 08:54 AM, Simon Glass wrote:
>>> Hi York,
>>>
>>> On 30 April 2014 18:01, York Sun <yorksun at freescale.com> wrote:
>>>> Some platforms (including mpc85xx, mpc86xx) use global data before calling
>>>> function baord_inti_f(). This data should not be cleared later. Any arch
>>>> which needs to preserve global data should define CONFIG_SYS_EARLY_GD.
>>>>
>>>> Signed-off-by: York Sun <yorksun at freescale.com>
>>>> CC: Scott Wood <scottwood at freescale.com>
>>>> CC: Simon Glass <sjg at chromium.org>
>>>> ---
>>>> Change log
>>>>
>>>> v3: Introduce CONFIG_SYS_EARLY_GD instead of using a list
>>>> v2: Instead of adding back gd init for all PPC, preserve gd for mpc85xx and mpc86xx.
>>>>
>>>> README | 3 +++
>>>> arch/powerpc/include/asm/config.h | 2 ++
>>>> arch/x86/include/asm/config.h | 1 +
>>>> common/board_f.c | 10 +++++-----
>>>> 4 files changed, 11 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/README b/README
>>>> index 12758dc..1a51b11 100644
>>>> --- a/README
>>>> +++ b/README
>>>> @@ -440,6 +440,9 @@ The following options need to be configured:
>>>> supported, core will start to execute uboot when wakes up.
>>>>
>>>> - Generic CPU options:
>>>> + CONFIG_SYS_EARLY_GD
>>>> + Defines global data is used before board_init_f().
>>>> +
>>>
>>> This looks like a good solution, but I believe that 'early' is in fact
>>> where we are headed. So perhaps you should create an inverted option
>>> and define it for archs that don't support it?
>>
>> I don't disagree for the long term. But since we just start to convert to
>> generic board, fewer archs need this than those don't. I suggest we try this and
>> when most archs convert to generic board, we can invert it if needed.
>
> Why wait to do it right? Which arches actually don't need this, given
> that Simon said he thinks ARM needs it as well?
>
Adding something I can't test?
Even Simon said he thinks ARM needs it, it is not what current code has. If I
revert this logic,
#ifdef CONFIG_SYS_GLOBAL_DATA_STACK
gd_dt data;
gd = &data;
zero_global_data();
#endif
I need to add #define CONFIG_SYS_GLOBAL_DATA_STACK to the board/arch who needs
it. I have no idea which needs in the 70+ boards with CONFIG_DISPLAY_BOARDINFO
defined.
York
More information about the U-Boot
mailing list