TCG2_VERSION Tcg2Version;\r
UINTN DataSize;\r
UINT64 PcdTcg2PpiVersion;\r
+ UINT8 PcdTpm2AcpiTableRev;\r
\r
//\r
// Get the PCD value before initializing efi varstore configuration data.\r
AsciiStrSize ((CHAR8 *) PcdGetPtr (PcdTcgPhysicalPresenceInterfaceVer))\r
);\r
\r
+ PcdTpm2AcpiTableRev = PcdGet8 (PcdTpm2AcpiTableRev);\r
+\r
//\r
// Initialize efi varstore configuration data.\r
//\r
}\r
} else {\r
//\r
- // EFI variable doesn't exist.\r
+ // EFI variable doesn't exist or variable size is not expected.\r
//\r
\r
//\r
DEBUG ((DEBUG_WARN, "WARNING: PcdTcgPhysicalPresenceInterfaceVer default value is not same with the default value in VFR\n"));\r
DEBUG ((DEBUG_WARN, "WARNING: The default value in VFR has be chosen\n"));\r
}\r
+ if (PcdTpm2AcpiTableRev != Tcg2Version.Tpm2AcpiTableRev) {\r
+ DEBUG ((DEBUG_WARN, "WARNING: PcdTpm2AcpiTableRev default value is not same with the default value in VFR\n"));\r
+ DEBUG ((DEBUG_WARN, "WARNING: The default value in VFR has be chosen\n"));\r
+ }\r
}\r
}\r
FreePool (ConfigRequestHdr);\r
//\r
// Get the PCD value again.\r
// If the PCD value is not equal to the value in variable,\r
- // the PCD is not DynamicHii type and maps to the setup option.\r
+ // the PCD is not DynamicHii type and does not map to the setup option.\r
//\r
PcdTcg2PpiVersion = 0;\r
CopyMem (\r
AsciiStrSize ((CHAR8 *) PcdGetPtr (PcdTcgPhysicalPresenceInterfaceVer))\r
);\r
if (PcdTcg2PpiVersion != Tcg2Version.PpiVersion) {\r
- DEBUG ((DEBUG_WARN, "WARNING: PcdTcgPhysicalPresenceInterfaceVer is not DynamicHii type and maps to TCG2_VERSION.PpiVersion\n"));\r
+ DEBUG ((DEBUG_WARN, "WARNING: PcdTcgPhysicalPresenceInterfaceVer is not DynamicHii type and does not map to TCG2_VERSION.PpiVersion\n"));\r
DEBUG ((DEBUG_WARN, "WARNING: The TCG2 PPI version configuring from setup page will not work\n"));\r
}\r
\r
ASSERT (FALSE);\r
break;\r
}\r
+\r
+ //\r
+ // Get the PcdTpm2AcpiTableRev value again.\r
+ // If the PCD value is not equal to the value in variable,\r
+ // the PCD is not DynamicHii type and does not map to TCG2_VERSION Variable.\r
+ //\r
+ PcdTpm2AcpiTableRev = PcdGet8 (PcdTpm2AcpiTableRev);\r
+ if (PcdTpm2AcpiTableRev != Tcg2Version.Tpm2AcpiTableRev) {\r
+ DEBUG ((DEBUG_WARN, "WARNING: PcdTpm2AcpiTableRev is not DynamicHii type and does not map to TCG2_VERSION.Tpm2AcpiTableRev\n"));\r
+ DEBUG ((DEBUG_WARN, "WARNING: The Tpm2 ACPI Revision configuring from setup page will not work\n"));\r
+ }\r
+\r
+ switch (PcdTpm2AcpiTableRev) {\r
+ case EFI_TPM2_ACPI_TABLE_REVISION_3:\r
+ HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TPM2_ACPI_REVISION_STATE_CONTENT), L"Rev 3", NULL);\r
+ break;\r
+ case EFI_TPM2_ACPI_TABLE_REVISION_4:\r
+ HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TPM2_ACPI_REVISION_STATE_CONTENT), L"Rev 4", NULL);\r
+ break;\r
+ default:\r
+ ASSERT (FALSE);\r
+ break;\r
+ }\r
}\r
\r
/**\r