]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/UefiTcgPlatform.h
SecurityPkg: TCG Add more Event type
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / UefiTcgPlatform.h
index 23eaa53acdc5e7788a6aeae0012103ef171d02d2..2d223f4ea7ce36013d8eb48a66fea67faef3b6d0 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   TCG EFI Platform Definition in TCG_EFI_Platform_1_20_Final\r
 \r
-  Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 //\r
 // Standard event types\r
 //\r
+#define EV_PREBOOT_CERT             ((TCG_EVENTTYPE) 0x00000000)\r
 #define EV_POST_CODE                ((TCG_EVENTTYPE) 0x00000001)\r
 #define EV_NO_ACTION                ((TCG_EVENTTYPE) 0x00000003)\r
 #define EV_SEPARATOR                ((TCG_EVENTTYPE) 0x00000004)\r
+#define EV_ACTION                   ((TCG_EVENTTYPE) 0x00000005)\r
 #define EV_S_CRTM_CONTENTS          ((TCG_EVENTTYPE) 0x00000007)\r
 #define EV_S_CRTM_VERSION           ((TCG_EVENTTYPE) 0x00000008)\r
 #define EV_CPU_MICROCODE            ((TCG_EVENTTYPE) 0x00000009)\r
+#define EV_PLATFORM_CONFIG_FLAGS    ((TCG_EVENTTYPE) 0x0000000A)\r
 #define EV_TABLE_OF_DEVICES         ((TCG_EVENTTYPE) 0x0000000B)\r
+#define EV_COMPACT_HASH             ((TCG_EVENTTYPE) 0x0000000C)\r
+#define EV_NONHOST_CODE             ((TCG_EVENTTYPE) 0x0000000F)\r
+#define EV_NONHOST_CONFIG           ((TCG_EVENTTYPE) 0x00000010)\r
+#define EV_NONHOST_INFO             ((TCG_EVENTTYPE) 0x00000011)\r
+#define EV_OMIT_BOOT_DEVICE_EVENTS  ((TCG_EVENTTYPE) 0x00000012)\r
 \r
 //\r
 // EFI specific event types\r
@@ -43,6 +51,7 @@
 #define EV_EFI_ACTION                       (EV_EFI_EVENT_BASE + 7)\r
 #define EV_EFI_PLATFORM_FIRMWARE_BLOB       (EV_EFI_EVENT_BASE + 8)\r
 #define EV_EFI_HANDOFF_TABLES               (EV_EFI_EVENT_BASE + 9)\r
+#define EV_EFI_HCRTM_EVENT                  (EV_EFI_EVENT_BASE + 0x10)\r
 #define EV_EFI_VARIABLE_AUTHORITY           (EV_EFI_EVENT_BASE + 0xE0)\r
 \r
 #define EFI_CALLING_EFI_APPLICATION         \\r
@@ -151,6 +160,7 @@ typedef struct tdEFI_HANDOFF_TABLE_POINTERS {
 /// This structure serves as the header for measuring variables. The name of the\r
 /// variable (in Unicode format) should immediately follow, then the variable\r
 /// data.\r
+/// This is defined in TCG EFI Platform Spec for TPM1.1 or 1.2 V1.22\r
 ///\r
 typedef struct tdEFI_VARIABLE_DATA {\r
   EFI_GUID                          VariableName;\r
@@ -160,6 +170,22 @@ typedef struct tdEFI_VARIABLE_DATA {
   INT8                              VariableData[1];  ///< Driver or platform-specific data\r
 } EFI_VARIABLE_DATA;\r
 \r
+///\r
+/// UEFI_VARIABLE_DATA\r
+///\r
+/// This structure serves as the header for measuring variables. The name of the\r
+/// variable (in Unicode format) should immediately follow, then the variable\r
+/// data.\r
+/// This is defined in TCG PC Client Firmware Profile Spec 00.21\r
+///\r
+typedef struct tdUEFI_VARIABLE_DATA {\r
+  EFI_GUID                          VariableName;\r
+  UINT64                            UnicodeNameLength;\r
+  UINT64                            VariableDataLength;\r
+  CHAR16                            UnicodeName[1];\r
+  INT8                              VariableData[1];  ///< Driver or platform-specific data\r
+} UEFI_VARIABLE_DATA;\r
+\r
 //\r
 // For TrEE1.0 compatibility\r
 //\r
@@ -173,7 +199,7 @@ typedef struct {
 \r
 typedef struct tdEFI_GPT_DATA {\r
   EFI_PARTITION_TABLE_HEADER  EfiPartitionHeader;\r
-  UINTN                       NumberOfPartitions; \r
+  UINTN                       NumberOfPartitions;\r
   EFI_PARTITION_ENTRY         Partitions[1];\r
 } EFI_GPT_DATA;\r
 \r
@@ -188,6 +214,17 @@ typedef struct tdTCG_PCR_EVENT2 {
   UINT8               Event[1];\r
 } TCG_PCR_EVENT2;\r
 \r
+//\r
+// TCG PCR Event2 Header\r
+// Follow TCG EFI Protocol Spec 5.2 Crypto Agile Log Entry Format\r
+//\r
+typedef struct tdTCG_PCR_EVENT2_HDR{\r
+  TCG_PCRINDEX        PCRIndex;\r
+  TCG_EVENTTYPE       EventType;\r
+  TPML_DIGEST_VALUES  Digests;\r
+  UINT32              EventSize;\r
+} TCG_PCR_EVENT2_HDR;\r
+\r
 //\r
 // Log Header Entry Data\r
 //\r
@@ -268,6 +305,33 @@ typedef struct {
 //UINT8               vendorInfo[vendorInfoSize];\r
 } TCG_EfiSpecIDEventStruct;\r
 \r
+\r
+\r
+#define TCG_EfiStartupLocalityEvent_SIGNATURE      "StartupLocality"\r
+\r
+\r
+//\r
+// PC Client PTP spec Table 8 Relationship between Locality and Locality Attribute\r
+//\r
+#define LOCALITY_0_INDICATOR        0x01\r
+#define LOCALITY_1_INDICATOR        0x02\r
+#define LOCALITY_2_INDICATOR        0x03\r
+#define LOCALITY_3_INDICATOR        0x04\r
+#define LOCALITY_4_INDICATOR        0x05\r
+\r
+\r
+//\r
+// Startup Locality Event\r
+//\r
+typedef struct tdTCG_EfiStartupLocalityEvent{\r
+  UINT8       Signature[16];\r
+  //\r
+  // The Locality Indicator which sent the TPM2_Startup command\r
+  //\r
+  UINT8       StartupLocality;\r
+} TCG_EfiStartupLocalityEvent;\r
+\r
+\r
 //\r
 // Restore original structure alignment\r
 //\r