]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigImpl.c
SecurityPkg: Removing ipf which is no longer supported from edk2.
[mirror_edk2.git] / SecurityPkg / Tcg / Tcg2Config / Tcg2ConfigImpl.c
index db38bd45a32902d1b4493d241345acd3c154db74..24ce3d29e18f3120396f3d56bb4db43d3a1b02b4 100644 (file)
@@ -2,13 +2,14 @@
   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 - 2016, 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
+Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
+(C) Copyright 2018 Hewlett Packard Enterprise Development LP<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
+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
 \r
 **/\r
@@ -16,7 +17,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #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
@@ -50,7 +53,7 @@ HII_VENDOR_DEVICE_PATH          mTcg2HiiVendorDevicePath = {
   {\r
     END_DEVICE_PATH_TYPE,\r
     END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
-    { \r
+    {\r
       (UINT8) (END_DEVICE_PATH_LENGTH),\r
       (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)\r
     }\r
@@ -59,46 +62,11 @@ HII_VENDOR_DEVICE_PATH          mTcg2HiiVendorDevicePath = {
 \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
@@ -126,7 +94,7 @@ 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
@@ -152,10 +120,11 @@ IsPtpFifoSupported (
 \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
@@ -167,12 +136,12 @@ SetPtpInterface (
   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
     return EFI_UNSUPPORTED;\r
   }\r
   InterfaceId.Uint32 = MmioRead32 ((UINTN)&((PTP_CRB_REGISTERS *)Register)->InterfaceId);\r
@@ -181,14 +150,14 @@ SetPtpInterface (
   }\r
 \r
   switch (PtpInterface) {\r
-  case TPM_DEVICE_INTERFACE_PTP_FIFO:\r
+  case Tpm2PtpInterfaceFifo:\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
+  case Tpm2PtpInterfaceCrb:\r
     if (InterfaceId.Bits.CapCRB == 0) {\r
       return EFI_UNSUPPORTED;\r
     }\r
@@ -330,7 +299,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
@@ -375,9 +344,163 @@ Tcg2RouteConfig (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
+  *Progress = Configuration;\r
+\r
   return EFI_NOT_FOUND;\r
 }\r
 \r
+/**\r
+  Get HID string of TPM2 ACPI device object\r
+\r
+  @param[in]  Hid               Points to HID String Buffer.\r
+  @param[in]  Size              HID String size in bytes. Must >= TPM_HID_ACPI_SIZE\r
+\r
+  @return                       HID String get status.\r
+\r
+**/\r
+EFI_STATUS\r
+GetTpm2HID(\r
+   CHAR8 *Hid,\r
+   UINTN  Size\r
+  )\r
+{\r
+  EFI_STATUS  Status;\r
+  UINT32      ManufacturerID;\r
+  UINT32      FirmwareVersion1;\r
+  UINT32      FirmwareVersion2;\r
+  BOOLEAN     PnpHID;\r
+\r
+  PnpHID = TRUE;\r
+\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
+    //\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
+      //\r
+      //  HID containing PNP ID "NNN####"\r
+      //   NNN is uppercase letter for Vendor ID specified by manufacturer\r
+      //\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
+      PnpHID = FALSE;\r
+    }\r
+  } else {\r
+    DEBUG ((DEBUG_ERROR, "Get TPM_PT_MANUFACTURER failed %x!\n", Status));\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
+    //\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
+    } else {\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
+    return Status;\r
+  }\r
+\r
+  return EFI_SUCCESS;\r
+}\r
+\r
+/**\r
+  This function processes the results of changes in configuration\r
+  for TCG2 version information.\r
+\r
+  @param[in] Action             Specifies the type of action taken by the browser.\r
+                                ASSERT if the Action is not EFI_BROWSER_ACTION_SUBMITTED.\r
+  @param[in] QuestionId         A unique value which is sent to the original\r
+                                exporting driver so that it can identify the type\r
+                                of data to expect.\r
+  @param[in] Type               The type of value for the question.\r
+  @param[in] Value              A pointer to the data being sent to the original\r
+                                exporting driver.\r
+\r
+  @retval EFI_SUCCESS           The callback successfully handled the action.\r
+\r
+**/\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
+  )\r
+{\r
+  EFI_INPUT_KEY                 Key;\r
+  UINT64                        PcdTcg2PpiVersion;\r
+  UINT8                         PcdTpm2AcpiTableRev;\r
+\r
+  ASSERT (Action == EFI_BROWSER_ACTION_SUBMITTED);\r
+\r
+  if (QuestionId == KEY_TCG2_PPI_VERSION) {\r
+    //\r
+    // Get the PCD value after EFI_BROWSER_ACTION_SUBMITTED,\r
+    // the SetVariable to TCG2_VERSION_NAME should have been done.\r
+    // If the PCD value is not equal to the value set to variable,\r
+    // the PCD is not DynamicHii type and does not map to the setup option.\r
+    //\r
+    PcdTcg2PpiVersion = 0;\r
+    CopyMem (\r
+      &PcdTcg2PpiVersion,\r
+      PcdGetPtr (PcdTcgPhysicalPresenceInterfaceVer),\r
+      AsciiStrSize ((CHAR8 *) PcdGetPtr (PcdTcgPhysicalPresenceInterfaceVer))\r
+      );\r
+    if (PcdTcg2PpiVersion != Value->u64) {\r
+      CreatePopUp (\r
+        EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
+        &Key,\r
+        L"WARNING: PcdTcgPhysicalPresenceInterfaceVer is not DynamicHii type and does not map to this option!",\r
+        L"The version configuring by this setup option will not work!",\r
+        NULL\r
+        );\r
+    }\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
+    // If the PCD value is not equal to the value set to variable,\r
+    // the PCD is not DynamicHii type and does not map to the setup option.\r
+    //\r
+    PcdTpm2AcpiTableRev = PcdGet8 (PcdTpm2AcpiTableRev);\r
+\r
+    if (PcdTpm2AcpiTableRev != Value->u8) {\r
+      CreatePopUp (\r
+        EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
+        &Key,\r
+        L"WARNING: PcdTpm2AcpiTableRev is not DynamicHii type and does not map to this option!",\r
+        L"The Revision configuring by this setup option will not work!",\r
+        NULL\r
+        );\r
+    }\r
+  }\r
+\r
+  return EFI_SUCCESS;\r
+}\r
+\r
 /**\r
   This function processes the results of changes in configuration.\r
 \r
@@ -411,15 +534,40 @@ Tcg2Callback (
      OUT EFI_BROWSER_ACTION_REQUEST            *ActionRequest\r
   )\r
 {\r
-  EFI_INPUT_KEY               Key;\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
   }\r
 \r
+  Private = TCG2_CONFIG_PRIVATE_DATA_FROM_THIS (This);\r
+\r
+  if (Action == EFI_BROWSER_ACTION_FORM_OPEN) {\r
+    //\r
+    // Update TPM2 HID info\r
+    //\r
+    if (QuestionId == KEY_TPM_DEVICE) {\r
+      Status = GetTpm2HID(HidStr, 16);\r
+\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
+        HiiSetString (Private->HiiHandle, STRING_TOKEN (STR_TPM2_ACPI_HID_CONTENT), UnHidStr, NULL);\r
+      }\r
+    }\r
+    return EFI_SUCCESS;\r
+  }\r
+\r
   if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
     if (QuestionId == KEY_TPM_DEVICE_INTERFACE) {\r
-      EFI_STATUS  Status;\r
       Status = SetPtpInterface ((VOID *) (UINTN) PcdGet64 (PcdTpmBaseAddress), Value->u8);\r
       if (EFI_ERROR (Status)) {\r
         CreatePopUp (\r
@@ -432,7 +580,7 @@ Tcg2Callback (
       }\r
     }\r
   }\r
-  \r
+\r
   if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
     if (QuestionId == KEY_TPM_DEVICE) {\r
       return EFI_SUCCESS;\r
@@ -444,7 +592,13 @@ Tcg2Callback (
       return SaveTcg2PpRequestParameter (Value->u32);\r
     }\r
     if ((QuestionId >= KEY_TPM2_PCR_BANKS_REQUEST_0) && (QuestionId <= KEY_TPM2_PCR_BANKS_REQUEST_4)) {\r
-      SaveTcg2PCRBanksRequest (QuestionId - KEY_TPM2_PCR_BANKS_REQUEST_0, Value->b);\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
+      return Tcg2VersionInfoCallback (Action, QuestionId, Type, Value);\r
     }\r
   }\r
 \r
@@ -616,33 +770,6 @@ FillBufferWithTCG2EventLogFormat (
   }\r
 }\r
 \r
-/**\r
-  Check if buffer is all zero.\r
-\r
-  @param[in] Buffer      Buffer to be checked.\r
-  @param[in] BufferSize  Size of buffer to be checked.\r
-\r
-  @retval TRUE  Buffer is all zero.\r
-  @retval FALSE Buffer is not all zero.\r
-**/\r
-BOOLEAN\r
-IsZeroBuffer (\r
-  IN VOID  *Buffer,\r
-  IN UINTN BufferSize\r
-  )\r
-{\r
-  UINT8 *BufferData;\r
-  UINTN Index;\r
-\r
-  BufferData = Buffer;\r
-  for (Index = 0; Index < BufferSize; Index++) {\r
-    if (BufferData[Index] != 0) {\r
-      return FALSE;\r
-    }\r
-  }\r
-  return TRUE;\r
-}\r
-\r
 /**\r
   This function publish the TCG2 configuration Form for TPM device.\r
 \r
@@ -666,7 +793,7 @@ InstallTcg2ConfigForm (
   TPML_PCR_SELECTION              Pcrs;\r
   CHAR16                          TempBuffer[1024];\r
   TCG2_CONFIGURATION_INFO         Tcg2ConfigInfo;\r
-  UINT8                           TpmDeviceInterfaceDetected;\r
+  TPM2_PTP_INTERFACE_TYPE         TpmDeviceInterfaceDetected;\r
 \r
   DriverHandle = NULL;\r
   ConfigAccess = &PrivateData->ConfigAccess;\r
@@ -702,11 +829,11 @@ 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
@@ -771,15 +898,15 @@ InstallTcg2ConfigForm (
   // 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
+    case Tpm2PtpInterfaceTis:\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
+    case Tpm2PtpInterfaceFifo:\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
+    case Tpm2PtpInterfaceCrb:\r
       HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_DEVICE_INTERFACE_STATE_CONTENT), L"PTP CRB", NULL);\r
       break;\r
      default:\r
@@ -789,13 +916,13 @@ InstallTcg2ConfigForm (
 \r
     Tcg2ConfigInfo.TpmDeviceInterfaceAttempt = TpmDeviceInterfaceDetected;\r
     switch (TpmDeviceInterfaceDetected) {\r
-    case TPM_DEVICE_INTERFACE_TIS:\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 TPM_DEVICE_INTERFACE_PTP_FIFO:\r
-    case TPM_DEVICE_INTERFACE_PTP_CRB:\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
@@ -834,7 +961,8 @@ InstallTcg2ConfigForm (
   if (EFI_ERROR (Status)) {\r
     DEBUG ((EFI_D_ERROR, "Tcg2ConfigDriver: Fail to set TCG2_STORAGE_INFO_NAME\n"));\r
   }\r
-  return EFI_SUCCESS;  \r
+\r
+  return EFI_SUCCESS;\r
 }\r
 \r
 /**\r
@@ -870,6 +998,6 @@ UninstallTcg2ConfigForm (
            );\r
     PrivateData->DriverHandle = NULL;\r
   }\r
-  \r
+\r
   FreePool (PrivateData);\r
 }\r