]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigImpl.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / SecurityPkg / Tcg / Tcg2Config / Tcg2ConfigImpl.c
index a83000fda1385102f276e9f09c1a43f3dac61e58..6eb04c0144487372679031a111d9e951b3b7f975 100644 (file)
@@ -2,31 +2,28 @@
   HII Config Access protocol implementation of TCG2 configuration module.\r
   NOTE: This module is only for reference only, each platform should have its own setup page.\r
 \r
-Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution.  The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
+(C) Copyright 2018 Hewlett Packard Enterprise Development LP<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
 #include "Tcg2ConfigImpl.h"\r
 #include <Library/PcdLib.h>\r
 #include <Library/Tpm2CommandLib.h>\r
+#include <Library/Tpm2DeviceLib.h>\r
 #include <Library/IoLib.h>\r
+\r
 #include <Guid/TpmInstance.h>\r
 \r
 #include <IndustryStandard/TpmPtp.h>\r
 \r
-#define EFI_TCG2_EVENT_LOG_FORMAT_ALL   (EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 | EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)\r
+#define EFI_TCG2_EVENT_LOG_FORMAT_ALL  (EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 | EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)\r
 \r
 TPM_INSTANCE_ID  mTpmInstanceId[TPM_DEVICE_MAX + 1] = TPM_INSTANCE_ID_LIST;\r
 \r
