diff options
author | davej <davej> | 2002-07-12 00:46:33 +0000 |
---|---|---|
committer | davej <davej> | 2002-07-12 00:46:33 +0000 |
commit | 86d31dd25f924a7d2b0825195886b264d0a8420b (patch) | |
tree | ea14f029b72bcd99e472f25adaebe7d6838ed49a | |
parent | 9fd76b06905a48d653d2cb4d35af46b733e929c3 (diff) |
clean up code using tuple macros
-rw-r--r-- | AMD/identify.c | 282 | ||||
-rw-r--r-- | ChangeLog | 1 |
2 files changed, 140 insertions, 143 deletions
diff --git a/AMD/identify.c b/AMD/identify.c index cba6f76..1574577 100644 --- a/AMD/identify.c +++ b/AMD/identify.c @@ -1,5 +1,5 @@ /* - * $Id: identify.c,v 1.22 2002/07/12 00:36:19 davej Exp $ + * $Id: identify.c,v 1.23 2002/07/12 00:46:34 davej Exp $ * This file is part of x86info. * (C) 2001 Dave Jones. * @@ -103,160 +103,156 @@ void Identify_AMD (struct cpudata *cpu) cpu->vendor = VENDOR_AMD; - if (cpu->maxi >= 0x00000001) { - cpuid (cpu->number, 0x00000001, &eax, &ebx, &ecx, &edx); - cpu->stepping = eax & 0xf; - cpu->model = (eax >> 4) & 0xf; - cpu->family = (eax >> 8) & 0xf; - - switch (cpu->family) { - case 4: - switch (cpu->model) { - case 3: sprintf (cpu->name, "%s", "Am486DX2-WT"); break; - case 7: sprintf (cpu->name, "%s", "Am486DX2-WB"); break; - case 8: sprintf (cpu->name, "%s", "Am486DX4-WT / Am5x86-WT"); break; - case 9: sprintf (cpu->name, "%s", "Am486DX4-WB / Am5x86-WB"); break; - case 10:sprintf (cpu->name, "%s", "Elan SC400"); break; - case 0xe:sprintf (cpu->name, "%s", "Am5x86-WT"); break; - case 0xf:sprintf (cpu->name, "%s", "Am5x86-WB"); break; - default:sprintf (cpu->name, "%s", "Unknown CPU"); break; - } - cpu->connector = CONN_SOCKET_3; - break; - - case 5: - switch (cpu->model) { - case 0: sprintf (cpu->name, "%s", "SSA5 (PR75/PR90/PR100)"); - cpu->connector = CONN_SOCKET_5_7; - break; - case 1: sprintf (cpu->name, "%s", "K5 (PR120/PR133)"); - cpu->connector = CONN_SOCKET_5_7; - break; - case 2: sprintf (cpu->name, "%s", "K5 (PR166)"); - cpu->connector = CONN_SOCKET_5_7; - break; - case 3: sprintf (cpu->name, "%s", "K5 (PR200)"); - cpu->connector = CONN_SOCKET_5_7; - break; - case 6: sprintf (cpu->name, "%s", "K6 (0.30 um)"); - cpu->connector = CONN_SOCKET_7; - break; - case 7: sprintf (cpu->name, "%s", "K6 (0.25 um)"); - cpu->connector = CONN_SOCKET_7; - break; - case 8: nameptr += sprintf (cpu->name, "%s", "K6-2"); - cpu->connector = CONN_SUPER_SOCKET_7; - if (cpu->stepping >= 8) - printf (nameptr, "%s", " (CXT core)"); - break; - case 9: sprintf (cpu->name, "%s", "K6-III"); - cpu->connector = CONN_SUPER_SOCKET_7; - break; - case 12:sprintf (cpu->name, "%s", "K6-2+ (0.18um)"); - cpu->connector = CONN_SUPER_SOCKET_7; - break; - case 13:sprintf (cpu->name, "%s", "K6-3+ (0.18um)"); - cpu->connector = CONN_SUPER_SOCKET_7; - break; - default:sprintf (cpu->name, "%s", "Unknown CPU"); - break; - } - break; + if (cpu->maxi < 1) + return; - case 6: - switch (cpu->model) { - case 0: cpu->connector = CONN_SLOT_A; - sprintf (cpu->name, "%s", "K7 ES"); - break; + cpuid (cpu->number, 0x00000001, &eax, &ebx, &ecx, &edx); + cpu->stepping = eax & 0xf; + cpu->model = (eax >> 4) & 0xf; + cpu->family = (eax >> 8) & 0xf; - case 1: cpu->connector = CONN_SLOT_A; - nameptr += sprintf (cpu->name, "%s", "Athlon (0.25um)"); - switch (cpu->stepping) { - case 1: sprintf (nameptr, "%s", " Rev C1"); break; - case 2: sprintf (nameptr, "%s", " Rev C2"); break; - } + switch (cpu->family) { + case 4: cpu->connector = CONN_SOCKET_3; + break; + } + + switch (tuple(cpu) & 0xff0) { + case 0x430: sprintf (cpu->name, "%s", "Am486DX2-WT"); + break; + case 0x470: sprintf (cpu->name, "%s", "Am486DX2-WB"); + break; + case 0x480: sprintf (cpu->name, "%s", "Am486DX4-WT / Am5x86-WT"); + break; + case 0x490: sprintf (cpu->name, "%s", "Am486DX4-WB / Am5x86-WB"); + break; + case 0x4a0: sprintf (cpu->name, "%s", "Elan SC400"); + break; + case 0x4e0: sprintf (cpu->name, "%s", "Am5x86-WT"); + break; + case 0x4f0: sprintf (cpu->name, "%s", "Am5x86-WB"); break; - case 2: cpu->connector = CONN_SLOT_A; - nameptr += sprintf (cpu->name, "%s", "Athlon (0.18um)"); - switch (cpu->stepping) { - case 1: sprintf (nameptr, "%s", " Rev A1"); break; - case 2: sprintf (nameptr, "%s", " Rev A2"); break; - } - break; - case 3: cpu->connector = CONN_SOCKET_A; - nameptr += sprintf (cpu->name, "%s", "Duron"); - switch (cpu->stepping) { - case 0: sprintf (nameptr, "%s", " Rev A0"); break; - case 1: sprintf (nameptr, "%s", " Rev A2"); break; - } - break; - case 4: cpu->connector = CONN_SOCKET_A; - nameptr += sprintf (cpu->name, "%s", "Thunderbird"); - switch (cpu->stepping) { - case 0: sprintf (nameptr, "%s", " Rev A1"); break; - case 1: sprintf (nameptr, "%s", " Rev A2"); break; - case 2: sprintf (nameptr, "%s", " Rev A4-A8"); break; - case 3: sprintf (nameptr, "%s", " Rev A9"); break; - } - break; - case 6: cpu->connector = CONN_SOCKET_A; - switch (cpu->stepping) { - case 0: sprintf (nameptr, "%s", "Athlon 4 (Palomino core) Rev A0-A1"); break; - case 1: sprintf (nameptr, "%s", "Athlon 4 (Palomino core) Rev A2"); break; - case 2: - if (getL2size(cpu->number) < 256) { - sprintf (nameptr, "%s", "Mobile Duron"); - break; - } else { - cpuid (cpu->number, 0x80000001, &eax, &ebx, &ecx, &edx); - if ((edx & (1<<19)) == 0) { - sprintf (nameptr, "%s", "Athlon XP"); - break; - } else { - sprintf (nameptr, "%s", "Athlon MP"); - break; - } - } - } - break; + case 0x500: sprintf (cpu->name, "%s", "SSA5 (PR75/PR90/PR100)"); + cpu->connector = CONN_SOCKET_5_7; + break; + case 0x510: sprintf (cpu->name, "%s", "K5 (PR120/PR133)"); + cpu->connector = CONN_SOCKET_5_7; + break; + case 0x520: sprintf (cpu->name, "%s", "K5 (PR166)"); + cpu->connector = CONN_SOCKET_5_7; + break; + case 0x530: sprintf (cpu->name, "%s", "K5 (PR200)"); + cpu->connector = CONN_SOCKET_5_7; + break; + case 0x560: sprintf (cpu->name, "%s", "K6 (0.30 um)"); + cpu->connector = CONN_SOCKET_7; + break; + case 0x570: sprintf (cpu->name, "%s", "K6 (0.25 um)"); + cpu->connector = CONN_SOCKET_7; + break; + case 0x580: nameptr += sprintf (cpu->name, "%s", "K6-2"); + cpu->connector = CONN_SUPER_SOCKET_7; + if (cpu->stepping >= 8) + printf (nameptr, "%s", " (CXT core)"); + break; + case 0x590: sprintf (cpu->name, "%s", "K6-III"); + cpu->connector = CONN_SUPER_SOCKET_7; + break; + case 0x5c0:sprintf (cpu->name, "%s", "K6-2+ (0.18um)"); + cpu->connector = CONN_SUPER_SOCKET_7; + break; + case 0x5d0:sprintf (cpu->name, "%s", "K6-3+ (0.18um)"); + cpu->connector = CONN_SUPER_SOCKET_7; + break; - case 7: cpu->connector = CONN_SOCKET_A; - switch (cpu->stepping) { - case 0: sprintf (cpu->name, "%s", "Duron (Morgan core) Rev A0"); break; - case 1: sprintf (cpu->name, "%s", "Duron (Morgan core) Rev A1"); break; - } - break; + case 0x600: cpu->connector = CONN_SLOT_A; + sprintf (cpu->name, "%s", "K7 ES"); + break; - case 8: cpu->connector = CONN_SOCKET_A; - if (getL2size(cpu->number) < 256) { - sprintf (nameptr, "%s", "Duron"); - break; - } else { - cpuid (cpu->number, 0x80000001, &eax, &ebx, &ecx, &edx); - if ((edx & (1<<19)) == 0) { - sprintf (nameptr, "%s", "Athlon XP (Thoroughbred core)"); + case 0x610: cpu->connector = CONN_SLOT_A; + nameptr += sprintf (cpu->name, "%s", "Athlon (0.25um)"); + switch (cpu->stepping) { + case 1: sprintf (nameptr, "%s", " Rev C1"); break; + case 2: sprintf (nameptr, "%s", " Rev C2"); break; + } + break; + + case 0x620: cpu->connector = CONN_SLOT_A; + nameptr += sprintf (cpu->name, "%s", "Athlon (0.18um)"); + switch (cpu->stepping) { + case 1: sprintf (nameptr, "%s", " Rev A1"); break; + case 2: sprintf (nameptr, "%s", " Rev A2"); break; + } + break; + + case 0x630: cpu->connector = CONN_SOCKET_A; + nameptr += sprintf (cpu->name, "%s", "Duron"); + switch (cpu->stepping) { + case 0: sprintf (nameptr, "%s", " Rev A0"); break; + case 1: sprintf (nameptr, "%s", " Rev A2"); break; + } + break; + + case 0x640: cpu->connector = CONN_SOCKET_A; + nameptr += sprintf (cpu->name, "%s", "Thunderbird"); + switch (cpu->stepping) { + case 0: sprintf (nameptr, "%s", " Rev A1"); break; + case 1: sprintf (nameptr, "%s", " Rev A2"); break; + case 2: sprintf (nameptr, "%s", " Rev A4-A8"); break; + case 3: sprintf (nameptr, "%s", " Rev A9"); break; + } + break; + + case 0x660: cpu->connector = CONN_SOCKET_A; + switch (cpu->stepping) { + case 0: sprintf (nameptr, "%s", "Athlon 4 (Palomino core) Rev A0-A1"); break; + case 1: sprintf (nameptr, "%s", "Athlon 4 (Palomino core) Rev A2"); break; + case 2: + if (getL2size(cpu->number) < 256) { + sprintf (nameptr, "%s", "Mobile Duron"); break; } else { - sprintf (nameptr, "%s", "Athlon MP (Thoroughbred core)"); - break; + cpuid (cpu->number, 0x80000001, &eax, &ebx, &ecx, &edx); + if ((edx & (1<<19)) == 0) { + sprintf (nameptr, "%s", "Athlon XP"); + break; + } else { + sprintf (nameptr, "%s", "Athlon MP"); + break; + } } - } - break; - case 15: - /* based on http://www.tecchannel.de/hardware/937/images/0010328_PIC.gif */ - if (cpu->model==0 && cpu->stepping==0) - printf ("Clawhammer ES\n"); - break; + } + break; + + case 0x670: cpu->connector = CONN_SOCKET_A; + switch (cpu->stepping) { + case 0: sprintf (cpu->name, "%s", "Duron (Morgan core) Rev A0"); break; + case 1: sprintf (cpu->name, "%s", "Duron (Morgan core) Rev A1"); break; + } + break; - default:sprintf (cpu->name, "%s", "Unknown CPU"); + case 0x680: cpu->connector = CONN_SOCKET_A; + if (getL2size(cpu->number) < 256) { + sprintf (nameptr, "%s", "Duron"); break; - } - break; + } else { + cpuid (cpu->number, 0x80000001, &eax, &ebx, &ecx, &edx); + if ((edx & (1<<19)) == 0) { + sprintf (nameptr, "%s", "Athlon XP (Thoroughbred core)"); + break; + } else { + sprintf (nameptr, "%s", "Athlon MP (Thoroughbred core)"); + break; + } + } + break; - default:sprintf (cpu->name, "%s", "Unknown CPU"); - break; - } + case 0xF00: /* based on http://www.tecchannel.de/hardware/937/images/0010328_PIC.gif */ + printf ("Clawhammer ES\n"); + break; + + default: sprintf (cpu->name, "%s", "Unknown CPU"); + break; } } @@ -2,6 +2,7 @@ * x86info.h: introduced tuple macro * Intel/identify.c: used tuple macro to clean up code. + * AMD/identify.c: used tuple macro to clean up code. 2002-06-18 Dave Jones <davej@suse.de> |