Chameleon

Chameleon Commit Details

Date:2015-05-10 14:35:56 (8 years 11 months ago)
Author:ErmaC
Commit:2671
Parents: 2670
Message:Update CPUID.
Changes:
M/trunk/i386/libsaio/state_generator.c
M/trunk/i386/libsaio/cpu.c
M/trunk/i386/libsaio/platform.h
M/trunk/i386/libsaio/smbios_getters.c
M/trunk/i386/modules/AcpiCodec/acpi_codec.c
M/trunk/i386/libsaio/smbios.c

File differences

trunk/i386/libsaio/cpu.c
11
22
33
4
45
56
67
......
332333
333334
334335
335
336
336337
337338
338339
......
459460
460461
461462
462
463
463464
464465
465466
466467
467
468
469
468470
469471
470472
471473
472
474
473475
474
476
475477
476478
477479
478480
479
480
481
482
481483
482484
483485
......
620622
621623
622624
625
623626
624
625627
626628
627629
......
630632
631633
632634
635
633636
637
634638
635639
636640
637
641
638642
639643
640644
......
686690
687691
688692
693
689694
690695
691696
/*
* Copyright 2008 Islam Ahmed Zaid. All rights reserved. <azismed@gmail.com>
* AsereBLN: 2009: cleanup and bugfix
* Bronya: 2015 Improve AMD support, cleanup and bugfix
*/
#include "libsaio.h"
///////////////////-- Signature, stepping, features -- //////
do_cpuid(0x00000001, p->CPU.CPUID[CPUID_1]); // Signature, stepping, features
cpuid_features = quad(p->CPU.CPUID[CPUID_1][ecx],p->CPU.CPUID[CPUID_1][edx]);
cpuid_features = quad(p->CPU.CPUID[CPUID_1][ecx], p->CPU.CPUID[CPUID_1][edx]);
if (bit(28) & p->CPU.CPUID[CPUID_1][edx]) // HTT/Multicore
{
logical_per_package = bitfield(p->CPU.CPUID[CPUID_1][ebx], 23, 16);
{
case CPUID_MODEL_NEHALEM:
case CPUID_MODEL_FIELDS:
case CPUID_MODEL_DALES:
case CPUID_MODEL_CLARKDALE:
case CPUID_MODEL_NEHALEM_EX:
case CPUID_MODEL_JAKETOWN:
case CPUID_MODEL_SANDYBRIDGE:
case CPUID_MODEL_IVYBRIDGE:
case CPUID_MODEL_HASWELL_U5:
case CPUID_MODEL_ATOM_3700:
case CPUID_MODEL_HASWELL:
case CPUID_MODEL_HASWELL_SVR:
//case CPUID_MODEL_HASWELL_H:
case CPUID_MODEL_HASWELL_ULT:
case CPUID_MODEL_CRYSTALWELL:
case CPUID_MODEL_HASWELL_ULX:
//case CPUID_MODEL_:
msr = rdmsr64(MSR_CORE_THREAD_COUNT);
msr = rdmsr64(MSR_CORE_THREAD_COUNT); // 0x35
p->CPU.NoCores= (uint32_t)bitfield((uint32_t)msr, 31, 16);
p->CPU.NoThreads= (uint32_t)bitfield((uint32_t)msr, 15, 0);
break;
case CPUID_MODEL_DALES_32NM:
case CPUID_MODEL_WESTMERE:
case CPUID_MODEL_DALES:
case CPUID_MODEL_WESTMERE: // Intel Core i7 LGA1366 (32nm) 6 Core
case CPUID_MODEL_WESTMERE_EX:
msr = rdmsr64(MSR_CORE_THREAD_COUNT);
p->CPU.NoCores= (uint32_t)bitfield((uint32_t)msr, 19, 16);
{
case CPUID_MODEL_NEHALEM:
case CPUID_MODEL_FIELDS:
case CPUID_MODEL_CLARKDALE:
case CPUID_MODEL_DALES:
case CPUID_MODEL_DALES_32NM:
case CPUID_MODEL_WESTMERE:
case CPUID_MODEL_NEHALEM_EX:
case CPUID_MODEL_WESTMERE_EX:
case CPUID_MODEL_JAKETOWN:
case CPUID_MODEL_IVYBRIDGE_XEON:
case CPUID_MODEL_IVYBRIDGE:
case CPUID_MODEL_ATOM_3700:
case CPUID_MODEL_HASWELL:
case CPUID_MODEL_HASWELL_U5:
case CPUID_MODEL_HASWELL_SVR:
case CPUID_MODEL_HASWELL_ULT:
case CPUID_MODEL_CRYSTALWELL:
case CPUID_MODEL_HASWELL_ULX:
/* --------------------------------------------------------- */
msr = rdmsr64(MSR_PLATFORM_INFO);
DBG("msr(%d): platform_info %08x\n", __LINE__, bitfield(msr, 31, 0));
{
cpuFrequency = tscFreq;
}
if ((getValueForKey(kbusratio, &newratio, &len, &bootInfo->chameleonConfig)) && (len <= 4))
{
max_ratio = atoi(newratio);
trunk/i386/libsaio/platform.h
4646
4747
4848
49
50
49
50
5151
5252
5353
......
5757
5858
5959
60
60
6161
6262
63
63
6464
6565
6666
6767
68
68
6969
7070
7171
......
8484
8585
8686
87
87
88
8889
8990
9091
9192
92
93
9394
9495
9596
#define CPUID_MODEL_ATOM0x1C// Pineview, Bonnell
#define CPUID_MODEL_XEON_MP0x1D// MP 7400
#define CPUID_MODEL_FIELDS0x1E// Lynnfield, Clarksfield, Jasper Forest
#define CPUID_MODEL_DALES0x1F// Havendale, Auburndale
#define CPUID_MODEL_DALES_32NM0x25// Clarkdale, Arrandale
#define CPUID_MODEL_CLARKDALE0x1F// Havendale, Auburndale
#define CPUID_MODEL_DALES0x25// Clarkdale, Arrandale
#define CPUID_MODEL_ATOM_SAN0x26// Lincroft
#define CPUID_MODEL_LINCROFT0x27// Bonnell
#define CPUID_MODEL_SANDYBRIDGE0x2A// Sandy Bridge
#define CPUID_MODEL_WESTMERE_EX0x2F// Westmere-EX
//#define CPUID_MODEL_BONNELL_ATOM0x35// Atom Family Bonnell
#define CPUID_MODEL_ATOM_20000x36// Cedarview / Saltwell
#define CPUID_MODEL_SILVERMONT0x37// Atom E3000, Z3000 Atom Silvermont
#define CPUID_MODEL_ATOM_37000x37// Atom E3000, Z3000 Atom Silvermont
#define CPUID_MODEL_IVYBRIDGE0x3A// Ivy Bridge
#define CPUID_MODEL_HASWELL0x3C// Haswell DT
#define CPUID_MODEL_BROADWELL0x3D// Core M, Broadwell / Core-AVX2
#define CPUID_MODEL_HASWELL_U50x3D// Haswell U5 5th generation Broadwell, Core M / Core-AVX2
#define CPUID_MODEL_IVYBRIDGE_XEON0x3E// Ivy Bridge Xeon
#define CPUID_MODEL_HASWELL_SVR0x3F// Haswell Server, Xeon E5-2600/1600 v3 (Haswell-E)
//#define CPUID_MODEL_HASWELL_H0x??// Haswell H
#define CPUID_MODEL_HASWELL_ULT0x45// Haswell ULT, 4th gen Core, Xeon E3-12xx v3
#define CPUID_MODEL_CRYSTALWELL0x46// Crystal Well, 4th gen Core, Xeon E3-12xx v3
#define CPUID_MODEL_HASWELL_ULX0x46// Crystal Well, 4th gen Core, Xeon E3-12xx v3
//#define CPUID_MODEL_0x4A// Future Atom E3000, Z3000 silvermont / atom
#define CPUID_MODEL_AVOTON0x4D// Silvermont/Avoton Atom C2000
//#define CPUID_MODEL_0x4E// Future Core
/* This spells out "GenuineIntel". */
//#define is_intel \
// ebx == 0x756e6547 && ecx == 0x6c65746e && edx == 0x49656e69
/* This spells out "AuthenticAMD". */
/* This spells out "AuthenticAMD". */
//#define is_amd \
// ebx == 0x68747541 && ecx == 0x444d4163 && edx == 0x69746e65
/* Unknown CPU */
#define CPU_STRING_UNKNOWN"Unknown CPU Type"
#define CPU_STRING_UNKNOWN"Unknown CPU Typ"
//definitions from Apple XNU
trunk/i386/libsaio/smbios.c
696696
697697
698698
699
700
699
700
701701
702702
703703
......
10421042
10431043
10441044
1045
1046
1045
1046
10471047
10481048
10491049
......
10551055
10561056
10571057
1058
1058
10591059
10601060
10611061
switch (Platform.CPU.Model)
{
case CPUID_MODEL_FIELDS:// Intel Core i5, i7, Xeon X34xx LGA1156 (45nm)
case CPUID_MODEL_DALES:
case CPUID_MODEL_DALES_32NM:// Intel Core i3, i5 LGA1156 (32nm)
case CPUID_MODEL_CLARKDALE:
case CPUID_MODEL_DALES:// Intel Core i3, i5 LGA1156 (32nm)
defaultBIOSInfo.version= kDefaultiMacNehalemBIOSVersion;
defaultBIOSInfo.releaseDate= kDefaultiMacNehalemBIOSReleaseDate;
defaultSystemInfo.productName= kDefaultiMacNehalem;
{
case 0x19:// Intel Core i5 650 @3.20 Ghz
case CPUID_MODEL_FIELDS:// Intel Core i5, i7, Xeon X34xx LGA1156 (45nm)
case CPUID_MODEL_DALES:
case CPUID_MODEL_DALES_32NM:// Intel Core i3, i5 LGA1156 (32nm)
case CPUID_MODEL_CLARKDALE:
case CPUID_MODEL_DALES:// Intel Core i3, i5 LGA1156 (32nm)
case CPUID_MODEL_NEHALEM:// Intel Core i7, Xeon W35xx, Xeon X55xx, Xeon E55xx LGA1366 (45nm)
case CPUID_MODEL_NEHALEM_EX:// Intel Xeon X75xx, Xeon X65xx, Xeon E75xx, Xeon E65x
case CPUID_MODEL_WESTMERE:// Intel Core i7, Xeon X56xx, Xeon E56xx, Xeon W36xx LGA1366 (32nm) 6 Core
case CPUID_MODEL_HASWELL:
case CPUID_MODEL_HASWELL_SVR:
case CPUID_MODEL_HASWELL_ULT:
case CPUID_MODEL_CRYSTALWELL:
case CPUID_MODEL_HASWELL_ULX:
break;
trunk/i386/libsaio/state_generator.c
281281
282282
283283
284
285
284
285
286286
287287
288288
......
295295
296296
297297
298
298
299299
300300
301301
......
305305
306306
307307
308
308
309309
310310
311311
break;
}
case CPUID_MODEL_FIELDS:// Intel Core i5, i7, Xeon X34xx LGA1156 (45nm)
case CPUID_MODEL_DALES://
case CPUID_MODEL_DALES_32NM:// Intel Core i3, i5 LGA1156 (32nm)
case CPUID_MODEL_CLARKDALE://
case CPUID_MODEL_DALES:// Intel Core i3, i5 LGA1156 (32nm)
case CPUID_MODEL_NEHALEM:// Intel Core i7, Xeon W35xx, Xeon X55xx, Xeon E55xx LGA1366 (45nm)
case CPUID_MODEL_NEHALEM_EX:// Intel Xeon X75xx, Xeon X65xx, Xeon E75xx, Xeon E65xx
case CPUID_MODEL_WESTMERE:// Intel Core i7, Xeon X56xx, Xeon E56xx, Xeon W36xx LGA1366 (32nm) 6 Core
//case CPUID_MODEL_HASWELL_H://
case CPUID_MODEL_HASWELL_SVR://
case CPUID_MODEL_HASWELL_ULT://
case CPUID_MODEL_CRYSTALWELL://
case CPUID_MODEL_HASWELL_ULX://
{
if ( (Platform.CPU.Model == CPUID_MODEL_SANDYBRIDGE) ||
(Platform.CPU.Model == CPUID_MODEL_IVYBRIDGE_XEON) ||
(Platform.CPU.Model == CPUID_MODEL_HASWELL_SVR) ||
(Platform.CPU.Model == CPUID_MODEL_HASWELL_ULT) ||
(Platform.CPU.Model == CPUID_MODEL_CRYSTALWELL) )
(Platform.CPU.Model == CPUID_MODEL_HASWELL_ULX) )
{
maximum.Control = (rdmsr64(MSR_IA32_PERF_STATUS) >> 8) & 0xff;
}
trunk/i386/libsaio/smbios_getters.c
4242
4343
4444
45
45
4646
4747
4848
......
9191
9292
9393
94
95
94
95
9696
9797
9898
......
101101
102102
103103
104
104105
105106
106107
......
179180
180181
181182
182
183
183184
184185
185186
......
191192
192193
193194
195
194196
195197
196198
199
197200
201
198202
199203
200204
......
206210
207211
208212
213
209214
210215
211216
212217
213218
219
214220
215221
216222
223
217224
218225
219226
220227
228
221229
230
222231
223232
224233
225234
235
226236
227237
228238
229239
230240
231
241
242
232243
233244
234245
235246
236247
248
237249
238250
239251
240252
241253
254
242255
243256
244257
245258
246259
260
247261
248262
249263
250264
251265
266
252267
253268
254269
270
255271
272
256273
257274
258
275
259276
260277
278
261279
262280
263281
264282
265283
284
266285
267286
268287
269288
270289
290
271291
272292
273293
274294
275295
296
276297
277298
278299
279300
280301
302
281303
282304
283305
306
284307
308
285309
286310
287311
288312
313
289314
290315
291316
292317
293318
319
294320
295321
296322
297323
298324
325
299326
300327
301328
302329
303330
331
304332
305333
306334
307335
308336
337
309338
310339
311340
341
312342
343
313344
314345
315346
347
316348
317349
318350
319351
320352
353
321354
322355
323356
324357
325358
359
326360
327361
328362
329363
330364
365
331366
332367
333368
334369
335370
371
336372
337373
338374
375
339376
377
340378
341379
380
381
382
383
384
342385
386
343387
344388
345389
390
346391
347392
348393
349
394
395
350396
351397
352398
......
357403
358404
359405
406
360407
361408
362409
363410
364411
412
365413
366414
367415
368416
369417
418
370419
371420
372421
422
373423
424
374425
375426
376427
428
377429
378430
379431
380432
381433
434
382435
383436
437
384438
439
440
385441
386442
387443
......
390446
391447
392448
393
449
450
451
452
453
454
455
394456
395457
396458
case CPUID_MODEL_HASWELL:
case CPUID_MODEL_HASWELL_SVR:
case CPUID_MODEL_HASWELL_ULT:
case CPUID_MODEL_CRYSTALWELL:
case CPUID_MODEL_HASWELL_ULX:
value->word = 0;
break;
case 0x19:
case CPUID_MODEL_NEHALEM:// Intel Core i7, Xeon W35xx, Xeon X55xx, Xeon E55xx LGA1366 (45nm)
case CPUID_MODEL_FIELDS:// Intel Core i5, i7, Xeon X34xx LGA1156 (45nm)
case CPUID_MODEL_DALES:
case CPUID_MODEL_DALES_32NM:// Intel Core i3, i5 LGA1156 (32nm)
case CPUID_MODEL_CLARKDALE:
case CPUID_MODEL_DALES:// Intel Core i3, i5 LGA1156 (32nm)
case CPUID_MODEL_WESTMERE:// Intel Core i7, Xeon X56xx, Xeon E56xx, Xeon W36xx LGA1366 (32nm) 6 Core
case CPUID_MODEL_NEHALEM_EX:// Intel Xeon X75xx, Xeon X65xx, Xeon E75xx, Xeon E65x
case CPUID_MODEL_WESTMERE_EX:// Intel Xeon E7
case CPUID_MODEL_IVYBRIDGE:// Intel Core i3, i5, i7 LGA1155 (22nm)
case CPUID_MODEL_IVYBRIDGE_XEON:
case CPUID_MODEL_HASWELL:
case CPUID_MODEL_HASWELL_U5:
{
// thanks to dgobe for i3/i5/i7 bus speed detection
int nhm_bus = 0x3F;
verbose("CPU is %s, family 0x%x, model 0x%x\n", Platform.CPU.BrandString, (uint32_t)Platform.CPU.Family, (uint32_t)Platform.CPU.Model);
done = true;
}
// Bungo: fixes Oem Processor Type - better matching IMHO, needs testing
switch (Platform.CPU.Family)
{
case 0x0F:
case CPUID_MODEL_DOTHAN:// 0x0D - Intel Pentium M model D
case CPUID_MODEL_PRESCOTT:
case CPUID_MODEL_NOCONA:
if (strstr(Platform.CPU.BrandString, XEON))
{
value->word = 0x402;// 1026 - Xeon
return true;
}
return true;
case CPUID_MODEL_PRESLER:
case CPUID_MODEL_MEROM:// 0x0F - Intel Mobile Core 2 Solo, Duo, Xeon 30xx, Xeon 51xx, Xeon X53xx, Xeon E53xx, Xeon X32xx
case CPUID_MODEL_XEON_MP:// 0x1D - Six-Core Xeon 7400, "Dunnington", 45nm
case CPUID_MODEL_PENRYN:// 0x17 - Intel Core 2 Solo, Duo, Quad, Extreme, Xeon X54xx, Xeon X33xx
if (strstr(Platform.CPU.BrandString, XEON))
{
value->word = 0x402;// 1026 - Xeon
return true;
}
if (Platform.CPU.NoCores <= 2)
{
value->word = 0x301;// 769 - Core 2 Duo
return true;
}
else
{
value->word = 0x402;// 1026 - Core 2 Quad as Xeon
return true;
}
return true;
case CPUID_MODEL_LINCROFT:// 0x27 - Intel Atom, "Lincroft", 45nm
case CPUID_MODEL_ATOM:// 0x1C - Intel Atom (45nm)
return true;
case CPUID_MODEL_NEHALEM_EX:// 0x2E - Nehalem-ex, "Beckton", 45nm
case CPUID_MODEL_NEHALEM:// 0x1A - Intel Core i7, Xeon W35xx, Xeon X55xx, Xeon E55xx LGA1366 (45nm)
case CPUID_MODEL_FIELDS:// 0x1E - Intel Core i5, i7, Xeon X34xx LGA1156 (45nm)
case CPUID_MODEL_DALES:// 0x1F - Intel Core i5, i7 LGA1156 (45nm) (Havendale, Auburndale)
case CPUID_MODEL_CLARKDALE:// 0x1F - Intel Core i5, i7 LGA1156 (45nm) (Havendale, Auburndale)
if (strstr(Platform.CPU.BrandString, XEON))
{
value->word = 0x501;// 1281 - Lynnfiled Quad-Core Xeon
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I3))
{
value->word = 0x901;// 2305 - Core i3
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I5))
{
value->word = 0x601;// Core i5
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I7))
{
value->word = 0x701;// 1793 - Core i7
return true;
}
if (Platform.CPU.NoCores <= 2)
{
value->word = 0x901;// - Core i3
return true;
}
return true;
case CPUID_MODEL_DALES_32NM:// 0x25 - Intel Core i3, i5 LGA1156 (32nm) (Clarkdale, Arrandale)
case CPUID_MODEL_DALES:// 0x25 - Intel Core i3, i5 LGA1156 (32nm) (Clarkdale, Arrandale)
case CPUID_MODEL_WESTMERE:// 0x2C - Intel Core i7, Xeon X56xx, Xeon E56xx, Xeon W36xx LGA1366 (32nm) 6 Core
case CPUID_MODEL_WESTMERE_EX:// 0x2F - Intel Xeon E7
if (strstr(Platform.CPU.BrandString, XEON))
{
value->word = 0x501;// 1281 - Xeon
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I3))
{
value->word = 0x901;// 2305 - Core i3
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I5))
{
value->word = 0x602;// 1538 - Core i5
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I7))
{
value->word = 0x702;// 1794 -Core i7
return true;
}
if (Platform.CPU.NoCores <= 2)
{
value->word = 0x901;// - Core i3
return true;
}
return true;
case CPUID_MODEL_JAKETOWN:// 0x2D - Intel Core i7, Xeon E5-xxxx LGA2011 (32nm)
case CPUID_MODEL_SANDYBRIDGE:// 0x2A - Intel Core i3, i5, i7 LGA1155 (32nm)
if (strstr(Platform.CPU.BrandString, XEON))
{
value->word = 0x501;// 1281 - Xeon
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I3))
{
value->word = 0x902;// 2306 -Core i3
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I5))
{
value->word = 0x603;// 1539 - Core i5
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I7))
{
value->word = 0x703;// 1795 - Core i7
return true;
}
if (Platform.CPU.NoCores <= 2)
{
value->word = 0x902;// - Core i5
return true;
}
return true;
case CPUID_MODEL_IVYBRIDGE:// 0x3A - Intel Core i3, i5, i7 LGA1155 (22nm)
if (strstr(Platform.CPU.BrandString, XEON))
{
value->word = 0xA01;// 2561 - Xeon
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I3))
{
value->word = 0x903;// 2307 - Core i3 - Apple doesn't use it
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I5))
{
value->word = 0x604;// 1540 - Core i5
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I7))
{
value->word = 0x704;// 1796 - Core i7
return true;
}
if (Platform.CPU.NoCores <= 2)
{
value->word = 0x903;// - Core i5
return true;
}
return true;
case CPUID_MODEL_HASWELL_U5:// 0x3D -
value->word = 0x606;// 1542
return true;
case CPUID_MODEL_IVYBRIDGE_XEON:// 0x3E - Mac Pro 6,1
value->word = 0xA01;// 2561 - Xeon
return true;
case CPUID_MODEL_ATOM_3700:// 0x37 -
case CPUID_MODEL_HASWELL:// 0x3C -
case CPUID_MODEL_HASWELL_SVR:// 0x3F -
case CPUID_MODEL_HASWELL_ULT:// 0x45 -
case CPUID_MODEL_CRYSTALWELL:// 0x46
case CPUID_MODEL_HASWELL_ULX:// 0x46 -
if (strstr(Platform.CPU.BrandString, XEON))
{
value->word = 0xA01;// 2561 - Xeon
value->word = 0x904;// 2308 - Core i3 - Apple doesn't use it - but we yes:-)
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I5))
{
value->word = 0x605;// 1541 - Core i5
return true;
}
if (strstr(Platform.CPU.BrandString, CORE_I7))
{
value->word = 0x705;// 1797 - Core i7
return true;
}
if (Platform.CPU.NoCores <= 2)
{
value->word = 0x904;// - Core i3
return true;
}
return true;
case 0x15:// EP80579 integrated processor
value->word = 0x301;// 769
return true;
case 0x13:// Core i5, Xeon MP, "Havendale", "Auburndale", 45nm
case 0x19:// Intel Core i5 650 @3.20 Ghz
value->word = 0x601;// 1537 - Core i5
return true;
default:
return true;
break; // Unsupported CPU type
}
break;
break;
}
}
/*
if (Platform.CPU.Vendor == CPUID_VENDOR_AMD) // AMD
{
value->word = simpleGetSMBOemProcessorType();
return true;
}
*/
return false;
}
trunk/i386/modules/AcpiCodec/acpi_codec.c
11701170
11711171
11721172
1173
11731174
1174
11751175
11761176
11771177
......
15071507
15081508
15091509
1510
15101511
1511
15121512
15131513
15141514
break;
}
case CPUID_MODEL_FIELDS:
case CPUID_MODEL_CLARKDALE:
case CPUID_MODEL_DALES:
case CPUID_MODEL_DALES_32NM:
case CPUID_MODEL_NEHALEM:
case CPUID_MODEL_NEHALEM_EX:
case CPUID_MODEL_WESTMERE:
break;
}
case CPUID_MODEL_FIELDS:
case CPUID_MODEL_CLARKDALE:
case CPUID_MODEL_DALES:
case CPUID_MODEL_DALES_32NM:
case CPUID_MODEL_NEHALEM:
case CPUID_MODEL_NEHALEM_EX:
case CPUID_MODEL_WESTMERE:

Archive Download the corresponding diff file

Revision: 2671