-TCG2_CONFIG_PRIVATE_DATA         *mTcg2ConfigPrivateDate;\r
-TCG2_CONFIG_PRIVATE_DATA         mTcg2ConfigPrivateDateTemplate = {\r
+TCG2_CONFIG_PRIVATE_DATA  *mTcg2ConfigPrivateDate;\r
+TCG2_CONFIG_PRIVATE_DATA  mTcg2ConfigPrivateDateTemplate = {\r
   TCG2_CONFIG_PRIVATE_DATA_SIGNATURE,\r
   {\r
     Tcg2ExtractConfig,\r
@@ -35,14 +32,14 @@ TCG2_CONFIG_PRIVATE_DATA         mTcg2ConfigPrivateDateTemplate = {
   }\r
 };\r
 \r
-HII_VENDOR_DEVICE_PATH          mTcg2HiiVendorDevicePath = {\r
+HII_VENDOR_DEVICE_PATH  mTcg2HiiVendorDevicePath = {\r
   {\r
     {\r
       HARDWARE_DEVICE_PATH,\r
       HW_VENDOR_DP,\r
       {\r
-        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
-        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
+        (UINT8)(sizeof (VENDOR_DEVICE_PATH)),\r
+        (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
       }\r
     },\r
     TCG2_CONFIG_FORM_SET_GUID\r
@@ -50,61 +47,26 @@ HII_VENDOR_DEVICE_PATH          mTcg2HiiVendorDevicePath = {
   {\r
     END_DEVICE_PATH_TYPE,\r
     END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
-    { \r
-      (UINT8) (END_DEVICE_PATH_LENGTH),\r
-      (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)\r
+    {\r
+      (UINT8)(END_DEVICE_PATH_LENGTH),\r
+      (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)\r
     }\r
   }\r
 };\r
 \r
 UINT8  mCurrentPpRequest;\r
 \r
-/**\r
-  Return PTP interface type.\r
-\r
-  @param[in] Register                Pointer to PTP register.\r
-\r
-  @return PTP interface type.\r
-**/\r
-UINT8\r
-GetPtpInterface (\r
-  IN VOID *Register\r
-  )\r
-{\r
-  PTP_CRB_INTERFACE_IDENTIFIER  InterfaceId;\r
-  PTP_FIFO_INTERFACE_CAPABILITY InterfaceCapability;\r
-\r
-  //\r
-  // Check interface id\r
-  //\r
-  InterfaceId.Uint32 = MmioRead32 ((UINTN)&((PTP_CRB_REGISTERS *)Register)->InterfaceId);\r
-  InterfaceCapability.Uint32 = MmioRead32 ((UINTN)&((PTP_FIFO_REGISTERS *)Register)->InterfaceCapability);\r
-\r
-  if ((InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_CRB) &&\r
-      (InterfaceId.Bits.InterfaceVersion == PTP_INTERFACE_IDENTIFIER_INTERFACE_VERSION_CRB) &&\r
-      (InterfaceId.Bits.CapCRB != 0)) {\r
-    return TPM_DEVICE_INTERFACE_PTP_CRB;\r
-  }\r
-  if ((InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_FIFO) &&\r
-      (InterfaceId.Bits.InterfaceVersion == PTP_INTERFACE_IDENTIFIER_INTERFACE_VERSION_FIFO) &&\r
-      (InterfaceId.Bits.CapFIFO != 0) &&\r
-      (InterfaceCapability.Bits.InterfaceVersion == INTERFACE_CAPABILITY_INTERFACE_VERSION_PTP)) {\r
-    return TPM_DEVICE_INTERFACE_PTP_FIFO;\r
-  }\r
-  return TPM_DEVICE_INTERFACE_TIS;\r
-}\r
-\r
 /**\r
   Return if PTP CRB is supported.\r
 \r
   @param[in] Register                Pointer to PTP register.\r
-  \r
+\r
   @retval TRUE  PTP CRB is supported.\r
   @retval FALSE PTP CRB is unsupported.\r
 **/\r
 BOOLEAN\r
 IsPtpCrbSupported (\r
-  IN VOID                 *Register\r
+  IN VOID  *Register\r
   )\r
 {\r
   PTP_CRB_INTERFACE_IDENTIFIER  InterfaceId;\r
@@ -116,9 +78,11 @@ IsPtpCrbSupported (
 \r
   if (((InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_CRB) ||\r
        (InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_FIFO)) &&\r
-      (InterfaceId.Bits.CapCRB != 0)) {\r
+      (InterfaceId.Bits.CapCRB != 0))\r
+  {\r
     return TRUE;\r
   }\r
+\r
   return FALSE;\r
 }\r
 \r
@@ -126,13 +90,13 @@ IsPtpCrbSupported (
   Return if PTP FIFO is supported.\r
 \r
   @param[in] Register                Pointer to PTP register.\r
-  \r
+\r
   @retval TRUE  PTP FIFO is supported.\r
   @retval FALSE PTP FIFO is unsupported.\r
 **/\r
 BOOLEAN\r
 IsPtpFifoSupported (\r
-  IN VOID                 *Register\r
+  IN VOID  *Register\r
   )\r
 {\r
   PTP_CRB_INTERFACE_IDENTIFIER  InterfaceId;\r
@@ -144,18 +108,21 @@ IsPtpFifoSupported (
 \r
   if (((InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_CRB) ||\r
        (InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_FIFO)) &&\r
-      (InterfaceId.Bits.CapFIFO != 0)) {\r
+      (InterfaceId.Bits.CapFIFO != 0))\r
+  {\r
     return TRUE;\r
   }\r
+\r
   return FALSE;\r
 }\r
 \r
 /**\r
   Set PTP interface type.\r
+  Do not update PcdActiveTpmInterfaceType here because interface change only happens on next _TPM_INIT\r
 \r
   @param[in] Register                Pointer to PTP register.\r
   @param[in] PtpInterface            PTP interface type.\r
-  \r
+\r
   @retval EFI_SUCCESS                PTP interface type is set.\r
   @retval EFI_INVALID_PARAMETER      PTP interface type is invalid.\r
   @retval EFI_UNSUPPORTED            PTP interface type is unsupported.\r
@@ -163,40 +130,44 @@ IsPtpFifoSupported (
 **/\r
 EFI_STATUS\r
 SetPtpInterface (\r
-  IN VOID                 *Register,\r
-  IN UINT8                PtpInterface\r
+  IN VOID   *Register,\r
+  IN UINT8  PtpInterface\r
   )\r
 {\r
-  UINT8                         PtpInterfaceCurrent;\r
+  TPM2_PTP_INTERFACE_TYPE       PtpInterfaceCurrent;\r
   PTP_CRB_INTERFACE_IDENTIFIER  InterfaceId;\r
 \r
-  PtpInterfaceCurrent = GetPtpInterface (Register);\r
-  if ((PtpInterfaceCurrent != TPM_DEVICE_INTERFACE_PTP_FIFO) && \r
-      (PtpInterfaceCurrent != TPM_DEVICE_INTERFACE_PTP_CRB)) {\r
+  PtpInterfaceCurrent = PcdGet8 (PcdActiveTpmInterfaceType);\r
+  if ((PtpInterfaceCurrent != Tpm2PtpInterfaceFifo) &&\r
+      (PtpInterfaceCurrent != Tpm2PtpInterfaceCrb))\r
+  {\r
     return EFI_UNSUPPORTED;\r
   }\r
+\r
   InterfaceId.Uint32 = MmioRead32 ((UINTN)&((PTP_CRB_REGISTERS *)Register)->InterfaceId);\r
   if (InterfaceId.Bits.IntfSelLock != 0) {\r
     return EFI_WRITE_PROTECTED;\r
   }\r
 \r
   switch (PtpInterface) {\r
-  case TPM_DEVICE_INTERFACE_PTP_FIFO:\r
-    if (InterfaceId.Bits.CapFIFO == 0) {\r
-      return EFI_UNSUPPORTED;\r
-    }\r
-    InterfaceId.Bits.InterfaceSelector = PTP_INTERFACE_IDENTIFIER_INTERFACE_SELECTOR_FIFO;\r
-    MmioWrite32 ((UINTN)&((PTP_CRB_REGISTERS *)Register)->InterfaceId, InterfaceId.Uint32);\r
-    return EFI_SUCCESS;\r
-  case TPM_DEVICE_INTERFACE_PTP_CRB:\r
-    if (InterfaceId.Bits.CapCRB == 0) {\r
-      return EFI_UNSUPPORTED;\r
-    }\r
-    InterfaceId.Bits.InterfaceSelector = PTP_INTERFACE_IDENTIFIER_INTERFACE_SELECTOR_CRB;\r
-    MmioWrite32 ((UINTN)&((PTP_CRB_REGISTERS *)Register)->InterfaceId, InterfaceId.Uint32);\r
-    return EFI_SUCCESS;\r
-  default:\r
-    return EFI_INVALID_PARAMETER;\r
+    case Tpm2PtpInterfaceFifo:\r
+      if (InterfaceId.Bits.CapFIFO == 0) {\r
+        return EFI_UNSUPPORTED;\r
+      }\r
+\r
+      InterfaceId.Bits.InterfaceSelector = PTP_INTERFACE_IDENTIFIER_INTERFACE_SELECTOR_FIFO;\r
+      MmioWrite32 ((UINTN)&((PTP_CRB_REGISTERS *)Register)->InterfaceId, InterfaceId.Uint32);\r
+      return EFI_SUCCESS;\r
+    case Tpm2PtpInterfaceCrb:\r
+      if (InterfaceId.Bits.CapCRB == 0) {\r
+        return EFI_UNSUPPORTED;\r
+      }\r
+\r
+      InterfaceId.Bits.InterfaceSelector = PTP_INTERFACE_IDENTIFIER_INTERFACE_SELECTOR_CRB;\r
+      MmioWrite32 ((UINTN)&((PTP_CRB_REGISTERS *)Register)->InterfaceId, InterfaceId.Uint32);\r
+      return EFI_SUCCESS;\r
+    default:\r
+      return EFI_INVALID_PARAMETER;\r
   }\r
 }\r
 \r
@@ -229,13 +200,13 @@ SetPtpInterface (
 EFI_STATUS\r
 EFIAPI\r
 Tcg2ExtractConfig (\r
-  IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL        *This,\r
-  IN CONST EFI_STRING                            Request,\r
-       OUT EFI_STRING                            *Progress,\r
-       OUT EFI_STRING                            *Results\r
+  IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL  *This,\r
+  IN CONST EFI_STRING                      Request,\r
+  OUT EFI_STRING                           *Progress,\r
+  OUT EFI_STRING                           *Results\r
   )\r
 {\r
-  if (Progress == NULL || Results == NULL) {\r
+  if ((Progress == NULL) || (Results == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -254,7 +225,7 @@ Tcg2ExtractConfig (
 **/\r
 EFI_STATUS\r
 SaveTcg2PpRequest (\r
-  IN UINT8                         PpRequest\r
+  IN UINT8  PpRequest\r
   )\r
 {\r
   UINT32      ReturnCode;\r
@@ -263,7 +234,7 @@ SaveTcg2PpRequest (
   ReturnCode = Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction (PpRequest, 0);\r
   if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_SUCCESS) {\r
     mCurrentPpRequest = PpRequest;\r
-    Status = EFI_SUCCESS;\r
+    Status            = EFI_SUCCESS;\r
   } else if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
   } else if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_NOT_IMPLEMENTED) {\r
@@ -286,7 +257,7 @@ SaveTcg2PpRequest (
 **/\r
 EFI_STATUS\r
 SaveTcg2PpRequestParameter (\r
-  IN UINT32                        PpRequestParameter\r
+  IN UINT32  PpRequestParameter\r
   )\r
 {\r
   UINT32      ReturnCode;\r
@@ -318,8 +289,8 @@ SaveTcg2PpRequestParameter (
 **/\r
 EFI_STATUS\r
 SaveTcg2PCRBanksRequest (\r
-  IN UINTN   PCRBankIndex,\r
-  IN BOOLEAN Enable\r
+  IN UINTN    PCRBankIndex,\r
+  IN BOOLEAN  Enable\r
   )\r
 {\r
   UINT32      ReturnCode;\r
@@ -330,7 +301,7 @@ SaveTcg2PCRBanksRequest (
   } else {\r
     mTcg2ConfigPrivateDate->PCRBanksDesired &= ~(0x1 << PCRBankIndex);\r
   }\r
-  \r
+\r
   ReturnCode = Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction (TCG2_PHYSICAL_PRESENCE_SET_PCR_BANKS, mTcg2ConfigPrivateDate->PCRBanksDesired);\r
   if (ReturnCode == TCG_PP_SUBMIT_REQUEST_TO_PREOS_SUCCESS) {\r
     Status = EFI_SUCCESS;\r
@@ -366,15 +337,17 @@ SaveTcg2PCRBanksRequest (
 EFI_STATUS\r
 EFIAPI\r
 Tcg2RouteConfig (\r
-  IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL      *This,\r
-  IN CONST EFI_STRING                          Configuration,\r
-       OUT EFI_STRING                          *Progress\r
+  IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL  *This,\r
+  IN CONST EFI_STRING                      Configuration,\r
+  OUT EFI_STRING                           *Progress\r
   )\r
 {\r
-  if (Configuration == NULL || Progress == NULL) {\r
+  if ((Configuration == NULL) || (Progress == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
+  *Progress = Configuration;\r
+\r
   return EFI_NOT_FOUND;\r
 }\r
 \r
@@ -388,9 +361,9 @@ Tcg2RouteConfig (
 \r
 **/\r
 EFI_STATUS\r
-GetTpm2HID(\r
-   CHAR8 *Hid,\r
-   UINTN  Size\r
+GetTpm2HID (\r
+  CHAR8  *Hid,\r
+  UINTN  Size\r
   )\r
 {\r
   EFI_STATUS  Status;\r
@@ -401,54 +374,53 @@ GetTpm2HID(
 \r
   PnpHID = TRUE;\r
 \r
-  ZeroMem(Hid, Size);\r
+  ZeroMem (Hid, Size);\r
 \r
   //\r
   // Get Manufacturer ID\r
   //\r
-  Status = Tpm2GetCapabilityManufactureID(&ManufacturerID);\r
-  if (!EFI_ERROR(Status)) {\r
-    DEBUG((DEBUG_INFO, "TPM_PT_MANUFACTURER 0x%08x\n", ManufacturerID));\r
+  Status = Tpm2GetCapabilityManufactureID (&ManufacturerID);\r
+  if (!EFI_ERROR (Status)) {\r
+    DEBUG ((DEBUG_INFO, "TPM_PT_MANUFACTURER 0x%08x\n", ManufacturerID));\r
     //\r
     // ManufacturerID defined in TCG Vendor ID Registry\r
     // may tailed with 0x00 or 0x20\r
     //\r
-    if ((ManufacturerID >> 24) == 0x00 || ((ManufacturerID >> 24) == 0x20)) {\r
+    if (((ManufacturerID >> 24) == 0x00) || ((ManufacturerID >> 24) == 0x20)) {\r
       //\r
       //  HID containing PNP ID "NNN####"\r
       //   NNN is uppercase letter for Vendor ID specified by manufacturer\r
       //\r
-      CopyMem(Hid, &ManufacturerID, 3);\r
+      CopyMem (Hid, &ManufacturerID, 3);\r
     } else {\r
       //\r
       //  HID containing ACP ID "NNNN####"\r
       //   NNNN is uppercase letter for Vendor ID specified by manufacturer\r
       //\r
-      CopyMem(Hid, &ManufacturerID, 4);\r
+      CopyMem (Hid, &ManufacturerID, 4);\r
       PnpHID = FALSE;\r
     }\r
   } else {\r
     DEBUG ((DEBUG_ERROR, "Get TPM_PT_MANUFACTURER failed %x!\n", Status));\r
-    ASSERT(FALSE);\r
+    ASSERT (FALSE);\r
     return Status;\r
   }\r
 \r
-  Status = Tpm2GetCapabilityFirmwareVersion(&FirmwareVersion1, &FirmwareVersion2);\r
-  if (!EFI_ERROR(Status)) {\r
-    DEBUG((DEBUG_INFO, "TPM_PT_FIRMWARE_VERSION_1 0x%x\n", FirmwareVersion1));\r
-    DEBUG((DEBUG_INFO, "TPM_PT_FIRMWARE_VERSION_2 0x%x\n", FirmwareVersion2));\r
+  Status = Tpm2GetCapabilityFirmwareVersion (&FirmwareVersion1, &FirmwareVersion2);\r
+  if (!EFI_ERROR (Status)) {\r
+    DEBUG ((DEBUG_INFO, "TPM_PT_FIRMWARE_VERSION_1 0x%x\n", FirmwareVersion1));\r
+    DEBUG ((DEBUG_INFO, "TPM_PT_FIRMWARE_VERSION_2 0x%x\n", FirmwareVersion2));\r
     //\r
     //   #### is Firmware Version 1\r
     //\r
     if (PnpHID) {\r
-      AsciiSPrint(Hid + 3, TPM_HID_PNP_SIZE - 3, "%02d%02d", ((FirmwareVersion1 & 0xFFFF0000) >> 16), (FirmwareVersion1 && 0x0000FFFF));\r
+      AsciiSPrint (Hid + 3, TPM_HID_PNP_SIZE - 3, "%02d%02d", ((FirmwareVersion1 & 0xFFFF0000) >> 16), (FirmwareVersion1 & 0x0000FFFF));\r
     } else {\r
-      AsciiSPrint(Hid + 4, TPM_HID_ACPI_SIZE - 4, "%02d%02d", ((FirmwareVersion1 & 0xFFFF0000) >> 16), (FirmwareVersion1 && 0x0000FFFF));\r
+      AsciiSPrint (Hid + 4, TPM_HID_ACPI_SIZE - 4, "%02d%02d", ((FirmwareVersion1 & 0xFFFF0000) >> 16), (FirmwareVersion1 & 0x0000FFFF));\r
     }\r
-\r
   } else {\r
     DEBUG ((DEBUG_ERROR, "Get TPM_PT_FIRMWARE_VERSION_X failed %x!\n", Status));\r
-    ASSERT(FALSE);\r
+    ASSERT (FALSE);\r
     return Status;\r
   }\r
 \r
@@ -473,15 +445,15 @@ GetTpm2HID(
 **/\r
 EFI_STATUS\r
 Tcg2VersionInfoCallback (\r
-  IN EFI_BROWSER_ACTION         Action,\r
-  IN EFI_QUESTION_ID            QuestionId,\r
-  IN UINT8                      Type,\r
-  IN EFI_IFR_TYPE_VALUE         *Value\r
+  IN EFI_BROWSER_ACTION  Action,\r
+  IN EFI_QUESTION_ID     QuestionId,\r
+  IN UINT8               Type,\r
+  IN EFI_IFR_TYPE_VALUE  *Value\r
   )\r
 {\r
-  EFI_INPUT_KEY                 Key;\r
-  UINT64                        PcdTcg2PpiVersion;\r
-  UINT8                         PcdTpm2AcpiTableRev;\r
+  EFI_INPUT_KEY  Key;\r
+  UINT64         PcdTcg2PpiVersion;\r
+  UINT8          PcdTpm2AcpiTableRev;\r
 \r
   ASSERT (Action == EFI_BROWSER_ACTION_SUBMITTED);\r
 \r
@@ -496,7 +468,7 @@ Tcg2VersionInfoCallback (
     CopyMem (\r
       &PcdTcg2PpiVersion,\r
       PcdGetPtr (PcdTcgPhysicalPresenceInterfaceVer),\r
-      AsciiStrSize ((CHAR8 *) PcdGetPtr (PcdTcgPhysicalPresenceInterfaceVer))\r
+      AsciiStrSize ((CHAR8 *)PcdGetPtr (PcdTcgPhysicalPresenceInterfaceVer))\r
       );\r
     if (PcdTcg2PpiVersion != Value->u64) {\r
       CreatePopUp (\r
@@ -507,7 +479,7 @@ Tcg2VersionInfoCallback (
         NULL\r
         );\r
     }\r
-  } else if (QuestionId == KEY_TPM2_ACPI_REVISION){\r
+  } else if (QuestionId == KEY_TPM2_ACPI_REVISION) {\r
     //\r
     // Get the PCD value after EFI_BROWSER_ACTION_SUBMITTED,\r
     // the SetVariable to TCG2_VERSION_NAME should have been done.\r
@@ -555,19 +527,19 @@ Tcg2VersionInfoCallback (
 EFI_STATUS\r
 EFIAPI\r
 Tcg2Callback (\r
-  IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL      *This,\r
-  IN     EFI_BROWSER_ACTION                    Action,\r
-  IN     EFI_QUESTION_ID                       QuestionId,\r
-  IN     UINT8                                 Type,\r
-  IN     EFI_IFR_TYPE_VALUE                    *Value,\r
-     OUT EFI_BROWSER_ACTION_REQUEST            *ActionRequest\r
+  IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL  *This,\r
+  IN     EFI_BROWSER_ACTION                Action,\r
+  IN     EFI_QUESTION_ID                   QuestionId,\r
+  IN     UINT8                             Type,\r
+  IN     EFI_IFR_TYPE_VALUE                *Value,\r
+  OUT EFI_BROWSER_ACTION_REQUEST           *ActionRequest\r
   )\r
 {\r
-  EFI_STATUS                 Status;\r
-  EFI_INPUT_KEY              Key;\r
-  CHAR8                      HidStr[16];\r
-  CHAR16                     UnHidStr[16];\r
-  TCG2_CONFIG_PRIVATE_DATA   *Private;\r
+  EFI_STATUS                Status;\r
+  EFI_INPUT_KEY             Key;\r
+  CHAR8                     HidStr[16];\r
+  CHAR16                    UnHidStr[16];\r
+  TCG2_CONFIG_PRIVATE_DATA  *Private;\r
 \r
   if ((This == NULL) || (Value == NULL) || (ActionRequest == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -580,24 +552,25 @@ Tcg2Callback (
     // Update TPM2 HID info\r
     //\r
     if (QuestionId == KEY_TPM_DEVICE) {\r
-      Status = GetTpm2HID(HidStr, 16);\r
+      Status = GetTpm2HID (HidStr, 16);\r
 \r
-      if (EFI_ERROR(Status)) {\r
+      if (EFI_ERROR (Status)) {\r
         //\r
         //  Fail to get TPM2 HID\r
         //\r
         HiiSetString (Private->HiiHandle, STRING_TOKEN (STR_TPM2_ACPI_HID_CONTENT), L"Unknown", NULL);\r
       } else {\r
-        AsciiStrToUnicodeStrS(HidStr, UnHidStr, 16);\r
+        AsciiStrToUnicodeStrS (HidStr, UnHidStr, 16);\r
         HiiSetString (Private->HiiHandle, STRING_TOKEN (STR_TPM2_ACPI_HID_CONTENT), UnHidStr, NULL);\r
       }\r
     }\r
+\r
     return EFI_SUCCESS;\r
   }\r
 \r
   if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
     if (QuestionId == KEY_TPM_DEVICE_INTERFACE) {\r
-      Status = SetPtpInterface ((VOID *) (UINTN) PcdGet64 (PcdTpmBaseAddress), Value->u8);\r
+      Status = SetPtpInterface ((VOID *)(UINTN)PcdGet64 (PcdTpmBaseAddress), Value->u8);\r
       if (EFI_ERROR (Status)) {\r
         CreatePopUp (\r
           EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
@@ -609,24 +582,27 @@ Tcg2Callback (
       }\r
     }\r
   }\r
-  \r
+\r
   if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
     if (QuestionId == KEY_TPM_DEVICE) {\r
       return EFI_SUCCESS;\r
     }\r
+\r
     if (QuestionId == KEY_TPM2_OPERATION) {\r
       return SaveTcg2PpRequest (Value->u8);\r
     }\r
+\r
     if (QuestionId == KEY_TPM2_OPERATION_PARAMETER) {\r
       return SaveTcg2PpRequestParameter (Value->u32);\r
     }\r
+\r
     if ((QuestionId >= KEY_TPM2_PCR_BANKS_REQUEST_0) && (QuestionId <= KEY_TPM2_PCR_BANKS_REQUEST_4)) {\r
       return SaveTcg2PCRBanksRequest (QuestionId - KEY_TPM2_PCR_BANKS_REQUEST_0, Value->b);\r
     }\r
   }\r
 \r
   if (Action == EFI_BROWSER_ACTION_SUBMITTED) {\r
-    if (QuestionId == KEY_TCG2_PPI_VERSION || QuestionId == KEY_TPM2_ACPI_REVISION) {\r
+    if ((QuestionId == KEY_TCG2_PPI_VERSION) || (QuestionId == KEY_TPM2_ACPI_REVISION)) {\r
       return Tcg2VersionInfoCallback (Action, QuestionId, Type, Value);\r
     }\r
   }\r
@@ -650,36 +626,41 @@ AppendBufferWithTpmAlgHash (
   )\r
 {\r
   switch (TpmAlgHash) {\r
-  case TPM_ALG_SHA1:\r
-    if (Buffer[0] != 0) {\r
-      StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
-    }\r
-    StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA1");\r
-    break;\r
-  case TPM_ALG_SHA256:\r
-    if (Buffer[0] != 0) {\r
-      StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
-    }\r
-    StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA256");\r
-    break;\r
-  case TPM_ALG_SHA384:\r
-    if (Buffer[0] != 0) {\r
-      StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
-    }\r
-    StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA384");\r
-    break;\r
-  case TPM_ALG_SHA512:\r
-    if (Buffer[0] != 0) {\r
-      StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
-    }\r
-    StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA512");\r
-    break;\r
-  case TPM_ALG_SM3_256:\r
-    if (Buffer[0] != 0) {\r
-      StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
-    }\r
-    StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SM3_256");\r
-    break;\r
+    case TPM_ALG_SHA1:\r
+      if (Buffer[0] != 0) {\r
+        StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
+      }\r
+\r
+      StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA1");\r
+      break;\r
+    case TPM_ALG_SHA256:\r
+      if (Buffer[0] != 0) {\r
+        StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
+      }\r
+\r
+      StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA256");\r
+      break;\r
+    case TPM_ALG_SHA384:\r
+      if (Buffer[0] != 0) {\r
+        StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
+      }\r
+\r
+      StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA384");\r
+      break;\r
+    case TPM_ALG_SHA512:\r
+      if (Buffer[0] != 0) {\r
+        StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
+      }\r
+\r
+      StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA512");\r
+      break;\r
+    case TPM_ALG_SM3_256:\r
+      if (Buffer[0] != 0) {\r
+        StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
+      }\r
+\r
+      StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SM3_256");\r
+      break;\r
   }\r
 }\r
 \r
@@ -703,30 +684,39 @@ FillBufferWithBootHashAlg (
     if (Buffer[0] != 0) {\r
       StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
     }\r
+\r
     StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA1");\r
   }\r
+\r
   if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SHA256) != 0) {\r
     if (Buffer[0] != 0) {\r
       StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
     }\r
+\r
     StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA256");\r
   }\r
+\r
   if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SHA384) != 0) {\r
     if (Buffer[0] != 0) {\r
       StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
     }\r
+\r
     StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA384");\r
   }\r
+\r
   if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SHA512) != 0) {\r
     if (Buffer[0] != 0) {\r
       StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
     }\r
+\r
     StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA512");\r
   }\r
+\r
   if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SM3_256) != 0) {\r
     if (Buffer[0] != 0) {\r
       StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
     }\r
+\r
     StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SM3_256");\r
   }\r
 }\r
@@ -740,26 +730,26 @@ FillBufferWithBootHashAlg (
 **/\r
 VOID\r
 SetConfigInfo (\r
-  IN OUT TCG2_CONFIGURATION_INFO         *Tcg2ConfigInfo,\r
-  IN UINT32                              TpmAlgHash\r
+  IN OUT TCG2_CONFIGURATION_INFO  *Tcg2ConfigInfo,\r
+  IN UINT32                       TpmAlgHash\r
   )\r
 {\r
   switch (TpmAlgHash) {\r
-  case TPM_ALG_SHA1:\r
-    Tcg2ConfigInfo->Sha1Supported = TRUE;\r
-    break;\r
-  case TPM_ALG_SHA256:\r
-    Tcg2ConfigInfo->Sha256Supported = TRUE;\r
-    break;\r
-  case TPM_ALG_SHA384:\r
-    Tcg2ConfigInfo->Sha384Supported = TRUE;\r
-    break;\r
-  case TPM_ALG_SHA512:\r
-    Tcg2ConfigInfo->Sha512Supported = TRUE;\r
-    break;\r
-  case TPM_ALG_SM3_256:\r
-    Tcg2ConfigInfo->Sm3Supported = TRUE;\r
-    break;\r
+    case TPM_ALG_SHA1:\r
+      Tcg2ConfigInfo->Sha1Supported = TRUE;\r
+      break;\r
+    case TPM_ALG_SHA256:\r
+      Tcg2ConfigInfo->Sha256Supported = TRUE;\r
+      break;\r
+    case TPM_ALG_SHA384:\r
+      Tcg2ConfigInfo->Sha384Supported = TRUE;\r
+      break;\r
+    case TPM_ALG_SHA512:\r
+      Tcg2ConfigInfo->Sha512Supported = TRUE;\r
+      break;\r
+    case TPM_ALG_SM3_256:\r
+      Tcg2ConfigInfo->Sm3Supported = TRUE;\r
+      break;\r
   }\r
 }\r
 \r
@@ -783,18 +773,23 @@ FillBufferWithTCG2EventLogFormat (
     if (Buffer[0] != 0) {\r
       StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
     }\r
+\r
     StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"TCG_1_2");\r
   }\r
+\r
   if ((TCG2EventLogFormat & EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) != 0) {\r
     if (Buffer[0] != 0) {\r
       StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
     }\r
+\r
     StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"TCG_2");\r
   }\r
+\r
   if ((TCG2EventLogFormat & (~EFI_TCG2_EVENT_LOG_FORMAT_ALL)) != 0) {\r
     if (Buffer[0] != 0) {\r
       StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
     }\r
+\r
     StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"UNKNOWN");\r
   }\r
 }\r
@@ -822,18 +817,19 @@ InstallTcg2ConfigForm (
   TPML_PCR_SELECTION              Pcrs;\r
   CHAR16                          TempBuffer[1024];\r
   TCG2_CONFIGURATION_INFO         Tcg2ConfigInfo;\r
-  UINT8                           TpmDeviceInterfaceDetected;\r
+  TPM2_PTP_INTERFACE_TYPE         TpmDeviceInterfaceDetected;\r
+  BOOLEAN                         IsCmdImp = FALSE;\r
 \r
   DriverHandle = NULL;\r
   ConfigAccess = &PrivateData->ConfigAccess;\r
-  Status = gBS->InstallMultipleProtocolInterfaces (\r
-                  &DriverHandle,\r
-                  &gEfiDevicePathProtocolGuid,\r
-                  &mTcg2HiiVendorDevicePath,\r
-                  &gEfiHiiConfigAccessProtocolGuid,\r
-                  ConfigAccess,\r
-                  NULL\r
-                  );\r
+  Status       = gBS->InstallMultipleProtocolInterfaces (\r
+                        &DriverHandle,\r
+                        &gEfiDevicePathProtocolGuid,\r
+                        &mTcg2HiiVendorDevicePath,\r
+                        &gEfiHiiConfigAccessProtocolGuid,\r
+                        ConfigAccess,\r
+                        NULL\r
+                        );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
@@ -858,32 +854,32 @@ InstallTcg2ConfigForm (
            &gEfiHiiConfigAccessProtocolGuid,\r
            ConfigAccess,\r
            NULL\r
-           );  \r
+           );\r
 \r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
-  \r
+\r
   PrivateData->HiiHandle = HiiHandle;\r
 \r
   //\r
   // Update static data\r
   //\r
   switch (PrivateData->TpmDeviceDetected) {\r
-  case TPM_DEVICE_NULL:\r
-    HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_STATE_CONTENT), L"Not Found", NULL);\r
-    break;\r
-  case TPM_DEVICE_1_2:\r
-    HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_STATE_CONTENT), L"TPM 1.2", NULL);\r
-    break;\r
-  case TPM_DEVICE_2_0_DTPM:\r
-    HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_STATE_CONTENT), L"TPM 2.0", NULL);\r
-    break;\r
-  default:\r
-    HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_STATE_CONTENT), L"Unknown", NULL);\r
-    break;\r
+    case TPM_DEVICE_NULL:\r
+      HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_STATE_CONTENT), L"Not Found", NULL);\r
+      break;\r
+    case TPM_DEVICE_1_2:\r
+      HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_STATE_CONTENT), L"TPM 1.2", NULL);\r
+      break;\r
+    case TPM_DEVICE_2_0_DTPM:\r
+      HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_STATE_CONTENT), L"TPM 2.0", NULL);\r
+      break;\r
+    default:\r
+      HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_STATE_CONTENT), L"Unknown", NULL);\r
+      break;\r
   }\r
 \r
-  ZeroMem (&Tcg2ConfigInfo, sizeof(Tcg2ConfigInfo));\r
+  ZeroMem (&Tcg2ConfigInfo, sizeof (Tcg2ConfigInfo));\r
   Status = Tpm2GetCapabilityPcrs (&Pcrs);\r
   if (EFI_ERROR (Status)) {\r
     HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TPM2_ACTIVE_HASH_ALGO_CONTENT), L"[Unknown]", NULL);\r
@@ -892,88 +888,101 @@ InstallTcg2ConfigForm (
     TempBuffer[0] = 0;\r
     for (Index = 0; Index < Pcrs.count; Index++) {\r
       if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
-        AppendBufferWithTpmAlgHash (TempBuffer, sizeof(TempBuffer), Pcrs.pcrSelections[Index].hash);\r
+        AppendBufferWithTpmAlgHash (TempBuffer, sizeof (TempBuffer), Pcrs.pcrSelections[Index].hash);\r
       }\r
     }\r
+\r
     HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TPM2_ACTIVE_HASH_ALGO_CONTENT), TempBuffer, NULL);\r
 \r
     TempBuffer[0] = 0;\r
     for (Index = 0; Index < Pcrs.count; Index++) {\r
-      AppendBufferWithTpmAlgHash (TempBuffer, sizeof(TempBuffer), Pcrs.pcrSelections[Index].hash);\r
+      AppendBufferWithTpmAlgHash (TempBuffer, sizeof (TempBuffer), Pcrs.pcrSelections[Index].hash);\r
       SetConfigInfo (&Tcg2ConfigInfo, Pcrs.pcrSelections[Index].hash);\r
     }\r
+\r
     HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TPM2_SUPPORTED_HASH_ALGO_CONTENT), TempBuffer, NULL);\r
   }\r
 \r
-  FillBufferWithBootHashAlg (TempBuffer, sizeof(TempBuffer), PcdGet32 (PcdTcg2HashAlgorithmBitmap));\r
+  Status = Tpm2GetCapabilityIsCommandImplemented (TPM_CC_ChangeEPS, &IsCmdImp);\r
+  if (EFI_ERROR (Status)) {\r
+    DEBUG ((DEBUG_ERROR, "Tpm2GetCapabilityIsCmdImpl fails %r\n", Status));\r
+  }\r
+\r
+  Tcg2ConfigInfo.ChangeEPSSupported = IsCmdImp;\r
+\r
+  FillBufferWithBootHashAlg (TempBuffer, sizeof (TempBuffer), PcdGet32 (PcdTcg2HashAlgorithmBitmap));\r
   HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_BIOS_HASH_ALGO_CONTENT), TempBuffer, NULL);\r
 \r
   //\r
   // Tcg2 Capability\r
   //\r
-  FillBufferWithTCG2EventLogFormat (TempBuffer, sizeof(TempBuffer), PrivateData->ProtocolCapability.SupportedEventLogs);\r
+  FillBufferWithTCG2EventLogFormat (TempBuffer, sizeof (TempBuffer), PrivateData->ProtocolCapability.SupportedEventLogs);\r
   HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_SUPPORTED_EVENT_LOG_FORMAT_CONTENT), TempBuffer, NULL);\r
 \r
-  FillBufferWithBootHashAlg (TempBuffer, sizeof(TempBuffer), PrivateData->ProtocolCapability.HashAlgorithmBitmap);\r
+  FillBufferWithBootHashAlg (TempBuffer, sizeof (TempBuffer), PrivateData->ProtocolCapability.HashAlgorithmBitmap);\r
   HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_HASH_ALGO_BITMAP_CONTENT), TempBuffer, NULL);\r
 \r
   UnicodeSPrint (TempBuffer, sizeof (TempBuffer), L"%d", PrivateData->ProtocolCapability.NumberOfPCRBanks);\r
   HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_NUMBER_OF_PCR_BANKS_CONTENT), TempBuffer, NULL);\r
 \r
-  FillBufferWithBootHashAlg (TempBuffer, sizeof(TempBuffer), PrivateData->ProtocolCapability.ActivePcrBanks);\r
+  FillBufferWithBootHashAlg (TempBuffer, sizeof (TempBuffer), PrivateData->ProtocolCapability.ActivePcrBanks);\r
   HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_ACTIVE_PCR_BANKS_CONTENT), TempBuffer, NULL);\r
 \r
   //\r
   // Update TPM device interface type\r
   //\r
   if (PrivateData->TpmDeviceDetected == TPM_DEVICE_2_0_DTPM) {\r
-    TpmDeviceInterfaceDetected = GetPtpInterface ((VOID *) (UINTN) PcdGet64 (PcdTpmBaseAddress));\r
+    TpmDeviceInterfaceDetected = PcdGet8 (PcdActiveTpmInterfaceType);\r
     switch (TpmDeviceInterfaceDetected) {\r
-    case TPM_DEVICE_INTERFACE_TIS:\r
-      HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_STATE_CONTENT), L"TIS", NULL);\r
-      break;\r
-    case TPM_DEVICE_INTERFACE_PTP_FIFO:\r
-      HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_STATE_CONTENT), L"PTP FIFO", NULL);\r
-      break;\r
-    case TPM_DEVICE_INTERFACE_PTP_CRB:\r
-      HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_STATE_CONTENT), L"PTP CRB", NULL);\r
-      break;\r
-     default:\r
-      HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_STATE_CONTENT), L"Unknown", NULL);\r
-      break;\r
+      case Tpm2PtpInterfaceTis:\r
+        HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_STATE_CONTENT), L"TIS", NULL);\r
+        break;\r
+      case Tpm2PtpInterfaceFifo:\r
+        HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_STATE_CONTENT), L"PTP FIFO", NULL);\r
+        break;\r
+      case Tpm2PtpInterfaceCrb:\r
+        HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_STATE_CONTENT), L"PTP CRB", NULL);\r
+        break;\r
+      default:\r
+        HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_STATE_CONTENT), L"Unknown", NULL);\r
+        break;\r
     }\r
 \r
     Tcg2ConfigInfo.TpmDeviceInterfaceAttempt = TpmDeviceInterfaceDetected;\r
     switch (TpmDeviceInterfaceDetected) {\r
-    case TPM_DEVICE_INTERFACE_TIS:\r
-      Tcg2ConfigInfo.TpmDeviceInterfacePtpFifoSupported = FALSE;\r
-      Tcg2ConfigInfo.TpmDeviceInterfacePtpCrbSupported  = FALSE;\r
-      HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_CAPABILITY_CONTENT), L"TIS", NULL);\r
-      break;\r
-    case TPM_DEVICE_INTERFACE_PTP_FIFO:\r
-    case TPM_DEVICE_INTERFACE_PTP_CRB:\r
-      Tcg2ConfigInfo.TpmDeviceInterfacePtpFifoSupported = IsPtpFifoSupported((VOID *) (UINTN) PcdGet64 (PcdTpmBaseAddress));\r
-      Tcg2ConfigInfo.TpmDeviceInterfacePtpCrbSupported  = IsPtpCrbSupported((VOID *) (UINTN) PcdGet64 (PcdTpmBaseAddress));\r
-      TempBuffer[0] = 0;\r
-      if (Tcg2ConfigInfo.TpmDeviceInterfacePtpFifoSupported) {\r
-        if (TempBuffer[0] != 0) {\r
-          StrCatS (TempBuffer, sizeof(TempBuffer) / sizeof (CHAR16), L", ");\r
+      case Tpm2PtpInterfaceTis:\r
+        Tcg2ConfigInfo.TpmDeviceInterfacePtpFifoSupported = FALSE;\r
+        Tcg2ConfigInfo.TpmDeviceInterfacePtpCrbSupported  = FALSE;\r
+        HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_CAPABILITY_CONTENT), L"TIS", NULL);\r
+        break;\r
+      case Tpm2PtpInterfaceFifo:\r
+      case Tpm2PtpInterfaceCrb:\r
+        Tcg2ConfigInfo.TpmDeviceInterfacePtpFifoSupported = IsPtpFifoSupported ((VOID *)(UINTN)PcdGet64 (PcdTpmBaseAddress));\r
+        Tcg2ConfigInfo.TpmDeviceInterfacePtpCrbSupported  = IsPtpCrbSupported ((VOID *)(UINTN)PcdGet64 (PcdTpmBaseAddress));\r
+        TempBuffer[0]                                     = 0;\r
+        if (Tcg2ConfigInfo.TpmDeviceInterfacePtpFifoSupported) {\r
+          if (TempBuffer[0] != 0) {\r
+            StrCatS (TempBuffer, sizeof (TempBuffer) / sizeof (CHAR16), L", ");\r
+          }\r
+\r
+          StrCatS (TempBuffer, sizeof (TempBuffer) / sizeof (CHAR16), L"PTP FIFO");\r
         }\r
