#include <IndustryStandard/Acpi.h>\r
#include <IndustryStandard/PeImage.h>\r
#include <IndustryStandard/SmBios.h>\r
+#include <IndustryStandard/TcpaAcpi.h>\r
\r
#include <Guid/GlobalVariable.h>\r
#include <Guid/SmBios.h>\r
#include <Guid/TcgEventHob.h>\r
#include <Guid/EventGroup.h>\r
#include <Guid/EventExitBootServiceFailed.h>\r
+#include <Guid/TpmInstance.h>\r
+\r
#include <Protocol/DevicePath.h>\r
#include <Protocol/TcgService.h>\r
#include <Protocol/AcpiTable.h>\r
\r
#define EFI_TCG_LOG_AREA_SIZE 0x10000\r
\r
-#pragma pack (1)\r
-\r
-typedef struct _EFI_TCG_CLIENT_ACPI_TABLE {\r
- EFI_ACPI_DESCRIPTION_HEADER Header;\r
- UINT16 PlatformClass;\r
- UINT32 Laml;\r
- EFI_PHYSICAL_ADDRESS Lasa;\r
-} EFI_TCG_CLIENT_ACPI_TABLE;\r
-\r
-typedef struct _EFI_TCG_SERVER_ACPI_TABLE {\r
- EFI_ACPI_DESCRIPTION_HEADER Header;\r
- UINT16 PlatformClass;\r
- UINT16 Reserved0;\r
- UINT64 Laml;\r
- EFI_PHYSICAL_ADDRESS Lasa;\r
- UINT16 SpecRev;\r
- UINT8 DeviceFlags;\r
- UINT8 InterruptFlags;\r
- UINT8 Gpe;\r
- UINT8 Reserved1[3];\r
- UINT32 GlobalSysInt;\r
- EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE BaseAddress;\r
- UINT32 Reserved2;\r
- EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE ConfigAddress;\r
- UINT8 PciSegNum;\r
- UINT8 PciBusNum;\r
- UINT8 PciDevNum;\r
- UINT8 PciFuncNum;\r
-} EFI_TCG_SERVER_ACPI_TABLE;\r
-\r
-#pragma pack ()\r
-\r
#define TCG_DXE_DATA_FROM_THIS(this) \\r
BASE_CR (this, TCG_DXE_DATA, TcgProtocol)\r
\r
EFI_EVENT Event;\r
VOID *Registration;\r
\r
+ if (!CompareGuid (PcdGetPtr(PcdTpmInstanceGuid), &gEfiTpmDeviceInstanceTpm12Guid)){\r
+ DEBUG ((EFI_D_ERROR, "No TPM12 instance required!\n"));\r
+ return EFI_UNSUPPORTED;\r
+ }\r
+\r
mTcgDxeData.TpmHandle = (TIS_TPM_HANDLE)(UINTN)TPM_BASE_ADDRESS;\r
Status = TisPcRequestUseTpm (mTcgDxeData.TpmHandle);\r
if (EFI_ERROR (Status)) {\r