savage_vid added
[mplayer/greg.git] / cputable.h
blob92858abb8260c8179a5f90195b500330142ffa5a
1 /* cputable.h - Maps CPUID to real CPU name.
2 * Copyleft 2001 by Felix Buenemann <atmosfear at users dot sourceforge dot net>
3 * This file comes under the GNU GPL, see www.fsf.org for more info!
4 */
6 #define MAX_VENDORS 8 /* Number of CPU Vendors */
8 //#define N_UNKNOWN "unknown"
9 //#define N_UNKNOWNEXT "unknown extended model"
10 #define N_UNKNOWN ""
11 #define N_UNKNOWNEXT ""
13 #define F_UNKNOWN { \
14 N_UNKNOWN, \
15 N_UNKNOWN, \
16 N_UNKNOWN, \
17 N_UNKNOWN, \
18 N_UNKNOWN, \
19 N_UNKNOWN, \
20 N_UNKNOWN, \
21 N_UNKNOWN, \
22 N_UNKNOWN, \
23 N_UNKNOWN, \
24 N_UNKNOWN, \
25 N_UNKNOWN, \
26 N_UNKNOWN, \
27 N_UNKNOWN, \
28 N_UNKNOWN, \
29 N_UNKNOWN \
32 static const char *cpuname
33 /* Vendor */ [MAX_VENDORS]
34 /* Family */ [16]
35 /* Model */ [16]
37 /* Intel Corporation, "GenuineIntel" */ {
38 /* 0 */ F_UNKNOWN,
39 /* 1 */ F_UNKNOWN,
40 /* 2 */ F_UNKNOWN,
41 /* 3 i386 */ F_UNKNOWN, /* XXX new 386 chips may support CPUID! */
42 /* 4 i486 */ {
43 /* 0 */ "i486DX-25/33", /* only few of these */
44 /* 1 */ "i486DX-50", /* support CPUID! */
45 /* 2 */ "i486SX",
46 /* 3 */ "i486DX2", /* CPUID only on new chips! */
47 /* 4 */ "i486SL",
48 /* 5 */ "i486SX2",
49 /* 6 */ N_UNKNOWN,
50 /* 7 */ "i486DX2/write-back", /* returns 3 in write-through mode */
51 /* 8 */ "i486DX4",
52 /* 9 */ "i486DX4/write-back",
53 /* A */ N_UNKNOWN,
54 /* B */ N_UNKNOWN,
55 /* C */ N_UNKNOWN,
56 /* D */ N_UNKNOWN,
57 /* E */ N_UNKNOWN,
58 /* F */ N_UNKNOWNEXT
60 /* 5 i586 */ {
61 /* 0 */ "Pentium P5 A-step",
62 /* 1 */ "Pentium P5",
63 /* 2 */ "Pentium P54C",
64 /* 3 */ "Pentium OverDrive P24T",
65 /* 4 */ "Pentium MMX P55C",
66 /* 5 */ N_UNKNOWN, /* XXX DX4 OverDrive? */
67 /* 6 */ N_UNKNOWN, /* XXX P5 OverDrive? */
68 /* 7 */ "Pentium P54C (new)",
69 /* 8 */ "Pentium MMX P55C (new)",
70 /* 9 */ N_UNKNOWN,
71 /* A */ N_UNKNOWN,
72 /* B */ N_UNKNOWN,
73 /* C */ N_UNKNOWN,
74 /* D */ N_UNKNOWN,
75 /* E */ N_UNKNOWN,
76 /* F */ N_UNKNOWNEXT
78 /* 6 i686 */ {
79 /* 0 */ "PentiumPro A-step",
80 /* 1 */ "PentiumPro",
81 /* 2 */ N_UNKNOWN,
82 /* 3 */ "Pentium II Klamath/Pentium II OverDrive",
83 /* 4 */ N_UNKNOWN, /* XXX P55CT - OverDrive for P54? */
84 /* 5 */ "Celeron Covington/Pentium II Deschutes,Tonga/Pentium II Xeon",
85 /* 6 */ "Celeron A Mendocino/Pentium II Dixon",
86 /* 7 */ "Pentium III Katmai/Pentium III Xeon Tanner",
87 /* 8 */ "Celeron 2/Pentium III Coppermine,Geyserville",
88 /* 9 */ "Pentium M Banias", /* XXX check */
89 /* A */ "Pentium III Xeon Cascades",
90 /* B */ "Celeron 2/Pentium III Tualatin",
91 /* C */ N_UNKNOWN,
92 /* D */ N_UNKNOWN,
93 /* E */ N_UNKNOWN,
94 /* F */ N_UNKNOWNEXT
96 /* 7 Itanium */ { /* XXX check */
97 /* 0 */ "Itanium Merced",
98 /* 1 */ N_UNKNOWN,
99 /* 2 */ N_UNKNOWN,
100 /* 3 */ N_UNKNOWN,
101 /* 4 */ N_UNKNOWN,
102 /* 5 */ N_UNKNOWN,
103 /* 6 */ N_UNKNOWN,
104 /* 7 */ N_UNKNOWN,
105 /* 8 */ N_UNKNOWN,
106 /* 9 */ N_UNKNOWN,
107 /* A */ N_UNKNOWN,
108 /* B */ N_UNKNOWN,
109 /* C */ N_UNKNOWN,
110 /* D */ N_UNKNOWN,
111 /* E */ N_UNKNOWN,
112 /* F */ N_UNKNOWNEXT
114 /* 8 */ F_UNKNOWN,
115 /* 9 */ F_UNKNOWN,
116 /* A */ F_UNKNOWN,
117 /* B */ F_UNKNOWN,
118 /* C */ F_UNKNOWN,
119 /* D */ F_UNKNOWN,
120 /* E */ F_UNKNOWN,
121 /* F extended family (P4/new IA-64)*/ {
122 /* 0 */ N_UNKNOWN,
123 /* 1 */ "Pentium 4/Xeon Willamette",
124 /* 2 */ "Pentium 4/Xeon/Celeron Foster",
125 /* 3 */ "Pentium 4/Xeon/Celeron Northwood",
126 /* 4 */ N_UNKNOWN,
127 /* 5 */ N_UNKNOWN,
128 /* 6 */ N_UNKNOWN,
129 /* 7 */ N_UNKNOWN,
130 /* 8 */ N_UNKNOWN,
131 /* 9 */ N_UNKNOWN,
132 /* A */ N_UNKNOWN,
133 /* B */ N_UNKNOWN,
134 /* C */ N_UNKNOWN,
135 /* D */ N_UNKNOWN,
136 /* E */ N_UNKNOWN,
137 /* F */ N_UNKNOWNEXT
139 #if 0 /* out of table index boundaries */
140 /* 1F Itanium 2 */ { /* XXX check */
141 /* 0 */ "Itanium 2 McKinley",
142 /* 1 */ "Itanium 2 Madison", /* I coded on that :-) */
143 /* 2 */ N_UNKNOWN,
144 /* 3 */ N_UNKNOWN,
145 /* 4 */ N_UNKNOWN,
146 /* 5 */ N_UNKNOWN,
147 /* 6 */ N_UNKNOWN,
148 /* 7 */ N_UNKNOWN,
149 /* 8 */ N_UNKNOWN,
150 /* 9 */ N_UNKNOWN,
151 /* A */ N_UNKNOWN,
152 /* B */ N_UNKNOWN,
153 /* C */ N_UNKNOWN,
154 /* D */ N_UNKNOWN,
155 /* E */ N_UNKNOWN,
156 /* F */ N_UNKNOWNEXT
158 #endif
160 /* United Microelectronics Corporation, "UMC UMC UMC " */ {
161 /* 0 */ F_UNKNOWN,
162 /* 1 */ F_UNKNOWN,
163 /* 2 */ F_UNKNOWN,
164 /* 3 */ F_UNKNOWN,
165 /* 4 486 (U5) */ {
166 /* 0 */ N_UNKNOWN,
167 /* 1 */ "486DX U5D",
168 /* 2 */ "486SX U5S",
169 /* 3 */ N_UNKNOWN,
170 /* 4 */ N_UNKNOWN,
171 /* 5 */ N_UNKNOWN,
172 /* 6 */ N_UNKNOWN,
173 /* 7 */ N_UNKNOWN,
174 /* 8 */ N_UNKNOWN,
175 /* 9 */ N_UNKNOWN,
176 /* A */ N_UNKNOWN,
177 /* B */ N_UNKNOWN,
178 /* C */ N_UNKNOWN,
179 /* D */ N_UNKNOWN,
180 /* E */ N_UNKNOWN,
181 /* F */ N_UNKNOWN
183 /* 5 */ F_UNKNOWN,
184 /* 6 */ F_UNKNOWN,
185 /* 7 */ F_UNKNOWN,
186 /* 8 */ F_UNKNOWN,
187 /* 9 */ F_UNKNOWN,
188 /* A */ F_UNKNOWN,
189 /* B */ F_UNKNOWN,
190 /* C */ F_UNKNOWN,
191 /* D */ F_UNKNOWN,
192 /* E */ F_UNKNOWN,
193 /* F */ F_UNKNOWN
195 /* Advanced Micro Devices, "AuthenticAMD" (very rare: "AMD ISBETTER") */ {
196 /* 0 */ F_UNKNOWN,
197 /* 1 */ F_UNKNOWN,
198 /* 2 */ F_UNKNOWN,
199 /* 3 */ F_UNKNOWN,
200 /* 4 486/5x86 */ {
201 /* 0 */ N_UNKNOWN,
202 /* 1 */ N_UNKNOWN,
203 /* 2 */ N_UNKNOWN,
204 /* 3 */ "486DX2",
205 /* 4 */ N_UNKNOWN,
206 /* 5 */ N_UNKNOWN,
207 /* 6 */ N_UNKNOWN,
208 /* 7 */ "486DX2/write-back",
209 /* 8 */ "486DX4/5x86",
210 /* 9 */ "486DX4/write-back",
211 /* A */ N_UNKNOWN,
212 /* B */ N_UNKNOWN,
213 /* C */ N_UNKNOWN,
214 /* D */ N_UNKNOWN,
215 /* E */ "5x86",
216 /* F */ "5x86/write-back"
218 /* 5 K5/K6 */ {
219 /* 0 */ "K5 SSA5 (PR75,PR90,PR100)",
220 /* 1 */ "K5 5k86 (PR120,PR133)",
221 /* 2 */ "K5 5k86 (PR166)",
222 /* 3 */ "K5 5k86 (PR200)",
223 /* 4 */ N_UNKNOWN,
224 /* 5 */ N_UNKNOWN,
225 /* 6 */ "K6",
226 /* 7 */ "K6 Little Foot",
227 /* 8 */ "K6-2",
228 /* 9 */ "K6-III Chomper",
229 /* A */ N_UNKNOWN,
230 /* B */ N_UNKNOWN,
231 /* C */ N_UNKNOWN,
232 /* D */ "K6-2+/K6-III+ Sharptooth",
233 /* E */ N_UNKNOWN,
234 /* F */ N_UNKNOWN
236 /* 6 K7 */ {
237 /* 0 */ N_UNKNOWN, /* Argon? */
238 /* 1 */ "Athlon K7",
239 /* 2 */ "Athlon K75 Pluto,Orion",
240 /* 3 */ "Duron Spitfire",
241 /* 4 */ "Athlon Thunderbird",
242 /* 5 */ N_UNKNOWN,
243 /* 6 */ "Athlon 4 /Athlon MP/XP Palomino",
244 /* 7 */ "Duron MG Morgan",
245 /* 8 */ "Athlon MP/XP Thoroughbred",
246 /* 9 */ N_UNKNOWN,
247 /* A */ "Athlon MP/XP/XP-M Barton",
248 /* B */ N_UNKNOWN,
249 /* E */ N_UNKNOWN,
250 /* C */ N_UNKNOWN,
251 /* D */ N_UNKNOWN,
252 /* F */ N_UNKNOWN
254 /* 7 */ F_UNKNOWN,
255 /* 8 */ F_UNKNOWN,
256 /* 9 */ F_UNKNOWN,
257 /* A */ F_UNKNOWN,
258 /* B */ F_UNKNOWN,
259 /* C */ F_UNKNOWN,
260 /* D */ F_UNKNOWN,
261 /* E */ F_UNKNOWN,
262 /* F K8 */ {
263 /* 0 */ N_UNKNOWN,
264 /* 1 */ N_UNKNOWN,
265 /* 2 */ N_UNKNOWN,
266 /* 3 */ N_UNKNOWN,
267 /* 4 */ "Athlon 64 Clawhammer",
268 /* 5 */ "Opteron Sledgehammer",
269 /* 6 */ N_UNKNOWN,
270 /* 7 */ N_UNKNOWN,
271 /* 8 */ N_UNKNOWN,
272 /* 9 */ N_UNKNOWN,
273 /* A */ N_UNKNOWN,
274 /* B */ N_UNKNOWN,
275 /* E */ N_UNKNOWN,
276 /* C */ N_UNKNOWN,
277 /* D */ N_UNKNOWN,
278 /* F */ N_UNKNOWN
282 /* Cyrix Corp./VIA Inc., "CyrixInstead" */ {
283 /* 0 */ F_UNKNOWN,
284 /* 1 */ F_UNKNOWN,
285 /* 2 */ F_UNKNOWN,
286 /* 3 */ F_UNKNOWN,
287 /* 4 5x86 */ {
288 /* 0 */ N_UNKNOWN,
289 /* 1 */ N_UNKNOWN,
290 /* 2 */ N_UNKNOWN,
291 /* 3 */ N_UNKNOWN,
292 /* 4 */ "MediaGX",
293 /* 5 */ N_UNKNOWN,
294 /* 6 */ N_UNKNOWN,
295 /* 7 */ N_UNKNOWN,
296 /* 8 */ N_UNKNOWN,
297 /* 9 */ "5x86", /* CPUID maybe only on newer chips */
298 /* A */ N_UNKNOWN,
299 /* B */ N_UNKNOWN,
300 /* E */ N_UNKNOWN,
301 /* C */ N_UNKNOWN,
302 /* D */ N_UNKNOWN,
303 /* F */ N_UNKNOWN
305 /* 5 M1 */ {
306 /* 0 */ "M1 test-sample", /*?*/
307 /* 1 */ N_UNKNOWN,
308 /* 2 */ "6x86 M1",
309 /* 3 */ "6x86L M1",
310 /* 4 */ "GXm",
311 /* 5 */ N_UNKNOWN,
312 /* 6 */ N_UNKNOWN,
313 /* 7 */ N_UNKNOWN,
314 /* 8 */ N_UNKNOWN,
315 /* 9 */ N_UNKNOWN,
316 /* A */ N_UNKNOWN,
317 /* B */ N_UNKNOWN,
318 /* E */ N_UNKNOWN,
319 /* C */ N_UNKNOWN,
320 /* D */ N_UNKNOWN,
321 /* F */ N_UNKNOWN
323 /* 6 M2 */ {
324 /* 0 */ "6x86MX M2/M-II",
325 /* 1 */ N_UNKNOWN,
326 /* 2 */ N_UNKNOWN,
327 /* 3 */ N_UNKNOWN,
328 /* 4 */ N_UNKNOWN,
329 /* 5 */ "Cyrix III Joshua (M2 core)",
330 /* 6 */ N_UNKNOWN,
331 /* 7 */ N_UNKNOWN,
332 /* 8 */ N_UNKNOWN,
333 /* 9 */ N_UNKNOWN,
334 /* A */ N_UNKNOWN,
335 /* B */ N_UNKNOWN,
336 /* E */ N_UNKNOWN,
337 /* C */ N_UNKNOWN,
338 /* D */ N_UNKNOWN,
339 /* F */ N_UNKNOWN
341 /* 7 */ F_UNKNOWN,
342 /* 8 */ F_UNKNOWN,
343 /* 9 */ F_UNKNOWN,
344 /* A */ F_UNKNOWN,
345 /* B */ F_UNKNOWN,
346 /* C */ F_UNKNOWN,
347 /* D */ F_UNKNOWN,
348 /* E */ F_UNKNOWN,
349 /* F */ F_UNKNOWN
351 /* NexGen Inc., "NexGenDriven" */ {
352 /* 0 */ F_UNKNOWN,
353 /* 1 */ F_UNKNOWN,
354 /* 2 */ F_UNKNOWN,
355 /* 3 */ F_UNKNOWN,
356 /* 4 */ F_UNKNOWN,
357 /* 5 Nx586 */ {
358 /* 0 */ "Nx586/Nx586FPU", /* only newer ones support CPUID! */
359 /* 1 */ N_UNKNOWN,
360 /* 2 */ N_UNKNOWN,
361 /* 3 */ N_UNKNOWN,
362 /* 4 */ N_UNKNOWN,
363 /* 5 */ N_UNKNOWN,
364 /* 6 */ N_UNKNOWN,
365 /* 7 */ N_UNKNOWN,
366 /* 8 */ N_UNKNOWN,
367 /* 9 */ N_UNKNOWN,
368 /* A */ N_UNKNOWN,
369 /* B */ N_UNKNOWN,
370 /* E */ N_UNKNOWN,
371 /* C */ N_UNKNOWN,
372 /* D */ N_UNKNOWN,
373 /* F */ N_UNKNOWN
375 /* 6 */ F_UNKNOWN,
376 /* 7 */ F_UNKNOWN,
377 /* 8 */ F_UNKNOWN,
378 /* 9 */ F_UNKNOWN,
379 /* A */ F_UNKNOWN,
380 /* B */ F_UNKNOWN,
381 /* C */ F_UNKNOWN,
382 /* D */ F_UNKNOWN,
383 /* E */ F_UNKNOWN,
384 /* F */ F_UNKNOWN
386 /* IDT/Centaur/VIA, "CentaurHauls" */ {
387 /* 0 */ F_UNKNOWN,
388 /* 1 */ F_UNKNOWN,
389 /* 2 */ F_UNKNOWN,
390 /* 3 */ F_UNKNOWN,
391 /* 4 */ F_UNKNOWN,
392 /* 5 IDT C6 WinChip */ {
393 /* 0 */ N_UNKNOWN,
394 /* 1 */ N_UNKNOWN,
395 /* 2 */ N_UNKNOWN,
396 /* 3 */ N_UNKNOWN,
397 /* 4 */ "WinChip C6",
398 /* 5 */ N_UNKNOWN,
399 /* 6 */ "Samuel",
400 /* 7 */ N_UNKNOWN,
401 /* 8 */ "WinChip 2 C6+,W2,W2A,W2B",
402 /* 9 */ "WinChip 3 W3",
403 /* A */ "WinChip 4 W4A", /* XXX check */
404 /* B */ N_UNKNOWN,
405 /* E */ N_UNKNOWN,
406 /* C */ N_UNKNOWN,
407 /* D */ N_UNKNOWN,
408 /* F */ N_UNKNOWN
410 /* 6 VIA C3 */ {
411 /* 0 */ N_UNKNOWN,
412 /* 1 */ N_UNKNOWN,
413 /* 2 */ N_UNKNOWN,
414 /* 3 */ N_UNKNOWN,
415 /* 4 */ N_UNKNOWN,
416 /* 5 */ N_UNKNOWN,
417 /* 6 */ "Cyrix III Samuel (WinChip C5A core)",
418 /* 7 */ "C3 Samuel 2 (WinChip C5B core)/C3 Ezra",
419 /* 8 */ "C3 Ezra-T",
420 /* 9 */ "C3 Nehemiah",
421 /* A */ N_UNKNOWN,
422 /* B */ N_UNKNOWN,
423 /* E */ N_UNKNOWN,
424 /* C */ N_UNKNOWN,
425 /* D */ N_UNKNOWN,
426 /* F */ N_UNKNOWN
428 /* 7 */ F_UNKNOWN,
429 /* 8 */ F_UNKNOWN,
430 /* 9 */ F_UNKNOWN,
431 /* A */ F_UNKNOWN,
432 /* B */ F_UNKNOWN,
433 /* C */ F_UNKNOWN,
434 /* D */ F_UNKNOWN,
435 /* E */ F_UNKNOWN,
436 /* F */ F_UNKNOWN
438 /* Rise, "RiseRiseRise" */ {
439 /* 0 */ F_UNKNOWN,
440 /* 1 */ F_UNKNOWN,
441 /* 2 */ F_UNKNOWN,
442 /* 3 */ F_UNKNOWN,
443 /* 4 */ F_UNKNOWN,
444 /* 5 mP6 */ {
445 /* 0 */ "mP6 iDragon 6401,6441 Kirin",
446 /* 1 */ "mP6 iDragon 6510 Lynx",
447 /* 2 */ N_UNKNOWN,
448 /* 3 */ N_UNKNOWN,
449 /* 4 */ N_UNKNOWN,
450 /* 5 */ N_UNKNOWN,
451 /* 6 */ N_UNKNOWN,
452 /* 7 */ N_UNKNOWN,
453 /* 8 */ "mP6 iDragon II",
454 /* 9 */ "mP6 iDragon II (new)",
455 /* A */ N_UNKNOWN,
456 /* B */ N_UNKNOWN,
457 /* E */ N_UNKNOWN,
458 /* C */ N_UNKNOWN,
459 /* D */ N_UNKNOWN,
460 /* F */ N_UNKNOWN
462 /* 6 */ F_UNKNOWN,
463 /* 7 */ F_UNKNOWN,
464 /* 8 */ F_UNKNOWN,
465 /* 9 */ F_UNKNOWN,
466 /* A */ F_UNKNOWN,
467 /* B */ F_UNKNOWN,
468 /* C */ F_UNKNOWN,
469 /* D */ F_UNKNOWN,
470 /* E */ F_UNKNOWN,
471 /* F */ F_UNKNOWN
473 /* Transmeta, "GenuineTMx86" */ {
474 /* 0 */ F_UNKNOWN,
475 /* 1 */ F_UNKNOWN,
476 /* 2 */ F_UNKNOWN,
477 /* 3 */ F_UNKNOWN,
478 /* 4 */ F_UNKNOWN,
479 /* 5 Crusoe */ {
480 /* 0 */ N_UNKNOWN,
481 /* 1 */ N_UNKNOWN,
482 /* 2 */ N_UNKNOWN,
483 /* 3 */ N_UNKNOWN,
484 /* 4 */ "Crusoe TM3x00,TM5x00",
485 /* 5 */ N_UNKNOWN,
486 /* 6 */ N_UNKNOWN,
487 /* 7 */ N_UNKNOWN,
488 /* 8 */ N_UNKNOWN,
489 /* 9 */ N_UNKNOWN,
490 /* A */ N_UNKNOWN,
491 /* B */ N_UNKNOWN,
492 /* E */ N_UNKNOWN,
493 /* C */ N_UNKNOWN,
494 /* D */ N_UNKNOWN,
495 /* F */ N_UNKNOWN
497 /* 6 */ F_UNKNOWN,
498 /* 7 */ F_UNKNOWN,
499 /* 8 */ F_UNKNOWN,
500 /* 9 */ F_UNKNOWN,
501 /* A */ F_UNKNOWN,
502 /* B */ F_UNKNOWN,
503 /* C */ F_UNKNOWN,
504 /* D */ F_UNKNOWN,
505 /* E */ F_UNKNOWN,
506 /* F */ F_UNKNOWN
510 #undef N_UNKNOWNEXT
511 #undef N_UNKNOWN
512 #undef F_UNKNOWN
514 static const struct {
515 char string[13];
516 char name[48];
517 } cpuvendors[MAX_VENDORS] ={
518 {"GenuineIntel","Intel"},
519 {"UMC UMC UMC ","United Microelectronics Corporation"},
520 {"AuthenticAMD","Advanced Micro Devices"},
521 {"CyrixInstead","Cyrix/VIA"},
522 {"NexGenDriven","NexGen"},
523 {"CentaurHauls","IDT/Centaur/VIA"},
524 {"RiseRiseRise","Rise"},
525 {"GenuineTMx86","Transmeta"}