Firmware Interface Table
Each entry in the Firmware Interface Table is 16 bytes in length. Generic FIT entry format is described below.
Table 1. Generic FIT Entry Format
Byte- Offsets | 15 | 14 | 13:12 | 11 | 10:8 | 7:0 |
Meaning | Chksum | Bit 7 - C_V Bits 6:0 - Type | Version | Reserved | Size | Address |
ADDRESS - Address is the base address of the firmware component and must be aligned on 16-byte boundary.
SIZE - Size is the span of the component in multiple of 16 bytes.
VERSION - Version contains the component's version number in binary coded decimal (BCD) format. For the FIT header entry, the value in this field will indicate the revision number of the FIT data structure. The upper byte of the revision field indicates the major revision, and the lower byte indicates the minor revision. The format 0x1234 conveys the major number encoded in the first two digits and the minor number in the last two with a fixed point assumed in between.
C_V - Checksum Valid bit. This is a 1-bit field that indicates whether component has a valid checksum. CPU must ignore CHKSUM field if C_V bit is not set.
TYPE - 7-bit field containing the type code for the component registered in the FIT table. The type field encoding is defined in Table below.
CHKSUM - 1-byte field containing the component's checksum. The modulo sum of all the bytes in the component and the value in this field (CHKSUM) must add up to zero. This field is only valid, if the C_V flag is non-zero. Support for checksum is optional.
RESERVED: All reserved bit fields must be set to 0.
Table 2. FIT Entry Type Field Definitions
FIT Entry Type | Description (Intel® 64 and IA-32 Architectures) |
0x00 | FIT Header Entry |
0x01 | Microcode Update Entry |
0x02 | Startup AC Module Entry |
0x03 | Diagnostic AC Module Entry |
0x04 | Platform Boot Policy Entry |
0x05 | Intel Reserved |
0x06 | FIT Reset State Entry |
0x07 | BIOS Startup Module Entry |
0x08 | TPM Policy Record |
0x09 | BIOS Policy Record |
0x0A | TXT Policy Record |
0x0B | Key Manifest Record |
0x0C | Boot Policy Manifest |
0x0D - 0x0F | Intel Reserved |
0x10 | CSE Secure Boot |
0x11 – 0x19 | Intel Reserved |
0x1A | Vendor Authorized Boot Provisioning Table |
0x1B | Vendor Authorized Boot Key Manifest |
0x1C | Vendor Authorized Boot Image Manifest |
0x1D | Vendor Authorized Boot Image Hash Descriptors |
0x1E - 0x2B | Intel Reserved |
0x2C | SACM Debug Record |
0x2D | Feature Policy Delivery Record. Deprecated in CBnT platforms. |
0x2E | Granular SCRTM Error Record |
0x2F | JMP $ Debug Policy |
0x30 - 0x70 | Reserved for Platform Manufacturer Use |
0x71 - 0x7E | Intel Reserved |
0x7F | Unused Entry (skip) |
Intel Reserved Entries are reserved for Intel usage only.
Platform Manufacturer Use Reserved Entries are reserved for Platform Manufacturer specific usage. These entries are not checked by the processor.
Unused Entry (Type 0x7F) - FIT Type “0x7F” means “Unused entry”. “Unused entry” refers to FIT entry that exists but has no meaningful contents. It serves as a “reserved” or an “invalid” entry, which may be updated later or had been invalidated without having to change the total number of FIT entries (like a deleted record).
The FIT processing code always skips the unused entry and moves on to the next record.