DxeTbtPolicy.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. /** @file
  2. TBT DXE Policy
  3. Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #ifndef _DXE_TBT_POLICY_H_
  7. #define _DXE_TBT_POLICY_H_
  8. #include <TbtPolicyCommonDefinition.h>
  9. #pragma pack(push, 1)
  10. #define DXE_TBT_POLICY_REVISION 1
  11. //
  12. // TBT Common Data Structure
  13. //
  14. typedef struct _TBT_COMMON_CONFIG{
  15. /**
  16. TBT Security Level
  17. <b>0: SL0 No Security</b>, 1: SL1 User Authorization, 2: SL2 Secure Connect, 3: SL3 Display Port and USB
  18. **/
  19. UINT32 SecurityMode : 3;
  20. /**
  21. BIOS W/A for Hot plug of 12V USB devices cause electrical noise on PCH GPIOs
  22. <b>0: Disabled</b>, 1: Enabled
  23. **/
  24. UINT32 Gpio5Filter : 1;
  25. /**
  26. WA for TR A0 OS_UP Command, it is only needed for TR A0 stepping
  27. <b>0: Disabled</b>, 1: Enabled
  28. **/
  29. UINT32 TrA0OsupWa : 1;
  30. /**
  31. Send Go2SxNoWake or GoSxWake according to TbtWakeupSupport
  32. <b>0: Disabled</b>, 1: Enabled
  33. **/
  34. UINT32 TbtWakeupSupport : 1;
  35. /**
  36. SMI TBT enumeration
  37. <b>0: Disabled</b>, 1: Enabled
  38. **/
  39. UINT32 TbtHotSMI : 1;
  40. /**
  41. Notify PCIe RP after Hot-Plug/Hot-Unplug occurred.
  42. <b>0: Disabled</b>, 1: Enabled
  43. **/
  44. UINT32 TbtHotNotify : 1;
  45. /**
  46. CLK REQ for all the PCIe device in TBT daisy chain.
  47. <b>0: Disabled</b>, 1: Enabled
  48. **/
  49. UINT32 TbtSetClkReq : 1;
  50. /**
  51. ASPM setting for all the PCIe device in TBT daisy chain.
  52. <b>0: Disabled</b>, 1: L0s, 2: L1, 3: L0sL1
  53. **/
  54. UINT32 TbtAspm : 2;
  55. /**
  56. L1 SubState for for all the PCIe device in TBT daisy chain.
  57. <b>0: Disabled</b>, 1: L1.1, 2: L1.1 & L1.2
  58. **/
  59. UINT32 TbtL1SubStates : 2;
  60. /**
  61. LTR for for all the PCIe device in TBT daisy chain.
  62. <b>0: Disabled</b>, 1: Enabled
  63. **/
  64. UINT32 TbtLtr : 1;
  65. /**
  66. PTM for for all the PCIe device in TBT daisy chain.
  67. <b>0: Disabled</b>, 1: Enabled
  68. **/
  69. UINT32 TbtPtm : 1;
  70. /**
  71. TBT Dynamic AC/DC L1.
  72. <b>0: Disabled</b>, 1: Enabled
  73. **/
  74. UINT32 TbtAcDcSwitch : 1;
  75. /**
  76. TBT RTD3 Support.
  77. <b>0: Disabled</b>, 1: Enabled
  78. **/
  79. UINT32 Rtd3Tbt : 1;
  80. /**
  81. TBT ClkReq for RTD3 Flow.
  82. <b>0: Disabled</b>, 1: Enabled
  83. **/
  84. UINT32 Rtd3TbtClkReq : 1;
  85. /**
  86. TBT Win10support for Tbt FW execution mode.
  87. <b>0: Disabled</b>, 1: Native, 2: Native + RTD3
  88. **/
  89. UINT32 Win10Support : 2;
  90. /**
  91. TbtVtdBaseSecurity
  92. <b>0: Disabled</b>, 1: Enabled
  93. **/
  94. UINT32 TbtVtdBaseSecurity: 1;
  95. /**
  96. Control Iommu behavior in pre-boot
  97. <b>0: Disabled Iommu</b>, 1: Enable Iommu, Disable exception list, 2: Enable Iommu, Enable exception list
  98. **/
  99. UINT32 ControlIommu : 3;
  100. UINT32 Rsvd0 : 8; ///< Reserved bits
  101. UINT16 Rtd3TbtClkReqDelay;
  102. UINT16 Rtd3TbtOffDelay;
  103. } TBT_COMMON_CONFIG;
  104. //
  105. // dTBT Resource Data Structure
  106. //
  107. typedef struct _DTBT_RESOURCE_CONFIG{
  108. UINT8 DTbtPcieExtraBusRsvd; ///< Preserve Bus resource for PCIe RP that connect to dTBT Host Router
  109. UINT16 DTbtPcieMemRsvd; ///< Preserve MEM resource for PCIe RP that connect to dTBT Host Router
  110. UINT8 DTbtPcieMemAddrRngMax; ///< Alignment of Preserve MEM resource for PCIe RP that connect to dTBT Host Router
  111. UINT16 DTbtPciePMemRsvd; ///< Preserve PMEM resource for PCIe RP that connect to dTBT Host Router
  112. UINT8 DTbtPciePMemAddrRngMax; ///< Alignment of Preserve PMEM resource for PCIe RP that connect to dTBT Host Router
  113. UINT8 Reserved[1]; ///< Reserved for DWORD alignment
  114. } DTBT_RESOURCE_CONFIG;
  115. /**
  116. TBT DXE configuration\n
  117. <b>Revision 1</b>:
  118. - Initial version.
  119. **/
  120. typedef struct _DXE_TBT_POLICY_PROTOCOL {
  121. TBT_COMMON_CONFIG TbtCommonConfig; ///< Tbt Common Information
  122. DTBT_RESOURCE_CONFIG DTbtResourceConfig[MAX_DTBT_CONTROLLER_NUMBER]; ///< dTbt Resource Configuration
  123. } DXE_TBT_POLICY_PROTOCOL;
  124. #pragma pack(pop)
  125. #endif