[PATCH v1 37/43] x86: Store the coreboot table address in global_data
Simon Glass
sjg at chromium.org
Wed Jul 8 05:33:05 CEST 2020
Hi Wolfgang,
On Wed, 1 Jul 2020 at 09:16, Wolfgang Wallner
<wolfgang.wallner at br-automation.com> wrote:
>
> Hi Simon,
>
> -----"Simon Glass" <sjg at chromium.org> schrieb: -----
> > Betreff: [PATCH v1 37/43] x86: Store the coreboot table address in global_data
> >
> > At present this information is used to locate and parse the tables but is
> > not stored. Store it so that we can display it to the user, e.g. with the
> > 'bdinfo' command.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
> > arch/x86/cpu/coreboot/tables.c | 8 +++++++-
> > arch/x86/cpu/i386/cpu.c | 7 ++++++-
> > arch/x86/include/asm/global_data.h | 1 +
> > 3 files changed, 14 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/x86/cpu/coreboot/tables.c b/arch/x86/cpu/coreboot/tables.c
> > index a5d31d1dea..1594b4a8b2 100644
> > --- a/arch/x86/cpu/coreboot/tables.c
> > +++ b/arch/x86/cpu/coreboot/tables.c
> > @@ -10,6 +10,8 @@
> > #include <net.h>
> > #include <asm/arch/sysinfo.h>
> >
> > +DECLARE_GLOBAL_DATA_PTR;
> > +
> > /*
> > * 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
> > @@ -243,6 +245,10 @@ int get_coreboot_info(struct sysinfo_t *info)
> > if (addr < 0)
> > return addr;
> > ret = cb_parse_header((void *)addr, 0x1000, info);
> > + if (!ret)
> > + return -ENOENT;
> > + gd->arch.coreboot_table = addr;
> > + gd->flags |= GD_FLG_SKIP_LL_INIT;
>
> Why is GD_FLG_SKIP_LL_INIT now set in get_coreboot_info()?
I found that we need to set it both when running the actual coreboot
build and when running a bare-metal board. So this is the best place
to do it.
Regards,
Simon
More information about the U-Boot
mailing list