[U-Boot] [PATCH 3/4] x86: Force the lib_sysinfo structure to be in the .data section

Graeme Russ graeme.russ at gmail.com
Fri Dec 2 22:22:45 CET 2011


Hi Gabe,

On 03/12/11 08:16, Gabe Black wrote:
> 
> 
> On Fri, Dec 2, 2011 at 1:10 PM, Graeme Russ <graeme.russ at gmail.com
> <mailto:graeme.russ at gmail.com>> wrote:
> 
>     Hi Gabe,
> 
>     On 30/11/11 17:07, Gabe Black wrote:
>     > Otherwise it ends up in the .bss section. U-boot assumes that it doesn't
>     > need to copy it over during relocation, and instead fills that whole
>     > section with zeroes. If we really were booting from ROM that would be
>     > appropriate, but we need some information from the coreboot tables
>     (memory
>     > size) before then and have to fill that structure before relocation. We
>     > skirt u-boot's assumption by putting this in .data where it assumes there
>     > is still read only but non-zero data.
>     >
>     > Signed-off-by: Gabe Black <gabeblack at chromium.org
>     <mailto:gabeblack at chromium.org>>
>     > ---
>     >  arch/x86/cpu/coreboot/sysinfo.c |    8 +++++++-
>     >  1 files changed, 7 insertions(+), 1 deletions(-)
>     >
>     > diff --git a/arch/x86/cpu/coreboot/sysinfo.c
>     b/arch/x86/cpu/coreboot/sysinfo.c
>     > index 464f8a1..e74fe0a 100644
>     > --- a/arch/x86/cpu/coreboot/sysinfo.c
>     > +++ b/arch/x86/cpu/coreboot/sysinfo.c
>     > @@ -30,4 +30,10 @@
>     >
>     >  #include <asm/ic/coreboot/sysinfo.h>
>     >
>     > -struct sysinfo_t lib_sysinfo;
>     > +/*
>     > + * This needs to be in the .data section so that it's copied over during
>     > + * relocation. By default it's put in the .bss section which is
>     simply filled
>     > + * with zeroes when transitioning from "ROM", which is really RAM,
>     to other
>     > + * RAM.
>     > + */
>     > +struct sysinfo_t lib_sysinfo __attribute__((section(".data")));
> 
>     I think this can be logically folded into the first patch
> 
>     Regards,
> 
>     Graeme
> 
> 
> I would rather not do that since the first patch is, modulo checkpatch and
> build fixes, just importing that code from coreboot's libpayload. This
> change is making an important, non-obvious change which makes it work
> properly within u-boot. These are two different things, and one way or the
> other this one is important enough to be singled out as its own change and
> not lost in the midst of the other.

I agree that is a logical position to take, however I think that the fact
that you introduce a commit which is known to be 'broken' is the overriding
factor - Include to fact that the modification is made in the commit
message and the comment like:

/*
 * Note: U-Boot needs this to be in the .data section so....
 * ...
 */

Also, can you supply any specific commit id(s) for the originating source -
We typically try to include as much canonical information to identify the
source to a particular commit

Regards,

Graeme


More information about the U-Boot mailing list