[U-Boot] [Patch v2 1/2] common/board_f: Preserve global data for mpc85xx and mpc86xx

York Sun yorksun at freescale.com
Thu May 1 00:48:44 CEST 2014


On 04/30/2014 03:45 PM, Scott Wood wrote:
> On Wed, 2014-04-30 at 14:31 -0700, York Sun wrote:
>> For powerpc SoCs (including mpc85xx, mpc86xx), global data is used for
>> initializing LAWs, before calling function baord_inti_f(). This data
>> should not be cleared later.
>>
>> Signed-off-by: York Sun <yorksun at freescale.com>
>> ---
>> Change log
>>  v2: Instead of adding back gd init for all PPC, preserve gd for mpc85xx and mpc86xx.
>>
>>  Note, need other maintainers to fix 83xx, 5xxx, 512x as I don't have boards to verify.
>>
>>  common/board_f.c |    6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/common/board_f.c b/common/board_f.c
>> index cbdf06f..eebb377 100644
>> --- a/common/board_f.c
>> +++ b/common/board_f.c
>> @@ -970,7 +970,11 @@ static init_fnc_t init_sequence_f[] = {
>>  
>>  void board_init_f(ulong boot_flags)
>>  {
>> -#ifndef CONFIG_X86
>> +	/*
>> +	 * For MPC85xx, global data is initialized in cpu_init_early_f() and
>> +	 * used for init_law(). gd should not be cleared in this function.
>> +	 */
>> +#if !defined(CONFIG_X86) && !defined(CONFIG_MPC85xx) && !defined(CONFIG_MPC86xx)
>>  	gd_t data;
>>
>>  	gd = &data;
> 
> It would be better to introduce a CONFIG_SYS_EARLY_GD (or similar)
> rather than growing a list here.

That's do-able.

> 
> Is there any reason why the set of targets for which zero_global_data()
> is skipped is different from the set of targets where the gd
> instantiation and assignment is skipped?

I would think the list should be identical. But without proper testing, I am
reluctant to copy the list. As you have suggested, start from 85xx first.
Non-mpc85xx can be dealt with when they get converted.

York




More information about the U-Boot mailing list