]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Tcg/TcgDxe/TcgDxe.c
Add TPM2 implementation.
[mirror_edk2.git] / SecurityPkg / Tcg / TcgDxe / TcgDxe.c
index 4f3568ba840123b9acde334cb67499ec99f0fb3b..322d726037e949f373e613a58b2f8b1ea29e3192 100644 (file)
@@ -24,6 +24,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #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
@@ -31,6 +32,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #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
@@ -53,38 +56,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \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
@@ -1344,6 +1315,11 @@ DriverEntry (
   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