BoardFeatures.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. /*++
  2. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
  3. SPDX-License-Identifier: BSD-2-Clause-Patent
  4. Module Name:
  5. BoardFeatures.h
  6. Abstract:
  7. EFI Platform Board Features
  8. --*/
  9. #ifndef BoardFeatures_h_included
  10. #define BoardFeatures_h_included
  11. #include <Base.h>
  12. #pragma pack(1)
  13. //
  14. // Board Features
  15. //
  16. #if defined LEGACY_BOARD_FEATURES && LEGACY_BOARD_FEATURES
  17. #define B_BOARD_FEATURES_CHIPSET_LAN BIT0
  18. #define B_BOARD_FEATURES_LAN_MARVELL BIT1
  19. #define B_BOARD_FEATURES_AA_NOT_FOUND BIT2
  20. #define B_BOARD_FEATURES_SIO_NO_COM1 BIT3
  21. #define B_BOARD_FEATURES_SIO_COM2 BIT4
  22. #define B_BOARD_FEATURES_SIO_NO_PARALLEL BIT5
  23. #define B_BOARD_FEATURES_CHIPSET_VIDEO BIT6
  24. #define B_BOARD_FEATURES_CHIPSET_VIDEO_OPTION0 BIT7
  25. #define B_BOARD_FEATURES_VIDEO_SLOT BIT8
  26. #define B_BOARD_FEATURES_MINI_CARD BIT9
  27. #define B_BOARD_FEATURES_DISCRETE_1394 BIT10
  28. #define B_BOARD_FEATURES_LEGACY_FREE BIT11
  29. #define B_BOARD_FEATURES_USB_HUB BIT12
  30. #define B_BOARD_FEATURES_TPM BIT13
  31. #define B_BOARD_FEATURES_VIIV BIT14
  32. #define B_BOARD_FEATURES_FORM_FACTOR_MASK (BIT15|BIT16|BIT17|BIT18|BIT19)
  33. #define B_BOARD_FEATURES_FORM_FACTOR_PBTX BIT15
  34. #define B_BOARD_FEATURES_FORM_FACTOR_ATX BIT16
  35. #define B_BOARD_FEATURES_FORM_FACTOR_BTX BIT17
  36. #define B_BOARD_FEATURES_FORM_FACTOR_MICRO_ATX BIT18
  37. #define B_BOARD_FEATURES_FORM_FACTOR_MICRO_BTX BIT19
  38. #define B_BOARD_FEATURES_MEMORY_TYPE_DDR1 BIT20
  39. #define B_BOARD_FEATURES_MEMORY_TYPE_DDR2 BIT21
  40. #define B_BOARD_FEATURES_MEMORY_SLOT_MASK BIT23 | BIT22
  41. #define V_BOARD_FEATURES_1_MEMORY_SLOT 0 // BIT22=0, BIT23=0
  42. #define V_BOARD_FEATURES_2_MEMORY_SLOT BIT22 // BIT22=1, BIT23=0
  43. #define V_BOARD_FEATURES_3_MEMORY_SLOT BIT23 // BIT22=0, BIT23=1
  44. #define V_BOARD_FEATURES_4_MEMORY_SLOT BIT23 | BIT22 // BIT22=1, BIT23=1
  45. #define B_BOARD_FEATURES_ALT_MEM_CLK_RT BIT24
  46. #define B_BOARD_FEATURES_SLEEP_MASK BIT25
  47. #define V_BOARD_FEATURES_SLEEP_S1 0 // BIT25=0
  48. #define V_BOARD_FEATURES_SLEEP_S3 BIT25 // BIT25=1
  49. #define B_BOARD_FEATURES_3JACK_AUDIO_SOLUTION BIT26 // 0/1= 5/3 Rear Jacks
  50. #define B_BOARD_FEATURES_DISCRETE_SATA BIT27
  51. #define B_BOARD_FEATURES_2_SATA BIT28 // 2SATA instead of 4(pre Ich8) or 4 SATA instead of 6(Ich8)
  52. #define B_BOARD_FEATURES_RVP BIT29 // Board is an RVP board
  53. #define B_BOARD_FEATURES_PORT80_LPC BIT30 // Port80 PCI(0) or LPC(1)
  54. #define B_BOARD_FEATURES_LIMITED_CPU_SUPPORT BIT31 // Limited CPU support
  55. #define B_BOARD_FEATURES_PMP_SUPPORT BIT32 // Support for over-voltaging memory
  56. #define B_BOARD_FEATURES_HW_WATCHDOG_TIMER BIT33 // Support for the HW-based 555 Watchdog Timer feature
  57. #define B_BOARD_FEATURES_NO_QRT BIT34 // disable QRT
  58. #define B_BOARD_FEATURES_VERB_TABLE1 BIT35 // Verb table 1
  59. #define B_BOARD_FEATURES_VERB_TABLE2 BIT36 // Verb table 2
  60. #define B_BOARD_FEATURES_VERB_TABLE3 BIT37 // Verb table 3
  61. #define B_BOARD_FEATURES_VERB_TABLE4 BIT38 // Verb table 4
  62. #define B_BOARD_FEATURES_VERB_TABLE5 BIT39 // Reserved for Verb table 5
  63. #define B_BOARD_FEATURES_VERB_TABLE_MASK BIT35 | BIT36 | BIT37 | BIT38 | BIT39
  64. #define B_BOARD_FEATURES_KENTSFIELD_BLOCK BIT40 // Kentsfield not supported
  65. #define B_BOARD_FEATURES_KENTSFIELD_WARNING BIT41 // Kentsfield warning
  66. #define B_BOARD_FEATURES_ESATA_PORT0 BIT42 // E-SATA on Port0
  67. #define B_BOARD_FEATURES_ESATA_PORT1 BIT43 // E-SATA on Port1
  68. #define B_BOARD_FEATURES_ESATA_PORT2 BIT44 // E-SATA on Port2
  69. #define B_BOARD_FEATURES_ESATA_PORT3 BIT45 // E-SATA on Port3
  70. #define B_BOARD_FEATURES_ESATA_PORT4 BIT46 // E-SATA on Port4
  71. #define B_BOARD_FEATURES_ESATA_PORT5 BIT47 // E-SATA on Port5
  72. #define B_BOARD_FEATURES_ECIR BIT48 // Enhanced Consumer IR
  73. #define B_BOARD_FEATURES_PS2WAKEFROMS5 BIT49 // Wake from S5 via PS2 keyboard
  74. #define B_BOARD_FEATURES_HDAUDIOLINK BIT50 // HD audio link support
  75. #define B_BOARD_FEATURES_1_PATA BIT51
  76. #define B_BOARD_FEATURES_MOBILE BIT52
  77. #define B_BOARD_FEATURES_NO_FLOPPY BIT53
  78. #define B_BOARD_FEATURES_DISABLE_UNUSED_FSB BIT54
  79. //
  80. // Bit 55-58 reserved by PSID support. CPU power requirement below are preliminary.
  81. // They might be changed.
  82. // This is not same as 8.6.1 products so be careful.
  83. //
  84. #define B_BOARD_FEATURES_CPU_POWER_BITNUM 55
  85. #define B_BOARD_FEATURES_CPU_POWER_MASK (BIT55 | BIT56 | BIT57 | BIT58)
  86. #define B_BOARD_FEATURES_CPU_POWER_35W 0 // Theoretically doesn't exist.
  87. #define B_BOARD_FEATURES_CPU_POWER_40W BIT55 // 0001
  88. #define B_BOARD_FEATURES_CPU_POWER_45W BIT56 // 0010
  89. #define B_BOARD_FEATURES_CPU_POWER_50W (BIT55 | BIT56) // 0011
  90. #define B_BOARD_FEATURES_CPU_POWER_65W BIT57 // 0100 Wolfdale-H/-M
  91. #define B_BOARD_FEATURES_CPU_POWER_70W (BIT55 | BIT57) // 0101
  92. #define B_BOARD_FEATURES_CPU_POWER_75W (BIT56 | BIT57) // 0110
  93. #define B_BOARD_FEATURES_CPU_POWER_80W (BIT55 | BIT56 | BIT57) // 0111
  94. #define B_BOARD_FEATURES_CPU_POWER_95W BIT58 // 1000 Yorkfield
  95. #define B_BOARD_FEATURES_CPU_POWER_100W (BIT55 | BIT58) // 1001
  96. #define B_BOARD_FEATURES_CPU_POWER_105W (BIT56 | BIT58) // 1010
  97. #define B_BOARD_FEATURES_CPU_POWER_110W (BIT55 | BIT56 | BIT58) // 1011
  98. #define B_BOARD_FEATURES_CPU_POWER_130W (BIT57 | BIT58) // 1100 XE Yorkfield
  99. #define B_BOARD_FEATURES_CPU_POWER_135W (BIT55 | BIT57 | BIT58) // 1101
  100. #define B_BOARD_FEATURES_CPU_POWER_Over135W (BIT56 | BIT57 | BIT58) // 1110 Reserved
  101. #define B_BOARD_FEATURES_CPU_POWER_140W (BIT55 | BIT56 | BIT57 | BIT58) // 1111 Reserved
  102. #define B_VV_BOARD_FEATURES BIT59
  103. #define B_BOARD_FEATURES_IDCC2_SUPPORT BIT60 // Include IDCC2 support
  104. #define B_BOARD_FEATURES_NO_SATA_PORT2_3 BIT61 // No SATA Port2&3 Connector, used with B_BOARD_FEATURES_2_SATA flag
  105. #define B_BOARD_FEATURES_FORM_FACTOR_MINI_ITX BIT62
  106. #define B_BOARD_FEATURES_NPI_QPI_VOLTAGE BIT63
  107. #else
  108. #define B_BOARD_FEATURES_CHIPSET_LAN BIT0
  109. #define B_BOARD_FEATURES_CHIPSET_VIDEO BIT1
  110. #define B_BOARD_FEATURES_VIDEO_SLOT BIT2
  111. #define B_BOARD_FEATURES_AA_NOT_FOUND BIT3
  112. #define B_BOARD_FEATURES_SIO_NO_COM1 BIT4
  113. #define B_BOARD_FEATURES_SIO_COM2 BIT5
  114. #define B_BOARD_FEATURES_SIO_NO_PARALLEL BIT6
  115. #define B_BOARD_FEATURES_NO_FLOPPY BIT7
  116. #define B_BOARD_FEATURES_PS2WAKEFROMS5 BIT8 // Wake from S5 via PS2 keyboard
  117. #define B_BOARD_FEATURES_ECIR BIT9 // Enhanced Consumer IR
  118. #define B_BOARD_FEATURES_LEGACY_FREE BIT10
  119. #define B_BOARD_FEATURES_MINI_CARD BIT11
  120. #define B_BOARD_FEATURES_DISCRETE_1394 BIT12
  121. #define B_BOARD_FEATURES_USB_HUB BIT13
  122. #define B_BOARD_FEATURES_TPM BIT14
  123. #define B_BOARD_FEATURES_FORM_FACTOR_MASK (BIT15|BIT16|BIT17|BIT18|BIT19|BIT20)
  124. #define B_BOARD_FEATURES_FORM_FACTOR_PBTX BIT15
  125. #define B_BOARD_FEATURES_FORM_FACTOR_ATX BIT16
  126. #define B_BOARD_FEATURES_FORM_FACTOR_BTX BIT17
  127. #define B_BOARD_FEATURES_FORM_FACTOR_MICRO_ATX BIT18
  128. #define B_BOARD_FEATURES_FORM_FACTOR_MICRO_BTX BIT19
  129. #define B_BOARD_FEATURES_FORM_FACTOR_MINI_ITX BIT20
  130. #define B_BOARD_FEATURES_MEMORY_TYPE_DDR2 BIT21
  131. #define B_BOARD_FEATURES_MEMORY_TYPE_DDR3 BIT22
  132. #define B_BOARD_FEATURES_MEMORY_SLOT_MASK (BIT24 | BIT23)
  133. #define V_BOARD_FEATURES_1_MEMORY_SLOT 0 // BIT23=0, BIT24=0
  134. #define V_BOARD_FEATURES_2_MEMORY_SLOT BIT23 // BIT23=1, BIT24=0
  135. #define V_BOARD_FEATURES_3_MEMORY_SLOT BIT24 // BIT23=0, BIT24=1
  136. #define V_BOARD_FEATURES_4_MEMORY_SLOT (BIT24 | BIT23) // BIT23=1, BIT24=1
  137. #define B_BOARD_FEATURES_2_C0_MEMORY_SLOT BIT25 // 2 Channel 0 memory slot
  138. #define B_BOARD_FEATURES_SLEEP_MASK BIT26
  139. #define V_BOARD_FEATURES_SLEEP_S1 0 // BIT26=0
  140. #define V_BOARD_FEATURES_SLEEP_S3 BIT26 // BIT26=1
  141. #define B_BOARD_FEATURES_3JACK_AUDIO_SOLUTION BIT27 // 0/1= 5/3 Rear Jacks
  142. #define B_BOARD_FEATURES_HDAUDIOLINK BIT28 // HD audio link support
  143. #define B_BOARD_FEATURES_DISCRETE_SATA BIT29
  144. #define B_BOARD_FEATURES_2_SATA BIT30 // 2SATA instead of 4(pre Ich8) or 4 SATA instead of 6(Ich8)
  145. #define B_BOARD_FEATURES_NO_SATA_PORT2_3 BIT31 // No SATA Port2&3 Connector, used with B_BOARD_FEATURES_2_SATA flag
  146. #define B_BOARD_FEATURES_RVP BIT32 // Board is an RVP board
  147. #define B_BOARD_FEATURES_ESATA_PORT0 BIT33 // E-SATA on Port0
  148. #define B_BOARD_FEATURES_ESATA_PORT1 BIT34 // E-SATA on Port1
  149. #define B_BOARD_FEATURES_ESATA_PORT2 BIT35 // E-SATA on Port2
  150. #define B_BOARD_FEATURES_ESATA_PORT3 BIT36 // E-SATA on Port3
  151. #define B_BOARD_FEATURES_ESATA_PORT4 BIT37 // E-SATA on Port4
  152. #define B_BOARD_FEATURES_ESATA_PORT5 BIT38 // E-SATA on Port5
  153. #define B_BOARD_FEATURES_IDCC2_SUPPORT BIT39 // Include IDCC2 support
  154. #define B_BOARD_FEATURES_NPI_QPI_VOLTAGE BIT40
  155. #define B_BOARD_FEATURES_LIMITED_CPU_SUPPORT BIT41 // Limited CPU support
  156. #define B_BOARD_FEATURES_PMP_SUPPORT BIT42 // Support for over-voltaging memory
  157. #define B_BOARD_FEATURES_HW_WATCHDOG_TIMER BIT43 // Support for the HW-based 555 Watchdog Timer feature
  158. #define B_BOARD_FEATURES_LVDS BIT44 // Support for LVDS
  159. #define B_BOARD_FEATURES_VERB_TABLE_MASK (BIT45|BIT46|BIT47|BIT48) // Verb table
  160. #define B_BOARD_FEATURES_VERB_TABLE1 BIT45 // Verb table 1
  161. #define B_BOARD_FEATURES_VERB_TABLE2 BIT46 // Verb table 2
  162. #define B_BOARD_FEATURES_VERB_TABLE3 BIT47 // Verb table 3
  163. #define B_BOARD_FEATURES_VERB_TABLE4 BIT48 // Verb table 4
  164. #define B_BOARD_FEATURES_NO_MINIPCIE BIT49 // Mini PCIe slot
  165. #define B_BOARD_FEATURES_HDMI_SLOT BIT50 // HDMI slot
  166. #define B_BOARD_FEATURES_PS2_HIDE BIT51 // PS2 hide
  167. #define B_BOARD_FEATURES_DVID_SLOT BIT52 // DVID slot
  168. #define B_BOARD_FEATURES_SIO_COM3 BIT53
  169. #define B_BOARD_FEATURES_SIO_COM4 BIT54
  170. #define B_BOARD_FEATURES_LAN2 BIT55
  171. #define B_BOARD_FEATURES_PCIe_SLOT BIT56
  172. #endif
  173. typedef UINT64 EFI_BOARD_FEATURES;
  174. #pragma pack()
  175. //
  176. // Global ID for the Platform Boot Mode Protocol.
  177. //
  178. #define EFI_BOARD_FEATURES_GUID \
  179. { 0x94b9e8ae, 0x8877, 0x479a, 0x98, 0x42, 0xf5, 0x97, 0x4b, 0x82, 0xce, 0xd3 }
  180. extern EFI_GUID gEfiBoardFeaturesGuid;
  181. #define BOARD_FEATURES_NAME L"BoardFeatures"
  182. #define EFI_BOARD_ID_GUID \
  183. { 0x6b2dd245, 0x3f2, 0x414a, 0x8c, 0x2, 0x9f, 0xfc, 0x23, 0x52, 0xe3, 0x1e }
  184. #define EFI_BOARD_ID_NAME (L"BoardId")
  185. #endif