Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Feb 1999 20:24:29 +0900 (JST)
From:      mrt@notwork.org
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   kern/10022: kernel cannot detect WinChips correctly.
Message-ID:  <199902111124.UAA00936@kotonoha.s.notwork.org>

next in thread | raw e-mail | index | archive | help

>Number:         10022
>Category:       kern
>Synopsis:       kernel cannot detect WinChips correctly.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Feb 11 03:30:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     Murata Shuuichirou
>Release:        FreeBSD 4.0-CURRENT i386
>Organization:
>Environment:
FreeBSD kotonoha.s.notwork.org 4.0-CURRENT FreeBSD 4.0-CURRENT #6: Thu Feb 11 18:24:37 JST 1999     mrt@kotonoha.s.notwork.org:/usr/src/mrt/src/sys/compile/KOTONOHA  i386
>Description:

-current kernel cannot detect IDT's WinChips correctly.

>How-To-Repeat:

Replace your Pentium with a WinChip and boot FreeBSD.

>Fix:
	
According to data sheet, WinChips (C6 and 2) are almost
compatible with Pentium and have no special features on our
use.  So all we have to do is to print the name and features
correctly.  Following patch is tested on WinChip C6.

Index: identcpu.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/i386/identcpu.c,v
retrieving revision 1.58
diff -u -r1.58 identcpu.c
--- identcpu.c	1999/02/04 16:48:25	1.58
+++ identcpu.c	1999/02/05 17:30:53
@@ -457,6 +457,17 @@
 		}
 	} else if (strcmp(cpu_vendor,"IBM") == 0)
 		strcpy(cpu_model, "Blue Lightning CPU");
+	else if (strcmp(cpu_vendor,"CentaurHauls") == 0) {
+		strcpy(cpu_model, "IDT ");
+		switch (cpu_id & 0xff0) {
+		case 0x540:
+			strcat(cpu_model, "WinChip C6");
+			break;
+		case 0x580:
+			strcat(cpu_model, "WinChip 2");
+			break;
+		}
+	}
 #endif
 
 	printf("%s (", cpu_model);
@@ -508,7 +519,8 @@
 	if (strcmp(cpu_vendor, "GenuineIntel") == 0 ||
 	    strcmp(cpu_vendor, "AuthenticAMD") == 0 ||
 		((strcmp(cpu_vendor, "CyrixInstead") == 0) &&
-		 ((cpu_id & 0xf00) > 5))) {
+		 ((cpu_id & 0xf00) > 5)) ||
+	    strcmp(cpu_vendor, "CentaurHauls") == 0) {
 		printf("  Stepping=%u", cpu_id & 0xf);
 		if (strcmp(cpu_vendor, "CyrixInstead") == 0)
 			printf("  DIR=0x%04x", cyrix_did);
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199902111124.UAA00936>