dmi_lenovo_tpm_info

Synopsis

#include <opendmi/entity/lenovo/records.h>

typedef struct dmi_lenovo_tpm_info {
    uint8_t unknown_1;
    dmi_binary_t vendor_raw;
    char *vendor;
    uint8_t unknown_2[2];
    uint16_t unknown_3;
    uint8_t unknown_4;
    const char *signature;
    const char *description;
} dmi_lenovo_tpm_info_t;

Description

The dmi_lenovo_tpm_info_t structure holds the decoded Lenovo TPM information (type 134) of a Lenovo laptop, which tells the vendor of its TPM by the TCG vendor ID, e.g. ATML for Atmel or STM ` for STMicroelectronics. The structures are told from the date records of the same type, see `dmi_lenovo_date, by their first string, TPM INFO.

The structure is returned by dmi_entity_info for the structures decoded by dmi_lenovo_tpm_info_spec, of type DMI_TYPE(lenovo_tpm_info), declared in <opendmi/module/lenovo.h>, once the Lenovo extension module (dmi_lenovo_module) is enabled, which is done for IBM and Lenovo platforms. It lives as long as the context it has been decoded in.

The layout is reverse engineered from the dumps of the data corpus, since no public source describes the structure, and the members whose meaning is not established are named after their position.

Fields

unknown_1

Value whose meaning is not established, 0 in all known data.

vendor_raw

TCG vendor ID of the TPM, as the structure holds it.

vendor

TCG vendor ID of the TPM, e.g. ATML, or nullptr if it is not printable. The string belongs to the structure, and is freed along with it.

unknown_2

Values whose meaning is not established, 1 and 1 in all known data.

unknown_3

Value whose meaning is not established, 0 in all known data.

unknown_4

Value whose meaning is not established, 0, 2 or 3 in the known data.

signature

Signature, TPM INFO.

description

Description of the rest, System Reserved.

Standards

Not part of the SMBIOS specification. Defined by Lenovo firmware, and reverse engineered from the data corpus.