[PATCH v4 1/4] efi_loader: add SMBIOS table measurement
Masahisa Kojima
masahisa.kojima at linaro.org
Thu Nov 4 02:16:01 CET 2021
Hi Simon,
On Tue, 2 Nov 2021 at 23:56, Simon Glass <sjg at chromium.org> wrote:
>
> Hi Masahisa,
>
> On Tue, 26 Oct 2021 at 02:26, Masahisa Kojima
> <masahisa.kojima at linaro.org> wrote:
> >
> > TCG PC Client Platform Firmware Profile Specification
> > requires to measure the SMBIOS table that contains static
> > configuration information (e.g. Platform Manufacturer
> > Enterprise Number assigned by IANA, platform model number,
> > Vendor and Device IDs for each SMBIOS table).
> >
> > The device- and environment-dependent information such as
> > serial number is cleared to zero or space character for
> > the measurement.
> >
> > Existing smbios_string() function returns pointer to the string
> > with const qualifier, but exisintg use case is updating version
> > string and const qualifier must be removed.
> > This commit removes const qualifier from smbios_string()
> > return value and reuses to clear the strings for the measurement.
> >
> > This commit also fixes the following compiler warning:
> >
> > lib/smbios-parser.c:59:39: warning: cast to pointer from integer of
> > different size [-Wint-to-pointer-cast]
> > const struct smbios_header *header = (struct smbios_header *)entry->struct_table_address;
> >
> > Signed-off-by: Masahisa Kojima <masahisa.kojima at linaro.org>
> > ---
> > Changes in v4:
> > - update commit message
> >
> > Changes in v3:
> > - TCG spec says EV_SEPARATOR must be the last,
> > swap the order of measurement
> >
> > Changes in v2:
> > - use flexible array for table_entry field
> > - modify funtion name to find_smbios_table()
> > - remove unnecessary const qualifier from smbios_string()
> > - create non-const version of next_header()
> >
> > include/efi_loader.h | 2 +
> > include/efi_tcg2.h | 15 ++++
> > include/smbios.h | 17 +++-
> > lib/efi_loader/Kconfig | 1 +
> > lib/efi_loader/efi_boottime.c | 2 +
> > lib/efi_loader/efi_smbios.c | 2 -
> > lib/efi_loader/efi_tcg2.c | 84 +++++++++++++++++++
> > lib/smbios-parser.c | 152 +++++++++++++++++++++++++++++++---
> > 8 files changed, 261 insertions(+), 14 deletions(-)
>
> I don't understand what efi_system_table is. Could someone add a
> comment about that to the code?
efi_system_table is defined in the UEFI Specification.
>
> Also efi_configuration_table is an array of void * to what? Again I
> don't see any comment in the header file...
It is also defined in the UEFI Specification.
typedef struct{
EFI_GUID VendorGuid;
VOID *VendorTable;
} EFI_CONFIGURATION_TABLE;
efi_configuration_table will contain the guid and pointer to the industry
standard configuration tables such as APCI and SMBIOS.
>
> How does this match up with the SMBIOS table already in U-Boot? Is it
> a pointer to it?
efi_system_table has array of efi_configuration_table, SMBIOS tables is
installed(saving pointer into the array of efi_configuration_table
together with guid)
by calling efi_install_configuration_table().
Thanks,
Masahisa Kojima
>
> Regards,
> Simon
More information about the U-Boot
mailing list