]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c
SecurityPkg: Tcg2Smm: Enhance TIS interface detection
[mirror_edk2.git] / SecurityPkg / Tcg / Tcg2Smm / Tcg2Smm.c
index b4974755b2bda32518e7af05ac619004124b840f..1c2d8ba389a1e19b392cb800529218ab9d40beea 100644 (file)
@@ -50,18 +50,27 @@ GetPtpInterface (
   InterfaceId.Uint32 = MmioRead32 ((UINTN)&((PTP_CRB_REGISTERS *)Register)->InterfaceId);\r
   InterfaceCapability.Uint32 = MmioRead32 ((UINTN)&((PTP_FIFO_REGISTERS *)Register)->InterfaceCapability);\r
 \r
   InterfaceId.Uint32 = MmioRead32 ((UINTN)&((PTP_CRB_REGISTERS *)Register)->InterfaceId);\r
   InterfaceCapability.Uint32 = MmioRead32 ((UINTN)&((PTP_FIFO_REGISTERS *)Register)->InterfaceCapability);\r
 \r
+  if (InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_TIS) {\r
+    return PtpInterfaceTis;\r
+  }\r
+\r
   if ((InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_CRB) &&\r
       (InterfaceId.Bits.InterfaceVersion == PTP_INTERFACE_IDENTIFIER_INTERFACE_VERSION_CRB) &&\r
       (InterfaceId.Bits.CapCRB != 0)) {\r
     return PtpInterfaceCrb;\r
   }\r
   if ((InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_CRB) &&\r
       (InterfaceId.Bits.InterfaceVersion == PTP_INTERFACE_IDENTIFIER_INTERFACE_VERSION_CRB) &&\r
       (InterfaceId.Bits.CapCRB != 0)) {\r
     return PtpInterfaceCrb;\r
   }\r
+\r
   if ((InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_FIFO) &&\r
       (InterfaceId.Bits.InterfaceVersion == PTP_INTERFACE_IDENTIFIER_INTERFACE_VERSION_FIFO) &&\r
       (InterfaceId.Bits.CapFIFO != 0) &&\r
       (InterfaceCapability.Bits.InterfaceVersion == INTERFACE_CAPABILITY_INTERFACE_VERSION_PTP)) {\r
     return PtpInterfaceFifo;\r
   }\r
   if ((InterfaceId.Bits.InterfaceType == PTP_INTERFACE_IDENTIFIER_INTERFACE_TYPE_FIFO) &&\r
       (InterfaceId.Bits.InterfaceVersion == PTP_INTERFACE_IDENTIFIER_INTERFACE_VERSION_FIFO) &&\r
       (InterfaceId.Bits.CapFIFO != 0) &&\r
       (InterfaceCapability.Bits.InterfaceVersion == INTERFACE_CAPABILITY_INTERFACE_VERSION_PTP)) {\r
     return PtpInterfaceFifo;\r
   }\r
-  return PtpInterfaceTis;\r
+\r
+  //\r
+  // No Ptp interface available\r
+  //\r
+  return PtpInterfaceMax;\r
 }\r
 \r
 EFI_TPM2_ACPI_TABLE  mTpm2AcpiTemplate = {\r
 }\r
 \r
 EFI_TPM2_ACPI_TABLE  mTpm2AcpiTemplate = {\r
@@ -400,6 +409,7 @@ PublishTpm2 (
   case PtpInterfaceTis:\r
     break;\r
   default:\r
   case PtpInterfaceTis:\r
     break;\r
   default:\r
+    DEBUG((EFI_D_ERROR, "TPM2 InterfaceType get error! %d\n", InterfaceType));\r
     break;\r
   }\r
 \r
     break;\r
   }\r
 \r