[U-Boot] [PATCH v4 07/27] Introduce generic global_data

Graeme Russ graeme.russ at gmail.com
Thu Mar 15 04:02:14 CET 2012

Hi Simon,

On Thu, Mar 15, 2012 at 1:50 PM, Simon Glass <sjg at chromium.org> wrote:
> Hi Graeme,
> On Wed, Mar 14, 2012 at 7:35 PM, Graeme Russ <graeme.russ at gmail.com> wrote:
>> Hi Simon,


>> IMHO, global data should contain only globally common members and an arch-
>> specific struct and ditch (most of) the #ifdefs
> My thinking here was to try to bring everything into a single file. It
> then should be clearer when things are common between different
> architectures. Patches to the generic file can be made without also
> having to patch the non-generic files, etc.
> A fair number of the #ifdefs are not needed, or are there because some
> archs don't implement all the features of U-Boot.
> You have an example right there: cpu_clk_rate_hz is similar to cpu_clk
> and core_clk.
> That said it is a bit of a daunting task to amalgamate them.
> Also there is the purely practical consideration that if we continue
> to have an asm/global_data.h then we end up with two global datas. One
> is for CONFIG_SYS_GENERIC_BOARD and contains just the non-common
> fields. The other is for non-CONFIG_SYS_GENERIC_BOARD and contains all
> fields. Ick.
> So what do you think?

Do you really need to unify global data to achieve what the title of the
patch series suggests (i.e. to unify the init processing loop)? Maybe you
could leave global data as is (or slightly tweak the odd arch) and leave
the resolution of just how bad global data is becoming for another day

I only say this because this is turning into "let's do a dirty hack now to
partially fix it and leave the rest for later (it'll get done, really,
honestly, I promise)" ;)

There will always be arch specific global data members - I see a few

 - Move them into bd
 - Move them into an arch_global_data struct inside gd
 - Move them into an arch_global_data struct totally seperate from gd
 - Question how many are really required to be in gd (remember, gd is
   only there to cart around writable global variable before .bss and
   .data are available after relocation)



More information about the U-Boot mailing list