coreboot/Documentation/soc/intel/fit.md
Daniel Maslowski ffa262db59 Documentation/FIT: reference archived copy of Intel TXT lab handout
The document is no longer accessible at the original URL.

Change-Id: I9601b3fb9a86796dafd742961d3d130fb735804e
Signed-off-by: Daniel Maslowski <info@orangecms.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89463
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-10 17:35:44 +00:00

3.3 KiB

Intel Firmware Interface Table

The FIT allows to run code before the actual IA32 reset vector is executed by the CPU. The FIT resides in the BIOS region (usually near the reset vector) and is pointed to by the FIT pointer residing at 0xFFFFFFC0.

Table layout

The table consists of blocks each 16 bytes in size. The first is called FIT header the other are called FIT entry.

FIT in x86 memory map

Fit types

Each entry has a type that give the other bits in the entry a different meaning. The following types are known:

+-----------+------------------------------------------------------------------+
| no.       | Description                                                      |
+===========+==================================================================+
|       0x0 | HEADER.                                                          |
+-----------+------------------------------------------------------------------+
|       0x1 | MICROCODE.                                                       |
+-----------+------------------------------------------------------------------+
|       0x2 | STARTUP_ACM.                                                     |
+-----------+------------------------------------------------------------------+
|       0x7 | BIOS_STARTUP_MODULE.                                             |
+-----------+------------------------------------------------------------------+
|       0x8 | TPM_POLICY.                                                      |
+-----------+------------------------------------------------------------------+
|       0x9 | BIOS_POLICY.                                                     |
+-----------+------------------------------------------------------------------+
|       0xa | TXT_POLICY.                                                      |
+-----------+------------------------------------------------------------------+
|       0xb | KEY_MANIFEST.                                                    |
+-----------+------------------------------------------------------------------+
|       0xc | BOOT_POLICY_MANIFEST.                                            |
+-----------+------------------------------------------------------------------+
|      0x10 | CSE_SECURE_BOOT.                                                 |
+-----------+------------------------------------------------------------------+
|      0x2d | TXTSX_POLICY.                                                    |
+-----------+------------------------------------------------------------------+
|      0x2f | JMP_DEBUG_POLICY.                                                |
+-----------+------------------------------------------------------------------+
|      0x7f | SKIP.                                                            |
+-----------+------------------------------------------------------------------+

Usage in coreboot

The most common usage of FIT is to use Type1 to update microcode before execution of the IA32 reset vector happens.

References