lkml.org 
[lkml]   [1998]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patches in this message
/
Date
From
SubjectAMD cpu recognition! (diff patch included)
Recognizes AMD K5 through AMD K6-2.

Made with diff -uN arch/i386/kernel/setup.c ~/setup.c > k6diff
patch -u arch/i386/kernel/setup.c k6diff

/proc/cpuinfo from my 3 k6 machines...

K6-2 300:
processor : 0
cpu : 586
model : K6-2 (model 8)
vendor_id : AuthenticAMD
stepping : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
fpu : yes
fpu_exception : yes
cpuid : yes
wp : yes
flags : fpu vme de pse tsc msr mce cx8 mmx
bogomips : 599.65

K6 200:
processor : 0
cpu : 586
model : K6 (model 6)
vendor_id : AuthenticAMD
stepping : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
fpu : yes
fpu_exception : yes
cpuid : yes
wp : yes
flags : fpu vme de pse tsc msr mce cx8 mmx
bogomips : 599.65

K6 233:
processor : 0
cpu : 586
model : K6 (model 6)
vendor_id : AuthenticAMD
stepping : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
fpu : yes
fpu_exception : yes
cpuid : yes
wp : yes
flags : fpu vme de pse tsc msr mce cx8 mmx
bogomips : 599.65

Next, to check for 3DNOW! instructions!
Then, implement them! woohoo!

The patch is attached, but here it is anyway...

--- linux/arch/i386/kernel/setup.c Mon Jul 13 01:20:34 1998
+++ setup.c Mon Jul 13 01:13:36 1998
@@ -231,20 +231,6 @@
return NULL;
}

-static const char * AMDmodel(unsigned int nr)
-{
-
- static const char *model[] = {
- "K5 (model 0)", "K5 (model 1)", "K5 (model 2)", "K5
(model 3)",
- "unknown (model 4)", "unknown (model 5)",
- "K6 (model 6)", "K6 (model 7)", "K6-2 (model 8)", "K6-2
(model 9)"
- };
- if (nr < sizeof(model)/sizeof(char *))
- return model[nr];
- return NULL;
-
-}
-
static const char * Cx86model(void)
{
unsigned char nr6x86 = 0;
@@ -305,8 +291,6 @@
static char nbuf[12];
if (strncmp(x86_vendor_id, "Cyrix", 5) == 0)
p = Cx86model();
- else if (strncmp(x86_vendor_id, "AuthenticAMD", 12) == 0)
- p = AMDmodel(model);
else {
switch (x86) {
case 4:
@@ -376,10 +360,9 @@
"stepping\t:
%s\n",

Cx86_type[Cx86_step]);
}
- else
+ else
len += sprintf(buffer+len,
"stepping\t:
unknown\n");
-

len += sprintf(buffer+len,
"fdiv_bug\t: %s\n"
__
Robert Dale

"arrest this man he talks in maths"
RADIOHEAD OK COMPUTER--- linux/arch/i386/kernel/setup.c Mon Jul 13 01:20:34 1998
+++ setup.c Mon Jul 13 01:13:36 1998
@@ -231,20 +231,6 @@
return NULL;
}

-static const char * AMDmodel(unsigned int nr)
-{
-
- static const char *model[] = {
- "K5 (model 0)", "K5 (model 1)", "K5 (model 2)", "K5 (model 3)",
- "unknown (model 4)", "unknown (model 5)",
- "K6 (model 6)", "K6 (model 7)", "K6-2 (model 8)", "K6-2 (model 9)"
- };
- if (nr < sizeof(model)/sizeof(char *))
- return model[nr];
- return NULL;
-
-}
-
static const char * Cx86model(void)
{
unsigned char nr6x86 = 0;
@@ -305,8 +291,6 @@
static char nbuf[12];
if (strncmp(x86_vendor_id, "Cyrix", 5) == 0)
p = Cx86model();
- else if (strncmp(x86_vendor_id, "AuthenticAMD", 12) == 0)
- p = AMDmodel(model);
else {
switch (x86) {
case 4:
@@ -376,10 +360,9 @@
"stepping\t: %s\n",
Cx86_type[Cx86_step]);
}
- else
+ else
len += sprintf(buffer+len,
"stepping\t: unknown\n");
-

len += sprintf(buffer+len,
"fdiv_bug\t: %s\n"
\
 
 \ /
  Last update: 2005-03-22 13:43    [W:0.071 / U:0.196 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site