Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

197 lines
5.9 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. tables.c
  5. Abstract:
  6. Environment:
  7. Kernel mode
  8. Notes:
  9. Revision History:
  10. --*/
  11. #include "p3.h"
  12. //
  13. // State Flags
  14. //
  15. #define COPPERMINE_PROCESSOR 0x1
  16. #define TUALATINE_PROCESSOR 0x2
  17. #define BUS_133MHZ 0x4
  18. #define EXTENDED_BUS_RATIO 0x8
  19. //
  20. // From the Geyserville BIOS Writer's guide, Chapter 2.
  21. // The input is MSR2A[25:22] and MSR2A[27] in a Mobile PentiumIII.
  22. // The output is the core frequency for a 100MHz front-side bus.
  23. //
  24. #define HIGHEST_KNOWN_COPPERMINE_CPUID 0x68A
  25. #define HIGHEST_KNOWN_TUALATIN_CPUID 0x6B1
  26. #define FAMILYMODEL_MASK 0x0FF0 // Mask for family/model codes.
  27. #define FAMILYMODEL_COPPERMINE 0x0680 // Coppermine family/mode code.
  28. #define FAMILYMODEL_TUALATIN 0x06B0 // Tualatin family/mode code.
  29. #define EXTENDED_INFO_TYPE 0x0686 // CPUID of extended bus ratio support
  30. #define EXTENDED_BIN_TYPE 0x068A // CPUID of extended bin support
  31. PROCESSOR_STATE_INFO Coppermine100[PROC_STATE_INFO_SIZE] = {
  32. {10, 500, 0}, // 0 - 500MHz @ 0.0W.
  33. {6, 300, 0}, // 1 - 300MHz @ 0.0W.
  34. {8, 400, 0}, // 2 - 400MHz @ 0.0W.
  35. {0, 0, 0}, // 3 - SAFE.
  36. {11, 550, 0}, // 4 - 550MHz @ 0.0W.
  37. {7, 350, 0}, // 5 - 350MHz @ 0.0W.
  38. {9, 450, 0}, // 6 - 450MHz @ 0.0W.
  39. {5, 250, 0}, // 7 - 250MHz @ 0.0W.
  40. {0, 0, 0}, // 8 - RESERVED.
  41. {14, 700, 0}, // 9 - 700MHz @ 0.0W.
  42. {16, 800, 0}, // 10 - 800MHz @ 0.0W.
  43. {12, 600, 0}, // 11 - 600MHz @ 0.0W.
  44. {0, 0, 0}, // 12 - SAFE.
  45. {15, 750, 0}, // 13 - 750MHz @ 0.0W.
  46. {0, 0, 0}, // 14 - RESERVED.
  47. {13, 650, 0}, // 15 - 650MHz @ 0.0W.
  48. {18, 900, 0}, // 16 - 900MHz @ 0.0W.
  49. {22, 1100, 0}, // 17 - 1100MHz @ 0.0W.
  50. {24, 1200, 0}, // 18 - 1200MHz @ 0.0W.
  51. {0, 0, 0}, // 19 - RESERVED.
  52. {19, 950, 0}, // 20 - 950MHz @ 0.0W.
  53. {23, 1150, 0}, // 21 - 1150MHz @ 0.0W.
  54. {17, 850, 0}, // 22 - 850MHz @ 0.0W.
  55. {0, 0, 0}, // 23 - RESERVED.
  56. {0, 0, 0}, // 24 - RESERVED.
  57. {0, 0, 0}, // 25 - RESERVED.
  58. {0, 0, 0}, // 26 - RESERVED.
  59. {20, 1000, 0}, // 27 - 1000MHz @ 0.0W.
  60. {0, 0, 0}, // 28 - RESERVED.
  61. {0, 0, 0}, // 29 - RESERVED.
  62. {0, 0, 0}, // 30 - RESERVED.
  63. {21, 1050, 0} // 31 - 1050MHz @ 0.0W.
  64. };
  65. PROCESSOR_STATE_INFO Coppermine133[PROC_STATE_INFO_SIZE] = {
  66. {10, 667, 0}, // 0 - 667MHz @ 0.0W.
  67. {6, 400, 0}, // 1 - 400MHz @ 0.0W.
  68. {8, 533, 0}, // 2 - 533MHz @ 0.0W.
  69. {0, 0, 0}, // 3 - SAFE.
  70. {11, 733, 0}, // 4 - 733MHz @ 0.0W.
  71. {7, 466, 0}, // 5 - 466MHz @ 0.0W.
  72. {9, 600, 0}, // 6 - 600MHz @ 0.0W.
  73. {5, 333, 0}, // 7 - 533MHz @ 0.0W.
  74. {0, 0, 0}, // 8 - RESERVED
  75. {14, 933, 0}, // 9 - 933MHz @ 0.0W.
  76. {16, 1066, 0}, // 10 - 1066MHz @ 0.0W.
  77. {12, 800, 0}, // 11 - 800MHz @ 0.0W.
  78. {0, 0, 0}, // 12 - SAFE.
  79. {15, 1000, 0}, // 13 - 1000MHz @ 0.0W.
  80. {0, 0, 0}, // 14 - RESERVED.
  81. {13, 866, 0}, // 15 - 866MHz @ 0.0W.
  82. {18, 1200, 0}, // 16 - 1200MHz @ 0.0W.
  83. {22, 1466, 0}, // 17 - 1466MHz @ 0.0W.
  84. {24, 1600, 0}, // 18 - 1600MHz @ 0.0W.
  85. {0, 0, 0}, // 19 - RESERVED.
  86. {19, 1266, 0}, // 20 - 1266MHz @ 0.0W.
  87. {23, 1533, 0}, // 21 - 1533MHz @ 0.0W.
  88. {17, 1133, 0}, // 22 - 1133MHz @ 0.0W.
  89. {0, 0, 0}, // 23 - RESERVED.
  90. {0, 0, 0}, // 24 - RESERVED.
  91. {0, 0, 0}, // 25 - RESERVED.
  92. {0, 0, 0}, // 26 - RESERVED.
  93. {20, 1333, 0}, // 27 - 1333MHz @ 0.0W.
  94. {0, 0, 0}, // 28 - RESERVED.
  95. {0, 0, 0}, // 29 - RESERVED.
  96. {0, 0, 0}, // 30 - RESERVED.
  97. {21, 1400, 0} // 31 - 1400MHz @ 0.0W.
  98. };
  99. PROCESSOR_STATE_INFO Tualatin100[PROC_STATE_INFO_SIZE] = {
  100. {10, 500, 0}, // 0 - 500MHz @ 0.0W.
  101. {6, 300, 0}, // 1 - 300MHz @ 0.0W.
  102. {8, 400, 0}, // 2 - 400MHz @ 0.0W.
  103. {0, 0, 0}, // 3 - SAFE.
  104. {11, 550, 0}, // 4 - 550MHz @ 0.0W.
  105. {7, 350, 0}, // 5 - 350MHz @ 0.0W.
  106. {9, 450, 0}, // 6 - 450MHz @ 0.0W.
  107. {0, 0, 0}, // 7 - RESERVED.
  108. {32, 1600, 0}, // 8 - 1600MHz @ 0.0W.
  109. {14, 700, 0}, // 9 - 700MHz @ 0.0W.
  110. {16, 800, 0}, // 10 - 800MHz @ 0.0W.
  111. {12, 600, 0}, // 11 - 600MHz @ 0.0W.
  112. {0, 0, 0}, // 12 - SAFE.
  113. {15, 750, 0}, // 13 - 750MHz @ 0.0W.
  114. {0, 0, 0}, // 14 - RESERVED.
  115. {13, 650, 0}, // 15 - 650MHz @ 0.0W.
  116. {18, 900, 0}, // 16 - 900MHz @ 0.0W.
  117. {22, 1100, 0}, // 17 - 1100MHz @ 0.0W.
  118. {24, 1200, 0}, // 18 - 1200MHz @ 0.0W.
  119. {0, 0, 0}, // 19 - RESERVED.
  120. {19, 950, 0}, // 20 - 950MHz @ 0.0W.
  121. {23, 1150, 0}, // 21 - 1150MHz @ 0.0W.
  122. {17, 850, 0}, // 22 - 850MHz @ 0.0W.
  123. {0, 0, 0}, // 23 - RESERVED.
  124. {0, 0, 0}, // 24 - RESERVED.
  125. {0, 0, 0}, // 25 - RESERVED.
  126. {26, 1300, 0}, // 26 - 1300MHz @ 0.0W.
  127. {20, 1000, 0}, // 27 - 1000MHz @ 0.0W.
  128. {28, 1400, 0}, // 28 - 1400MHz @ 0.0W.
  129. {0, 0, 0}, // 29 - RESERVED.
  130. {30, 1500, 0}, // 30 - 1500MHz @ 0.0W.
  131. {21, 1050, 0} // 31 - 1050MHz @ 0.0W.
  132. };
  133. PROCESSOR_STATE_INFO Tualatin133[PROC_STATE_INFO_SIZE] = {
  134. {10, 667, 0}, // 0 - 667MHz @ 0.0W.
  135. {6, 400, 0}, // 1 - 400MHz @ 0.0W.
  136. {8, 533, 0}, // 2 - 533MHz @ 0.0W.
  137. {0, 0, 0}, // 3 - SAFE.
  138. {11, 733, 0}, // 4 - 733MHz @ 0.0W.
  139. {7, 466, 0}, // 5 - 466MHz @ 0.0W.
  140. {9, 600, 0}, // 6 - 600MHz @ 0.0W.
  141. {0, 0, 0}, // 7 - RESERVED.
  142. {32, 2133, 0}, // 8 - 21330MHz @ 0.0W.
  143. {14, 933, 0}, // 9 - 933MHz @ 0.0W.
  144. {16, 1066, 0}, // 10 - 1066MHz @ 0.0W.
  145. {12, 800, 0}, // 11 - 800MHz @ 0.0W.
  146. {0, 0, 0}, // 12 - SAFE.
  147. {15, 1000, 0}, // 13 - 1000MHz @ 0.0W.
  148. {0, 0, 0}, // 14 - RESERVED.
  149. {13, 866, 0}, // 15 - 866MHz @ 0.0W.
  150. {18, 1200, 0}, // 16 - 1200MHz @ 0.0W.
  151. {22, 1466, 0}, // 17 - 1466MHz @ 0.0W.
  152. {24, 1600, 0}, // 18 - 1600MHz @ 0.0W.
  153. {0, 0, 0}, // 19 - RESERVED.
  154. {19, 1266, 0}, // 20 - 1266MHz @ 0.0W.
  155. {23, 1533, 0}, // 21 - 1533MHz @ 0.0W.
  156. {17, 1133, 0}, // 22 - 1133MHz @ 0.0W.
  157. {0, 0, 0}, // 23 - RESERVED.
  158. {0, 0, 0}, // 24 - RESERVED.
  159. {0, 0, 0}, // 25 - RESERVED.
  160. {26, 1733, 0}, // 26 - 1733MHz @ 0.0W.
  161. {20, 1333, 0}, // 27 - 1333MHz @ 0.0W.
  162. {28, 1866, 0}, // 28 - 1866MHz @ 0.0W.
  163. {0, 0, 0}, // 29 - RESERVED.
  164. {30, 2000, 0}, // 30 - 2000MHz @ 0.0W.
  165. {21, 1400, 0} // 31 - 1400MHz @ 0.0W.
  166. };