Hi Simon, -----"Simon Glass" <s...@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 <s...@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()? > > - return ret == 1 ? 0 : -ENOENT; > + return 0; > } > diff --git a/arch/x86/cpu/i386/cpu.c b/arch/x86/cpu/i386/cpu.c > index fca3f79b69..8f342dd06e 100644 > --- a/arch/x86/cpu/i386/cpu.c > +++ b/arch/x86/cpu/i386/cpu.c > @@ -456,10 +456,15 @@ int x86_cpu_init_f(void) > > int x86_cpu_reinit_f(void) > { > + long addr; > + > setup_identity(); > setup_pci_ram_top(); > - if (locate_coreboot_table() >= 0) > + addr = locate_coreboot_table(); > + if (addr >= 0) { > + gd->arch.coreboot_table = addr; > gd->flags |= GD_FLG_SKIP_LL_INIT; > + } > > return 0; > } > diff --git a/arch/x86/include/asm/global_data.h > b/arch/x86/include/asm/global_data.h > index 5bc251c0dd..3e4044593c 100644 > --- a/arch/x86/include/asm/global_data.h > +++ b/arch/x86/include/asm/global_data.h > @@ -123,6 +123,7 @@ struct arch_global_data { > #endif > void *itss_priv; /* Private ITSS data pointer */ > ulong acpi_start; /* Start address of ACPI tables */ > + ulong coreboot_table; /* Address of coreboot table */ > }; > > #endif > -- > 2.27.0.290.gba653c62da-goog regards, Wolfgang