]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / SecurityPkg / Tcg / Tcg2Dxe / Tcg2Dxe.c
index b3e21f094791319be3a3101fa983a909257ad8da..f6ea8b2bbf189267289c378f53322f6808e8d4c3 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   This module implements Tcg2 Protocol.\r
 \r
-Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR>\r
 (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
 SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
@@ -48,71 +48,72 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #define PERF_ID_TCG2_DXE  0x3120\r
 \r
 typedef struct {\r
-  CHAR16                                 *VariableName;\r
-  EFI_GUID                               *VendorGuid;\r
+  CHAR16      *VariableName;\r
+  EFI_GUID    *VendorGuid;\r
 } VARIABLE_TYPE;\r
 \r
-#define  TCG2_DEFAULT_MAX_COMMAND_SIZE        0x1000\r
-#define  TCG2_DEFAULT_MAX_RESPONSE_SIZE       0x1000\r
+#define  TCG2_DEFAULT_MAX_COMMAND_SIZE   0x1000\r
+#define  TCG2_DEFAULT_MAX_RESPONSE_SIZE  0x1000\r
 \r
 typedef struct {\r
-  EFI_GUID               *EventGuid;\r
-  EFI_TCG2_EVENT_LOG_FORMAT  LogFormat;\r
+  EFI_GUID                     *EventGuid;\r
+  EFI_TCG2_EVENT_LOG_FORMAT    LogFormat;\r
 } TCG2_EVENT_INFO_STRUCT;\r
 \r
-TCG2_EVENT_INFO_STRUCT mTcg2EventInfo[] = {\r
-  {&gTcgEventEntryHobGuid,             EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2},\r
-  {&gTcgEvent2EntryHobGuid,            EFI_TCG2_EVENT_LOG_FORMAT_TCG_2},\r
+TCG2_EVENT_INFO_STRUCT  mTcg2EventInfo[] = {\r
+  { &gTcgEventEntryHobGuid,  EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 },\r
+  { &gTcgEvent2EntryHobGuid, EFI_TCG2_EVENT_LOG_FORMAT_TCG_2   },\r
 };\r
 \r
-#define TCG_EVENT_LOG_AREA_COUNT_MAX   2\r
+#define TCG_EVENT_LOG_AREA_COUNT_MAX  2\r
 \r
 typedef struct {\r
-  EFI_TCG2_EVENT_LOG_FORMAT         EventLogFormat;\r
-  EFI_PHYSICAL_ADDRESS              Lasa;\r
-  UINT64                            Laml;\r
-  UINTN                             EventLogSize;\r
-  UINT8                             *LastEvent;\r
-  BOOLEAN                           EventLogStarted;\r
-  BOOLEAN                           EventLogTruncated;\r
+  EFI_TCG2_EVENT_LOG_FORMAT    EventLogFormat;\r
+  EFI_PHYSICAL_ADDRESS         Lasa;\r
+  UINT64                       Laml;\r
+  UINTN                        EventLogSize;\r
+  UINT8                        *LastEvent;\r
+  BOOLEAN                      EventLogStarted;\r
+  BOOLEAN                      EventLogTruncated;\r
+  UINTN                        Next800155EventOffset;\r
 } TCG_EVENT_LOG_AREA_STRUCT;\r
 \r
 typedef struct _TCG_DXE_DATA {\r
-  EFI_TCG2_BOOT_SERVICE_CAPABILITY  BsCap;\r
-  TCG_EVENT_LOG_AREA_STRUCT         EventLogAreaStruct[TCG_EVENT_LOG_AREA_COUNT_MAX];\r
-  BOOLEAN                           GetEventLogCalled[TCG_EVENT_LOG_AREA_COUNT_MAX];\r
-  TCG_EVENT_LOG_AREA_STRUCT         FinalEventLogAreaStruct[TCG_EVENT_LOG_AREA_COUNT_MAX];\r
-  EFI_TCG2_FINAL_EVENTS_TABLE       *FinalEventsTable[TCG_EVENT_LOG_AREA_COUNT_MAX];\r
+  EFI_TCG2_BOOT_SERVICE_CAPABILITY    BsCap;\r
+  TCG_EVENT_LOG_AREA_STRUCT           EventLogAreaStruct[TCG_EVENT_LOG_AREA_COUNT_MAX];\r
+  BOOLEAN                             GetEventLogCalled[TCG_EVENT_LOG_AREA_COUNT_MAX];\r
+  TCG_EVENT_LOG_AREA_STRUCT           FinalEventLogAreaStruct[TCG_EVENT_LOG_AREA_COUNT_MAX];\r
+  EFI_TCG2_FINAL_EVENTS_TABLE         *FinalEventsTable[TCG_EVENT_LOG_AREA_COUNT_MAX];\r
 } TCG_DXE_DATA;\r
 \r
-TCG_DXE_DATA                 mTcgDxeData = {\r
+TCG_DXE_DATA  mTcgDxeData = {\r
   {\r
-    sizeof (EFI_TCG2_BOOT_SERVICE_CAPABILITY),     // Size\r
-    { 1, 1 },                           // StructureVersion\r
-    { 1, 1 },                           // ProtocolVersion\r
-    EFI_TCG2_BOOT_HASH_ALG_SHA1,        // HashAlgorithmBitmap\r
-    EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2,  // SupportedEventLogs\r
-    TRUE,                               // TPMPresentFlag\r
-    TCG2_DEFAULT_MAX_COMMAND_SIZE,      // MaxCommandSize\r
-    TCG2_DEFAULT_MAX_RESPONSE_SIZE,     // MaxResponseSize\r
-    0,                                  // ManufacturerID\r
-    0,  // NumberOfPCRBanks\r
-    0,  // ActivePcrBanks\r
+    sizeof (EFI_TCG2_BOOT_SERVICE_CAPABILITY), // Size\r
+    { 1, 1 },                                  // StructureVersion\r
+    { 1, 1 },                                  // ProtocolVersion\r
+    EFI_TCG2_BOOT_HASH_ALG_SHA1,               // HashAlgorithmBitmap\r
+    EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2,         // SupportedEventLogs\r
+    TRUE,                                      // TPMPresentFlag\r
+    TCG2_DEFAULT_MAX_COMMAND_SIZE,             // MaxCommandSize\r
+    TCG2_DEFAULT_MAX_RESPONSE_SIZE,            // MaxResponseSize\r
+    0,                                         // ManufacturerID\r
+    0,                                         // NumberOfPCRBanks\r
+    0,                                         // ActivePcrBanks\r
   },\r
 };\r
 \r
-UINTN  mBootAttempts  = 0;\r
-CHAR16 mBootVarName[] = L"BootOrder";\r
+UINTN   mBootAttempts  = 0;\r
+CHAR16  mBootVarName[] = L"BootOrder";\r
 \r
 VARIABLE_TYPE  mVariableType[] = {\r
-  {EFI_SECURE_BOOT_MODE_NAME,    &gEfiGlobalVariableGuid},\r
-  {EFI_PLATFORM_KEY_NAME,        &gEfiGlobalVariableGuid},\r
-  {EFI_KEY_EXCHANGE_KEY_NAME,    &gEfiGlobalVariableGuid},\r
-  {EFI_IMAGE_SECURITY_DATABASE,  &gEfiImageSecurityDatabaseGuid},\r
-  {EFI_IMAGE_SECURITY_DATABASE1, &gEfiImageSecurityDatabaseGuid},\r
+  { EFI_SECURE_BOOT_MODE_NAME,    &gEfiGlobalVariableGuid        },\r
+  { EFI_PLATFORM_KEY_NAME,        &gEfiGlobalVariableGuid        },\r
+  { EFI_KEY_EXCHANGE_KEY_NAME,    &gEfiGlobalVariableGuid        },\r
+  { EFI_IMAGE_SECURITY_DATABASE,  &gEfiImageSecurityDatabaseGuid },\r
+  { EFI_IMAGE_SECURITY_DATABASE1, &gEfiImageSecurityDatabaseGuid },\r
 };\r
 \r
-EFI_HANDLE mImageHandle;\r
+EFI_HANDLE  mImageHandle;\r
 \r
 /**\r
   Measure PE image into TPM log based on the authenticode image hashing in\r
@@ -127,7 +128,7 @@ EFI_HANDLE mImageHandle;
   @param[in]  PCRIndex       TPM PCR index\r
   @param[in]  ImageAddress   Start address of image buffer.\r
   @param[in]  ImageSize      Image size\r
-  @param[out] DigestList     Digeest list of this image.\r
+  @param[out] DigestList     Digest list of this image.\r
 \r
   @retval EFI_SUCCESS            Successfully measure image.\r
   @retval EFI_OUT_OF_RESOURCES   No enough resource to measure image.\r
@@ -135,10 +136,10 @@ EFI_HANDLE mImageHandle;
 **/\r
 EFI_STATUS\r
 MeasurePeImageAndExtend (\r
-  IN  UINT32                    PCRIndex,\r
-  IN  EFI_PHYSICAL_ADDRESS      ImageAddress,\r
-  IN  UINTN                     ImageSize,\r
-  OUT TPML_DIGEST_VALUES        *DigestList\r
+  IN  UINT32                PCRIndex,\r
+  IN  EFI_PHYSICAL_ADDRESS  ImageAddress,\r
+  IN  UINTN                 ImageSize,\r
+  OUT TPML_DIGEST_VALUES    *DigestList\r
   );\r
 \r
 /**\r
@@ -156,8 +157,9 @@ InternalDumpData (
   )\r
 {\r
   UINTN  Index;\r
+\r
   for (Index = 0; Index < Size; Index++) {\r
-    DEBUG ((EFI_D_INFO, "%02x", (UINTN)Data[Index]));\r
+    DEBUG ((DEBUG_INFO, "%02x", (UINTN)Data[Index]));\r
   }\r
 }\r
 \r
@@ -174,11 +176,11 @@ VOID
 InitNoActionEvent (\r
   IN OUT TCG_PCR_EVENT2_HDR  *NoActionEvent,\r
   IN UINT32                  EventSize\r
- )\r
 )\r
 {\r
-  UINT32          DigestListCount;\r
-  TPMI_ALG_HASH   HashAlgId;\r
-  UINT8           *DigestBuffer;\r
+  UINT32         DigestListCount;\r
+  TPMI_ALG_HASH  HashAlgId;\r
+  UINT8          *DigestBuffer;\r
 \r
   DigestBuffer    = (UINT8 *)NoActionEvent->Digests.digests;\r
   DigestListCount = 0;\r
@@ -189,40 +191,40 @@ InitNoActionEvent (
   //\r
   // Set Hash count & hashAlg accordingly, while Digest.digests[n].digest to all 0\r
   //\r
-  ZeroMem (&NoActionEvent->Digests, sizeof(NoActionEvent->Digests));\r
+  ZeroMem (&NoActionEvent->Digests, sizeof (NoActionEvent->Digests));\r
 \r
   if ((mTcgDxeData.BsCap.ActivePcrBanks & EFI_TCG2_BOOT_HASH_ALG_SHA1) != 0) {\r
-     HashAlgId = TPM_ALG_SHA1;\r
-     CopyMem (DigestBuffer, &HashAlgId, sizeof(TPMI_ALG_HASH));\r
-     DigestBuffer += sizeof(TPMI_ALG_HASH) + GetHashSizeFromAlgo (HashAlgId);\r
-     DigestListCount++;\r
+    HashAlgId = TPM_ALG_SHA1;\r
+    CopyMem (DigestBuffer, &HashAlgId, sizeof (TPMI_ALG_HASH));\r
+    DigestBuffer += sizeof (TPMI_ALG_HASH) + GetHashSizeFromAlgo (HashAlgId);\r
+    DigestListCount++;\r
   }\r
 \r
   if ((mTcgDxeData.BsCap.ActivePcrBanks & EFI_TCG2_BOOT_HASH_ALG_SHA256) != 0) {\r
-     HashAlgId = TPM_ALG_SHA256;\r
-     CopyMem (DigestBuffer, &HashAlgId, sizeof(TPMI_ALG_HASH));\r
-     DigestBuffer += sizeof(TPMI_ALG_HASH) + GetHashSizeFromAlgo (HashAlgId);\r
-     DigestListCount++;\r
+    HashAlgId = TPM_ALG_SHA256;\r
+    CopyMem (DigestBuffer, &HashAlgId, sizeof (TPMI_ALG_HASH));\r
+    DigestBuffer += sizeof (TPMI_ALG_HASH) + GetHashSizeFromAlgo (HashAlgId);\r
+    DigestListCount++;\r
   }\r
 \r
   if ((mTcgDxeData.BsCap.ActivePcrBanks & EFI_TCG2_BOOT_HASH_ALG_SHA384) != 0) {\r
     HashAlgId = TPM_ALG_SHA384;\r
-    CopyMem (DigestBuffer, &HashAlgId, sizeof(TPMI_ALG_HASH));\r
-    DigestBuffer += sizeof(TPMI_ALG_HASH) + GetHashSizeFromAlgo (HashAlgId);\r
+    CopyMem (DigestBuffer, &HashAlgId, sizeof (TPMI_ALG_HASH));\r
+    DigestBuffer += sizeof (TPMI_ALG_HASH) + GetHashSizeFromAlgo (HashAlgId);\r
     DigestListCount++;\r
   }\r
 \r
   if ((mTcgDxeData.BsCap.ActivePcrBanks & EFI_TCG2_BOOT_HASH_ALG_SHA512) != 0) {\r
     HashAlgId = TPM_ALG_SHA512;\r
-    CopyMem (DigestBuffer, &HashAlgId, sizeof(TPMI_ALG_HASH));\r
-    DigestBuffer += sizeof(TPMI_ALG_HASH) + GetHashSizeFromAlgo (HashAlgId);\r
+    CopyMem (DigestBuffer, &HashAlgId, sizeof (TPMI_ALG_HASH));\r
+    DigestBuffer += sizeof (TPMI_ALG_HASH) + GetHashSizeFromAlgo (HashAlgId);\r
     DigestListCount++;\r
   }\r
 \r
   if ((mTcgDxeData.BsCap.ActivePcrBanks & EFI_TCG2_BOOT_HASH_ALG_SM3_256) != 0) {\r
     HashAlgId = TPM_ALG_SM3_256;\r
-    CopyMem (DigestBuffer, &HashAlgId, sizeof(TPMI_ALG_HASH));\r
-    DigestBuffer += sizeof(TPMI_ALG_HASH) + GetHashSizeFromAlgo (HashAlgId);\r
+    CopyMem (DigestBuffer, &HashAlgId, sizeof (TPMI_ALG_HASH));\r
+    DigestBuffer += sizeof (TPMI_ALG_HASH) + GetHashSizeFromAlgo (HashAlgId);\r
     DigestListCount++;\r
   }\r
 \r
@@ -234,7 +236,7 @@ InitNoActionEvent (
   //\r
   // Set Event Size\r
   //\r
-  WriteUnaligned32((UINT32 *)DigestBuffer, EventSize);\r
+  WriteUnaligned32 ((UINT32 *)DigestBuffer, EventSize);\r
 }\r
 \r
 /**\r
@@ -251,24 +253,24 @@ InternalDumpHex (
   IN UINTN  Size\r
   )\r
 {\r
-  UINTN   Index;\r
-  UINTN   Count;\r
-  UINTN   Left;\r
+  UINTN  Index;\r
+  UINTN  Count;\r
+  UINTN  Left;\r
 \r
-#define COLUME_SIZE  (16 * 2)\r
+  #define COLUME_SIZE  (16 * 2)\r
 \r
   Count = Size / COLUME_SIZE;\r
   Left  = Size % COLUME_SIZE;\r
   for (Index = 0; Index < Count; Index++) {\r
-    DEBUG ((EFI_D_INFO, "%04x: ", Index * COLUME_SIZE));\r
+    DEBUG ((DEBUG_INFO, "%04x: ", Index * COLUME_SIZE));\r
     InternalDumpData (Data + Index * COLUME_SIZE, COLUME_SIZE);\r
-    DEBUG ((EFI_D_INFO, "\n"));\r
+    DEBUG ((DEBUG_INFO, "\n"));\r
   }\r
 \r
   if (Left != 0) {\r
-    DEBUG ((EFI_D_INFO, "%04x: ", Index * COLUME_SIZE));\r
+    DEBUG ((DEBUG_INFO, "%04x: ", Index * COLUME_SIZE));\r
     InternalDumpData (Data + Index * COLUME_SIZE, Left);\r
-    DEBUG ((EFI_D_INFO, "\n"));\r
+    DEBUG ((DEBUG_INFO, "\n"));\r
   }\r
 }\r
 \r
@@ -285,19 +287,19 @@ InternalDumpHex (
 **/\r
 EFI_STATUS\r
 GetProcessorsCpuLocation (\r
-    OUT  EFI_CPU_PHYSICAL_LOCATION   **LocationBuf,\r
-    OUT  UINTN                       *Num\r
+  OUT  EFI_CPU_PHYSICAL_LOCATION  **LocationBuf,\r
+  OUT  UINTN                      *Num\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  EFI_MP_SERVICES_PROTOCOL          *MpProtocol;\r
-  UINTN                             ProcessorNum;\r
-  UINTN                             EnabledProcessorNum;\r
-  EFI_PROCESSOR_INFORMATION         ProcessorInfo;\r
-  EFI_CPU_PHYSICAL_LOCATION         *ProcessorLocBuf;\r
-  UINTN                             Index;\r
-\r
-  Status = gBS->LocateProtocol (&gEfiMpServiceProtocolGuid, NULL, (VOID **) &MpProtocol);\r
+  EFI_STATUS                 Status;\r
+  EFI_MP_SERVICES_PROTOCOL   *MpProtocol;\r
+  UINTN                      ProcessorNum;\r
+  UINTN                      EnabledProcessorNum;\r
+  EFI_PROCESSOR_INFORMATION  ProcessorInfo;\r
+  EFI_CPU_PHYSICAL_LOCATION  *ProcessorLocBuf;\r
+  UINTN                      Index;\r
+\r
+  Status = gBS->LocateProtocol (&gEfiMpServiceProtocolGuid, NULL, (VOID **)&MpProtocol);\r
   if (EFI_ERROR (Status)) {\r
     //\r
     // MP protocol is not installed\r
@@ -305,21 +307,21 @@ GetProcessorsCpuLocation (
     return EFI_UNSUPPORTED;\r
   }\r
 \r
-  Status = MpProtocol->GetNumberOfProcessors(\r
+  Status = MpProtocol->GetNumberOfProcessors (\r
                          MpProtocol,\r
                          &ProcessorNum,\r
                          &EnabledProcessorNum\r
                          );\r
-  if (EFI_ERROR(Status)){\r
+  if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
 \r
-  Status = gBS->AllocatePool(\r
+  Status = gBS->AllocatePool (\r
                   EfiBootServicesData,\r
-                  sizeof(EFI_CPU_PHYSICAL_LOCATION) * ProcessorNum,\r
-                  (VOID **) &ProcessorLocBuf\r
+                  sizeof (EFI_CPU_PHYSICAL_LOCATION) * ProcessorNum,\r
+                  (VOID **)&ProcessorLocBuf\r
                   );\r
-  if (EFI_ERROR(Status)){\r
+  if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
 \r
@@ -327,28 +329,28 @@ GetProcessorsCpuLocation (
   // Get each processor Location info\r
   //\r
   for (Index = 0; Index < ProcessorNum; Index++) {\r
-    Status = MpProtocol->GetProcessorInfo(\r
+    Status = MpProtocol->GetProcessorInfo (\r
                            MpProtocol,\r
                            Index,\r
                            &ProcessorInfo\r
                            );\r
-    if (EFI_ERROR(Status)){\r
-      FreePool(ProcessorLocBuf);\r
+    if (EFI_ERROR (Status)) {\r
+      FreePool (ProcessorLocBuf);\r
       return Status;\r
     }\r
 \r
     //\r
     // Get all Processor Location info & measure\r
     //\r
-    CopyMem(\r
+    CopyMem (\r
       &ProcessorLocBuf[Index],\r
       &ProcessorInfo.Location,\r
-      sizeof(EFI_CPU_PHYSICAL_LOCATION)\r
+      sizeof (EFI_CPU_PHYSICAL_LOCATION)\r
       );\r
   }\r
 \r
   *LocationBuf = ProcessorLocBuf;\r
-  *Num = ProcessorNum;\r
+  *Num         = ProcessorNum;\r
 \r
   return Status;\r
 }\r
@@ -375,8 +377,8 @@ GetProcessorsCpuLocation (
 EFI_STATUS\r
 EFIAPI\r
 Tcg2GetCapability (\r
-  IN EFI_TCG2_PROTOCOL                    *This,\r
-  IN OUT EFI_TCG2_BOOT_SERVICE_CAPABILITY *ProtocolCapability\r
+  IN EFI_TCG2_PROTOCOL                     *This,\r
+  IN OUT EFI_TCG2_BOOT_SERVICE_CAPABILITY  *ProtocolCapability\r
   )\r
 {\r
   DEBUG ((DEBUG_VERBOSE, "Tcg2GetCapability ...\n"));\r
@@ -386,25 +388,27 @@ Tcg2GetCapability (
   }\r
 \r
   DEBUG ((DEBUG_VERBOSE, "Size - 0x%x\n", ProtocolCapability->Size));\r
-  DEBUG ((DEBUG_VERBOSE, " 1.1 - 0x%x, 1.0 - 0x%x\n", sizeof(EFI_TCG2_BOOT_SERVICE_CAPABILITY), sizeof(TREE_BOOT_SERVICE_CAPABILITY_1_0)));\r
+  DEBUG ((DEBUG_VERBOSE, " 1.1 - 0x%x, 1.0 - 0x%x\n", sizeof (EFI_TCG2_BOOT_SERVICE_CAPABILITY), sizeof (TREE_BOOT_SERVICE_CAPABILITY_1_0)));\r
 \r
   if (ProtocolCapability->Size < mTcgDxeData.BsCap.Size) {\r
     //\r
     // Handle the case that firmware support 1.1 but OS only support 1.0.\r
     //\r
     if ((mTcgDxeData.BsCap.ProtocolVersion.Major > 0x01) ||\r
-        ((mTcgDxeData.BsCap.ProtocolVersion.Major == 0x01) && ((mTcgDxeData.BsCap.ProtocolVersion.Minor > 0x00)))) {\r
-      if (ProtocolCapability->Size >= sizeof(TREE_BOOT_SERVICE_CAPABILITY_1_0)) {\r
-        CopyMem (ProtocolCapability, &mTcgDxeData.BsCap, sizeof(TREE_BOOT_SERVICE_CAPABILITY_1_0));\r
-        ProtocolCapability->Size = sizeof(TREE_BOOT_SERVICE_CAPABILITY_1_0);\r
+        ((mTcgDxeData.BsCap.ProtocolVersion.Major == 0x01) && ((mTcgDxeData.BsCap.ProtocolVersion.Minor > 0x00))))\r
+    {\r
+      if (ProtocolCapability->Size >= sizeof (TREE_BOOT_SERVICE_CAPABILITY_1_0)) {\r
+        CopyMem (ProtocolCapability, &mTcgDxeData.BsCap, sizeof (TREE_BOOT_SERVICE_CAPABILITY_1_0));\r
+        ProtocolCapability->Size                   = sizeof (TREE_BOOT_SERVICE_CAPABILITY_1_0);\r
         ProtocolCapability->StructureVersion.Major = 1;\r
         ProtocolCapability->StructureVersion.Minor = 0;\r
-        ProtocolCapability->ProtocolVersion.Major = 1;\r
-        ProtocolCapability->ProtocolVersion.Minor = 0;\r
-        DEBUG ((EFI_D_ERROR, "TreeGetCapability (Compatible) - %r\n", EFI_SUCCESS));\r
+        ProtocolCapability->ProtocolVersion.Major  = 1;\r
+        ProtocolCapability->ProtocolVersion.Minor  = 0;\r
+        DEBUG ((DEBUG_ERROR, "TreeGetCapability (Compatible) - %r\n", EFI_SUCCESS));\r
         return EFI_SUCCESS;\r
       }\r
     }\r
+\r
     ProtocolCapability->Size = mTcgDxeData.BsCap.Size;\r
     return EFI_BUFFER_TOO_SMALL;\r
   }\r
@@ -421,20 +425,21 @@ Tcg2GetCapability (
 **/\r
 VOID\r
 DumpEvent (\r
-  IN TCG_PCR_EVENT_HDR         *EventHdr\r
+  IN TCG_PCR_EVENT_HDR  *EventHdr\r
   )\r
 {\r
-  UINTN                     Index;\r
+  UINTN  Index;\r
 \r
-  DEBUG ((EFI_D_INFO, "  Event:\n"));\r
-  DEBUG ((EFI_D_INFO, "    PCRIndex  - %d\n", EventHdr->PCRIndex));\r
-  DEBUG ((EFI_D_INFO, "    EventType - 0x%08x\n", EventHdr->EventType));\r
-  DEBUG ((EFI_D_INFO, "    Digest    - "));\r
-  for (Index = 0; Index < sizeof(TCG_DIGEST); Index++) {\r
-    DEBUG ((EFI_D_INFO, "%02x ", EventHdr->Digest.digest[Index]));\r
+  DEBUG ((DEBUG_INFO, "  Event:\n"));\r
+  DEBUG ((DEBUG_INFO, "    PCRIndex  - %d\n", EventHdr->PCRIndex));\r
+  DEBUG ((DEBUG_INFO, "    EventType - 0x%08x\n", EventHdr->EventType));\r
+  DEBUG ((DEBUG_INFO, "    Digest    - "));\r
+  for (Index = 0; Index < sizeof (TCG_DIGEST); Index++) {\r
+    DEBUG ((DEBUG_INFO, "%02x ", EventHdr->Digest.digest[Index]));\r
   }\r
-  DEBUG ((EFI_D_INFO, "\n"));\r
-  DEBUG ((EFI_D_INFO, "    EventSize - 0x%08x\n", EventHdr->EventSize));\r
+\r
+  DEBUG ((DEBUG_INFO, "\n"));\r
+  DEBUG ((DEBUG_INFO, "    EventSize - 0x%08x\n", EventHdr->EventSize));\r
   InternalDumpHex ((UINT8 *)(EventHdr + 1), EventHdr->EventSize);\r
 }\r
 \r
@@ -445,7 +450,7 @@ DumpEvent (
 **/\r
 VOID\r
 DumpTcgEfiSpecIdEventStruct (\r
-  IN TCG_EfiSpecIDEventStruct   *TcgEfiSpecIdEventStruct\r
+  IN TCG_EfiSpecIDEventStruct  *TcgEfiSpecIdEventStruct\r
   )\r
 {\r
   TCG_EfiSpecIdEventAlgorithmSize  *DigestSize;\r
@@ -454,33 +459,36 @@ DumpTcgEfiSpecIdEventStruct (
   UINT8                            *VendorInfo;\r
   UINT32                           NumberOfAlgorithms;\r
 \r
-  DEBUG ((EFI_D_INFO, "  TCG_EfiSpecIDEventStruct:\n"));\r
-  DEBUG ((EFI_D_INFO, "    signature          - '"));\r
-  for (Index = 0; Index < sizeof(TcgEfiSpecIdEventStruct->signature); Index++) {\r
-    DEBUG ((EFI_D_INFO, "%c", TcgEfiSpecIdEventStruct->signature[Index]));\r
+  DEBUG ((DEBUG_INFO, "  TCG_EfiSpecIDEventStruct:\n"));\r
+  DEBUG ((DEBUG_INFO, "    signature          - '"));\r
+  for (Index = 0; Index < sizeof (TcgEfiSpecIdEventStruct->signature); Index++) {\r
+    DEBUG ((DEBUG_INFO, "%c", TcgEfiSpecIdEventStruct->signature[Index]));\r
   }\r
-  DEBUG ((EFI_D_INFO, "'\n"));\r
-  DEBUG ((EFI_D_INFO, "    platformClass      - 0x%08x\n", TcgEfiSpecIdEventStruct->platformClass));\r
-  DEBUG ((EFI_D_INFO, "    specVersion        - %d.%d%d\n", TcgEfiSpecIdEventStruct->specVersionMajor, TcgEfiSpecIdEventStruct->specVersionMinor, TcgEfiSpecIdEventStruct->specErrata));\r
-  DEBUG ((EFI_D_INFO, "    uintnSize          - 0x%02x\n", TcgEfiSpecIdEventStruct->uintnSize));\r
 \r
-  CopyMem (&NumberOfAlgorithms, TcgEfiSpecIdEventStruct + 1, sizeof(NumberOfAlgorithms));\r
-  DEBUG ((EFI_D_INFO, "    NumberOfAlgorithms - 0x%08x\n", NumberOfAlgorithms));\r
+  DEBUG ((DEBUG_INFO, "'\n"));\r
+  DEBUG ((DEBUG_INFO, "    platformClass      - 0x%08x\n", TcgEfiSpecIdEventStruct->platformClass));\r
+  DEBUG ((DEBUG_INFO, "    specVersion        - %d.%d%d\n", TcgEfiSpecIdEventStruct->specVersionMajor, TcgEfiSpecIdEventStruct->specVersionMinor, TcgEfiSpecIdEventStruct->specErrata));\r
+  DEBUG ((DEBUG_INFO, "    uintnSize          - 0x%02x\n", TcgEfiSpecIdEventStruct->uintnSize));\r
+\r
+  CopyMem (&NumberOfAlgorithms, TcgEfiSpecIdEventStruct + 1, sizeof (NumberOfAlgorithms));\r
+  DEBUG ((DEBUG_INFO, "    NumberOfAlgorithms - 0x%08x\n", NumberOfAlgorithms));\r
 \r
-  DigestSize = (TCG_EfiSpecIdEventAlgorithmSize *)((UINT8 *)TcgEfiSpecIdEventStruct + sizeof(*TcgEfiSpecIdEventStruct) + sizeof(NumberOfAlgorithms));\r
+  DigestSize = (TCG_EfiSpecIdEventAlgorithmSize *)((UINT8 *)TcgEfiSpecIdEventStruct + sizeof (*TcgEfiSpecIdEventStruct) + sizeof (NumberOfAlgorithms));\r
   for (Index = 0; Index < NumberOfAlgorithms; Index++) {\r
-    DEBUG ((EFI_D_INFO, "    digest(%d)\n", Index));\r
-    DEBUG ((EFI_D_INFO, "      algorithmId      - 0x%04x\n", DigestSize[Index].algorithmId));\r
-    DEBUG ((EFI_D_INFO, "      digestSize       - 0x%04x\n", DigestSize[Index].digestSize));\r
+    DEBUG ((DEBUG_INFO, "    digest(%d)\n", Index));\r
+    DEBUG ((DEBUG_INFO, "      algorithmId      - 0x%04x\n", DigestSize[Index].algorithmId));\r
+    DEBUG ((DEBUG_INFO, "      digestSize       - 0x%04x\n", DigestSize[Index].digestSize));\r
   }\r
+\r
   VendorInfoSize = (UINT8 *)&DigestSize[NumberOfAlgorithms];\r
-  DEBUG ((EFI_D_INFO, "    VendorInfoSize     - 0x%02x\n", *VendorInfoSize));\r
+  DEBUG ((DEBUG_INFO, "    VendorInfoSize     - 0x%02x\n", *VendorInfoSize));\r
   VendorInfo = VendorInfoSize + 1;\r
-  DEBUG ((EFI_D_INFO, "    VendorInfo         - "));\r
+  DEBUG ((DEBUG_INFO, "    VendorInfo         - "));\r
   for (Index = 0; Index < *VendorInfoSize; Index++) {\r
-    DEBUG ((EFI_D_INFO, "%02x ", VendorInfo[Index]));\r
+    DEBUG ((DEBUG_INFO, "%02x ", VendorInfo[Index]));\r
   }\r
-  DEBUG ((EFI_D_INFO, "\n"));\r
+\r
+  DEBUG ((DEBUG_INFO, "\n"));\r
 }\r
 \r
 /**\r
@@ -490,18 +498,18 @@ DumpTcgEfiSpecIdEventStruct (
 **/\r
 UINTN\r
 GetTcgEfiSpecIdEventStructSize (\r
-  IN TCG_EfiSpecIDEventStruct   *TcgEfiSpecIdEventStruct\r
+  IN TCG_EfiSpecIDEventStruct  *TcgEfiSpecIdEventStruct\r
   )\r
 {\r
   TCG_EfiSpecIdEventAlgorithmSize  *DigestSize;\r
   UINT8                            *VendorInfoSize;\r
   UINT32                           NumberOfAlgorithms;\r
 \r
-  CopyMem (&NumberOfAlgorithms, TcgEfiSpecIdEventStruct + 1, sizeof(NumberOfAlgorithms));\r
+  CopyMem (&NumberOfAlgorithms, TcgEfiSpecIdEventStruct + 1, sizeof (NumberOfAlgorithms));\r
 \r
-  DigestSize = (TCG_EfiSpecIdEventAlgorithmSize *)((UINT8 *)TcgEfiSpecIdEventStruct + sizeof(*TcgEfiSpecIdEventStruct) + sizeof(NumberOfAlgorithms));\r
+  DigestSize     = (TCG_EfiSpecIdEventAlgorithmSize *)((UINT8 *)TcgEfiSpecIdEventStruct + sizeof (*TcgEfiSpecIdEventStruct) + sizeof (NumberOfAlgorithms));\r
   VendorInfoSize = (UINT8 *)&DigestSize[NumberOfAlgorithms];\r
-  return sizeof(TCG_EfiSpecIDEventStruct) + sizeof(UINT32) + (NumberOfAlgorithms * sizeof(TCG_EfiSpecIdEventAlgorithmSize)) + sizeof(UINT8) + (*VendorInfoSize);\r
+  return sizeof (TCG_EfiSpecIDEventStruct) + sizeof (UINT32) + (NumberOfAlgorithms * sizeof (TCG_EfiSpecIdEventAlgorithmSize)) + sizeof (UINT8) + (*VendorInfoSize);\r
 }\r
 \r
 /**\r
@@ -511,47 +519,49 @@ GetTcgEfiSpecIdEventStructSize (
 **/\r
 VOID\r
 DumpEvent2 (\r
-  IN TCG_PCR_EVENT2        *TcgPcrEvent2\r
+  IN TCG_PCR_EVENT2  *TcgPcrEvent2\r
   )\r
 {\r
-  UINTN                     Index;\r
-  UINT32                    DigestIndex;\r
-  UINT32                    DigestCount;\r
-  TPMI_ALG_HASH             HashAlgo;\r
-  UINT32                    DigestSize;\r
-  UINT8                     *DigestBuffer;\r
-  UINT32                    EventSize;\r
-  UINT8                     *EventBuffer;\r
-\r
-  DEBUG ((EFI_D_INFO, "  Event:\n"));\r
-  DEBUG ((EFI_D_INFO, "    PCRIndex  - %d\n", TcgPcrEvent2->PCRIndex));\r
-  DEBUG ((EFI_D_INFO, "    EventType - 0x%08x\n", TcgPcrEvent2->EventType));\r
-\r
-  DEBUG ((EFI_D_INFO, "    DigestCount: 0x%08x\n", TcgPcrEvent2->Digest.count));\r
-\r
-  DigestCount = TcgPcrEvent2->Digest.count;\r
-  HashAlgo = TcgPcrEvent2->Digest.digests[0].hashAlg;\r
+  UINTN          Index;\r
+  UINT32         DigestIndex;\r
+  UINT32         DigestCount;\r
+  TPMI_ALG_HASH  HashAlgo;\r
+  UINT32         DigestSize;\r
+  UINT8          *DigestBuffer;\r
+  UINT32         EventSize;\r
+  UINT8          *EventBuffer;\r
+\r
+  DEBUG ((DEBUG_INFO, "  Event:\n"));\r
+  DEBUG ((DEBUG_INFO, "    PCRIndex  - %d\n", TcgPcrEvent2->PCRIndex));\r
+  DEBUG ((DEBUG_INFO, "    EventType - 0x%08x\n", TcgPcrEvent2->EventType));\r
+\r
+  DEBUG ((DEBUG_INFO, "    DigestCount: 0x%08x\n", TcgPcrEvent2->Digest.count));\r
+\r
+  DigestCount  = TcgPcrEvent2->Digest.count;\r
+  HashAlgo     = TcgPcrEvent2->Digest.digests[0].hashAlg;\r
   DigestBuffer = (UINT8 *)&TcgPcrEvent2->Digest.digests[0].digest;\r
   for (DigestIndex = 0; DigestIndex < DigestCount; DigestIndex++) {\r
-    DEBUG ((EFI_D_INFO, "      HashAlgo : 0x%04x\n", HashAlgo));\r
-    DEBUG ((EFI_D_INFO, "      Digest(%d): ", DigestIndex));\r
+    DEBUG ((DEBUG_INFO, "      HashAlgo : 0x%04x\n", HashAlgo));\r
+    DEBUG ((DEBUG_INFO, "      Digest(%d): ", DigestIndex));\r
     DigestSize = GetHashSizeFromAlgo (HashAlgo);\r
     for (Index = 0; Index < DigestSize; Index++) {\r
-      DEBUG ((EFI_D_INFO, "%02x ", DigestBuffer[Index]));\r
+      DEBUG ((DEBUG_INFO, "%02x ", DigestBuffer[Index]));\r
     }\r
-    DEBUG ((EFI_D_INFO, "\n"));\r
+\r
+    DEBUG ((DEBUG_INFO, "\n"));\r
     //\r
     // Prepare next\r
     //\r
-    CopyMem (&HashAlgo, DigestBuffer + DigestSize, sizeof(TPMI_ALG_HASH));\r
-    DigestBuffer = DigestBuffer + DigestSize + sizeof(TPMI_ALG_HASH);\r
+    CopyMem (&HashAlgo, DigestBuffer + DigestSize, sizeof (TPMI_ALG_HASH));\r
+    DigestBuffer = DigestBuffer + DigestSize + sizeof (TPMI_ALG_HASH);\r
   }\r
-  DEBUG ((EFI_D_INFO, "\n"));\r
-  DigestBuffer = DigestBuffer - sizeof(TPMI_ALG_HASH);\r
 \r
-  CopyMem (&EventSize, DigestBuffer, sizeof(TcgPcrEvent2->EventSize));\r
-  DEBUG ((EFI_D_INFO, "    EventSize - 0x%08x\n", EventSize));\r
-  EventBuffer = DigestBuffer + sizeof(TcgPcrEvent2->EventSize);\r
+  DEBUG ((DEBUG_INFO, "\n"));\r
+  DigestBuffer = DigestBuffer - sizeof (TPMI_ALG_HASH);\r
+\r
+  CopyMem (&EventSize, DigestBuffer, sizeof (TcgPcrEvent2->EventSize));\r
+  DEBUG ((DEBUG_INFO, "    EventSize - 0x%08x\n", EventSize));\r
+  EventBuffer = DigestBuffer + sizeof (TcgPcrEvent2->EventSize);\r
   InternalDumpHex (EventBuffer, EventSize);\r
 }\r
 \r
@@ -564,32 +574,33 @@ DumpEvent2 (
 **/\r
 UINTN\r
 GetPcrEvent2Size (\r
-  IN TCG_PCR_EVENT2        *TcgPcrEvent2\r
+  IN TCG_PCR_EVENT2  *TcgPcrEvent2\r
   )\r
 {\r
-  UINT32                    DigestIndex;\r
-  UINT32                    DigestCount;\r
-  TPMI_ALG_HASH             HashAlgo;\r
-  UINT32                    DigestSize;\r
-  UINT8                     *DigestBuffer;\r
-  UINT32                    EventSize;\r
-  UINT8                     *EventBuffer;\r
-\r
-  DigestCount = TcgPcrEvent2->Digest.count;\r
-  HashAlgo = TcgPcrEvent2->Digest.digests[0].hashAlg;\r
+  UINT32         DigestIndex;\r
+  UINT32         DigestCount;\r
+  TPMI_ALG_HASH  HashAlgo;\r
+  UINT32         DigestSize;\r
+  UINT8          *DigestBuffer;\r
+  UINT32         EventSize;\r
+  UINT8          *EventBuffer;\r
+\r
+  DigestCount  = TcgPcrEvent2->Digest.count;\r
+  HashAlgo     = TcgPcrEvent2->Digest.digests[0].hashAlg;\r
   DigestBuffer = (UINT8 *)&TcgPcrEvent2->Digest.digests[0].digest;\r
   for (DigestIndex = 0; DigestIndex < DigestCount; DigestIndex++) {\r
     DigestSize = GetHashSizeFromAlgo (HashAlgo);\r
     //\r
     // Prepare next\r
     //\r
-    CopyMem (&HashAlgo, DigestBuffer + DigestSize, sizeof(TPMI_ALG_HASH));\r
-    DigestBuffer = DigestBuffer + DigestSize + sizeof(TPMI_ALG_HASH);\r
+    CopyMem (&HashAlgo, DigestBuffer + DigestSize, sizeof (TPMI_ALG_HASH));\r
+    DigestBuffer = DigestBuffer + DigestSize + sizeof (TPMI_ALG_HASH);\r
   }\r
-  DigestBuffer = DigestBuffer - sizeof(TPMI_ALG_HASH);\r
 \r
-  CopyMem (&EventSize, DigestBuffer, sizeof(TcgPcrEvent2->EventSize));\r
-  EventBuffer = DigestBuffer + sizeof(TcgPcrEvent2->EventSize);\r
+  DigestBuffer = DigestBuffer - sizeof (TPMI_ALG_HASH);\r
+\r
+  CopyMem (&EventSize, DigestBuffer, sizeof (TcgPcrEvent2->EventSize));\r
+  EventBuffer = DigestBuffer + sizeof (TcgPcrEvent2->EventSize);\r
 \r
   return (UINTN)EventBuffer + EventSize - (UINTN)TcgPcrEvent2;\r
 }\r
@@ -605,10 +616,10 @@ GetPcrEvent2Size (
 **/\r
 VOID\r
 DumpEventLog (\r
-  IN EFI_TCG2_EVENT_LOG_FORMAT   EventLogFormat,\r
-  IN EFI_PHYSICAL_ADDRESS        EventLogLocation,\r
-  IN EFI_PHYSICAL_ADDRESS        EventLogLastEntry,\r
-  IN EFI_TCG2_FINAL_EVENTS_TABLE *FinalEventsTable\r
+  IN EFI_TCG2_EVENT_LOG_FORMAT    EventLogFormat,\r
+  IN EFI_PHYSICAL_ADDRESS         EventLogLocation,\r
+  IN EFI_PHYSICAL_ADDRESS         EventLogLastEntry,\r
+  IN EFI_TCG2_FINAL_EVENTS_TABLE  *FinalEventsTable\r
   )\r
 {\r
   TCG_PCR_EVENT_HDR         *EventHdr;\r
@@ -616,62 +627,65 @@ DumpEventLog (
   TCG_EfiSpecIDEventStruct  *TcgEfiSpecIdEventStruct;\r
   UINTN                     NumberOfEvents;\r
 \r
-  DEBUG ((EFI_D_INFO, "EventLogFormat: (0x%x)\n", EventLogFormat));\r
+  DEBUG ((DEBUG_INFO, "EventLogFormat: (0x%x)\n", EventLogFormat));\r
 \r
   switch (EventLogFormat) {\r
-  case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:\r
-    EventHdr = (TCG_PCR_EVENT_HDR *)(UINTN)EventLogLocation;\r
-    while ((UINTN)EventHdr <= EventLogLastEntry) {\r
-      DumpEvent (EventHdr);\r
-      EventHdr = (TCG_PCR_EVENT_HDR *)((UINTN)EventHdr + sizeof(TCG_PCR_EVENT_HDR) + EventHdr->EventSize);\r
-    }\r
-    if (FinalEventsTable == NULL) {\r
-      DEBUG ((EFI_D_INFO, "FinalEventsTable: NOT FOUND\n"));\r
-    } else {\r
-      DEBUG ((EFI_D_INFO, "FinalEventsTable:    (0x%x)\n", FinalEventsTable));\r
-      DEBUG ((EFI_D_INFO, "  Version:           (0x%x)\n", FinalEventsTable->Version));\r
-      DEBUG ((EFI_D_INFO, "  NumberOfEvents:    (0x%x)\n", FinalEventsTable->NumberOfEvents));\r
-\r
-      EventHdr = (TCG_PCR_EVENT_HDR *)(UINTN)(FinalEventsTable + 1);\r
-      for (NumberOfEvents = 0; NumberOfEvents < FinalEventsTable->NumberOfEvents; NumberOfEvents++) {\r
+    case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:\r
+      EventHdr = (TCG_PCR_EVENT_HDR *)(UINTN)EventLogLocation;\r
+      while ((UINTN)EventHdr <= EventLogLastEntry) {\r
         DumpEvent (EventHdr);\r
-        EventHdr = (TCG_PCR_EVENT_HDR *)((UINTN)EventHdr + sizeof(TCG_PCR_EVENT_HDR) + EventHdr->EventSize);\r
+        EventHdr = (TCG_PCR_EVENT_HDR *)((UINTN)EventHdr + sizeof (TCG_PCR_EVENT_HDR) + EventHdr->EventSize);\r
       }\r
-    }\r
-    break;\r
-  case EFI_TCG2_EVENT_LOG_FORMAT_TCG_2:\r
-    //\r
-    // Dump first event\r
-    //\r
-    EventHdr = (TCG_PCR_EVENT_HDR *)(UINTN)EventLogLocation;\r
-    DumpEvent (EventHdr);\r
 \r
-    TcgEfiSpecIdEventStruct = (TCG_EfiSpecIDEventStruct *)(EventHdr + 1);\r
-    DumpTcgEfiSpecIdEventStruct (TcgEfiSpecIdEventStruct);\r
+      if (FinalEventsTable == NULL) {\r
+        DEBUG ((DEBUG_INFO, "FinalEventsTable: NOT FOUND\n"));\r
+      } else {\r
+        DEBUG ((DEBUG_INFO, "FinalEventsTable:    (0x%x)\n", FinalEventsTable));\r
+        DEBUG ((DEBUG_INFO, "  Version:           (0x%x)\n", FinalEventsTable->Version));\r
+        DEBUG ((DEBUG_INFO, "  NumberOfEvents:    (0x%x)\n", FinalEventsTable->NumberOfEvents));\r
+\r
+        EventHdr = (TCG_PCR_EVENT_HDR *)(UINTN)(FinalEventsTable + 1);\r
+        for (NumberOfEvents = 0; NumberOfEvents < FinalEventsTable->NumberOfEvents; NumberOfEvents++) {\r
+          DumpEvent (EventHdr);\r
+          EventHdr = (TCG_PCR_EVENT_HDR *)((UINTN)EventHdr + sizeof (TCG_PCR_EVENT_HDR) + EventHdr->EventSize);\r
+        }\r
+      }\r
 \r
-    TcgPcrEvent2 = (TCG_PCR_EVENT2 *)((UINTN)TcgEfiSpecIdEventStruct + GetTcgEfiSpecIdEventStructSize (TcgEfiSpecIdEventStruct));\r
-    while ((UINTN)TcgPcrEvent2 <= EventLogLastEntry) {\r
-      DumpEvent2 (TcgPcrEvent2);\r
-      TcgPcrEvent2 = (TCG_PCR_EVENT2 *)((UINTN)TcgPcrEvent2 + GetPcrEvent2Size (TcgPcrEvent2));\r
-    }\r
+      break;\r
+    case EFI_TCG2_EVENT_LOG_FORMAT_TCG_2:\r
+      //\r
+      // Dump first event\r
+      //\r
+      EventHdr = (TCG_PCR_EVENT_HDR *)(UINTN)EventLogLocation;\r
+      DumpEvent (EventHdr);\r
 \r
-    if (FinalEventsTable == NULL) {\r
-      DEBUG ((EFI_D_INFO, "FinalEventsTable: NOT FOUND\n"));\r
-    } else {\r
-      DEBUG ((EFI_D_INFO, "FinalEventsTable:    (0x%x)\n", FinalEventsTable));\r
-      DEBUG ((EFI_D_INFO, "  Version:           (0x%x)\n", FinalEventsTable->Version));\r
-      DEBUG ((EFI_D_INFO, "  NumberOfEvents:    (0x%x)\n", FinalEventsTable->NumberOfEvents));\r
+      TcgEfiSpecIdEventStruct = (TCG_EfiSpecIDEventStruct *)(EventHdr + 1);\r
+      DumpTcgEfiSpecIdEventStruct (TcgEfiSpecIdEventStruct);\r
 \r
-      TcgPcrEvent2 = (TCG_PCR_EVENT2 *)(UINTN)(FinalEventsTable + 1);\r
-      for (NumberOfEvents = 0; NumberOfEvents < FinalEventsTable->NumberOfEvents; NumberOfEvents++) {\r
+      TcgPcrEvent2 = (TCG_PCR_EVENT2 *)((UINTN)TcgEfiSpecIdEventStruct + GetTcgEfiSpecIdEventStructSize (TcgEfiSpecIdEventStruct));\r
+      while ((UINTN)TcgPcrEvent2 <= EventLogLastEntry) {\r
         DumpEvent2 (TcgPcrEvent2);\r
         TcgPcrEvent2 = (TCG_PCR_EVENT2 *)((UINTN)TcgPcrEvent2 + GetPcrEvent2Size (TcgPcrEvent2));\r
       }\r
-    }\r
-    break;\r
+\r
+      if (FinalEventsTable == NULL) {\r
+        DEBUG ((DEBUG_INFO, "FinalEventsTable: NOT FOUND\n"));\r
+      } else {\r
+        DEBUG ((DEBUG_INFO, "FinalEventsTable:    (0x%x)\n", FinalEventsTable));\r
+        DEBUG ((DEBUG_INFO, "  Version:           (0x%x)\n", FinalEventsTable->Version));\r
+        DEBUG ((DEBUG_INFO, "  NumberOfEvents:    (0x%x)\n", FinalEventsTable->NumberOfEvents));\r
+\r
+        TcgPcrEvent2 = (TCG_PCR_EVENT2 *)(UINTN)(FinalEventsTable + 1);\r
+        for (NumberOfEvents = 0; NumberOfEvents < FinalEventsTable->NumberOfEvents; NumberOfEvents++) {\r
+          DumpEvent2 (TcgPcrEvent2);\r
+          TcgPcrEvent2 = (TCG_PCR_EVENT2 *)((UINTN)TcgPcrEvent2 + GetPcrEvent2Size (TcgPcrEvent2));\r
+        }\r
+      }\r
+\r
+      break;\r
   }\r
 \r
-  return ;\r
+  return;\r
 }\r
 \r
 /**\r
@@ -694,28 +708,28 @@ DumpEventLog (
 EFI_STATUS\r
 EFIAPI\r
 Tcg2GetEventLog (\r
-  IN EFI_TCG2_PROTOCOL         *This,\r
-  IN EFI_TCG2_EVENT_LOG_FORMAT EventLogFormat,\r
-  OUT EFI_PHYSICAL_ADDRESS     *EventLogLocation,\r
-  OUT EFI_PHYSICAL_ADDRESS     *EventLogLastEntry,\r
-  OUT BOOLEAN                  *EventLogTruncated\r
+  IN EFI_TCG2_PROTOCOL          *This,\r
+  IN EFI_TCG2_EVENT_LOG_FORMAT  EventLogFormat,\r
+  OUT EFI_PHYSICAL_ADDRESS      *EventLogLocation,\r
+  OUT EFI_PHYSICAL_ADDRESS      *EventLogLastEntry,\r
+  OUT BOOLEAN                   *EventLogTruncated\r
   )\r
 {\r
   UINTN  Index;\r
 \r
-  DEBUG ((EFI_D_INFO, "Tcg2GetEventLog ... (0x%x)\n", EventLogFormat));\r
+  DEBUG ((DEBUG_INFO, "Tcg2GetEventLog ... (0x%x)\n", EventLogFormat));\r
 \r
   if (This == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  for (Index = 0; Index < sizeof(mTcg2EventInfo)/sizeof(mTcg2EventInfo[0]); Index++) {\r
+  for (Index = 0; Index < sizeof (mTcg2EventInfo)/sizeof (mTcg2EventInfo[0]); Index++) {\r
     if (EventLogFormat == mTcg2EventInfo[Index].LogFormat) {\r
       break;\r
     }\r
   }\r
 \r
-  if (Index == sizeof(mTcg2EventInfo)/sizeof(mTcg2EventInfo[0])) {\r
+  if (Index == sizeof (mTcg2EventInfo)/sizeof (mTcg2EventInfo[0])) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -727,18 +741,21 @@ Tcg2GetEventLog (
     if (EventLogLocation != NULL) {\r
       *EventLogLocation = 0;\r
     }\r
+\r
     if (EventLogLastEntry != NULL) {\r
       *EventLogLastEntry = 0;\r
     }\r
+\r
     if (EventLogTruncated != NULL) {\r
       *EventLogTruncated = FALSE;\r
     }\r
+\r
     return EFI_SUCCESS;\r
   }\r
 \r
   if (EventLogLocation != NULL) {\r
     *EventLogLocation = mTcgDxeData.EventLogAreaStruct[Index].Lasa;\r
-    DEBUG ((EFI_D_INFO, "Tcg2GetEventLog (EventLogLocation - %x)\n", *EventLogLocation));\r
+    DEBUG ((DEBUG_INFO, "Tcg2GetEventLog (EventLogLocation - %x)\n", *EventLogLocation));\r
   }\r
 \r
   if (EventLogLastEntry != NULL) {\r
@@ -747,15 +764,16 @@ Tcg2GetEventLog (
     } else {\r
       *EventLogLastEntry = (EFI_PHYSICAL_ADDRESS)(UINTN)mTcgDxeData.EventLogAreaStruct[Index].LastEvent;\r
     }\r
-    DEBUG ((EFI_D_INFO, "Tcg2GetEventLog (EventLogLastEntry - %x)\n", *EventLogLastEntry));\r
+\r
+    DEBUG ((DEBUG_INFO, "Tcg2GetEventLog (EventLogLastEntry - %x)\n", *EventLogLastEntry));\r
   }\r
 \r
   if (EventLogTruncated != NULL) {\r
     *EventLogTruncated = mTcgDxeData.EventLogAreaStruct[Index].EventLogTruncated;\r
-    DEBUG ((EFI_D_INFO, "Tcg2GetEventLog (EventLogTruncated - %x)\n", *EventLogTruncated));\r
+    DEBUG ((DEBUG_INFO, "Tcg2GetEventLog (EventLogTruncated - %x)\n", *EventLogTruncated));\r
   }\r
 \r
-  DEBUG ((EFI_D_INFO, "Tcg2GetEventLog - %r\n", EFI_SUCCESS));\r
+  DEBUG ((DEBUG_INFO, "Tcg2GetEventLog - %r\n", EFI_SUCCESS));\r
 \r
   // Dump Event Log for debug purpose\r
   if ((EventLogLocation != NULL) && (EventLogLastEntry != NULL)) {\r
@@ -771,16 +789,48 @@ Tcg2GetEventLog (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Return if this is a Tcg800155PlatformIdEvent.\r
+\r
+  @param[in]      NewEventHdr         Pointer to a TCG_PCR_EVENT_HDR/TCG_PCR_EVENT_EX data structure.\r
+  @param[in]      NewEventHdrSize     New event header size.\r
+  @param[in]      NewEventData        Pointer to the new event data.\r
+  @param[in]      NewEventSize        New event data size.\r
+\r
+  @retval TRUE   This is a Tcg800155PlatformIdEvent.\r
+  @retval FALSE  This is NOT a Tcg800155PlatformIdEvent.\r
+\r
+**/\r
+BOOLEAN\r
+Is800155Event (\r
+  IN      VOID    *NewEventHdr,\r
+  IN      UINT32  NewEventHdrSize,\r
+  IN      UINT8   *NewEventData,\r
+  IN      UINT32  NewEventSize\r
+  )\r
+{\r
+  if ((((TCG_PCR_EVENT2_HDR *)NewEventHdr)->EventType == EV_NO_ACTION) &&\r
+      (NewEventSize >= sizeof (TCG_Sp800_155_PlatformId_Event2)) &&\r
+      (CompareMem (\r
+         NewEventData,\r
+         TCG_Sp800_155_PlatformId_Event2_SIGNATURE,\r
+         sizeof (TCG_Sp800_155_PlatformId_Event2_SIGNATURE) - 1\r
+         ) == 0))\r
+  {\r
+    return TRUE;\r
+  }\r
+\r
+  return FALSE;\r
+}\r
+\r
 /**\r
   Add a new entry to the Event Log.\r
 \r
-  @param[in, out] EventLogPtr     Pointer to the Event Log data.\r
-  @param[in, out] LogSize         Size of the Event Log.\r
-  @param[in]      MaxSize         Maximum size of the Event Log.\r
-  @param[in]      NewEventHdr     Pointer to a TCG_PCR_EVENT_HDR/TCG_PCR_EVENT_EX data structure.\r
-  @param[in]      NewEventHdrSize New event header size.\r
-  @param[in]      NewEventData    Pointer to the new event data.\r
-  @param[in]      NewEventSize    New event data size.\r
+  @param[in, out] EventLogAreaStruct  The event log area data structure\r
+  @param[in]      NewEventHdr         Pointer to a TCG_PCR_EVENT_HDR/TCG_PCR_EVENT_EX data structure.\r
+  @param[in]      NewEventHdrSize     New event header size.\r
+  @param[in]      NewEventData        Pointer to the new event data.\r
+  @param[in]      NewEventSize        New event data size.\r
 \r
   @retval EFI_SUCCESS           The new event log entry was added.\r
   @retval EFI_OUT_OF_RESOURCES  No enough memory to log the new event.\r
@@ -788,16 +838,15 @@ Tcg2GetEventLog (
 **/\r
 EFI_STATUS\r
 TcgCommLogEvent (\r
-  IN OUT  UINT8                     **EventLogPtr,\r
-  IN OUT  UINTN                     *LogSize,\r
-  IN      UINTN                     MaxSize,\r
-  IN      VOID                      *NewEventHdr,\r
-  IN      UINT32                    NewEventHdrSize,\r
-  IN      UINT8                     *NewEventData,\r
-  IN      UINT32                    NewEventSize\r
+  IN OUT  TCG_EVENT_LOG_AREA_STRUCT  *EventLogAreaStruct,\r
+  IN      VOID                       *NewEventHdr,\r
+  IN      UINT32                     NewEventHdrSize,\r
+  IN      UINT8                      *NewEventData,\r
+  IN      UINT32                     NewEventSize\r
   )\r
 {\r
-  UINTN                            NewLogSize;\r
+  UINTN    NewLogSize;\r
+  BOOLEAN  Record800155Event;\r
 \r
   if (NewEventSize > MAX_ADDRESS -  NewEventHdrSize) {\r
     return EFI_OUT_OF_RESOURCES;\r
@@ -805,23 +854,56 @@ TcgCommLogEvent (
 \r
   NewLogSize = NewEventHdrSize + NewEventSize;\r
 \r
-  if (NewLogSize > MAX_ADDRESS -  *LogSize) {\r
+  if (NewLogSize > MAX_ADDRESS -  EventLogAreaStruct->EventLogSize) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
-  if (NewLogSize + *LogSize > MaxSize) {\r
-    DEBUG ((EFI_D_INFO, "  MaxSize    - 0x%x\n", MaxSize));\r
-    DEBUG ((EFI_D_INFO, "  NewLogSize - 0x%x\n", NewLogSize));\r
-    DEBUG ((EFI_D_INFO, "  LogSize    - 0x%x\n", *LogSize));\r
-    DEBUG ((EFI_D_INFO, "TcgCommLogEvent - %r\n", EFI_OUT_OF_RESOURCES));\r
+  if (NewLogSize + EventLogAreaStruct->EventLogSize > EventLogAreaStruct->Laml) {\r
+    DEBUG ((DEBUG_INFO, "  Laml       - 0x%x\n", EventLogAreaStruct->Laml));\r
+    DEBUG ((DEBUG_INFO, "  NewLogSize - 0x%x\n", NewLogSize));\r
+    DEBUG ((DEBUG_INFO, "  LogSize    - 0x%x\n", EventLogAreaStruct->EventLogSize));\r
+    DEBUG ((DEBUG_INFO, "TcgCommLogEvent - %r\n", EFI_OUT_OF_RESOURCES));\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
-  *EventLogPtr += *LogSize;\r
-  *LogSize += NewLogSize;\r
-  CopyMem (*EventLogPtr, NewEventHdr, NewEventHdrSize);\r
+  //\r
+  // Check 800-155 event\r
+  // Record to 800-155 event offset only.\r
+  // If the offset is 0, no need to record.\r
+  //\r
+  Record800155Event = Is800155Event (NewEventHdr, NewEventHdrSize, NewEventData, NewEventSize);\r
+  if (Record800155Event) {\r
+    if (EventLogAreaStruct->Next800155EventOffset != 0) {\r
+      CopyMem (\r
+        (UINT8 *)(UINTN)EventLogAreaStruct->Lasa + EventLogAreaStruct->Next800155EventOffset + NewLogSize,\r
+        (UINT8 *)(UINTN)EventLogAreaStruct->Lasa + EventLogAreaStruct->Next800155EventOffset,\r
+        EventLogAreaStruct->EventLogSize - EventLogAreaStruct->Next800155EventOffset\r
+        );\r
+\r
+      CopyMem (\r
+        (UINT8 *)(UINTN)EventLogAreaStruct->Lasa + EventLogAreaStruct->Next800155EventOffset,\r
+        NewEventHdr,\r
+        NewEventHdrSize\r
+        );\r
+      CopyMem (\r
+        (UINT8 *)(UINTN)EventLogAreaStruct->Lasa + EventLogAreaStruct->Next800155EventOffset + NewEventHdrSize,\r
+        NewEventData,\r
+        NewEventSize\r
+        );\r
+\r
+      EventLogAreaStruct->Next800155EventOffset += NewLogSize;\r
+      EventLogAreaStruct->LastEvent             += NewLogSize;\r
+      EventLogAreaStruct->EventLogSize          += NewLogSize;\r
+    }\r
+\r
+    return EFI_SUCCESS;\r
+  }\r
+\r
+  EventLogAreaStruct->LastEvent     = (UINT8 *)(UINTN)EventLogAreaStruct->Lasa + EventLogAreaStruct->EventLogSize;\r
+  EventLogAreaStruct->EventLogSize += NewLogSize;\r
+  CopyMem (EventLogAreaStruct->LastEvent, NewEventHdr, NewEventHdrSize);\r
   CopyMem (\r
-    *EventLogPtr + NewEventHdrSize,\r
+    EventLogAreaStruct->LastEvent + NewEventHdrSize,\r
     NewEventData,\r
     NewEventSize\r
     );\r
@@ -843,24 +925,24 @@ TcgCommLogEvent (
 **/\r
 EFI_STATUS\r
 TcgDxeLogEvent (\r
-  IN      EFI_TCG2_EVENT_LOG_FORMAT EventLogFormat,\r
-  IN      VOID                      *NewEventHdr,\r
-  IN      UINT32                    NewEventHdrSize,\r
-  IN      UINT8                     *NewEventData,\r
-  IN      UINT32                    NewEventSize\r
+  IN      EFI_TCG2_EVENT_LOG_FORMAT  EventLogFormat,\r
+  IN      VOID                       *NewEventHdr,\r
+  IN      UINT32                     NewEventHdrSize,\r
+  IN      UINT8                      *NewEventData,\r
+  IN      UINT32                     NewEventSize\r
   )\r
 {\r
-  EFI_STATUS                Status;\r
-  UINTN                     Index;\r
-  TCG_EVENT_LOG_AREA_STRUCT *EventLogAreaStruct;\r
+  EFI_STATUS                 Status;\r
+  UINTN                      Index;\r
+  TCG_EVENT_LOG_AREA_STRUCT  *EventLogAreaStruct;\r
 \r
-  for (Index = 0; Index < sizeof(mTcg2EventInfo)/sizeof(mTcg2EventInfo[0]); Index++) {\r
+  for (Index = 0; Index < sizeof (mTcg2EventInfo)/sizeof (mTcg2EventInfo[0]); Index++) {\r
     if (EventLogFormat == mTcg2EventInfo[Index].LogFormat) {\r
       break;\r
     }\r
   }\r
 \r
-  if (Index == sizeof(mTcg2EventInfo)/sizeof(mTcg2EventInfo[0])) {\r
+  if (Index == sizeof (mTcg2EventInfo)/sizeof (mTcg2EventInfo[0])) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -873,11 +955,8 @@ TcgDxeLogEvent (
     return EFI_VOLUME_FULL;\r
   }\r
 \r
-  EventLogAreaStruct->LastEvent = (UINT8*)(UINTN)EventLogAreaStruct->Lasa;\r
   Status = TcgCommLogEvent (\r
-             &EventLogAreaStruct->LastEvent,\r
-             &EventLogAreaStruct->EventLogSize,\r
-             (UINTN)EventLogAreaStruct->Laml,\r
+             EventLogAreaStruct,\r
              NewEventHdr,\r
              NewEventHdrSize,\r
              NewEventData,\r
@@ -901,17 +980,15 @@ TcgDxeLogEvent (
       //\r
       return EFI_SUCCESS;\r
     }\r
+\r
     EventLogAreaStruct = &mTcgDxeData.FinalEventLogAreaStruct[Index];\r
 \r
     if (EventLogAreaStruct->EventLogTruncated) {\r
       return EFI_VOLUME_FULL;\r
     }\r
 \r
-    EventLogAreaStruct->LastEvent = (UINT8*)(UINTN)EventLogAreaStruct->Lasa;\r
     Status = TcgCommLogEvent (\r
-               &EventLogAreaStruct->LastEvent,\r
-               &EventLogAreaStruct->EventLogSize,\r
-               (UINTN)EventLogAreaStruct->Laml,\r
+               EventLogAreaStruct,\r
                NewEventHdr,\r
                NewEventHdrSize,\r
                NewEventData,\r
@@ -925,9 +1002,9 @@ TcgDxeLogEvent (
       //\r
       // Increase the NumberOfEvents in FinalEventsTable\r
       //\r
-      (mTcgDxeData.FinalEventsTable[Index])->NumberOfEvents ++;\r
-      DEBUG ((EFI_D_INFO, "FinalEventsTable->NumberOfEvents - 0x%x\n", (mTcgDxeData.FinalEventsTable[Index])->NumberOfEvents));\r
-      DEBUG ((EFI_D_INFO, "  Size - 0x%x\n", (UINTN)EventLogAreaStruct->EventLogSize));\r
+      (mTcgDxeData.FinalEventsTable[Index])->NumberOfEvents++;\r
+      DEBUG ((DEBUG_INFO, "FinalEventsTable->NumberOfEvents - 0x%x\n", (mTcgDxeData.FinalEventsTable[Index])->NumberOfEvents));\r
+      DEBUG ((DEBUG_INFO, "  Size - 0x%x\n", (UINTN)EventLogAreaStruct->EventLogSize));\r
     }\r
   }\r
 \r
@@ -943,25 +1020,25 @@ TcgDxeLogEvent (
 **/\r
 UINT32\r
 GetDigestListBinSize (\r
-  IN VOID   *DigestListBin\r
+  IN VOID  *DigestListBin\r
   )\r
 {\r
-  UINTN         Index;\r
-  UINT16        DigestSize;\r
-  UINT32        TotalSize;\r
-  UINT32        Count;\r
-  TPMI_ALG_HASH HashAlg;\r
-\r
-  Count = ReadUnaligned32 (DigestListBin);\r
-  TotalSize = sizeof(Count);\r
-  DigestListBin = (UINT8 *)DigestListBin + sizeof(Count);\r
+  UINTN          Index;\r
+  UINT16         DigestSize;\r
+  UINT32         TotalSize;\r
+  UINT32         Count;\r
+  TPMI_ALG_HASH  HashAlg;\r
+\r
+  Count         = ReadUnaligned32 (DigestListBin);\r
+  TotalSize     = sizeof (Count);\r
+  DigestListBin = (UINT8 *)DigestListBin + sizeof (Count);\r
   for (Index = 0; Index < Count; Index++) {\r
-    HashAlg = ReadUnaligned16 (DigestListBin);\r
-    TotalSize += sizeof(HashAlg);\r
-    DigestListBin = (UINT8 *)DigestListBin + sizeof(HashAlg);\r
+    HashAlg       = ReadUnaligned16 (DigestListBin);\r
+    TotalSize    += sizeof (HashAlg);\r
+    DigestListBin = (UINT8 *)DigestListBin + sizeof (HashAlg);\r
 \r
-    DigestSize = GetHashSizeFromAlgo (HashAlg);\r
-    TotalSize += DigestSize;\r
+    DigestSize    = GetHashSizeFromAlgo (HashAlg);\r
+    TotalSize    += DigestSize;\r
     DigestListBin = (UINT8 *)DigestListBin + DigestSize;\r
   }\r
 \r
@@ -980,34 +1057,34 @@ GetDigestListBinSize (
 **/\r
 VOID *\r
 CopyDigestListBinToBuffer (\r
-  IN OUT VOID                       *Buffer,\r
-  IN VOID                           *DigestListBin,\r
-  IN UINT32                         HashAlgorithmMask,\r
-  OUT UINT32                        *HashAlgorithmMaskCopied\r
+  IN OUT VOID  *Buffer,\r
+  IN VOID      *DigestListBin,\r
+  IN UINT32    HashAlgorithmMask,\r
+  OUT UINT32   *HashAlgorithmMaskCopied\r
   )\r
 {\r
-  UINTN         Index;\r
-  UINT16        DigestSize;\r
-  UINT32        Count;\r
-  TPMI_ALG_HASH HashAlg;\r
-  UINT32        DigestListCount;\r
-  UINT32        *DigestListCountPtr;\r
-\r
-  DigestListCountPtr = (UINT32 *) Buffer;\r
-  DigestListCount = 0;\r
+  UINTN          Index;\r
+  UINT16         DigestSize;\r
+  UINT32         Count;\r
+  TPMI_ALG_HASH  HashAlg;\r
+  UINT32         DigestListCount;\r
+  UINT32         *DigestListCountPtr;\r
+\r
+  DigestListCountPtr         = (UINT32 *)Buffer;\r
+  DigestListCount            = 0;\r
   (*HashAlgorithmMaskCopied) = 0;\r
 \r
-  Count = ReadUnaligned32 (DigestListBin);\r
-  Buffer = (UINT8 *)Buffer + sizeof(Count);\r
-  DigestListBin = (UINT8 *)DigestListBin + sizeof(Count);\r
+  Count         = ReadUnaligned32 (DigestListBin);\r
+  Buffer        = (UINT8 *)Buffer + sizeof (Count);\r
+  DigestListBin = (UINT8 *)DigestListBin + sizeof (Count);\r
   for (Index = 0; Index < Count; Index++) {\r
-    HashAlg = ReadUnaligned16 (DigestListBin);\r
-    DigestListBin = (UINT8 *)DigestListBin + sizeof(HashAlg);\r
-    DigestSize = GetHashSizeFromAlgo (HashAlg);\r
+    HashAlg       = ReadUnaligned16 (DigestListBin);\r
+    DigestListBin = (UINT8 *)DigestListBin + sizeof (HashAlg);\r
+    DigestSize    = GetHashSizeFromAlgo (HashAlg);\r
 \r
-    if (IsHashAlgSupportedInHashAlgorithmMask(HashAlg, HashAlgorithmMask)) {\r
-      CopyMem (Buffer, &HashAlg, sizeof(HashAlg));\r
-      Buffer = (UINT8 *)Buffer + sizeof(HashAlg);\r
+    if (IsHashAlgSupportedInHashAlgorithmMask (HashAlg, HashAlgorithmMask)) {\r
+      CopyMem (Buffer, &HashAlg, sizeof (HashAlg));\r
+      Buffer = (UINT8 *)Buffer + sizeof (HashAlg);\r
       CopyMem (Buffer, DigestListBin, DigestSize);\r
       Buffer = (UINT8 *)Buffer + DigestSize;\r
       DigestListCount++;\r
@@ -1015,8 +1092,10 @@ CopyDigestListBinToBuffer (
     } else {\r
       DEBUG ((DEBUG_ERROR, "WARNING: CopyDigestListBinToBuffer Event log has HashAlg unsupported by PCR bank (0x%x)\n", HashAlg));\r
     }\r
+\r
     DigestListBin = (UINT8 *)DigestListBin + DigestSize;\r
   }\r
+\r
   WriteUnaligned32 (DigestListCountPtr, DigestListCount);\r
 \r
   return Buffer;\r
@@ -1034,76 +1113,79 @@ CopyDigestListBinToBuffer (
 **/\r
 EFI_STATUS\r
 TcgDxeLogHashEvent (\r
-  IN TPML_DIGEST_VALUES             *DigestList,\r
-  IN OUT  TCG_PCR_EVENT_HDR         *NewEventHdr,\r
-  IN      UINT8                     *NewEventData\r
+  IN TPML_DIGEST_VALUES      *DigestList,\r
+  IN OUT  TCG_PCR_EVENT_HDR  *NewEventHdr,\r
+  IN      UINT8              *NewEventData\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  EFI_TPL                           OldTpl;\r
-  UINTN                             Index;\r
-  EFI_STATUS                        RetStatus;\r
-  TCG_PCR_EVENT2                    TcgPcrEvent2;\r
-  UINT8                             *DigestBuffer;\r
-  UINT32                            *EventSizePtr;\r
+  EFI_STATUS      Status;\r
+  EFI_TPL         OldTpl;\r
+  UINTN           Index;\r
+  EFI_STATUS      RetStatus;\r
+  TCG_PCR_EVENT2  TcgPcrEvent2;\r
+  UINT8           *DigestBuffer;\r
+  UINT32          *EventSizePtr;\r
 \r
-  DEBUG ((EFI_D_INFO, "SupportedEventLogs - 0x%08x\n", mTcgDxeData.BsCap.SupportedEventLogs));\r
+  DEBUG ((DEBUG_INFO, "SupportedEventLogs - 0x%08x\n", mTcgDxeData.BsCap.SupportedEventLogs));\r
 \r
   RetStatus = EFI_SUCCESS;\r
-  for (Index = 0; Index < sizeof(mTcg2EventInfo)/sizeof(mTcg2EventInfo[0]); Index++) {\r
+  for (Index = 0; Index < sizeof (mTcg2EventInfo)/sizeof (mTcg2EventInfo[0]); Index++) {\r
     if ((mTcgDxeData.BsCap.SupportedEventLogs & mTcg2EventInfo[Index].LogFormat) != 0) {\r
-      DEBUG ((EFI_D_INFO, "  LogFormat - 0x%08x\n", mTcg2EventInfo[Index].LogFormat));\r
+      DEBUG ((DEBUG_INFO, "  LogFormat - 0x%08x\n", mTcg2EventInfo[Index].LogFormat));\r
       switch (mTcg2EventInfo[Index].LogFormat) {\r
-      case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:\r
-        Status = GetDigestFromDigestList (TPM_ALG_SHA1, DigestList, &NewEventHdr->Digest);\r
-        if (!EFI_ERROR (Status)) {\r
+        case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:\r
+          Status = GetDigestFromDigestList (TPM_ALG_SHA1, DigestList, &NewEventHdr->Digest);\r
+          if (!EFI_ERROR (Status)) {\r
+            //\r
+            // Enter critical region\r
+            //\r
+            OldTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);\r
+            Status = TcgDxeLogEvent (\r
+                       mTcg2EventInfo[Index].LogFormat,\r
+                       NewEventHdr,\r
+                       sizeof (TCG_PCR_EVENT_HDR),\r
+                       NewEventData,\r
+                       NewEventHdr->EventSize\r
+                       );\r
+            if (Status != EFI_SUCCESS) {\r
+              RetStatus = Status;\r
+            }\r
+\r
+            gBS->RestoreTPL (OldTpl);\r
+            //\r
+            // Exit critical region\r
+            //\r
+          }\r
+\r
+          break;\r
+        case EFI_TCG2_EVENT_LOG_FORMAT_TCG_2:\r
+          ZeroMem (&TcgPcrEvent2, sizeof (TcgPcrEvent2));\r
+          TcgPcrEvent2.PCRIndex  = NewEventHdr->PCRIndex;\r
+          TcgPcrEvent2.EventType = NewEventHdr->EventType;\r
+          DigestBuffer           = (UINT8 *)&TcgPcrEvent2.Digest;\r
+          EventSizePtr           = CopyDigestListToBuffer (DigestBuffer, DigestList, mTcgDxeData.BsCap.ActivePcrBanks);\r
+          CopyMem (EventSizePtr, &NewEventHdr->EventSize, sizeof (NewEventHdr->EventSize));\r
+\r
           //\r
           // Enter critical region\r
           //\r
           OldTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);\r
           Status = TcgDxeLogEvent (\r
                      mTcg2EventInfo[Index].LogFormat,\r
-                     NewEventHdr,\r
-                     sizeof(TCG_PCR_EVENT_HDR),\r
+                     &TcgPcrEvent2,\r
+                     sizeof (TcgPcrEvent2.PCRIndex) + sizeof (TcgPcrEvent2.EventType) + GetDigestListBinSize (DigestBuffer) + sizeof (TcgPcrEvent2.EventSize),\r
                      NewEventData,\r
                      NewEventHdr->EventSize\r
                      );\r
           if (Status != EFI_SUCCESS) {\r
             RetStatus = Status;\r
           }\r
+\r
           gBS->RestoreTPL (OldTpl);\r
           //\r
           // Exit critical region\r
           //\r
-        }\r
-        break;\r
-      case EFI_TCG2_EVENT_LOG_FORMAT_TCG_2:\r
-        ZeroMem (&TcgPcrEvent2, sizeof(TcgPcrEvent2));\r
-        TcgPcrEvent2.PCRIndex = NewEventHdr->PCRIndex;\r
-        TcgPcrEvent2.EventType = NewEventHdr->EventType;\r
-        DigestBuffer = (UINT8 *)&TcgPcrEvent2.Digest;\r
-        EventSizePtr = CopyDigestListToBuffer (DigestBuffer, DigestList, mTcgDxeData.BsCap.ActivePcrBanks);\r
-        CopyMem (EventSizePtr, &NewEventHdr->EventSize, sizeof(NewEventHdr->EventSize));\r
-\r
-        //\r
-        // Enter critical region\r
-        //\r
-        OldTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);\r
-        Status = TcgDxeLogEvent (\r
-                   mTcg2EventInfo[Index].LogFormat,\r
-                   &TcgPcrEvent2,\r
-                   sizeof(TcgPcrEvent2.PCRIndex) + sizeof(TcgPcrEvent2.EventType) + GetDigestListBinSize (DigestBuffer) + sizeof(TcgPcrEvent2.EventSize),\r
-                   NewEventData,\r
-                   NewEventHdr->EventSize\r
-                   );\r
-        if (Status != EFI_SUCCESS) {\r
-          RetStatus = Status;\r
-        }\r
-        gBS->RestoreTPL (OldTpl);\r
-        //\r
-        // Exit critical region\r
-        //\r
-        break;\r
+          break;\r
       }\r
     }\r
   }\r
@@ -1129,20 +1211,34 @@ TcgDxeLogHashEvent (
 **/\r
 EFI_STATUS\r
 TcgDxeHashLogExtendEvent (\r
-  IN      UINT64                    Flags,\r
-  IN      UINT8                     *HashData,\r
-  IN      UINT64                    HashDataLen,\r
-  IN OUT  TCG_PCR_EVENT_HDR         *NewEventHdr,\r
-  IN      UINT8                     *NewEventData\r
+  IN      UINT64             Flags,\r
+  IN      UINT8              *HashData,\r
+  IN      UINT64             HashDataLen,\r
+  IN OUT  TCG_PCR_EVENT_HDR  *NewEventHdr,\r
+  IN      UINT8              *NewEventData\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  TPML_DIGEST_VALUES                DigestList;\r
+  EFI_STATUS          Status;\r
+  TPML_DIGEST_VALUES  DigestList;\r
+  TCG_PCR_EVENT2_HDR  NoActionEvent;\r
 \r
   if (!mTcgDxeData.BsCap.TPMPresentFlag) {\r
     return EFI_DEVICE_ERROR;\r
   }\r
 \r
+  if (NewEventHdr->EventType == EV_NO_ACTION) {\r
+    //\r
+    // Do not do TPM extend for EV_NO_ACTION\r
+    //\r
+    Status = EFI_SUCCESS;\r
+    InitNoActionEvent (&NoActionEvent, NewEventHdr->EventSize);\r
+    if ((Flags & EFI_TCG2_EXTEND_ONLY) == 0) {\r
+      Status = TcgDxeLogHashEvent (&(NoActionEvent.Digests), NewEventHdr, NewEventData);\r
+    }\r
+\r
+    return Status;\r
+  }\r
+\r
   Status = HashAndExtend (\r
              NewEventHdr->PCRIndex,\r
              HashData,\r
@@ -1156,7 +1252,7 @@ TcgDxeHashLogExtendEvent (
   }\r
 \r
   if (Status == EFI_DEVICE_ERROR) {\r
-    DEBUG ((EFI_D_ERROR, "TcgDxeHashLogExtendEvent - %r. Disable TPM.\n", Status));\r
+    DEBUG ((DEBUG_ERROR, "TcgDxeHashLogExtendEvent - %r. Disable TPM.\n", Status));\r
     mTcgDxeData.BsCap.TPMPresentFlag = FALSE;\r
     REPORT_STATUS_CODE (\r
       EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
@@ -1189,20 +1285,27 @@ TcgDxeHashLogExtendEvent (
 EFI_STATUS\r
 EFIAPI\r
 Tcg2HashLogExtendEvent (\r
-  IN EFI_TCG2_PROTOCOL    *This,\r
-  IN UINT64               Flags,\r
-  IN EFI_PHYSICAL_ADDRESS DataToHash,\r
-  IN UINT64               DataToHashLen,\r
-  IN EFI_TCG2_EVENT       *Event\r
+  IN EFI_TCG2_PROTOCOL     *This,\r
+  IN UINT64                Flags,\r
+  IN EFI_PHYSICAL_ADDRESS  DataToHash,\r
+  IN UINT64                DataToHashLen,\r
+  IN EFI_TCG2_EVENT        *Event\r
   )\r
 {\r
-  EFI_STATUS         Status;\r
-  TCG_PCR_EVENT_HDR  NewEventHdr;\r
-  TPML_DIGEST_VALUES DigestList;\r
+  EFI_STATUS          Status;\r
+  TCG_PCR_EVENT_HDR   NewEventHdr;\r
+  TPML_DIGEST_VALUES  DigestList;\r
 \r
   DEBUG ((DEBUG_VERBOSE, "Tcg2HashLogExtendEvent ...\n"));\r
 \r
-  if ((This == NULL) || (DataToHash == 0) || (Event == NULL)) {\r
+  if ((This == NULL) || (Event == NULL)) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+\r
+  //\r
+  // Do not check hash data size for EV_NO_ACTION event.\r
+  //\r
+  if ((Event->Header.EventType != EV_NO_ACTION) && (DataToHash == 0)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -1210,7 +1313,7 @@ Tcg2HashLogExtendEvent (
     return EFI_DEVICE_ERROR;\r
   }\r
 \r
-  if (Event->Size < Event->Header.HeaderSize + sizeof(UINT32)) {\r
+  if (Event->Size < Event->Header.HeaderSize + sizeof (UINT32)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -1220,7 +1323,7 @@ Tcg2HashLogExtendEvent (
 \r
   NewEventHdr.PCRIndex  = Event->Header.PCRIndex;\r
   NewEventHdr.EventType = Event->Header.EventType;\r
-  NewEventHdr.EventSize = Event->Size - sizeof(UINT32) - Event->Header.HeaderSize;\r
+  NewEventHdr.EventSize = Event->Size - sizeof (UINT32) - Event->Header.HeaderSize;\r
   if ((Flags & PE_COFF_IMAGE) != 0) {\r
     Status = MeasurePeImageAndExtend (\r
                NewEventHdr.PCRIndex,\r
@@ -1233,8 +1336,9 @@ Tcg2HashLogExtendEvent (
         Status = TcgDxeLogHashEvent (&DigestList, &NewEventHdr, Event->Event);\r
       }\r
     }\r
+\r
     if (Status == EFI_DEVICE_ERROR) {\r
-      DEBUG ((EFI_D_ERROR, "MeasurePeImageAndExtend - %r. Disable TPM.\n", Status));\r
+      DEBUG ((DEBUG_ERROR, "MeasurePeImageAndExtend - %r. Disable TPM.\n", Status));\r
       mTcgDxeData.BsCap.TPMPresentFlag = FALSE;\r
       REPORT_STATUS_CODE (\r
         EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
@@ -1244,12 +1348,13 @@ Tcg2HashLogExtendEvent (
   } else {\r
     Status = TcgDxeHashLogExtendEvent (\r
                Flags,\r
-               (UINT8 *) (UINTN) DataToHash,\r
+               (UINT8 *)(UINTN)DataToHash,\r
                DataToHashLen,\r
                &NewEventHdr,\r
                Event->Event\r
                );\r
   }\r
+\r
   DEBUG ((DEBUG_VERBOSE, "Tcg2HashLogExtendEvent - %r\n", Status));\r
   return Status;\r
 }\r
@@ -1271,20 +1376,21 @@ Tcg2HashLogExtendEvent (
 EFI_STATUS\r
 EFIAPI\r
 Tcg2SubmitCommand (\r
-  IN EFI_TCG2_PROTOCOL *This,\r
-  IN UINT32            InputParameterBlockSize,\r
-  IN UINT8             *InputParameterBlock,\r
-  IN UINT32            OutputParameterBlockSize,\r
-  IN UINT8             *OutputParameterBlock\r
+  IN EFI_TCG2_PROTOCOL  *This,\r
+  IN UINT32             InputParameterBlockSize,\r
+  IN UINT8              *InputParameterBlock,\r
+  IN UINT32             OutputParameterBlockSize,\r
+  IN UINT8              *OutputParameterBlock\r
   )\r
 {\r
-  EFI_STATUS    Status;\r
+  EFI_STATUS  Status;\r
 \r
-  DEBUG ((EFI_D_INFO, "Tcg2SubmitCommand ...\n"));\r
+  DEBUG ((DEBUG_INFO, "Tcg2SubmitCommand ...\n"));\r
 \r
   if ((This == NULL) ||\r
       (InputParameterBlockSize == 0) || (InputParameterBlock == NULL) ||\r
-      (OutputParameterBlockSize == 0) || (OutputParameterBlock == NULL)) {\r
+      (OutputParameterBlockSize == 0) || (OutputParameterBlock == NULL))\r
+  {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -1295,6 +1401,7 @@ Tcg2SubmitCommand (
   if (InputParameterBlockSize > mTcgDxeData.BsCap.MaxCommandSize) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   if (OutputParameterBlockSize > mTcgDxeData.BsCap.MaxResponseSize) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
@@ -1305,7 +1412,7 @@ Tcg2SubmitCommand (
              &OutputParameterBlockSize,\r
              OutputParameterBlock\r
              );\r
-  DEBUG ((EFI_D_INFO, "Tcg2SubmitCommand - %r\n", Status));\r
+  DEBUG ((DEBUG_INFO, "Tcg2SubmitCommand - %r\n", Status));\r
   return Status;\r
 }\r
 \r
@@ -1321,13 +1428,14 @@ Tcg2SubmitCommand (
 EFI_STATUS\r
 EFIAPI\r
 Tcg2GetActivePCRBanks (\r
-  IN  EFI_TCG2_PROTOCOL *This,\r
-  OUT UINT32            *ActivePcrBanks\r
+  IN  EFI_TCG2_PROTOCOL  *This,\r
+  OUT UINT32             *ActivePcrBanks\r
   )\r
 {\r
   if (ActivePcrBanks == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   *ActivePcrBanks = mTcgDxeData.BsCap.ActivePcrBanks;\r
   return EFI_SUCCESS;\r
 }\r
@@ -1344,21 +1452,23 @@ Tcg2GetActivePCRBanks (
 EFI_STATUS\r
 EFIAPI\r
 Tcg2SetActivePCRBanks (\r
-  IN EFI_TCG2_PROTOCOL *This,\r
-  IN UINT32            ActivePcrBanks\r
+  IN EFI_TCG2_PROTOCOL  *This,\r
+  IN UINT32             ActivePcrBanks\r
   )\r
 {\r
   EFI_STATUS  Status;\r
   UINT32      ReturnCode;\r
 \r
-  DEBUG ((EFI_D_INFO, "Tcg2SetActivePCRBanks ... (0x%x)\n", ActivePcrBanks));\r
+  DEBUG ((DEBUG_INFO, "Tcg2SetActivePCRBanks ... (0x%x)\n", ActivePcrBanks));\r
 \r
   if (ActivePcrBanks == 0) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   if ((ActivePcrBanks & (~mTcgDxeData.BsCap.HashAlgorithmBitmap)) != 0) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   if (ActivePcrBanks == mTcgDxeData.BsCap.ActivePcrBanks) {\r
     //\r
     // Need clear previous SET_PCR_BANKS setting\r
@@ -1378,7 +1488,7 @@ Tcg2SetActivePCRBanks (
     Status = EFI_DEVICE_ERROR;\r
   }\r
 \r
-  DEBUG ((EFI_D_INFO, "Tcg2SetActivePCRBanks - %r\n", Status));\r
+  DEBUG ((DEBUG_INFO, "Tcg2SetActivePCRBanks - %r\n", Status));\r
 \r
   return Status;\r
 }\r
@@ -1415,14 +1525,14 @@ Tcg2GetResultOfSetActivePcrBanks (
   }\r
 }\r
 \r
-EFI_TCG2_PROTOCOL mTcg2Protocol = {\r
-    Tcg2GetCapability,\r
-    Tcg2GetEventLog,\r
-    Tcg2HashLogExtendEvent,\r
-    Tcg2SubmitCommand,\r
-    Tcg2GetActivePCRBanks,\r
-    Tcg2SetActivePCRBanks,\r
-    Tcg2GetResultOfSetActivePcrBanks,\r
+EFI_TCG2_PROTOCOL  mTcg2Protocol = {\r
+  Tcg2GetCapability,\r
+  Tcg2GetEventLog,\r
+  Tcg2HashLogExtendEvent,\r
+  Tcg2SubmitCommand,\r
+  Tcg2GetActivePCRBanks,\r
+  Tcg2SetActivePCRBanks,\r
+  Tcg2GetResultOfSetActivePcrBanks,\r
 };\r
 \r
 /**\r
@@ -1437,47 +1547,71 @@ SetupEventLog (
   VOID\r
   )\r
 {\r
-  EFI_STATUS                      Status;\r
-  VOID                            *TcgEvent;\r
-  EFI_PEI_HOB_POINTERS            GuidHob;\r
-  EFI_PHYSICAL_ADDRESS            Lasa;\r
-  UINTN                           Index;\r
-  VOID                            *DigestListBin;\r
-  TPML_DIGEST_VALUES              TempDigestListBin;\r
-  UINT32                          DigestListBinSize;\r
-  UINT8                           *Event;\r
-  UINT32                          EventSize;\r
-  UINT32                          *EventSizePtr;\r
-  UINT32                          HashAlgorithmMaskCopied;\r
-  TCG_EfiSpecIDEventStruct        *TcgEfiSpecIdEventStruct;\r
-  UINT8                           TempBuf[sizeof(TCG_EfiSpecIDEventStruct) + sizeof(UINT32) + (HASH_COUNT * sizeof(TCG_EfiSpecIdEventAlgorithmSize)) + sizeof(UINT8)];\r
-  TCG_PCR_EVENT_HDR               SpecIdEvent;\r
-  TCG_PCR_EVENT2_HDR              NoActionEvent;\r
-  TCG_EfiSpecIdEventAlgorithmSize *DigestSize;\r
-  TCG_EfiSpecIdEventAlgorithmSize *TempDigestSize;\r
-  UINT8                           *VendorInfoSize;\r
-  UINT32                          NumberOfAlgorithms;\r
-  TCG_EfiStartupLocalityEvent     StartupLocalityEvent;\r
-\r
-  DEBUG ((EFI_D_INFO, "SetupEventLog\n"));\r
+  EFI_STATUS                       Status;\r
+  VOID                             *TcgEvent;\r
+  EFI_PEI_HOB_POINTERS             GuidHob;\r
+  EFI_PHYSICAL_ADDRESS             Lasa;\r
+  UINTN                            Index;\r
+  VOID                             *DigestListBin;\r
+  TPML_DIGEST_VALUES               TempDigestListBin;\r
+  UINT32                           DigestListBinSize;\r
+  UINT8                            *Event;\r
+  UINT32                           EventSize;\r
+  UINT32                           *EventSizePtr;\r
+  UINT32                           HashAlgorithmMaskCopied;\r
+  TCG_EfiSpecIDEventStruct         *TcgEfiSpecIdEventStruct;\r
+  UINT8                            TempBuf[sizeof (TCG_EfiSpecIDEventStruct) + sizeof (UINT32) + (HASH_COUNT * sizeof (TCG_EfiSpecIdEventAlgorithmSize)) + sizeof (UINT8)];\r
+  TCG_PCR_EVENT_HDR                SpecIdEvent;\r
+  TCG_PCR_EVENT2_HDR               NoActionEvent;\r
+  TCG_EfiSpecIdEventAlgorithmSize  *DigestSize;\r
+  TCG_EfiSpecIdEventAlgorithmSize  *TempDigestSize;\r
+  UINT8                            *VendorInfoSize;\r
+  UINT32                           NumberOfAlgorithms;\r
+  TCG_EfiStartupLocalityEvent      StartupLocalityEvent;\r
+\r
+  DEBUG ((DEBUG_INFO, "SetupEventLog\n"));\r
 \r
   //\r
   // 1. Create Log Area\r
   //\r
-  for (Index = 0; Index < sizeof(mTcg2EventInfo)/sizeof(mTcg2EventInfo[0]); Index++) {\r
+  for (Index = 0; Index < sizeof (mTcg2EventInfo)/sizeof (mTcg2EventInfo[0]); Index++) {\r
     if ((mTcgDxeData.BsCap.SupportedEventLogs & mTcg2EventInfo[Index].LogFormat) != 0) {\r
       mTcgDxeData.EventLogAreaStruct[Index].EventLogFormat = mTcg2EventInfo[Index].LogFormat;\r
-      Status = gBS->AllocatePages (\r
-                      AllocateAnyPages,\r
-                      EfiBootServicesData,\r
-                      EFI_SIZE_TO_PAGES (PcdGet32 (PcdTcgLogAreaMinLen)),\r
-                      &Lasa\r
-                      );\r
+      if (PcdGet8 (PcdTpm2AcpiTableRev) >= 4) {\r
+        Status = gBS->AllocatePages (\r
+                        AllocateAnyPages,\r
+                        EfiACPIMemoryNVS,\r
+                        EFI_SIZE_TO_PAGES (PcdGet32 (PcdTcgLogAreaMinLen)),\r
+                        &Lasa\r
+                        );\r
+      } else {\r
+        Status = gBS->AllocatePages (\r
+                        AllocateAnyPages,\r
+                        EfiBootServicesData,\r
+                        EFI_SIZE_TO_PAGES (PcdGet32 (PcdTcgLogAreaMinLen)),\r
+                        &Lasa\r
+                        );\r
+      }\r
+\r
       if (EFI_ERROR (Status)) {\r
         return Status;\r
       }\r
-      mTcgDxeData.EventLogAreaStruct[Index].Lasa = Lasa;\r
-      mTcgDxeData.EventLogAreaStruct[Index].Laml = PcdGet32 (PcdTcgLogAreaMinLen);\r
+\r
+      mTcgDxeData.EventLogAreaStruct[Index].Lasa                  = Lasa;\r
+      mTcgDxeData.EventLogAreaStruct[Index].Laml                  = PcdGet32 (PcdTcgLogAreaMinLen);\r
+      mTcgDxeData.EventLogAreaStruct[Index].Next800155EventOffset = 0;\r
+\r
+      if ((PcdGet8 (PcdTpm2AcpiTableRev) >= 4) ||\r
+          (mTcg2EventInfo[Index].LogFormat == EFI_TCG2_EVENT_LOG_FORMAT_TCG_2))\r
+      {\r
+        //\r
+        // Report TCG2 event log address and length, so that they can be reported in TPM2 ACPI table.\r
+        // Ignore the return status, because those fields are optional.\r
+        //\r
+        PcdSet32S (PcdTpm2AcpiTableLaml, (UINT32)mTcgDxeData.EventLogAreaStruct[Index].Laml);\r
+        PcdSet64S (PcdTpm2AcpiTableLasa, mTcgDxeData.EventLogAreaStruct[Index].Lasa);\r
+      }\r
+\r
       //\r
       // To initialize them as 0xFF is recommended\r
       // because the OS can know the last entry for that.\r
@@ -1491,58 +1625,63 @@ SetupEventLog (
         // TcgEfiSpecIdEventStruct\r
         //\r
         TcgEfiSpecIdEventStruct = (TCG_EfiSpecIDEventStruct *)TempBuf;\r
-        CopyMem (TcgEfiSpecIdEventStruct->signature, TCG_EfiSpecIDEventStruct_SIGNATURE_03, sizeof(TcgEfiSpecIdEventStruct->signature));\r
-        TcgEfiSpecIdEventStruct->platformClass = PcdGet8 (PcdTpmPlatformClass);\r
+        CopyMem (TcgEfiSpecIdEventStruct->signature, TCG_EfiSpecIDEventStruct_SIGNATURE_03, sizeof (TcgEfiSpecIdEventStruct->signature));\r
+        TcgEfiSpecIdEventStruct->platformClass    = PcdGet8 (PcdTpmPlatformClass);\r
         TcgEfiSpecIdEventStruct->specVersionMajor = TCG_EfiSpecIDEventStruct_SPEC_VERSION_MAJOR_TPM2;\r
         TcgEfiSpecIdEventStruct->specVersionMinor = TCG_EfiSpecIDEventStruct_SPEC_VERSION_MINOR_TPM2;\r
-        TcgEfiSpecIdEventStruct->specErrata = TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2;\r
-        TcgEfiSpecIdEventStruct->uintnSize = sizeof(UINTN)/sizeof(UINT32);\r
-        NumberOfAlgorithms = 0;\r
-        DigestSize = (TCG_EfiSpecIdEventAlgorithmSize *)((UINT8 *)TcgEfiSpecIdEventStruct + sizeof(*TcgEfiSpecIdEventStruct) + sizeof(NumberOfAlgorithms));\r
+        TcgEfiSpecIdEventStruct->specErrata       = (UINT8)PcdGet32 (PcdTcgPfpMeasurementRevision);\r
+        TcgEfiSpecIdEventStruct->uintnSize        = sizeof (UINTN)/sizeof (UINT32);\r
+        NumberOfAlgorithms                        = 0;\r
+        DigestSize                                = (TCG_EfiSpecIdEventAlgorithmSize *)((UINT8 *)TcgEfiSpecIdEventStruct + sizeof (*TcgEfiSpecIdEventStruct) + sizeof (NumberOfAlgorithms));\r
         if ((mTcgDxeData.BsCap.ActivePcrBanks & EFI_TCG2_BOOT_HASH_ALG_SHA1) != 0) {\r
-          TempDigestSize = DigestSize;\r
-          TempDigestSize += NumberOfAlgorithms;\r
+          TempDigestSize              = DigestSize;\r
+          TempDigestSize             += NumberOfAlgorithms;\r
           TempDigestSize->algorithmId = TPM_ALG_SHA1;\r
-          TempDigestSize->digestSize = SHA1_DIGEST_SIZE;\r
+          TempDigestSize->digestSize  = SHA1_DIGEST_SIZE;\r
           NumberOfAlgorithms++;\r
         }\r
+\r
         if ((mTcgDxeData.BsCap.ActivePcrBanks & EFI_TCG2_BOOT_HASH_ALG_SHA256) != 0) {\r
-          TempDigestSize = DigestSize;\r
-          TempDigestSize += NumberOfAlgorithms;\r
+          TempDigestSize              = DigestSize;\r
+          TempDigestSize             += NumberOfAlgorithms;\r
           TempDigestSize->algorithmId = TPM_ALG_SHA256;\r
-          TempDigestSize->digestSize = SHA256_DIGEST_SIZE;\r
+          TempDigestSize->digestSize  = SHA256_DIGEST_SIZE;\r
           NumberOfAlgorithms++;\r
         }\r
+\r
         if ((mTcgDxeData.BsCap.ActivePcrBanks & EFI_TCG2_BOOT_HASH_ALG_SHA384) != 0) {\r
-          TempDigestSize = DigestSize;\r
-          TempDigestSize += NumberOfAlgorithms;\r
+          TempDigestSize              = DigestSize;\r
+          TempDigestSize             += NumberOfAlgorithms;\r
           TempDigestSize->algorithmId = TPM_ALG_SHA384;\r
-          TempDigestSize->digestSize = SHA384_DIGEST_SIZE;\r
+          TempDigestSize->digestSize  = SHA384_DIGEST_SIZE;\r
           NumberOfAlgorithms++;\r
         }\r
+\r
         if ((mTcgDxeData.BsCap.ActivePcrBanks & EFI_TCG2_BOOT_HASH_ALG_SHA512) != 0) {\r
-          TempDigestSize = DigestSize;\r
-          TempDigestSize += NumberOfAlgorithms;\r
+          TempDigestSize              = DigestSize;\r
+          TempDigestSize             += NumberOfAlgorithms;\r
           TempDigestSize->algorithmId = TPM_ALG_SHA512;\r
-          TempDigestSize->digestSize = SHA512_DIGEST_SIZE;\r
+          TempDigestSize->digestSize  = SHA512_DIGEST_SIZE;\r
           NumberOfAlgorithms++;\r
         }\r
+\r
         if ((mTcgDxeData.BsCap.ActivePcrBanks & EFI_TCG2_BOOT_HASH_ALG_SM3_256) != 0) {\r
-          TempDigestSize = DigestSize;\r
-          TempDigestSize += NumberOfAlgorithms;\r
+          TempDigestSize              = DigestSize;\r
+          TempDigestSize             += NumberOfAlgorithms;\r
           TempDigestSize->algorithmId = TPM_ALG_SM3_256;\r
-          TempDigestSize->digestSize = SM3_256_DIGEST_SIZE;\r
+          TempDigestSize->digestSize  = SM3_256_DIGEST_SIZE;\r
           NumberOfAlgorithms++;\r
         }\r
-        CopyMem (TcgEfiSpecIdEventStruct + 1, &NumberOfAlgorithms, sizeof(NumberOfAlgorithms));\r
-        TempDigestSize = DigestSize;\r
+\r
+        CopyMem (TcgEfiSpecIdEventStruct + 1, &NumberOfAlgorithms, sizeof (NumberOfAlgorithms));\r
+        TempDigestSize  = DigestSize;\r
         TempDigestSize += NumberOfAlgorithms;\r
-        VendorInfoSize = (UINT8 *)TempDigestSize;\r
+        VendorInfoSize  = (UINT8 *)TempDigestSize;\r
         *VendorInfoSize = 0;\r
 \r
-        SpecIdEvent.PCRIndex = 0;\r
+        SpecIdEvent.PCRIndex  = 0;\r
         SpecIdEvent.EventType = EV_NO_ACTION;\r
-        ZeroMem (&SpecIdEvent.Digest, sizeof(SpecIdEvent.Digest));\r
+        ZeroMem (&SpecIdEvent.Digest, sizeof (SpecIdEvent.Digest));\r
         SpecIdEvent.EventSize = (UINT32)GetTcgEfiSpecIdEventStructSize (TcgEfiSpecIdEventStruct);\r
 \r
         //\r
@@ -1553,10 +1692,35 @@ SetupEventLog (
         Status = TcgDxeLogEvent (\r
                    mTcg2EventInfo[Index].LogFormat,\r
                    &SpecIdEvent,\r
-                   sizeof(SpecIdEvent),\r
+                   sizeof (SpecIdEvent),\r
                    (UINT8 *)TcgEfiSpecIdEventStruct,\r
                    SpecIdEvent.EventSize\r
                    );\r
+        //\r
+        // record the offset at the end of 800-155 event.\r
+        // the future 800-155 event can be inserted here.\r
+        //\r
+        mTcgDxeData.EventLogAreaStruct[Index].Next800155EventOffset = \\r
+          mTcgDxeData.EventLogAreaStruct[Index].EventLogSize;\r
+\r
+        //\r
+        // Tcg800155PlatformIdEvent. Event format is TCG_PCR_EVENT2\r
+        //\r
+        GuidHob.Guid = GetFirstGuidHob (&gTcg800155PlatformIdEventHobGuid);\r
+        while (GuidHob.Guid != NULL) {\r
+          InitNoActionEvent (&NoActionEvent, GET_GUID_HOB_DATA_SIZE (GuidHob.Guid));\r
+\r
+          Status = TcgDxeLogEvent (\r
+                     mTcg2EventInfo[Index].LogFormat,\r
+                     &NoActionEvent,\r
+                     sizeof (NoActionEvent.PCRIndex) + sizeof (NoActionEvent.EventType) + GetDigestListBinSize (&NoActionEvent.Digests) + sizeof (NoActionEvent.EventSize),\r
+                     GET_GUID_HOB_DATA (GuidHob.Guid),\r
+                     GET_GUID_HOB_DATA_SIZE (GuidHob.Guid)\r
+                     );\r
+\r
+          GuidHob.Guid = GET_NEXT_HOB (GuidHob);\r
+          GuidHob.Guid = GetNextGuidHob (&gTcg800155PlatformIdEventHobGuid, GuidHob.Guid);\r
+        }\r
 \r
         //\r
         // EfiStartupLocalityEvent. Event format is TCG_PCR_EVENT2\r
@@ -1567,13 +1731,13 @@ SetupEventLog (
           // Get Locality Indicator from StartupLocality HOB\r
           //\r
           StartupLocalityEvent.StartupLocality = *(UINT8 *)(GET_GUID_HOB_DATA (GuidHob.Guid));\r
-          CopyMem (StartupLocalityEvent.Signature, TCG_EfiStartupLocalityEvent_SIGNATURE, sizeof(StartupLocalityEvent.Signature));\r
+          CopyMem (StartupLocalityEvent.Signature, TCG_EfiStartupLocalityEvent_SIGNATURE, sizeof (StartupLocalityEvent.Signature));\r
           DEBUG ((DEBUG_INFO, "SetupEventLog: Set Locality from HOB into StartupLocalityEvent 0x%02x\n", StartupLocalityEvent.StartupLocality));\r
 \r
           //\r
           // Initialize StartupLocalityEvent\r
           //\r
-          InitNoActionEvent(&NoActionEvent, sizeof(StartupLocalityEvent));\r
+          InitNoActionEvent (&NoActionEvent, sizeof (StartupLocalityEvent));\r
 \r
           //\r
           // Log EfiStartupLocalityEvent as the second Event\r
@@ -1582,11 +1746,10 @@ SetupEventLog (
           Status = TcgDxeLogEvent (\r
                      mTcg2EventInfo[Index].LogFormat,\r
                      &NoActionEvent,\r
-                     sizeof(NoActionEvent.PCRIndex) + sizeof(NoActionEvent.EventType) + GetDigestListBinSize (&NoActionEvent.Digests) + sizeof(NoActionEvent.EventSize),\r
+                     sizeof (NoActionEvent.PCRIndex) + sizeof (NoActionEvent.EventType) + GetDigestListBinSize (&NoActionEvent.Digests) + sizeof (NoActionEvent.EventSize),\r
                      (UINT8 *)&StartupLocalityEvent,\r
-                     sizeof(StartupLocalityEvent)\r
+                     sizeof (StartupLocalityEvent)\r
                      );\r
-\r
         }\r
       }\r
     }\r
@@ -1595,7 +1758,7 @@ SetupEventLog (
   //\r
   // 2. Create Final Log Area\r
   //\r
-  for (Index = 0; Index < sizeof(mTcg2EventInfo)/sizeof(mTcg2EventInfo[0]); Index++) {\r
+  for (Index = 0; Index < sizeof (mTcg2EventInfo)/sizeof (mTcg2EventInfo[0]); Index++) {\r
     if ((mTcgDxeData.BsCap.SupportedEventLogs & mTcg2EventInfo[Index].LogFormat) != 0) {\r
       if (mTcg2EventInfo[Index].LogFormat == EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) {\r
         Status = gBS->AllocatePages (\r
@@ -1607,22 +1770,24 @@ SetupEventLog (
         if (EFI_ERROR (Status)) {\r
           return Status;\r
         }\r
+\r
         SetMem ((VOID *)(UINTN)Lasa, PcdGet32 (PcdTcg2FinalLogAreaLen), 0xFF);\r
 \r
         //\r
         // Initialize\r
         //\r
-        mTcgDxeData.FinalEventsTable[Index] = (VOID *)(UINTN)Lasa;\r
-        (mTcgDxeData.FinalEventsTable[Index])->Version = EFI_TCG2_FINAL_EVENTS_TABLE_VERSION;\r
+        mTcgDxeData.FinalEventsTable[Index]                   = (VOID *)(UINTN)Lasa;\r
+        (mTcgDxeData.FinalEventsTable[Index])->Version        = EFI_TCG2_FINAL_EVENTS_TABLE_VERSION;\r
         (mTcgDxeData.FinalEventsTable[Index])->NumberOfEvents = 0;\r
 \r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogFormat = mTcg2EventInfo[Index].LogFormat;\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].Lasa = Lasa + sizeof(EFI_TCG2_FINAL_EVENTS_TABLE);\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].Laml = PcdGet32 (PcdTcg2FinalLogAreaLen) - sizeof(EFI_TCG2_FINAL_EVENTS_TABLE);\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogSize = 0;\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].LastEvent = (VOID *)(UINTN)mTcgDxeData.FinalEventLogAreaStruct[Index].Lasa;\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogStarted = FALSE;\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogTruncated = FALSE;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogFormat        = mTcg2EventInfo[Index].LogFormat;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].Lasa                  = Lasa + sizeof (EFI_TCG2_FINAL_EVENTS_TABLE);\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].Laml                  = PcdGet32 (PcdTcg2FinalLogAreaLen) - sizeof (EFI_TCG2_FINAL_EVENTS_TABLE);\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogSize          = 0;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].LastEvent             = (VOID *)(UINTN)mTcgDxeData.FinalEventLogAreaStruct[Index].Lasa;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogStarted       = FALSE;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogTruncated     = FALSE;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].Next800155EventOffset = 0;\r
 \r
         //\r
         // Install to configuration table for EFI_TCG2_EVENT_LOG_FORMAT_TCG_2\r
@@ -1635,14 +1800,15 @@ SetupEventLog (
         //\r
         // No need to handle EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2\r
         //\r
-        mTcgDxeData.FinalEventsTable[Index] = NULL;\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogFormat = mTcg2EventInfo[Index].LogFormat;\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].Lasa = 0;\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].Laml = 0;\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogSize = 0;\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].LastEvent = 0;\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogStarted = FALSE;\r
-        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogTruncated = FALSE;\r
+        mTcgDxeData.FinalEventsTable[Index]                              = NULL;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogFormat        = mTcg2EventInfo[Index].LogFormat;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].Lasa                  = 0;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].Laml                  = 0;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogSize          = 0;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].LastEvent             = 0;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogStarted       = FALSE;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogTruncated     = FALSE;\r
+        mTcgDxeData.FinalEventLogAreaStruct[Index].Next800155EventOffset = 0;\r
       }\r
     }\r
   }\r
@@ -1651,66 +1817,69 @@ SetupEventLog (
   // 3. Sync data from PEI to DXE\r
   //\r
   Status = EFI_SUCCESS;\r
-  for (Index = 0; Index < sizeof(mTcg2EventInfo)/sizeof(mTcg2EventInfo[0]); Index++) {\r
+  for (Index = 0; Index < sizeof (mTcg2EventInfo)/sizeof (mTcg2EventInfo[0]); Index++) {\r
     if ((mTcgDxeData.BsCap.SupportedEventLogs & mTcg2EventInfo[Index].LogFormat) != 0) {\r
       GuidHob.Raw = GetHobList ();\r
-      Status = EFI_SUCCESS;\r
+      Status      = EFI_SUCCESS;\r
       while (!EFI_ERROR (Status) &&\r
-             (GuidHob.Raw = GetNextGuidHob (mTcg2EventInfo[Index].EventGuid, GuidHob.Raw)) != NULL) {\r
-        TcgEvent    = AllocateCopyPool (GET_GUID_HOB_DATA_SIZE (GuidHob.Guid), GET_GUID_HOB_DATA (GuidHob.Guid));\r
+             (GuidHob.Raw = GetNextGuidHob (mTcg2EventInfo[Index].EventGuid, GuidHob.Raw)) != NULL)\r
+      {\r
+        TcgEvent = AllocateCopyPool (GET_GUID_HOB_DATA_SIZE (GuidHob.Guid), GET_GUID_HOB_DATA (GuidHob.Guid));\r
         ASSERT (TcgEvent != NULL);\r
         GuidHob.Raw = GET_NEXT_HOB (GuidHob);\r
         switch (mTcg2EventInfo[Index].LogFormat) {\r
-        case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:\r
-          Status = TcgDxeLogEvent (\r
-                     mTcg2EventInfo[Index].LogFormat,\r
-                     TcgEvent,\r
-                     sizeof(TCG_PCR_EVENT_HDR),\r
-                     ((TCG_PCR_EVENT*)TcgEvent)->Event,\r
-                     ((TCG_PCR_EVENT_HDR*)TcgEvent)->EventSize\r
-                     );\r
-          break;\r
-        case EFI_TCG2_EVENT_LOG_FORMAT_TCG_2:\r
-          DigestListBin = (UINT8 *)TcgEvent + sizeof(TCG_PCRINDEX) + sizeof(TCG_EVENTTYPE);\r
-          DigestListBinSize = GetDigestListBinSize (DigestListBin);\r
-          //\r
-          // Save event size.\r
-          //\r
-          CopyMem (&EventSize, (UINT8 *)DigestListBin + DigestListBinSize, sizeof(UINT32));\r
-          Event = (UINT8 *)DigestListBin + DigestListBinSize + sizeof(UINT32);\r
-          //\r
-          // Filter inactive digest in the event2 log from PEI HOB.\r
-          //\r
-          CopyMem (&TempDigestListBin, DigestListBin, GetDigestListBinSize (DigestListBin));\r
-          EventSizePtr = CopyDigestListBinToBuffer (\r
-                           DigestListBin,\r
-                           &TempDigestListBin,\r
-                           mTcgDxeData.BsCap.ActivePcrBanks,\r
-                           &HashAlgorithmMaskCopied\r
-                           );\r
-          if (HashAlgorithmMaskCopied != mTcgDxeData.BsCap.ActivePcrBanks) {\r
-            DEBUG ((\r
-              DEBUG_ERROR,\r
-              "ERROR: The event2 log includes digest hash mask 0x%x, but required digest hash mask is 0x%x\n",\r
-              HashAlgorithmMaskCopied,\r
-              mTcgDxeData.BsCap.ActivePcrBanks\r
-              ));\r
-          }\r
-          //\r
-          // Restore event size.\r
-          //\r
-          CopyMem (EventSizePtr, &EventSize, sizeof(UINT32));\r
-          DigestListBinSize = GetDigestListBinSize (DigestListBin);\r
-\r
-          Status = TcgDxeLogEvent (\r
-                     mTcg2EventInfo[Index].LogFormat,\r
-                     TcgEvent,\r
-                     sizeof(TCG_PCRINDEX) + sizeof(TCG_EVENTTYPE) + DigestListBinSize + sizeof(UINT32),\r
-                     Event,\r
-                     EventSize\r
-                     );\r
-          break;\r
+          case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:\r
+            Status = TcgDxeLogEvent (\r
+                       mTcg2EventInfo[Index].LogFormat,\r
+                       TcgEvent,\r
+                       sizeof (TCG_PCR_EVENT_HDR),\r
+                       ((TCG_PCR_EVENT *)TcgEvent)->Event,\r
+                       ((TCG_PCR_EVENT_HDR *)TcgEvent)->EventSize\r
+                       );\r
+            break;\r
+          case EFI_TCG2_EVENT_LOG_FORMAT_TCG_2:\r
+            DigestListBin     = (UINT8 *)TcgEvent + sizeof (TCG_PCRINDEX) + sizeof (TCG_EVENTTYPE);\r
+            DigestListBinSize = GetDigestListBinSize (DigestListBin);\r
+            //\r
+            // Save event size.\r
+            //\r
+            CopyMem (&EventSize, (UINT8 *)DigestListBin + DigestListBinSize, sizeof (UINT32));\r
+            Event = (UINT8 *)DigestListBin + DigestListBinSize + sizeof (UINT32);\r
+            //\r
+            // Filter inactive digest in the event2 log from PEI HOB.\r
+            //\r
+            CopyMem (&TempDigestListBin, DigestListBin, GetDigestListBinSize (DigestListBin));\r
+            EventSizePtr = CopyDigestListBinToBuffer (\r
+                             DigestListBin,\r
+                             &TempDigestListBin,\r
+                             mTcgDxeData.BsCap.ActivePcrBanks,\r
+                             &HashAlgorithmMaskCopied\r
+                             );\r
+            if (HashAlgorithmMaskCopied != mTcgDxeData.BsCap.ActivePcrBanks) {\r
+              DEBUG ((\r
+                DEBUG_ERROR,\r
+                "ERROR: The event2 log includes digest hash mask 0x%x, but required digest hash mask is 0x%x\n",\r
+                HashAlgorithmMaskCopied,\r
+                mTcgDxeData.BsCap.ActivePcrBanks\r
+                ));\r
+            }\r
+\r
+            //\r
+            // Restore event size.\r
+            //\r
+            CopyMem (EventSizePtr, &EventSize, sizeof (UINT32));\r
+            DigestListBinSize = GetDigestListBinSize (DigestListBin);\r
+\r
+            Status = TcgDxeLogEvent (\r
+                       mTcg2EventInfo[Index].LogFormat,\r
+                       TcgEvent,\r
+                       sizeof (TCG_PCRINDEX) + sizeof (TCG_EVENTTYPE) + DigestListBinSize + sizeof (UINT32),\r
+                       Event,\r
+                       EventSize\r
+                       );\r
+            break;\r
         }\r
+\r
         FreePool (TcgEvent);\r
       }\r
     }\r
@@ -1731,21 +1900,21 @@ SetupEventLog (
 **/\r
 EFI_STATUS\r
 TcgMeasureAction (\r
-  IN      TPM_PCRINDEX       PCRIndex,\r
-  IN      CHAR8              *String\r
+  IN      TPM_PCRINDEX  PCRIndex,\r
+  IN      CHAR8         *String\r
   )\r
 {\r
-  TCG_PCR_EVENT_HDR                 TcgEvent;\r
+  TCG_PCR_EVENT_HDR  TcgEvent;\r
 \r
   TcgEvent.PCRIndex  = PCRIndex;\r
   TcgEvent.EventType = EV_EFI_ACTION;\r
   TcgEvent.EventSize = (UINT32)AsciiStrLen (String);\r
   return TcgDxeHashLogExtendEvent (\r
            0,\r
-           (UINT8*)String,\r
+           (UINT8 *)String,\r
            TcgEvent.EventSize,\r
            &TcgEvent,\r
-           (UINT8 *) String\r
+           (UINT8 *)String\r
            );\r
 }\r
 \r
@@ -1761,40 +1930,40 @@ MeasureHandoffTables (
   VOID\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  TCG_PCR_EVENT_HDR                 TcgEvent;\r
-  EFI_HANDOFF_TABLE_POINTERS        HandoffTables;\r
-  UINTN                             ProcessorNum;\r
-  EFI_CPU_PHYSICAL_LOCATION         *ProcessorLocBuf;\r
+  EFI_STATUS                  Status;\r
+  TCG_PCR_EVENT_HDR           TcgEvent;\r
+  EFI_HANDOFF_TABLE_POINTERS  HandoffTables;\r
+  UINTN                       ProcessorNum;\r
+  EFI_CPU_PHYSICAL_LOCATION   *ProcessorLocBuf;\r
 \r
   ProcessorLocBuf = NULL;\r
-  Status = EFI_SUCCESS;\r
+  Status          = EFI_SUCCESS;\r
 \r
   if (PcdGet8 (PcdTpmPlatformClass) == TCG_PLATFORM_TYPE_SERVER) {\r
     //\r
     // Tcg Server spec.\r
     // Measure each processor EFI_CPU_PHYSICAL_LOCATION with EV_TABLE_OF_DEVICES to PCR[1]\r
     //\r
-    Status = GetProcessorsCpuLocation(&ProcessorLocBuf, &ProcessorNum);\r
+    Status = GetProcessorsCpuLocation (&ProcessorLocBuf, &ProcessorNum);\r
 \r
-    if (!EFI_ERROR(Status)){\r
+    if (!EFI_ERROR (Status)) {\r
       TcgEvent.PCRIndex  = 1;\r
       TcgEvent.EventType = EV_TABLE_OF_DEVICES;\r
       TcgEvent.EventSize = sizeof (HandoffTables);\r
 \r
-      HandoffTables.NumberOfTables = 1;\r
+      HandoffTables.NumberOfTables            = 1;\r
       HandoffTables.TableEntry[0].VendorGuid  = gEfiMpServiceProtocolGuid;\r
       HandoffTables.TableEntry[0].VendorTable = ProcessorLocBuf;\r
 \r
       Status = TcgDxeHashLogExtendEvent (\r
                  0,\r
-                 (UINT8*)(UINTN)ProcessorLocBuf,\r
-                 sizeof(EFI_CPU_PHYSICAL_LOCATION) * ProcessorNum,\r
+                 (UINT8 *)(UINTN)ProcessorLocBuf,\r
+                 sizeof (EFI_CPU_PHYSICAL_LOCATION) * ProcessorNum,\r
                  &TcgEvent,\r
-                 (UINT8*)&HandoffTables\r
+                 (UINT8 *)&HandoffTables\r
                  );\r
 \r
-      FreePool(ProcessorLocBuf);\r
+      FreePool (ProcessorLocBuf);\r
     }\r
   }\r
 \r
@@ -1812,15 +1981,15 @@ MeasureHandoffTables (
 **/\r
 EFI_STATUS\r
 MeasureSeparatorEvent (\r
-  IN      TPM_PCRINDEX              PCRIndex\r
+  IN      TPM_PCRINDEX  PCRIndex\r
   )\r
 {\r
-  TCG_PCR_EVENT_HDR                 TcgEvent;\r
-  UINT32                            EventData;\r
+  TCG_PCR_EVENT_HDR  TcgEvent;\r
+  UINT32             EventData;\r
 \r
-  DEBUG ((EFI_D_INFO, "MeasureSeparatorEvent Pcr - %x\n", PCRIndex));\r
+  DEBUG ((DEBUG_INFO, "MeasureSeparatorEvent Pcr - %x\n", PCRIndex));\r
 \r
-  EventData = 0;\r
+  EventData          = 0;\r
   TcgEvent.PCRIndex  = PCRIndex;\r
   TcgEvent.EventType = EV_SEPARATOR;\r
   TcgEvent.EventSize = (UINT32)sizeof (EventData);\r
@@ -1850,28 +2019,28 @@ MeasureSeparatorEvent (
 **/\r
 EFI_STATUS\r
 MeasureVariable (\r
-  IN      TPM_PCRINDEX              PCRIndex,\r
-  IN      TCG_EVENTTYPE             EventType,\r
-  IN      CHAR16                    *VarName,\r
-  IN      EFI_GUID                  *VendorGuid,\r
-  IN      VOID                      *VarData,\r
-  IN      UINTN                     VarSize\r
+  IN      TPM_PCRINDEX   PCRIndex,\r
+  IN      TCG_EVENTTYPE  EventType,\r
+  IN      CHAR16         *VarName,\r
+  IN      EFI_GUID       *VendorGuid,\r
+  IN      VOID           *VarData,\r
+  IN      UINTN          VarSize\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  TCG_PCR_EVENT_HDR                 TcgEvent;\r
-  UINTN                             VarNameLength;\r
-  UEFI_VARIABLE_DATA                *VarLog;\r
+  EFI_STATUS          Status;\r
+  TCG_PCR_EVENT_HDR   TcgEvent;\r
+  UINTN               VarNameLength;\r
+  UEFI_VARIABLE_DATA  *VarLog;\r
 \r
-  DEBUG ((EFI_D_INFO, "Tcg2Dxe: MeasureVariable (Pcr - %x, EventType - %x, ", (UINTN)PCRIndex, (UINTN)EventType));\r
-  DEBUG ((EFI_D_INFO, "VariableName - %s, VendorGuid - %g)\n", VarName, VendorGuid));\r
+  DEBUG ((DEBUG_INFO, "Tcg2Dxe: MeasureVariable (Pcr - %x, EventType - %x, ", (UINTN)PCRIndex, (UINTN)EventType));\r
+  DEBUG ((DEBUG_INFO, "VariableName - %s, VendorGuid - %g)\n", VarName, VendorGuid));\r
 \r
   VarNameLength      = StrLen (VarName);\r
   TcgEvent.PCRIndex  = PCRIndex;\r
   TcgEvent.EventType = EventType;\r
 \r
   TcgEvent.EventSize = (UINT32)(sizeof (*VarLog) + VarNameLength * sizeof (*VarName) + VarSize\r
-                        - sizeof (VarLog->UnicodeName) - sizeof (VarLog->VariableData));\r
+                                - sizeof (VarLog->UnicodeName) - sizeof (VarLog->VariableData));\r
 \r
   VarLog = (UEFI_VARIABLE_DATA *)AllocatePool (TcgEvent.EventSize);\r
   if (VarLog == NULL) {\r
@@ -1882,16 +2051,16 @@ MeasureVariable (
   VarLog->UnicodeNameLength  = VarNameLength;\r
   VarLog->VariableDataLength = VarSize;\r
   CopyMem (\r
-     VarLog->UnicodeName,\r
-     VarName,\r
-     VarNameLength * sizeof (*VarName)\r
-     );\r
-  if (VarSize != 0 && VarData != NULL) {\r
+    VarLog->UnicodeName,\r
+    VarName,\r
+    VarNameLength * sizeof (*VarName)\r
+    );\r
+  if ((VarSize != 0) && (VarData != NULL)) {\r
     CopyMem (\r
-       (CHAR16 *)VarLog->UnicodeName + VarNameLength,\r
-       VarData,\r
-       VarSize\r
-       );\r
+      (CHAR16 *)VarLog->UnicodeName + VarNameLength,\r
+      VarData,\r
+      VarSize\r
+      );\r
   }\r
 \r
   if (EventType == EV_EFI_VARIABLE_DRIVER_CONFIG) {\r
@@ -1900,21 +2069,22 @@ MeasureVariable (
     //\r
     Status = TcgDxeHashLogExtendEvent (\r
                0,\r
-               (UINT8*)VarLog,\r
+               (UINT8 *)VarLog,\r
                TcgEvent.EventSize,\r
                &TcgEvent,\r
-               (UINT8*)VarLog\r
+               (UINT8 *)VarLog\r
                );\r
   } else {\r
     ASSERT (VarData != NULL);\r
     Status = TcgDxeHashLogExtendEvent (\r
                0,\r
-               (UINT8*)VarData,\r
+               (UINT8 *)VarData,\r
                VarSize,\r
                &TcgEvent,\r
-               (UINT8*)VarLog\r
+               (UINT8 *)VarLog\r
                );\r
   }\r
+\r
   FreePool (VarLog);\r
   return Status;\r
 }\r
@@ -1936,15 +2106,15 @@ MeasureVariable (
 **/\r
 EFI_STATUS\r
 ReadAndMeasureVariable (\r
-  IN      TPM_PCRINDEX              PCRIndex,\r
-  IN      TCG_EVENTTYPE             EventType,\r
-  IN      CHAR16                    *VarName,\r
-  IN      EFI_GUID                  *VendorGuid,\r
-  OUT     UINTN                     *VarSize,\r
-  OUT     VOID                      **VarData\r
+  IN      TPM_PCRINDEX   PCRIndex,\r
+  IN      TCG_EVENTTYPE  EventType,\r
+  IN      CHAR16         *VarName,\r
+  IN      EFI_GUID       *VendorGuid,\r
+  OUT     UINTN          *VarSize,\r
+  OUT     VOID           **VarData\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
+  EFI_STATUS  Status;\r
 \r
   Status = GetVariable2 (VarName, VendorGuid, VarData, VarSize);\r
   if (EventType == EV_EFI_VARIABLE_DRIVER_CONFIG) {\r
@@ -1991,10 +2161,10 @@ according to TCG PC Client PFP spec 0021 Section 2.4.4.2
 **/\r
 EFI_STATUS\r
 ReadAndMeasureBootVariable (\r
-  IN      CHAR16                    *VarName,\r
-  IN      EFI_GUID                  *VendorGuid,\r
-  OUT     UINTN                     *VarSize,\r
-  OUT     VOID                      **VarData\r
+  IN      CHAR16    *VarName,\r
+  IN      EFI_GUID  *VendorGuid,\r
+  OUT     UINTN     *VarSize,\r
+  OUT     VOID      **VarData\r
   )\r
 {\r
   return ReadAndMeasureVariable (\r
@@ -2022,10 +2192,10 @@ ReadAndMeasureBootVariable (
 **/\r
 EFI_STATUS\r
 ReadAndMeasureSecureVariable (\r
-  IN      CHAR16                    *VarName,\r
-  IN      EFI_GUID                  *VendorGuid,\r
-  OUT     UINTN                     *VarSize,\r
-  OUT     VOID                      **VarData\r
+  IN      CHAR16    *VarName,\r
+  IN      EFI_GUID  *VendorGuid,\r
+  OUT     UINTN     *VarSize,\r
+  OUT     VOID      **VarData\r
   )\r
 {\r
   return ReadAndMeasureVariable (\r
@@ -2053,20 +2223,20 @@ MeasureAllBootVariables (
   VOID\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  UINT16                            *BootOrder;\r
-  UINTN                             BootCount;\r
-  UINTN                             Index;\r
-  VOID                              *BootVarData;\r
-  UINTN                             Size;\r
+  EFI_STATUS  Status;\r
+  UINT16      *BootOrder;\r
+  UINTN       BootCount;\r
+  UINTN       Index;\r
+  VOID        *BootVarData;\r
+  UINTN       Size;\r
 \r
   Status = ReadAndMeasureBootVariable (\r
              mBootVarName,\r
              &gEfiGlobalVariableGuid,\r
              &BootCount,\r
-             (VOID **) &BootOrder\r
+             (VOID **)&BootOrder\r
              );\r
-  if (Status == EFI_NOT_FOUND || BootOrder == NULL) {\r
+  if ((Status == EFI_NOT_FOUND) || (BootOrder == NULL)) {\r
     return EFI_SUCCESS;\r
   }\r
 \r
@@ -2111,13 +2281,13 @@ MeasureAllSecureVariables (
   VOID\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  VOID                              *Data;\r
-  UINTN                             DataSize;\r
-  UINTN                             Index;\r
+  EFI_STATUS  Status;\r
+  VOID        *Data;\r
+  UINTN       DataSize;\r
+  UINTN       Index;\r
 \r
   Status = EFI_NOT_FOUND;\r
-  for (Index = 0; Index < sizeof(mVariableType)/sizeof(mVariableType[0]); Index++) {\r
+  for (Index = 0; Index < sizeof (mVariableType)/sizeof (mVariableType[0]); Index++) {\r
     Status = ReadAndMeasureSecureVariable (\r
                mVariableType[Index].VariableName,\r
                mVariableType[Index].VendorGuid,\r
@@ -2135,7 +2305,7 @@ MeasureAllSecureVariables (
   // Measure DBT if present and not empty\r
   //\r
   Status = GetVariable2 (EFI_IMAGE_SECURITY_DATABASE2, &gEfiImageSecurityDatabaseGuid, &Data, &DataSize);\r
-  if (!EFI_ERROR(Status)) {\r
+  if (!EFI_ERROR (Status)) {\r
     Status = MeasureVariable (\r
                7,\r
                EV_EFI_VARIABLE_DRIVER_CONFIG,\r
@@ -2144,9 +2314,9 @@ MeasureAllSecureVariables (
                Data,\r
                DataSize\r
                );\r
-    FreePool(Data);\r
+    FreePool (Data);\r
   } else {\r
-    DEBUG((DEBUG_INFO, "Skip measuring variable %s since it's deleted\n", EFI_IMAGE_SECURITY_DATABASE2));\r
+    DEBUG ((DEBUG_INFO, "Skip measuring variable %s since it's deleted\n", EFI_IMAGE_SECURITY_DATABASE2));\r
   }\r
 \r
   return EFI_SUCCESS;\r
@@ -2165,15 +2335,15 @@ MeasureLaunchOfFirmwareDebugger (
   VOID\r
   )\r
 {\r
-  TCG_PCR_EVENT_HDR                 TcgEvent;\r
+  TCG_PCR_EVENT_HDR  TcgEvent;\r
 \r
   TcgEvent.PCRIndex  = 7;\r
   TcgEvent.EventType = EV_EFI_ACTION;\r
-  TcgEvent.EventSize = sizeof(FIRMWARE_DEBUGGER_EVENT_STRING) - 1;\r
+  TcgEvent.EventSize = sizeof (FIRMWARE_DEBUGGER_EVENT_STRING) - 1;\r
   return TcgDxeHashLogExtendEvent (\r
            0,\r
            (UINT8 *)FIRMWARE_DEBUGGER_EVENT_STRING,\r
-           sizeof(FIRMWARE_DEBUGGER_EVENT_STRING) - 1,\r
+           sizeof (FIRMWARE_DEBUGGER_EVENT_STRING) - 1,\r
            &TcgEvent,\r
            (UINT8 *)FIRMWARE_DEBUGGER_EVENT_STRING\r
            );\r
@@ -2200,8 +2370,8 @@ MeasureLaunchOfFirmwareDebugger (
 VOID\r
 EFIAPI\r
 MeasureSecureBootPolicy (\r
-  IN EFI_EVENT                      Event,\r
-  IN VOID                           *Context\r
+  IN EFI_EVENT  Event,\r
+  IN VOID       *Context\r
   )\r
 {\r
   EFI_STATUS  Status;\r
@@ -2214,11 +2384,11 @@ MeasureSecureBootPolicy (
 \r
   if (PcdGetBool (PcdFirmwareDebuggerInitialized)) {\r
     Status = MeasureLaunchOfFirmwareDebugger ();\r
-    DEBUG ((EFI_D_INFO, "MeasureLaunchOfFirmwareDebugger - %r\n", Status));\r
+    DEBUG ((DEBUG_INFO, "MeasureLaunchOfFirmwareDebugger - %r\n", Status));\r
   }\r
 \r
   Status = MeasureAllSecureVariables ();\r
-  DEBUG ((EFI_D_INFO, "MeasureAllSecureVariables - %r\n", Status));\r
+  DEBUG ((DEBUG_INFO, "MeasureAllSecureVariables - %r\n", Status));\r
 \r
   //\r
   // We need measure Separator(7) here, because this event must be between SecureBootPolicy (Configure)\r
@@ -2227,8 +2397,8 @@ MeasureSecureBootPolicy (
   // the Authority measurement happen before ReadToBoot event.\r
   //\r
   Status = MeasureSeparatorEvent (7);\r
-  DEBUG ((EFI_D_INFO, "MeasureSeparatorEvent - %r\n", Status));\r
-  return ;\r
+  DEBUG ((DEBUG_INFO, "MeasureSeparatorEvent - %r\n", Status));\r
+  return;\r
 }\r
 \r
 /**\r
@@ -2243,22 +2413,21 @@ MeasureSecureBootPolicy (
 VOID\r
 EFIAPI\r
 OnReadyToBoot (\r
-  IN      EFI_EVENT                 Event,\r
-  IN      VOID                      *Context\r
+  IN      EFI_EVENT  Event,\r
+  IN      VOID       *Context\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  TPM_PCRINDEX                      PcrIndex;\r
+  EFI_STATUS    Status;\r
+  TPM_PCRINDEX  PcrIndex;\r
 \r
   PERF_START_EX (mImageHandle, "EventRec", "Tcg2Dxe", 0, PERF_ID_TCG2_DXE);\r
   if (mBootAttempts == 0) {\r
-\r
     //\r
     // Measure handoff tables.\r
     //\r
     Status = MeasureHandoffTables ();\r
     if (EFI_ERROR (Status)) {\r
-      DEBUG ((EFI_D_ERROR, "HOBs not Measured. Error!\n"));\r
+      DEBUG ((DEBUG_ERROR, "HOBs not Measured. Error!\n"));\r
     }\r
 \r
     //\r
@@ -2266,7 +2435,7 @@ OnReadyToBoot (
     //\r
     Status = MeasureAllBootVariables ();\r
     if (EFI_ERROR (Status)) {\r
-      DEBUG ((EFI_D_ERROR, "Boot Variables not Measured. Error!\n"));\r
+      DEBUG ((DEBUG_ERROR, "Boot Variables not Measured. Error!\n"));\r
     }\r
 \r
     //\r
@@ -2277,7 +2446,7 @@ OnReadyToBoot (
                EFI_CALLING_EFI_APPLICATION\r
                );\r
     if (EFI_ERROR (Status)) {\r
-      DEBUG ((EFI_D_ERROR, "%a not Measured. Error!\n", EFI_CALLING_EFI_APPLICATION));\r
+      DEBUG ((DEBUG_ERROR, "%a not Measured. Error!\n", EFI_CALLING_EFI_APPLICATION));\r
     }\r
 \r
     //\r
@@ -2311,7 +2480,7 @@ OnReadyToBoot (
                EFI_RETURNING_FROM_EFI_APPLICATION\r
                );\r
     if (EFI_ERROR (Status)) {\r
-      DEBUG ((EFI_D_ERROR, "%a not Measured. Error!\n", EFI_RETURNING_FROM_EFI_APPLICATION));\r
+      DEBUG ((DEBUG_ERROR, "%a not Measured. Error!\n", EFI_RETURNING_FROM_EFI_APPLICATION));\r
     }\r
 \r
     //\r
@@ -2323,11 +2492,11 @@ OnReadyToBoot (
                EFI_CALLING_EFI_APPLICATION\r
                );\r
     if (EFI_ERROR (Status)) {\r
-      DEBUG ((EFI_D_ERROR, "%a not Measured. Error!\n", EFI_CALLING_EFI_APPLICATION));\r
+      DEBUG ((DEBUG_ERROR, "%a not Measured. Error!\n", EFI_CALLING_EFI_APPLICATION));\r
     }\r
   }\r
 \r
-  DEBUG ((EFI_D_INFO, "TPM2 Tcg2Dxe Measure Data when ReadyToBoot\n"));\r
+  DEBUG ((DEBUG_INFO, "TPM2 Tcg2Dxe Measure Data when ReadyToBoot\n"));\r
   //\r
   // Increase boot attempt counter.\r
   //\r
@@ -2347,11 +2516,11 @@ OnReadyToBoot (
 VOID\r
 EFIAPI\r
 OnExitBootServices (\r
-  IN      EFI_EVENT                 Event,\r
-  IN      VOID                      *Context\r
+  IN      EFI_EVENT  Event,\r
+  IN      VOID       *Context\r
   )\r
 {\r
-  EFI_STATUS    Status;\r
+  EFI_STATUS  Status;\r
 \r
   //\r
   // Measure invocation of ExitBootServices,\r
@@ -2361,7 +2530,7 @@ OnExitBootServices (
              EFI_EXIT_BOOT_SERVICES_INVOCATION\r
              );\r
   if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "%a not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_INVOCATION));\r
+    DEBUG ((DEBUG_ERROR, "%a not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_INVOCATION));\r
   }\r
 \r
   //\r
@@ -2372,7 +2541,7 @@ OnExitBootServices (
              EFI_EXIT_BOOT_SERVICES_SUCCEEDED\r
              );\r
   if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "%a not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_SUCCEEDED));\r
+    DEBUG ((DEBUG_ERROR, "%a not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_SUCCEEDED));\r
   }\r
 }\r
 \r
@@ -2388,11 +2557,11 @@ OnExitBootServices (
 VOID\r
 EFIAPI\r
 OnExitBootServicesFailed (\r
-  IN      EFI_EVENT                 Event,\r
-  IN      VOID                      *Context\r
+  IN      EFI_EVENT  Event,\r
+  IN      VOID       *Context\r
   )\r
 {\r
-  EFI_STATUS    Status;\r
+  EFI_STATUS  Status;\r
 \r
   //\r
   // Measure Failure of ExitBootServices,\r
@@ -2402,9 +2571,8 @@ OnExitBootServicesFailed (
              EFI_EXIT_BOOT_SERVICES_FAILED\r
              );\r
   if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "%a not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_FAILED));\r
+    DEBUG ((DEBUG_ERROR, "%a not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_FAILED));\r
   }\r
-\r
 }\r
 \r
 /**\r
@@ -2419,10 +2587,7 @@ OnExitBootServicesFailed (
                                 EfiResetShutdown the data buffer starts with a Null-terminated\r
                                 string, optionally followed by additional binary data.\r
                                 The string is a description that the caller may use to further\r
-                                indicate the reason for the system reset. ResetData is only\r
-                                valid if ResetStatus is something other than EFI_SUCCESS\r
-                                unless the ResetType is EfiResetPlatformSpecific\r
-                                where a minimum amount of ResetData is always required.\r
+                                indicate the reason for the system reset.\r
                                 For a ResetType of EfiResetPlatformSpecific the data buffer\r
                                 also starts with a Null-terminated string that is followed\r
                                 by an EFI_GUID that describes the specific type of reset to perform.\r
@@ -2430,13 +2595,14 @@ OnExitBootServicesFailed (
 VOID\r
 EFIAPI\r
 ShutdownTpmOnReset (\r
-  IN EFI_RESET_TYPE           ResetType,\r
-  IN EFI_STATUS               ResetStatus,\r
-  IN UINTN                    DataSize,\r
-  IN VOID                     *ResetData OPTIONAL\r
+  IN EFI_RESET_TYPE  ResetType,\r
+  IN EFI_STATUS      ResetStatus,\r
+  IN UINTN           DataSize,\r
+  IN VOID            *ResetData OPTIONAL\r
   )\r
 {\r
-  EFI_STATUS                  Status;\r
+  EFI_STATUS  Status;\r
+\r
   Status = Tpm2Shutdown (TPM_SU_CLEAR);\r
   DEBUG ((DEBUG_VERBOSE, "Tpm2Shutdown (SU_CLEAR) - %r\n", Status));\r
 }\r
@@ -2452,14 +2618,14 @@ ShutdownTpmOnReset (
 VOID\r
 EFIAPI\r
 OnResetNotificationInstall (\r
-  IN EFI_EVENT                      Event,\r
-  IN VOID                           *Context\r
+  IN EFI_EVENT  Event,\r
+  IN VOID       *Context\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  EFI_RESET_NOTIFICATION_PROTOCOL   *ResetNotify;\r
+  EFI_STATUS                       Status;\r
+  EFI_RESET_NOTIFICATION_PROTOCOL  *ResetNotify;\r
 \r
-  Status = gBS->LocateProtocol (&gEfiResetNotificationProtocolGuid, NULL, (VOID **) &ResetNotify);\r
+  Status = gBS->LocateProtocol (&gEfiResetNotificationProtocolGuid, NULL, (VOID **)&ResetNotify);\r
   if (!EFI_ERROR (Status)) {\r
     Status = ResetNotify->RegisterResetNotify (ResetNotify, ShutdownTpmOnReset);\r
     ASSERT_EFI_ERROR (Status);\r
@@ -2480,8 +2646,8 @@ InstallTcg2 (
   VOID\r
   )\r
 {\r
-  EFI_STATUS        Status;\r
-  EFI_HANDLE        Handle;\r
+  EFI_STATUS  Status;\r
+  EFI_HANDLE  Handle;\r
 \r
   Handle = NULL;\r
   Status = gBS->InstallMultipleProtocolInterfaces (\r
@@ -2505,79 +2671,81 @@ InstallTcg2 (
 EFI_STATUS\r
 EFIAPI\r
 DriverEntry (\r
-  IN    EFI_HANDLE                  ImageHandle,\r
-  IN    EFI_SYSTEM_TABLE            *SystemTable\r
+  IN    EFI_HANDLE        ImageHandle,\r
+  IN    EFI_SYSTEM_TABLE  *SystemTable\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  EFI_EVENT                         Event;\r
-  VOID                              *Registration;\r
-  UINT32                            MaxCommandSize;\r
-  UINT32                            MaxResponseSize;\r
-  UINTN                             Index;\r
-  EFI_TCG2_EVENT_ALGORITHM_BITMAP   TpmHashAlgorithmBitmap;\r
-  UINT32                            ActivePCRBanks;\r
-  UINT32                            NumberOfPCRBanks;\r
+  EFI_STATUS                       Status;\r
+  EFI_EVENT                        Event;\r
+  VOID                             *Registration;\r
+  UINT32                           MaxCommandSize;\r
+  UINT32                           MaxResponseSize;\r
+  UINTN                            Index;\r
+  EFI_TCG2_EVENT_ALGORITHM_BITMAP  TpmHashAlgorithmBitmap;\r
+  UINT32                           ActivePCRBanks;\r
+  UINT32                           NumberOfPCRBanks;\r
 \r
   mImageHandle = ImageHandle;\r
 \r
-  if (CompareGuid (PcdGetPtr(PcdTpmInstanceGuid), &gEfiTpmDeviceInstanceNoneGuid) ||\r
-      CompareGuid (PcdGetPtr(PcdTpmInstanceGuid), &gEfiTpmDeviceInstanceTpm12Guid)){\r
+  if (CompareGuid (PcdGetPtr (PcdTpmInstanceGuid), &gEfiTpmDeviceInstanceNoneGuid) ||\r
+      CompareGuid (PcdGetPtr (PcdTpmInstanceGuid), &gEfiTpmDeviceInstanceTpm12Guid))\r
+  {\r
     DEBUG ((DEBUG_INFO, "No TPM2 instance required!\n"));\r
     return EFI_UNSUPPORTED;\r
   }\r
 \r
   if (GetFirstGuidHob (&gTpmErrorHobGuid) != NULL) {\r
-    DEBUG ((EFI_D_ERROR, "TPM2 error!\n"));\r
+    DEBUG ((DEBUG_ERROR, "TPM2 error!\n"));\r
     return EFI_DEVICE_ERROR;\r
   }\r
 \r
   Status = Tpm2RequestUseTpm ();\r
   if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "TPM2 not detected!\n"));\r
+    DEBUG ((DEBUG_ERROR, "TPM2 not detected!\n"));\r
     return Status;\r
   }\r
 \r
   //\r
   // Fill information\r
   //\r
-  ASSERT (TCG_EVENT_LOG_AREA_COUNT_MAX == sizeof(mTcg2EventInfo)/sizeof(mTcg2EventInfo[0]));\r
+  ASSERT (TCG_EVENT_LOG_AREA_COUNT_MAX == sizeof (mTcg2EventInfo)/sizeof (mTcg2EventInfo[0]));\r
 \r
-  mTcgDxeData.BsCap.Size = sizeof(EFI_TCG2_BOOT_SERVICE_CAPABILITY);\r
-  mTcgDxeData.BsCap.ProtocolVersion.Major = 1;\r
-  mTcgDxeData.BsCap.ProtocolVersion.Minor = 1;\r
+  mTcgDxeData.BsCap.Size                   = sizeof (EFI_TCG2_BOOT_SERVICE_CAPABILITY);\r
+  mTcgDxeData.BsCap.ProtocolVersion.Major  = 1;\r
+  mTcgDxeData.BsCap.ProtocolVersion.Minor  = 1;\r
   mTcgDxeData.BsCap.StructureVersion.Major = 1;\r
   mTcgDxeData.BsCap.StructureVersion.Minor = 1;\r
 \r
-  DEBUG ((EFI_D_INFO, "Tcg2.ProtocolVersion  - %02x.%02x\n", mTcgDxeData.BsCap.ProtocolVersion.Major, mTcgDxeData.BsCap.ProtocolVersion.Minor));\r
-  DEBUG ((EFI_D_INFO, "Tcg2.StructureVersion - %02x.%02x\n", mTcgDxeData.BsCap.StructureVersion.Major, mTcgDxeData.BsCap.StructureVersion.Minor));\r
+  DEBUG ((DEBUG_INFO, "Tcg2.ProtocolVersion  - %02x.%02x\n", mTcgDxeData.BsCap.ProtocolVersion.Major, mTcgDxeData.BsCap.ProtocolVersion.Minor));\r
+  DEBUG ((DEBUG_INFO, "Tcg2.StructureVersion - %02x.%02x\n", mTcgDxeData.BsCap.StructureVersion.Major, mTcgDxeData.BsCap.StructureVersion.Minor));\r
 \r
   Status = Tpm2GetCapabilityManufactureID (&mTcgDxeData.BsCap.ManufacturerID);\r
   if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "Tpm2GetCapabilityManufactureID fail!\n"));\r
+    DEBUG ((DEBUG_ERROR, "Tpm2GetCapabilityManufactureID fail!\n"));\r
   } else {\r
-    DEBUG ((EFI_D_INFO, "Tpm2GetCapabilityManufactureID - %08x\n", mTcgDxeData.BsCap.ManufacturerID));\r
+    DEBUG ((DEBUG_INFO, "Tpm2GetCapabilityManufactureID - %08x\n", mTcgDxeData.BsCap.ManufacturerID));\r
   }\r
 \r
-  DEBUG_CODE (\r
-    UINT32                    FirmwareVersion1;\r
-    UINT32                    FirmwareVersion2;\r
+  DEBUG_CODE_BEGIN ();\r
+  UINT32  FirmwareVersion1;\r
+  UINT32  FirmwareVersion2;\r
 \r
-    Status = Tpm2GetCapabilityFirmwareVersion (&FirmwareVersion1, &FirmwareVersion2);\r
-    if (EFI_ERROR (Status)) {\r
-      DEBUG ((EFI_D_ERROR, "Tpm2GetCapabilityFirmwareVersion fail!\n"));\r
-    } else {\r
-      DEBUG ((EFI_D_INFO, "Tpm2GetCapabilityFirmwareVersion - %08x %08x\n", FirmwareVersion1, FirmwareVersion2));\r
-    }\r
-  );\r
+  Status = Tpm2GetCapabilityFirmwareVersion (&FirmwareVersion1, &FirmwareVersion2);\r
+  if (EFI_ERROR (Status)) {\r
+    DEBUG ((DEBUG_ERROR, "Tpm2GetCapabilityFirmwareVersion fail!\n"));\r
+  } else {\r
+    DEBUG ((DEBUG_INFO, "Tpm2GetCapabilityFirmwareVersion - %08x %08x\n", FirmwareVersion1, FirmwareVersion2));\r
+  }\r
+\r
+  DEBUG_CODE_END ();\r
 \r
   Status = Tpm2GetCapabilityMaxCommandResponseSize (&MaxCommandSize, &MaxResponseSize);\r
   if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "Tpm2GetCapabilityMaxCommandResponseSize fail!\n"));\r
+    DEBUG ((DEBUG_ERROR, "Tpm2GetCapabilityMaxCommandResponseSize fail!\n"));\r
   } else {\r
     mTcgDxeData.BsCap.MaxCommandSize  = (UINT16)MaxCommandSize;\r
     mTcgDxeData.BsCap.MaxResponseSize = (UINT16)MaxResponseSize;\r
-    DEBUG ((EFI_D_INFO, "Tpm2GetCapabilityMaxCommandResponseSize - %08x, %08x\n", MaxCommandSize, MaxResponseSize));\r
+    DEBUG ((DEBUG_INFO, "Tpm2GetCapabilityMaxCommandResponseSize - %08x, %08x\n", MaxCommandSize, MaxResponseSize));\r
   }\r
 \r
   //\r
@@ -2587,7 +2755,7 @@ DriverEntry (
   ASSERT_EFI_ERROR (Status);\r
 \r
   mTcgDxeData.BsCap.HashAlgorithmBitmap = TpmHashAlgorithmBitmap & PcdGet32 (PcdTcg2HashAlgorithmBitmap);\r
-  mTcgDxeData.BsCap.ActivePcrBanks = ActivePCRBanks & PcdGet32 (PcdTcg2HashAlgorithmBitmap);\r
+  mTcgDxeData.BsCap.ActivePcrBanks      = ActivePCRBanks & PcdGet32 (PcdTcg2HashAlgorithmBitmap);\r
 \r
   //\r
   // Need calculate NumberOfPCRBanks here, because HashAlgorithmBitmap might be removed by PCD.\r
@@ -2604,7 +2772,7 @@ DriverEntry (
   } else {\r
     mTcgDxeData.BsCap.NumberOfPCRBanks = PcdGet32 (PcdTcg2NumberOfPCRBanks);\r
     if (PcdGet32 (PcdTcg2NumberOfPCRBanks) > NumberOfPCRBanks) {\r
-      DEBUG ((EFI_D_ERROR, "ERROR: PcdTcg2NumberOfPCRBanks(0x%x) > NumberOfPCRBanks(0x%x)\n", PcdGet32 (PcdTcg2NumberOfPCRBanks), NumberOfPCRBanks));\r
+      DEBUG ((DEBUG_ERROR, "ERROR: PcdTcg2NumberOfPCRBanks(0x%x) > NumberOfPCRBanks(0x%x)\n", PcdGet32 (PcdTcg2NumberOfPCRBanks), NumberOfPCRBanks));\r
       mTcgDxeData.BsCap.NumberOfPCRBanks = NumberOfPCRBanks;\r
     }\r
   }\r
@@ -2617,10 +2785,10 @@ DriverEntry (
     mTcgDxeData.BsCap.SupportedEventLogs &= ~EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2;\r
   }\r
 \r
-  DEBUG ((EFI_D_INFO, "Tcg2.SupportedEventLogs - 0x%08x\n", mTcgDxeData.BsCap.SupportedEventLogs));\r
-  DEBUG ((EFI_D_INFO, "Tcg2.HashAlgorithmBitmap - 0x%08x\n", mTcgDxeData.BsCap.HashAlgorithmBitmap));\r
-  DEBUG ((EFI_D_INFO, "Tcg2.NumberOfPCRBanks      - 0x%08x\n", mTcgDxeData.BsCap.NumberOfPCRBanks));\r
-  DEBUG ((EFI_D_INFO, "Tcg2.ActivePcrBanks        - 0x%08x\n", mTcgDxeData.BsCap.ActivePcrBanks));\r
+  DEBUG ((DEBUG_INFO, "Tcg2.SupportedEventLogs - 0x%08x\n", mTcgDxeData.BsCap.SupportedEventLogs));\r
+  DEBUG ((DEBUG_INFO, "Tcg2.HashAlgorithmBitmap - 0x%08x\n", mTcgDxeData.BsCap.HashAlgorithmBitmap));\r
+  DEBUG ((DEBUG_INFO, "Tcg2.NumberOfPCRBanks      - 0x%08x\n", mTcgDxeData.BsCap.NumberOfPCRBanks));\r
+  DEBUG ((DEBUG_INFO, "Tcg2.ActivePcrBanks        - 0x%08x\n", mTcgDxeData.BsCap.ActivePcrBanks));\r
 \r
   if (mTcgDxeData.BsCap.TPMPresentFlag) {\r
     //\r
@@ -2677,7 +2845,7 @@ DriverEntry (
   // Install Tcg2Protocol\r
   //\r
   Status = InstallTcg2 ();\r
-  DEBUG ((EFI_D_INFO, "InstallTcg2 - %r\n", Status));\r
+  DEBUG ((DEBUG_INFO, "InstallTcg2 - %r\n", Status));\r
 \r
   return Status;\r
 }\r