]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c
SecurityPkg: Tcg2ConfigDxe/Tcg2Smm: Fix TPM2 HID issue
[mirror_edk2.git] / SecurityPkg / Tcg / Tcg2Smm / Tcg2Smm.c
index 3ca6958a6eb313dc9616600c1dc3a2b6f79bf248..1df2da8688f8064e779db103f6c9069823906fba 100644 (file)
@@ -77,13 +77,14 @@ EFI_TPM2_ACPI_TABLE  mTpm2AcpiTemplate = {
   {\r
     EFI_ACPI_5_0_TRUSTED_COMPUTING_PLATFORM_2_TABLE_SIGNATURE,\r
     sizeof (mTpm2AcpiTemplate),\r
-    EFI_TPM2_ACPI_TABLE_REVISION,\r
+    EFI_TPM2_ACPI_TABLE_REVISION_4,\r
     //\r
     // Compiler initializes the remaining bytes to 0\r
     // These fields should be filled in in production\r
     //\r
   },\r
-  0, // Flags\r
+  0, // 16-bit PlatformClass\r
+  0, // 16-bit Reserved\r
   0, // Control Area\r
   EFI_TPM2_ACPI_TABLE_START_METHOD_TIS, // StartMethod\r
 };\r
@@ -368,9 +369,9 @@ UpdateHID (
     //   #### 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
@@ -439,6 +440,12 @@ PublishAcpiTable (
   Status = UpdatePPVersion(Table, (CHAR8 *)PcdGetPtr(PcdTcgPhysicalPresenceInterfaceVer));\r
   ASSERT_EFI_ERROR (Status);\r
 \r
+  DEBUG ((\r
+    DEBUG_INFO,\r
+    "Current physical presence interface version - %a\n",\r
+    (CHAR8 *) PcdGetPtr(PcdTcgPhysicalPresenceInterfaceVer)\r
+    ));\r
+\r
   //\r
   // Update TPM2 HID before measuring it to PCR\r
   //\r
@@ -502,6 +509,9 @@ PublishTpm2 (
   EFI_TPM2_ACPI_CONTROL_AREA     *ControlArea;\r
   PTP_INTERFACE_TYPE             InterfaceType;\r
 \r
+  mTpm2AcpiTemplate.Header.Revision = PcdGet8(PcdTpm2AcpiTableRev);\r
+  DEBUG((DEBUG_INFO, "Tpm2 ACPI table revision is %d\n", mTpm2AcpiTemplate.Header.Revision));\r
+\r
   //\r
   // Measure to PCR[0] with event EV_POST_CODE ACPI DATA\r
   //\r