2 * (C) 2001,2008 Dave Jones.
4 * Licensed under the terms of the GNU GPL License version 2.
6 * Intel family 6 specific decoding (Core family).
7 * All the CPUs described in this file have cpu->emodel set to 1
12 #include "../x86info.h"
15 static char nehalem_info_url[] = "http://www.intel.com/design/corei7/documentation.htm";
17 static char *intel_nameptr;
18 #define add_to_cpuname(x) intel_nameptr += snprintf(intel_nameptr, sizeof(x), "%s", x)
20 void Identify_Intel_family6core(struct cpudata *cpu)
22 intel_nameptr = cpu->name;
26 switch (cpu->stepping) {
28 // sSpec step CoreFreq Bus cache
29 // SLAN3 C0 3.00 1333 12MB (2x6) QX9650
30 // SLANY C0 3.2 1600 12MB (2x6) QX9775
32 sSpec name package step HFM/LFM/SLFM FSB IDAT L2Cache
33 SLAQG T9300 m-FCPGA C-0 2.5/1.2/0.8 800 2.7 6
34 SLAPV T9300 m-FCBGA C-0 2.5/1.2/0.8 800 2.7 6
35 SLAPU T8300 m-FCBGA C-0 2.4/1.2/0.8 800 2.6 3
36 SLAUU T8100 m-FCPGA C-0 2.1/1.2/0.8 800 2.3 3
37 SLAPT T8100 m-FCBGA C-0 2.1/1.2/0.8 800 2.3 3
38 SLAPT T8100 m-FCBGA C-0 2.1/1.2/0.8 800 2.3 3
39 SLAPA T8300 m-FCPGA M-0 2.4/1.2/0.8 800 2.6 3
40 SLAPR T8300 m-FCBGA M-0 2.4/1.2/0.8 800 2.6 3
41 SLAP9 T8100 m-FCPGA M-0 2.1/1.2/0.8 800 2.3 3
42 SLAPS T8100 m-FCBGA M-0 2.1/1.2/0.8 800 2.3 3
43 SLAVJ T8100 m-FCPGA M-0 2.1/1.2/0.8 800 2.3 3
44 SLAXG T8100 m-FCPGA M-0 2.1/1.2/0.8 800 2.3 3
45 SLAZD T8100 m-FCPGA M-0 2.1/1.2/0.8 800 2.3 3
46 SLAYZ T8100 m-FCPGA M-0 2.1/1.2/0.8 800 2.3 3
47 SLAZC T8300 m-FCPGA M-0 2.4/1.2/0.8 800 2.6 3
48 SLAZB T9300 m-FCPGA C-0 2.5/1.2/0.8 800 2.7 6
49 SLAYY T9300 m-FCPGA C-0 2.5/1.2/0.8 800 2.7 6
50 SLAZA T9500 m-FCPGA C-0 2.6/1.2/0.8 800 2.8 6
51 SLAYX T9500 m-FCPGA C-0 2.6/1.2/0.8 800 2.8 6
52 SLAQJ X9000 m-FCPGA C-0 2.8/1.2/0.8 800 N/A 6
53 SLAZ3 X9000 m-FCPGA C-0 2.8/1.2/0.8 800 N/A 6
54 SLB47 T9600 m-FCPGA C-0 2.80/1.6/0.8 1066 2.93 6
55 SLB43 T9600 m-FCBGA C-0 2.80/1.6/0.8 1066 2.93 6
56 SLB46 T9400 m-FCPGA C-0 2.53/1.6/0.8 1066 2.66 6
57 SL3BX T9400 m-FCBGA C-0 2.53/1.6/0.8 1066 2.66 6
58 SLB4E P9500 m-FCPGA C-0 2.53/1.6/0.8 1066 2.66 6
59 SL3BW P9500 m-FCBGA C-0 2.53/1.6/0.8 1066 2.66 6
60 SLB3S P8600 m-FCPGA M-0 2.40/1.6/0.8 1066 2.53 3
61 SLB4N P8600 m-FCBGA M-0 2.40/1.6/0.8 1066 2.53 3
62 SLB3R P8400 m-FCPGA M-0 2.26/1.6/0.8 1066 2.40 3
63 SLB4M P8400 m-FCBGA M-0 2.26/1.6/0.8 1066 2.40 3
64 SLB3Q P8400 m-FCPGA M-0 2.26/1.6/0.8 1066 2.40 3
65 SL3BV P8600 m-FCBGA C-0 2.40/1.6/0.8 1066 2.53 3
66 SL3BU P8400 m-FCBGA C-0 2.26/1.6/0.8 1066 2.40 3
67 SLB48 X9100 m-FCPGA C-0 3.06/1.6/0.8 1066 N/A 6
68 SLAYS T8300 m-FCPGA M-0 2.4/1.2/0.8 800 2.6 3
69 SLAYU T8100 m-FCPGA M-0 2.1/1.2/0.8 800 2.3 3
70 SLAYP T8100 m-FCPGA M-0 2.1/1.2/0.8 800 2.3 3
71 SLAYQ T8300 m-FCPGA M-0 2.4/1.2/0.8 800 2.6 3
72 SLG8E P7350 m-FCBGA C-0 2.00/1.6/0.8 1066 N/A 3
73 SLB45 P7450 m-FCPGA C-0 2.13/1.6/0.8 1066 N/A 3
74 SLB44 P7350 m-FCPGA C-0 2.00/1.6/0.8 1066 N/A 3
75 SLB54 P7450 m-FCPGA M-0 2.13/1.6/0.8 1066 N/A 3
76 SLB53 P7350 m-FCPGA M-0 2.00/1.6/0.8 1066 N/A 3
77 SLB5J QX9300 m-FCPGA E-0 2.53/1.6/(n/a) 1066 2.8 45 12
78 SLB5G Q9100 m-FCPGA E-0 2.26/1.6/(n/a) 1066 2.53 45 12
79 SLB64 SP9400 m-FCBGA C-0 2.40/1.6/0.8 1066 2.53 25 6
80 SLB63 SP9300 m-FCBGA C-0 2.26/1.6/0.8 1066 2.40 25 6
81 SLB66 SL9400 m-FCBGA C-0 1.86/1.6/0.8 1066 2.13 17 6
82 SLB65 SL9300 m-FCBGA C-0 1.60/0.8/0.8 1066 1.86 17 6
83 SLB5V SU9400 m-FCBGA M-0 1.40/0.8/0.8 800 1.60 10 3
84 SLB5Q SU9300 m-FCBGA M-0 1.20/0.8/0.8 800 1.40 10 3
85 SLGAR SU3300 m-FCBGA M-0 1.20/0.8/(n/a) 800 N/A 5.5 3 (Celeron)
86 SLGAS 723 m-FCBGA M-0 1.20/(n/a)/(n/a) 800 N/A 10 1 (Celeron)
90 add_to_cpuname("Core 2 quad ");
92 case 3000: add_to_cpuname("Core 2 quad (QX9650) ");
94 case 3200: add_to_cpuname("Core 2 Extreme quad (QX9775) ");
97 add_to_cpuname("[C0] ");
100 // sSpec step CoreFreq Bus cache
101 // SLAWM C1 3.2 1600 12MB (2x6) QX9770
102 // SLAWQ C1 2.83 1600 12MB (2x6) Q9550
103 // SLAWR C1 2.66 1333 12MB (2x6) Q9450
104 // SLAWE M1 2.50 1333 6MB (2x3) Q9300
105 // SLB5M M1 2.33 1333 4MB (2x2) Q8200
106 add_to_cpuname("Core 2 quad ");
108 case 3200: add_to_cpuname("(QX9770) [C1] ");
110 case 2830: add_to_cpuname("(Q9550) [C1] ");
112 case 2660: add_to_cpuname("(Q9450) [C1] ");
114 case 2500: add_to_cpuname("(Q9300) [M1] ");
116 case 2330: add_to_cpuname("(Q8200) [M1] ");
121 // sSpec step CoreFreq Bus cache
122 // SLB8W E0 3.00 1333 12MB (2x6) Q9650
123 // SLB8V E0 2.83 1333 12MB (2x6) Q9550
124 // SLB6B R0 2.66 1333 6MB (2x3) Q9400
125 // SLB5W R0 2.5 1333 4MB (2x2) Q8300
126 add_to_cpuname("Core 2 quad ");
128 case 3000: add_to_cpuname("(Q9650) [E0] ");
130 case 2830: add_to_cpuname("(Q9550) [E0] ");
132 case 2660: add_to_cpuname("(Q9400) [R0] ");
134 case 2500: add_to_cpuname("(Q8300) [R0] ");
141 add_to_cpuname("Core i7 ");
142 //sSpec step CoreFreq/QuickpathGTs/DDR3 cache
143 //SLBCJ C-0 3.2/6.40/1066 8MB
144 //SLBCK C-0 2.93/4.80/1066 8MB
145 //SLBCH C-0 2.66/4.80/1066 8MB
148 add_to_cpuname("Atom ");
149 switch (cpu->stepping) {
152 * sSpec step TDP Name FSB EFMS HFM LFM Package MCU
153 * QDTD B0 2.5 x 533 106C1 1.6GHz 800MHz FCBGA8 M01106C1109
154 * QDTB B0 2.5 x 533 106C1 1.6GHz 800MHz FCBGA8 M01106C1109
155 * QGFD1 B0 X X 533 106C1 1.33GHz ---- FCBGA437 M01106C1109
160 * sSpec step TDP Name FSB EFMS HFM LFM Package
163 * SLB6Q C0 0.65W Z500 400 106C2 800GHz 600MHz FCBGA8
164 * SLB2C C0 2W Z510 400 106C2 1.1GHz 600MHz FCBGA8
165 * SLGMG C0 0.65W Z515 400 106C2 800MHz 600MHz FCBGA8
166 * SLB2H C0 2W Z520 533 106C2 1.33GHz 800MHz FCBGA8
167 * SLB6P C0 2W Z530 533 106C2 1.60GHz 800MHz FCBGA8
168 * QGZT C0 2.5W N270 533 106C2 1.60GHz 800MHz FCBGA8
169 * QKGY1 C0 8W 300 533 106C2 1.60GHz ------ FCBGA437
170 * QGZR2 C0 4W 230 533 106C2 1.60GHz ----- FCBGA437
171 * SLB2M C0 2.4W Z540 533 106C2 1.86GHz 800MHz FCBGA8
172 * SLGPT C0 2.4W Z550 533 106C2 2.0GHz 800MHz FCBGA8
175 case 800: add_to_cpuname("Z500/Z515 [SLB6Q/SLGMG][C0]");
177 case 1100: add_to_cpuname("Z510 [SLB2C][C0]");
179 case 1330: add_to_cpuname("Z520 [SLB2H][C0]");
181 case 1600: // could be a Z530,an N270,a QKGY1 or a QGZR2
183 case 1860: add_to_cpuname("Z540 [SLB2M][C0]");
185 case 2000: add_to_cpuname("Z550 [SLGPT][C0]");
192 add_to_cpuname("Core ");
193 switch (cpu->stepping) {
197 // SL99W/SL8W7 533FSB
198 add_to_cpuname("Duo U2400/Solo U1300 [C-0]");
202 add_to_cpuname("Solo U1400 [C-0]");
206 add_to_cpuname("Duo L2300 [C-0]");
209 // SL9JE/SL9JV/SL8VR/SL8VV/SL8VY/SL8W3/SL8VW 667FSB
210 add_to_cpuname("Solo T1300/Duo T2300(E)/Duo L2400");
213 // SL92X/SL8VQ/SL8VU/SL92V/SL92X 667FSB
214 add_to_cpuname("Solo T1400/Duo T2400 [C-0]");
217 // SL8VP/SL8VT/SL92U/SL92W 667FSB
218 add_to_cpuname("Solo T1500/Duo T2500 [C-0]");
221 // SL8VN/SL8VS 667FSB
222 add_to_cpuname("Duo T2600 [C-0]");
230 add_to_cpuname("Duo U2500 [D-0]");
234 add_to_cpuname("Duo L2500 [D-0]");
237 // SL9JP/SL9K4 667FSB
238 add_to_cpuname("Duo T2700 [D-0]");
245 add_to_cpuname("Core 2 Duo ");
246 switch (cpu->stepping) {
247 case 4: add_to_cpuname("(Penryn)");
249 case 6: add_to_cpuname("P8600");
256 * SLBCJ C-0 0x000106A4 3.20 / 6.40/ 1066 8MB
257 * SLBCK C-0 0x000106A4 2.93 / 4.80/ 1066 8MB
258 * SLBCH C-0 0x000106A4 2.66 / 4.80/ 1066 8MB
260 add_to_cpuname("Core i7 (Nehalem) [bloomfield/gainestown]");
261 cpu->info_url = strdup(nehalem_info_url);
263 case 3200: add_to_cpuname(" [C-0][SLBCJ]");
265 case 2930: add_to_cpuname(" [C-0][SLBCK]");
267 case 2660: add_to_cpuname(" [C-0][SLBCH]");
273 add_to_cpuname("Atom");
274 switch (cpu->stepping) {
275 case 10: add_to_cpuname(" D510");
281 add_to_cpuname("Core i7 (Nehalem) [Lynnfield/Clarksfield/Jasper Forest]");
285 add_to_cpuname("Core i7 (Nehalem) [Clarkdale/Arrandale]");
289 add_to_cpuname("Core i7 (Nehalem) [Gulftown/Westmere-EP]");
293 add_to_cpuname("Core i7 (Sandybridge) [Romely-EP]");
297 add_to_cpuname("Core i7 (Nehalem) [Beckton]");
301 add_to_cpuname("Core i7 (Nehalem-EX) [Westmere] [Xeon E7]");
305 add_to_cpuname("Unknown model. ");