Hi Alexander, On Mon, Aug 8, 2016 at 10:06 PM, Alexander Graf <ag...@suse.de> wrote: > We can pass SMBIOS easily as EFI configuration table to an EFI payload. This > patch adds enablement for that case. > > While at it, we also enable SMBIOS generation for ARM systems, since they > support > EFI_LOADER. > > Signed-off-by: Alexander Graf <ag...@suse.de> > --- > cmd/bootefi.c | 3 +++ > include/efi_api.h | 4 ++++ > include/efi_loader.h | 2 ++ > include/smbios.h | 1 + > lib/Kconfig | 4 ++-- > lib/smbios.c | 36 ++++++++++++++++++++++++++++++++++++ > 6 files changed, 48 insertions(+), 2 deletions(-) >
Reviewed-by: Bin Meng <bmeng...@gmail.com> One nits below: > diff --git a/cmd/bootefi.c b/cmd/bootefi.c > index 53a6ee3..e241b7d 100644 > --- a/cmd/bootefi.c > +++ b/cmd/bootefi.c > @@ -205,6 +205,9 @@ static unsigned long do_bootefi_exec(void *efi, void *fdt) > if (!memcmp(bootefi_device_path[0].str, "N\0e\0t", 6)) > loaded_image_info.device_handle = nethandle; > #endif > +#ifdef CONFIG_GENERATE_SMBIOS_TABLE > + efi_smbios_register(); > +#endif > [snip] > > static int smbios_write_type32(uintptr_t *current, int handle) > { > @@ -216,7 +227,9 @@ static smbios_write_type smbios_write_funcs[] = { > smbios_write_type1, > smbios_write_type2, > smbios_write_type3, > +#ifdef CONFIG_X86 > smbios_write_type4, > +#endif > smbios_write_type32, > smbios_write_type127 > }; > @@ -267,3 +280,26 @@ uintptr_t write_smbios_table(uintptr_t addr) > > return addr; > } > + > +#ifdef CONFIG_EFI_LOADER > + > +void efi_smbios_register(void) > +{ > + static efi_guid_t smbios_guid = SMBIOS_TABLE_GUID; > + /* Map within the low 32 bits, to allow for 32bit SMBIOS tables */ > + uint64_t dmi = 0xffffffff; nits: one space before uint64_t > + /* Reserve 4kb for SMBIOS */ > + uint64_t pages = 1; > + int memtype = EFI_RUNTIME_SERVICES_DATA; > + > + if (efi_allocate_pages(1, memtype, pages, &dmi) != EFI_SUCCESS) > + return; > + > + /* Generate SMBIOS tables */ > + write_smbios_table(dmi); > + > + /* And expose them to our EFI payload */ > + efi_install_configuration_table(&smbios_guid, (void*)dmi); > +} > + > +#endif > -- Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot