efi_loader: add SMBIOS table measurement
authorMasahisa Kojima <masahisa.kojima@linaro.org>
Tue, 26 Oct 2021 08:27:24 +0000 (17:27 +0900)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tue, 26 Oct 2021 15:58:14 +0000 (17:58 +0200)
commit3d49ee8510d38e7fd087c7250a3f4392a38bf0dd
treee0f5d9398fb5072d38c354438ac6ce30ffeaff05
parenta45dac1785564e1cbb876c44f3b56b05c974584e
efi_loader: add SMBIOS table measurement

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@linaro.org>
include/efi_loader.h
include/efi_tcg2.h
include/smbios.h
lib/efi_loader/Kconfig
lib/efi_loader/efi_boottime.c
lib/efi_loader/efi_smbios.c
lib/efi_loader/efi_tcg2.c
lib/smbios-parser.c