]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigImpl.c
SecurityPkg: Tcg2Config: TPM2 ACPI Table Rev Option
[mirror_edk2.git] / SecurityPkg / Tcg / Tcg2Config / Tcg2ConfigImpl.c
index f4a07c6420093bbf3034af06b6a175c2a6ba0c01..a83000fda1385102f276e9f09c1a43f3dac61e58 100644 (file)
@@ -481,6 +481,7 @@ Tcg2VersionInfoCallback (
 {\r
   EFI_INPUT_KEY                 Key;\r
   UINT64                        PcdTcg2PpiVersion;\r
+  UINT8                         PcdTpm2AcpiTableRev;\r
 \r
   ASSERT (Action == EFI_BROWSER_ACTION_SUBMITTED);\r
 \r
@@ -506,6 +507,24 @@ Tcg2VersionInfoCallback (
         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
@@ -607,7 +626,7 @@ Tcg2Callback (
   }\r
 \r
   if (Action == EFI_BROWSER_ACTION_SUBMITTED) {\r
-    if (QuestionId == KEY_TCG2_PPI_VERSION) {\r
+    if (QuestionId == KEY_TCG2_PPI_VERSION || QuestionId == KEY_TPM2_ACPI_REVISION) {\r
       return Tcg2VersionInfoCallback (Action, QuestionId, Type, Value);\r
     }\r
   }\r
@@ -971,6 +990,7 @@ InstallTcg2ConfigForm (
   if (EFI_ERROR (Status)) {\r
     DEBUG ((EFI_D_ERROR, "Tcg2ConfigDriver: Fail to set TCG2_STORAGE_INFO_NAME\n"));\r
   }\r
+\r
   return EFI_SUCCESS;  \r
 }\r
 \r