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

Gabe Black gabeblack at google.com
Fri Dec 2 22:16:13 CET 2011


On Fri, Dec 2, 2011 at 1:10 PM, Graeme Russ <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>
> > ---
> >  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.

Gabe


More information about the U-Boot mailing list