]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/IndustryStandard/FirmwareInterfaceTable.h
MdePkg Base.h: Use correct style to check macro _MSC_VER value
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / FirmwareInterfaceTable.h
1 /** @file
2 Industry Standard Definitions of Firmware Interface Table BIOS Specification 1.0.
3
4 Copyright (c) 2016 - 2020, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 **/
8
9 #ifndef __FIRMWARE_INTERFACE_TABLE_H__
10 #define __FIRMWARE_INTERFACE_TABLE_H__
11
12 //
13 // FIT Entry type definitions
14 //
15 #define FIT_TYPE_00_HEADER 0x00
16 #define FIT_TYPE_01_MICROCODE 0x01
17 #define FIT_TYPE_02_STARTUP_ACM 0x02
18 #define FIT_TYPE_07_BIOS_STARTUP_MODULE 0x07
19 #define FIT_TYPE_08_TPM_POLICY 0x08
20 #define FIT_TYPE_09_BIOS_POLICY 0x09
21 #define FIT_TYPE_0A_TXT_POLICY 0x0A
22 #define FIT_TYPE_0B_KEY_MANIFEST 0x0B
23 #define FIT_TYPE_0C_BOOT_POLICY_MANIFEST 0x0C
24 #define FIT_TYPE_10_CSE_SECURE_BOOT 0x10
25 #define FIT_TYPE_2D_TXTSX_POLICY 0x2D
26 #define FIT_TYPE_2F_JMP_DEBUG_POLICY 0x2F
27 #define FIT_TYPE_7F_SKIP 0x7F
28
29 #define FIT_POINTER_ADDRESS 0xFFFFFFC0 ///< Fixed address at 4G - 40h
30
31 #define FIT_TYPE_VERSION 0x0100
32
33 #define FIT_TYPE_00_SIGNATURE SIGNATURE_64 ('_', 'F', 'I', 'T', '_', ' ', ' ', ' ')
34
35 #pragma pack(1)
36
37 typedef struct {
38 //
39 // Address is the base address of the firmware component
40 // must be aligned on 16 byte boundary
41 //
42 UINT64 Address;
43 //
44 // Size is the span of the component in multiple of 16 bytes
45 //
46 UINT8 Size[3];
47 //
48 // Reserved must be set to 0
49 //
50 UINT8 Reserved;
51 //
52 // Component's version number in binary coded decimal (BCD) format.
53 // For the FIT header entry, the value in this field will indicate the revision
54 // number of the FIT data structure. The upper byte of the revision field
55 // indicates the major revision and the lower byte indicates the minor revision.
56 //
57 UINT16 Version;
58 //
59 // FIT types 0x00 to 0x7F
60 //
61 UINT8 Type : 7;
62 //
63 // Checksum Valid indicates whether component has valid checksum.
64 //
65 UINT8 C_V : 1;
66 //
67 // Component's checksum. The modulo sum of all the bytes in the component and
68 // the value in this field (Chksum) must add up to zero. This field is only
69 // valid if the C_V flag is non-zero.
70 //
71 UINT8 Chksum;
72 } FIRMWARE_INTERFACE_TABLE_ENTRY;
73
74 #pragma pack()
75
76 #endif