);\r
ASSERT_EFI_ERROR (Status);\r
\r
- //\r
- // Update Table version before measuring it to PCR\r
- //\r
- 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
// Measure to PCR[0] with event EV_POST_CODE ACPI DATA.\r
- // The measurement has to be done before UpdateHID since TPM2 ACPI HID\r
- // imply TPM Firmware Version. Otherwise, the PCR record would be\r
- // different after TPM FW update.\r
+ // The measurement has to be done before any update.\r
+ // Otherwise, the PCR record would be different after TPM FW update\r
+ // or the PCD configuration change.\r
//\r
TpmMeasureAndLogData(\r
0,\r
TableSize\r
);\r
\r
+ //\r
+ // Update Table version before measuring it to PCR\r
+ //\r
+ 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 after measuring it to PCR\r
//\r
EFI_TPM2_ACPI_CONTROL_AREA *ControlArea;\r
TPM2_PTP_INTERFACE_TYPE InterfaceType;\r
\r
+ //\r
+ // Measure to PCR[0] with event EV_POST_CODE ACPI DATA.\r
+ // The measurement has to be done before any update.\r
+ // Otherwise, the PCR record would be different after event log update\r
+ // or the PCD configuration change.\r
+ //\r
+ TpmMeasureAndLogData(\r
+ 0,\r
+ EV_POST_CODE,\r
+ EV_POSTCODE_INFO_ACPI_DATA,\r
+ ACPI_DATA_LEN,\r
+ &mTpm2AcpiTemplate,\r
+ mTpm2AcpiTemplate.Header.Length\r
+ );\r
+\r
mTpm2AcpiTemplate.Header.Revision = PcdGet8(PcdTpm2AcpiTableRev);\r
DEBUG((DEBUG_INFO, "Tpm2 ACPI table revision is %d\n", mTpm2AcpiTemplate.Header.Revision));\r
\r
mTpm2AcpiTemplate.Header.Length = sizeof(EFI_TPM2_ACPI_TABLE);\r
}\r
\r
- //\r
- // Measure to PCR[0] with event EV_POST_CODE ACPI DATA\r
- //\r
- TpmMeasureAndLogData(\r
- 0,\r
- EV_POST_CODE,\r
- EV_POSTCODE_INFO_ACPI_DATA,\r
- ACPI_DATA_LEN,\r
- &mTpm2AcpiTemplate,\r
- mTpm2AcpiTemplate.Header.Length\r
- );\r
-\r
InterfaceType = PcdGet8(PcdActiveTpmInterfaceType);\r
switch (InterfaceType) {\r
case Tpm2PtpInterfaceCrb:\r