smbios: Add API to generate SMBIOS type 43 TPM Device

Based on DMTF SMBIOS Specification 3.1.0.

Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Change-Id: Ia2db29f8bc4cfbc6648bb2cabad074d9ea583ca9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64048
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Christian Walter <christian.walter@9elements.com>
This commit is contained in:
Michał Żygowski
2022-05-04 14:10:45 +02:00
parent 7ac796c7b2
commit e779523193
2 changed files with 48 additions and 0 deletions

View File

@@ -1108,6 +1108,29 @@ int smbios_write_type41(unsigned long *current, int *handle,
return len;
}
int smbios_write_type43(unsigned long *current, int *handle, const u32 vendor_id,
const u8 major_spec_ver, const u8 minor_spec_ver,
const u32 fw_ver1, const u32 fw_ver2, const char *description,
const u64 characteristics, const u32 oem_defined)
{
struct smbios_type43 *t = smbios_carve_table(*current, SMBIOS_TPM_DEVICE,
sizeof(*t), *handle);
t->vendor_id = vendor_id;
t->major_spec_ver = major_spec_ver;
t->minor_spec_ver = minor_spec_ver;
t->fw_ver1 = fw_ver1;
t->fw_ver2 = fw_ver2;
t->characteristics = characteristics;
t->oem_defined = oem_defined;
t->description = smbios_add_string(t->eos, description);
const int len = smbios_full_table_len(&t->header, t->eos);
*current += len;
*handle += 1;
return len;
}
static int smbios_write_type127(unsigned long *current, int handle)
{
struct smbios_type127 *t = smbios_carve_table(*current, SMBIOS_END_OF_TABLE,