[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