dmi_intel_mei_device

Synopsis

#include <opendmi/entity/intel/mei.h>

typedef struct dmi_intel_mei_device {
    const char *name;
    uint32_t hfsts[6];
    bool is_present;
    bool is_reported;
} dmi_intel_mei_device_t;

Description

The dmi_intel_mei_device_t structure describes a Host Embedded Controller Interface (HECI) of the Intel Management Engine, and is the type of the elements of the devices array of dmi_intel_mei_t.

The interfaces are the PCI functions 0:16.0, 0:16.1, 0:16.4 and 0:16.5, named MEI1 to MEI4. The firmware status registers are the ones of the PCI configuration space of the function, at offsets 0x40, 0x48, 0x60, 0x64, 0x68 and 0x6C. An absent function reads with all bits set, and the registers of an interface which is not reported are all zeroes, e.g. the ones of MEI4 on most platforms.

Fields

name

Name of the interface, e.g. MEI1.

hfsts

Firmware status registers HFSTS1 to HFSTS6. Their meaning depends on the interface, and on the generation of the Management Engine for all but the first and the third registers of the first interface: the first one tells the working state, the operation mode and the error code, and the third one the SKU. Not shown if the interface is not reported.

is_present

Whether the function is present, i.e. its registers do not have all bits set. Not set, and not shown, if the interface is not reported.

is_reported

Whether the interface is reported, i.e. its registers are not all zeroes.

See also

Standards

Not part of the SMBIOS specification. Defined by the Intel reference code, which gives the structures type 219 by default. The layouts of the firmware status registers are the ones of the Intel Management Engine, as coreboot describes them.