dmi_intel_fvi_item
Synopsis
#include <opendmi/entity/intel/fvi.h>
typedef struct dmi_intel_fvi_item {
const char *component;
const char *version_string;
uint8_t major;
uint8_t minor;
uint8_t revision;
uint16_t build;
} dmi_intel_fvi_item_t;
Description
The dmi_intel_fvi_item_t structure describes the version of a firmware
component, and is the type of the elements of the items array of
dmi_intel_fvi_t.
Each part of the version is unspecified on its own. Components which carry a
single number set that part only, e.g. the revision identifiers of the PCH
and the System Agent (PCH-CRID Original Value) set the build number, and
the HSIO versions set the major version. Components which carry a state
rather than a version, e.g. PCH-CRID Status, leave the version unspecified,
and give the state as the version string. Some components give their version
as a string only, e.g. FSP Binary Version on some platforms.
The parts are written in decimal or in hexadecimal depending on the component: the versions of the Management Engine firmware are usually shown in decimal, e.g. 16.1.32.2473, while the versions of the reference code modules are shown in hexadecimal, e.g. 7.0.5C.50.
The revision of the microcode, uCode Version, is the revision followed by the
low byte of the build number, (revision << 8) | build: e.g. revision 4 and
build 55 stand for 0x437 of Alder Lake-P, and revision 0x41 and build 14 for
0x410E of Raptor Lake-P. The older platforms give it in the build number
alone, e.g. build 234 for 0xEA.
Fields
component-
Name of the component, e.g.
Reference Code - CPU,uCode VersionorME Firmware Version. version_string-
Version of the component written as a string, or its state, e.g.
Consumer SKUfor the Management Engine firmware orDisabled.nullptrif the component has none. major-
Major version.
UINT8_MAXmeans unspecified. minor-
Minor version.
UINT8_MAXmeans unspecified. revision-
Revision.
UINT8_MAXmeans unspecified. build-
Build number.
UINT16_MAXmeans unspecified. Some items whose other parts are all unspecified give it as0x00FF, e.g.UNDI VersionandMEBx versionon some platforms, which is presumably a byte of all bits set, and is kept as it is.