-        StrCatS (TempBuffer, sizeof(TempBuffer) / sizeof (CHAR16), L"PTP FIFO");\r
-      }\r
-      if (Tcg2ConfigInfo.TpmDeviceInterfacePtpCrbSupported) {\r
-        if (TempBuffer[0] != 0) {\r
-          StrCatS (TempBuffer, sizeof(TempBuffer) / sizeof (CHAR16), L", ");\r
+\r
+        if (Tcg2ConfigInfo.TpmDeviceInterfacePtpCrbSupported) {\r
+          if (TempBuffer[0] != 0) {\r
+            StrCatS (TempBuffer, sizeof (TempBuffer) / sizeof (CHAR16), L", ");\r
+          }\r
+\r
+          StrCatS (TempBuffer, sizeof (TempBuffer) / sizeof (CHAR16), L"PTP CRB");\r
         }\r
-        StrCatS (TempBuffer, sizeof(TempBuffer) / sizeof (CHAR16), L"PTP CRB");\r
-      }\r
-      HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_CAPABILITY_CONTENT), TempBuffer, NULL);\r
-      break;\r
-    default:\r
-      Tcg2ConfigInfo.TpmDeviceInterfacePtpFifoSupported = FALSE;\r
-      Tcg2ConfigInfo.TpmDeviceInterfacePtpCrbSupported  = FALSE;\r
-      HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_CAPABILITY_CONTENT), L"Unknown", NULL);\r
-      break;\r
+\r
+        HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_CAPABILITY_CONTENT), TempBuffer, NULL);\r
+        break;\r
+      default:\r
+        Tcg2ConfigInfo.TpmDeviceInterfacePtpFifoSupported = FALSE;\r
+        Tcg2ConfigInfo.TpmDeviceInterfacePtpCrbSupported  = FALSE;\r
+        HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_CAPABILITY_CONTENT), L"Unknown", NULL);\r
+        break;\r
     }\r
   }\r
 \r
