BoardIdDecode.c 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. /** @file
  2. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
  3. SPDX-License-Identifier: BSD-2-Clause-Patent
  4. Module Name:
  5. BoardIdDecode.c
  6. Abstract:
  7. --*/
  8. #include "PchRegs.h"
  9. #include "PlatformDxe.h"
  10. #include "Platform.h"
  11. //
  12. // Define macros to build data structure signatures from characters.
  13. //
  14. #define EFI_SIGNATURE_16(A, B) ((A) | (B << 8))
  15. #define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | (EFI_SIGNATURE_16 (C, D) << 16))
  16. #define EFI_SIGNATURE_64(A, B, C, D, E, F, G, H) \
  17. (EFI_SIGNATURE_32 (A, B, C, D) | ((UINT64) (EFI_SIGNATURE_32 (E, F, G, H)) << 32))
  18. BOARD_ID_DECODE mBoardIdDecodeTable[] = {
  19. //
  20. // Board ID, Board Features bitmap, Subsystem Device ID
  21. // This is a dummy entry that has to exist. Do not delete, just make a generic entry that fit for product.
  22. //
  23. {
  24. MW_ITX_MPCIE_LVDS_LOEM_AA,
  25. MW_ITX_MPCIE_LVDS_LOEM_ID,
  26. B_BOARD_FEATURES_FORM_FACTOR_ATX |
  27. B_BOARD_FEATURES_SIO_COM2 |
  28. B_BOARD_FEATURES_2_C0_MEMORY_SLOT |
  29. V_BOARD_FEATURES_SLEEP_S3 |
  30. B_BOARD_FEATURES_PS2WAKEFROMS5 |
  31. B_BOARD_FEATURES_LVDS |
  32. B_BOARD_FEATURES_VERB_TABLE1,
  33. V_DEFAULT_SUBSYSTEM_DEVICE_ID,
  34. 0xD625,
  35. EFI_SIGNATURE_64('M','W','P','N','T','1','0','N')
  36. },
  37. {
  38. MW_ITX_MPCIE_LVDS_CHANNEL_AA,
  39. MW_ITX_MPCIE_LVDS_CHANNEL_ID,
  40. B_BOARD_FEATURES_FORM_FACTOR_ATX |
  41. B_BOARD_FEATURES_SIO_COM2 |
  42. B_BOARD_FEATURES_2_C0_MEMORY_SLOT |
  43. V_BOARD_FEATURES_SLEEP_S3 |
  44. B_BOARD_FEATURES_PS2WAKEFROMS5 |
  45. B_BOARD_FEATURES_LVDS |
  46. B_BOARD_FEATURES_VERB_TABLE1,
  47. V_DEFAULT_SUBSYSTEM_DEVICE_ID,
  48. 0xD625,
  49. EFI_SIGNATURE_64('M','W','P','N','T','1','0','N')
  50. },
  51. {
  52. MW_ITX_MPCIE_CHANNEL_AA,
  53. MW_ITX_MPCIE_CHANNEL_ID,
  54. B_BOARD_FEATURES_FORM_FACTOR_ATX |
  55. B_BOARD_FEATURES_SIO_COM2 |
  56. B_BOARD_FEATURES_2_C0_MEMORY_SLOT |
  57. V_BOARD_FEATURES_SLEEP_S3 |
  58. B_BOARD_FEATURES_PS2WAKEFROMS5 |
  59. B_BOARD_FEATURES_VERB_TABLE1,
  60. V_DEFAULT_SUBSYSTEM_DEVICE_ID,
  61. 0xD625,
  62. EFI_SIGNATURE_64('M','W','P','N','T','1','0','N')
  63. },
  64. {
  65. KT_ITX_MPCIE_LVDS_LOEM_AA,
  66. KT_ITX_MPCIE_LVDS_LOEM_ID,
  67. B_BOARD_FEATURES_FORM_FACTOR_ATX |
  68. B_BOARD_FEATURES_SIO_COM2 |
  69. B_BOARD_FEATURES_2_C0_MEMORY_SLOT |
  70. V_BOARD_FEATURES_SLEEP_S3 |
  71. B_BOARD_FEATURES_PS2WAKEFROMS5 |
  72. B_BOARD_FEATURES_LVDS |
  73. B_BOARD_FEATURES_VERB_TABLE2,
  74. V_DEFAULT_SUBSYSTEM_DEVICE_ID_KT,
  75. 0xD626,
  76. EFI_SIGNATURE_64('K','T','P','N','T','1','0','N')
  77. },
  78. {
  79. KT_ITX_CHANNEL_AA,
  80. KT_ITX_CHANNEL_ID,
  81. B_BOARD_FEATURES_FORM_FACTOR_ATX |
  82. B_BOARD_FEATURES_SIO_COM2 |
  83. B_BOARD_FEATURES_2_C0_MEMORY_SLOT |
  84. V_BOARD_FEATURES_SLEEP_S3 |
  85. B_BOARD_FEATURES_PS2WAKEFROMS5 |
  86. B_BOARD_FEATURES_NO_MINIPCIE |
  87. B_BOARD_FEATURES_VERB_TABLE2,
  88. V_DEFAULT_SUBSYSTEM_DEVICE_ID_KT,
  89. 0xD626,
  90. EFI_SIGNATURE_64('K','T','P','N','T','1','0','N')
  91. },
  92. {
  93. KT_ITX_LOEM_AA,
  94. KT_ITX_LOEM_ID,
  95. B_BOARD_FEATURES_FORM_FACTOR_ATX |
  96. B_BOARD_FEATURES_SIO_COM2 |
  97. B_BOARD_FEATURES_2_C0_MEMORY_SLOT |
  98. V_BOARD_FEATURES_SLEEP_S3 |
  99. B_BOARD_FEATURES_PS2WAKEFROMS5 |
  100. B_BOARD_FEATURES_NO_MINIPCIE |
  101. B_BOARD_FEATURES_VERB_TABLE2,
  102. V_DEFAULT_SUBSYSTEM_DEVICE_ID_KT,
  103. 0xD626,
  104. EFI_SIGNATURE_64('K','T','P','N','T','1','0','N')
  105. }
  106. };
  107. UINTN mBoardIdDecodeTableSize = sizeof (mBoardIdDecodeTable) /
  108. sizeof (mBoardIdDecodeTable[0]);