10#ifndef __UEFI_TCG_PLATFORM_H__
11#define __UEFI_TCG_PLATFORM_H__
23#define EV_PREBOOT_CERT ((TCG_EVENTTYPE) 0x00000000)
24#define EV_POST_CODE ((TCG_EVENTTYPE) 0x00000001)
25#define EV_NO_ACTION ((TCG_EVENTTYPE) 0x00000003)
26#define EV_SEPARATOR ((TCG_EVENTTYPE) 0x00000004)
27#define EV_ACTION ((TCG_EVENTTYPE) 0x00000005)
28#define EV_EVENT_TAG ((TCG_EVENTTYPE) 0x00000006)
29#define EV_S_CRTM_CONTENTS ((TCG_EVENTTYPE) 0x00000007)
30#define EV_S_CRTM_VERSION ((TCG_EVENTTYPE) 0x00000008)
31#define EV_CPU_MICROCODE ((TCG_EVENTTYPE) 0x00000009)
32#define EV_PLATFORM_CONFIG_FLAGS ((TCG_EVENTTYPE) 0x0000000A)
33#define EV_TABLE_OF_DEVICES ((TCG_EVENTTYPE) 0x0000000B)
34#define EV_COMPACT_HASH ((TCG_EVENTTYPE) 0x0000000C)
35#define EV_NONHOST_CODE ((TCG_EVENTTYPE) 0x0000000F)
36#define EV_NONHOST_CONFIG ((TCG_EVENTTYPE) 0x00000010)
37#define EV_NONHOST_INFO ((TCG_EVENTTYPE) 0x00000011)
38#define EV_OMIT_BOOT_DEVICE_EVENTS ((TCG_EVENTTYPE) 0x00000012)
43#define EV_EFI_EVENT_BASE ((TCG_EVENTTYPE) 0x80000000)
44#define EV_EFI_VARIABLE_DRIVER_CONFIG (EV_EFI_EVENT_BASE + 1)
45#define EV_EFI_VARIABLE_BOOT (EV_EFI_EVENT_BASE + 2)
46#define EV_EFI_BOOT_SERVICES_APPLICATION (EV_EFI_EVENT_BASE + 3)
47#define EV_EFI_BOOT_SERVICES_DRIVER (EV_EFI_EVENT_BASE + 4)
48#define EV_EFI_RUNTIME_SERVICES_DRIVER (EV_EFI_EVENT_BASE + 5)
49#define EV_EFI_GPT_EVENT (EV_EFI_EVENT_BASE + 6)
50#define EV_EFI_ACTION (EV_EFI_EVENT_BASE + 7)
51#define EV_EFI_PLATFORM_FIRMWARE_BLOB (EV_EFI_EVENT_BASE + 8)
52#define EV_EFI_HANDOFF_TABLES (EV_EFI_EVENT_BASE + 9)
53#define EV_EFI_PLATFORM_FIRMWARE_BLOB2 (EV_EFI_EVENT_BASE + 0xA)
54#define EV_EFI_HANDOFF_TABLES2 (EV_EFI_EVENT_BASE + 0xB)
55#define EV_EFI_HCRTM_EVENT (EV_EFI_EVENT_BASE + 0x10)
56#define EV_EFI_VARIABLE_AUTHORITY (EV_EFI_EVENT_BASE + 0xE0)
57#define EV_EFI_SPDM_FIRMWARE_BLOB (EV_EFI_EVENT_BASE + 0xE1)
58#define EV_EFI_SPDM_FIRMWARE_CONFIG (EV_EFI_EVENT_BASE + 0xE2)
59#define EV_EFI_SPDM_DEVICE_BLOB EV_EFI_SPDM_FIRMWARE_BLOB
60#define EV_EFI_SPDM_DEVICE_CONFIG EV_EFI_SPDM_FIRMWARE_CONFIG
65#define EV_EFI_SPDM_DEVICE_POLICY (EV_EFI_EVENT_BASE + 0xE3)
70#define EV_EFI_SPDM_DEVICE_AUTHORITY (EV_EFI_EVENT_BASE + 0xE4)
72#define EFI_CALLING_EFI_APPLICATION \
73 "Calling EFI Application from Boot Option"
74#define EFI_RETURNING_FROM_EFI_APPLICATION \
75 "Returning from EFI Application from Boot Option"
76#define EFI_EXIT_BOOT_SERVICES_INVOCATION \
77 "Exit Boot Services Invocation"
78#define EFI_EXIT_BOOT_SERVICES_FAILED \
79 "Exit Boot Services Returned with Failure"
80#define EFI_EXIT_BOOT_SERVICES_SUCCEEDED \
81 "Exit Boot Services Returned with Success"
83#define EV_POSTCODE_INFO_POST_CODE "POST CODE"
84#define POST_CODE_STR_LEN (sizeof(EV_POSTCODE_INFO_POST_CODE) - 1)
86#define EV_POSTCODE_INFO_SMM_CODE "SMM CODE"
87#define SMM_CODE_STR_LEN (sizeof(EV_POSTCODE_INFO_SMM_CODE) - 1)
89#define EV_POSTCODE_INFO_ACPI_DATA "ACPI DATA"
90#define ACPI_DATA_LEN (sizeof(EV_POSTCODE_INFO_ACPI_DATA) - 1)
92#define EV_POSTCODE_INFO_BIS_CODE "BIS CODE"
93#define BIS_CODE_LEN (sizeof(EV_POSTCODE_INFO_BIS_CODE) - 1)
95#define EV_POSTCODE_INFO_UEFI_PI "UEFI PI"
96#define UEFI_PI_LEN (sizeof(EV_POSTCODE_INFO_UEFI_PI) - 1)
98#define EV_POSTCODE_INFO_OPROM "Embedded Option ROM"
99#define OPROM_LEN (sizeof(EV_POSTCODE_INFO_OPROM) - 1)
101#define EV_POSTCODE_INFO_EMBEDDED_UEFI_DRIVER "Embedded UEFI Driver"
102#define EMBEDDED_UEFI_DRIVER_LEN (sizeof(EV_POSTCODE_INFO_EMBEDDED_UEFI_DRIVER) - 1)
104#define FIRMWARE_DEBUGGER_EVENT_STRING "UEFI Debug Mode"
105#define FIRMWARE_DEBUGGER_EVENT_STRING_LEN (sizeof(FIRMWARE_DEBUGGER_EVENT_STRING) - 1)
126#define TSS_EVENT_DATA_MAX_SIZE 256
291#define TCG_DEVICE_SECURITY_EVENT_DATA_SIGNATURE "SPDM Device Sec"
292#define TCG_DEVICE_SECURITY_EVENT_DATA_VERSION 1
294#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_TYPE_NULL 0
295#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_TYPE_PCI 1
296#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_TYPE_USB 2
312#define TCG_DEVICE_SECURITY_EVENT_DATA_PCI_CONTEXT_VERSION 0
330#define TCG_DEVICE_SECURITY_EVENT_DATA_USB_CONTEXT_VERSION 0
381#define TCG_EfiSpecIDEventStruct_SIGNATURE_02 "Spec ID Event02"
382#define TCG_EfiSpecIDEventStruct_SIGNATURE_03 "Spec ID Event03"
384#define TCG_EfiSpecIDEventStruct_SPEC_VERSION_MAJOR_TPM12 1
385#define TCG_EfiSpecIDEventStruct_SPEC_VERSION_MINOR_TPM12 2
386#define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM12 2
388#define TCG_EfiSpecIDEventStruct_SPEC_VERSION_MAJOR_TPM2 2
389#define TCG_EfiSpecIDEventStruct_SPEC_VERSION_MINOR_TPM2 0
390#define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2 0
391#define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2_REV_105 105
392#define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2_REV_106 106
455#define TCG_Sp800_155_PlatformId_Event_SIGNATURE "SP800-155 Event"
456#define TCG_Sp800_155_PlatformId_Event2_SIGNATURE "SP800-155 Event2"
457#define TCG_Sp800_155_PlatformId_Event3_SIGNATURE "SP800-155 Event3"
526#define TCG_LOCATOR_TYPE_RAW_DATA 0
527#define TCG_LOCATOR_TYPE_URI 1
528#define TCG_LOCATOR_TYPE_DEVICE_PATH 2
529#define TCG_LOCATOR_TYPE_UEFI_VARIABLE 3
531#define TCG_EfiStartupLocalityEvent_SIGNATURE "StartupLocality"
536#define LOCALITY_0_INDICATOR 0x00
537#define LOCALITY_3_INDICATOR 0x03
568#define PCR_INDEX_FOR_SIGNATURE_DB 7
572#define TCG_DEVICE_SECURITY_EVENT_DATA_VERSION_1 1
573#define TCG_DEVICE_SECURITY_EVENT_DATA_VERSION_2 2
574#define TCG_DEVICE_SECURITY_EVENT_DATA_SIGNATURE_2 "SPDM Device Sec2"
590#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_SUCCESS 0
591#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_AUTH 1
592#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_BINDING 2
593#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_FAIL_NO_SIG 3
594#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_FAIL_INVALID 4
595#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_SPDM 0xFF
597#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_SUB_HEADER_TYPE_SPDM_MEASUREMENT_BLOCK 0
598#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_SUB_HEADER_TYPE_SPDM_CERT_CHAIN 1
654#define TCG_NV_EXTEND_INDEX_FOR_INSTANCE 0x01C40200
655#define TCG_NV_EXTEND_INDEX_FOR_DYNAMIC 0x01C40201
656#define TCG_EVENT_LOG_INTEGRITY_NV_INDEX_EXIT_PM_AUTH 0x01C40202
657#define TCG_EVENT_LOG_INTEGRITY_NV_INDEX_READY_TO_BOOT 0x01C40203
661#define TCG_NV_EXTEND_INDEX_FOR_INSTANCE_SIGNATURE "NvIndexInstance"
662#define TCG_NV_INDEX_INSTANCE_EVENT_LOG_STRUCT_VERSION 1
671#define TCG_NV_EXTEND_INDEX_FOR_DYNAMIC_SIGNATURE "NvIndexDynamic "
672#define TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_VERSION 1
674#define TCG_SPDM_CHALLENGE_DESCRIPTION "SPDM CHALLENGE"
675#define TCG_SPDM_CHALLENGE_AUTH_DESCRIPTION "SPDM CHALLENGE_AUTH"
676#define TCG_SPDM_GET_MEASUREMENTS_DESCRIPTION "SPDM GET_MEASUREMENTS"
677#define TCG_SPDM_MEASUREMENTS_DESCRIPTION "SPDM MEASUREMENTS"
unsigned short UINT16
2-byte unsigned value.
UINT64 UINTN
Unsigned value of native width.
unsigned long long UINT64
8-byte unsigned value.
unsigned short CHAR16
2-byte Character.
signed char INT8
1-byte signed value
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
TPM Specification data structures (TCG TPM Specification Version 1.2 Revision 103) See http://trusted...
struct tdTPM_DIGEST TPM_DIGEST
Part 2, section 5.4: TPM_DIGEST.
UINT32 TPM_PCRINDEX
Index to a PCR register.
TPM2.0 Specification data structures (Trusted Platform Module Library Specification,...
UINT64 EFI_PHYSICAL_ADDRESS
64-bit physical memory address.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
Root include file for Mde Package UEFI, UEFI_APPLICATION type modules.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Contains a set of GUID/pointer pairs comprised of the ConfigurationTable field in the EFI System Tabl...
This protocol can be used on any device handle to obtain generic path/location information concerning...
UINT64 VariableDataLength
TCG_DEVICE_SECURITY_EVENT_DATA_HEADER2 EventDataHeader
TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_CONTEXT DeviceContext
TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER EventDataSubHeader
TCG_DEVICE_SECURITY_EVENT_DATA_PCI_CONTEXT This is the PCI context data of TCG_DEVICE_SECURITY_EVENT_...
TCG_DEVICE_SECURITY_EVENT_DATA_USB_CONTEXT This is the USB context data of TCG_DEVICE_SECURITY_EVENT_...
UINT8 Description[sizeof(TCG_SPDM_CHALLENGE_AUTH_DESCRIPTION)]
TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header
UINT8 Description[sizeof(TCG_SPDM_CHALLENGE_DESCRIPTION)]
TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header
TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header
UINT8 Description[sizeof(TCG_SPDM_GET_MEASUREMENTS_DESCRIPTION)]
UINT8 Description[sizeof(TCG_SPDM_MEASUREMENTS_DESCRIPTION)]
TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header
EFI_PARTITION_TABLE_HEADER EfiPartitionHeader
EFI_PARTITION_ENTRY Partitions[1]
EFI_HANDOFF_TABLE_POINTERS.
EFI_CONFIGURATION_TABLE TableEntry[1]
UINTN ImageLinkTimeAddress
UINTN ImageLengthInMemory
EFI_DEVICE_PATH_PROTOCOL DevicePath[1]
EFI_PHYSICAL_ADDRESS ImageLocationInMemory
INT8 VariableData[1]
Driver or platform-specific data.
UINT32 taggedEventDataSize
TPML_DIGEST_VALUES Digests
TPML_DIGEST_VALUES Digest
Event Log Entry Structure Definition.
UINT8 Event[1]
The event data.
UINT32 EventSize
Size of the event data.
TCG_DIGEST Digest
Value extended into PCRIndex.
TCG_EVENTTYPE EventType
TCG EFI event type.
TCG_PCRINDEX PCRIndex
PCRIndex event extended to.
EFI_PARTITION_TABLE_HEADER EfiPartitionHeader
UINT64 NumberOfPartitions
EFI_PARTITION_ENTRY Partitions[1]
UEFI_HANDOFF_TABLE_POINTERS2.
UINT8 TableDescriptionSize
UEFI_HANDOFF_TABLE_POINTERS.
EFI_CONFIGURATION_TABLE TableEntry[1]
UINT64 ImageLinkTimeAddress
UINT64 ImageLengthInMemory
UINT64 LengthOfDevicePath
EFI_DEVICE_PATH_PROTOCOL DevicePath[1]
EFI_PHYSICAL_ADDRESS ImageLocationInMemory
INT8 VariableData[1]
Driver or platform-specific data.
UINT64 VariableDataLength
TCG_DEVICE_SECURITY_EVENT_DATA_PCI_CONTEXT Pci
TCG_DEVICE_SECURITY_EVENT_DATA_USB_CONTEXT Usb