@@ -984,14 +993,14 @@ InstallTcg2ConfigForm (
                   TCG2_STORAGE_INFO_NAME,\r
                   &gTcg2ConfigFormSetGuid,\r
                   EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
-                  sizeof(Tcg2ConfigInfo),\r
+                  sizeof (Tcg2ConfigInfo),\r
                   &Tcg2ConfigInfo\r
                   );\r
   if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "Tcg2ConfigDriver: Fail to set TCG2_STORAGE_INFO_NAME\n"));\r
+    DEBUG ((DEBUG_ERROR, "Tcg2ConfigDriver: Fail to set TCG2_STORAGE_INFO_NAME\n"));\r
   }\r
 \r
-  return EFI_SUCCESS;  \r
+  return EFI_SUCCESS;\r
 }\r
 \r
 /**\r
@@ -1002,7 +1011,7 @@ InstallTcg2ConfigForm (
 **/\r
 VOID\r
 UninstallTcg2ConfigForm (\r
-  IN OUT TCG2_CONFIG_PRIVATE_DATA    *PrivateData\r
+  IN OUT TCG2_CONFIG_PRIVATE_DATA  *PrivateData\r
   )\r
 {\r
   //\r
@@ -1027,6 +1036,6 @@ UninstallTcg2ConfigForm (
            );\r
     PrivateData->DriverHandle = NULL;\r
   }\r
-  \r
+\r
   FreePool (PrivateData);\r
 }\r