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

Scott Wood scottwood at freescale.com
Thu May 1 02:19:45 CEST 2014


On Wed, 2014-04-30 at 17:17 -0700, York Sun wrote:
> On 04/30/2014 05:11 PM, Scott Wood wrote:
> > On Wed, 2014-04-30 at 17:05 -0700, York Sun wrote:
> >> On 04/30/2014 05:02 PM, Scott Wood wrote:
> >>> On Wed, 2014-04-30 at 17:01 -0700, York Sun wrote:
> >>>>>>> BTW, I see x86 also skips "gd = new_gd" in board_init_r(), so I wonder
> >>>>>>> what is going on with gd on x86, and whether it makes sense to lump it
> >>>>>>> in with CONFIG_SYS_EARLY_GD.
> >>>>>>>
> >>>>>>
> >>>>>> Maybe x86 maintainers can chime in? If we define such macro, it should probably
> >>>>>> sit right above board_init_f() so it can be seen easily. There is no other place
> >>>>>> it is needed, yet.
> >>>>>
> >>>>> I was thinking it would be set the same way other CONFIG symbols are
> >>>>> set.
> >>>>>
> >>>>
> >>>> That will be in include/common.h for cross-platform macros.
> >>>
> >>> No, it's in the particular board files (or better, arch/subarch files
> >>> included by board files) that need this.  The point is to not have a big
> >>> ifdef list, rather than to just move the big ifdef list.
> >>>
> >>
> >> I got your idea. You are suggesting to define this macro in each arch which it
> >> needs to preserve gd. So we won't have a list. It is neat but may be easy to miss.
> > 
> > It's how other such things are handled.  We'd have a giant mess if we
> > had lists of targets strewn throughout the codebase.
> > 
> 
> This will be a negative logic,
> 
> #ifndef CONFIG_SYS_EARLY_GD
> 	gd_t data;
> 
> 	gd =  &data;
> 	zero_global_data();
> #endif

Yes, that's fine.  The "rule" against that is just for if/else where
it's easy to avoid.

-Scott




More information about the U-Boot mailing list