From nobody@FreeBSD.ORG Sun Sep 12 01:18:01 1999
Return-Path: <nobody@FreeBSD.ORG>
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 06D2114D8B; Sun, 12 Sep 1999 01:18:01 -0700 (PDT)
Message-Id: <19990912081801.06D2114D8B@hub.freebsd.org>
Date: Sun, 12 Sep 1999 01:18:01 -0700 (PDT)
From: tedm@toybox.placo.com
Sender: nobody@FreeBSD.ORG
To: freebsd-gnats-submit@freebsd.org
Subject: FreeBSD identifies all 80486 processors as DX chips
X-Send-Pr-Version: www-1.0

>Number:         13706
>Category:       i386
>Synopsis:       FreeBSD identifies all 80486 processors as DX chips
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Sep 12 01:20:01 PDT 1999
>Closed-Date:    Sat Nov 24 01:32:50 PST 2001
>Last-Modified:  Wed Mar 21 10:20:25 UTC 2012
>Originator:     Ted Mittelstaedt
>Release:        2.2.8
>Organization:
Internet Partners Inc.
>Environment:
FreeBSD van-radius.ipinc.net 2.2.8-RELEASE FreeBSD 2.2.8-RELEASE #0: Thu Sep  2 14:40:10 PDT 1999     tedm@van-radius.ipinc.net:/usr/src/sys/compile/VANRAD  i386 
>Description:
As far as I can tell, FreeBSD identifies all Intel 80486 chips as
80486DX chips, whether they are SX chips or DX chips.

Following is the dmsg output from a system that is a 486SX with
an 80487 "co-processor" chip installed, note the processor entry
right after the copyrights:

$ dmesg
Copyright (c) 1992-1998 FreeBSD Inc.
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.

FreeBSD 2.2.8-RELEASE #0: Thu Sep  2 14:40:10 PDT 1999
    tedm@van-radius.ipinc.net:/usr/src/sys/compile/VANRAD
CPU: i486DX (486-class CPU)
real memory  = 16777216 (16384K bytes)
avail memory = 14770176 (14424K bytes)
Probing for devices on the ISA bus:
sc0 at 0x60-0x6f irq 1 on motherboard
sc0: VGA color <16 virtual consoles, flags=0x0>
ed0 at 0x300-0x30f irq 5 maddr 0xc8000 msize 8192 on isa
ed0: address 02:60:8c:a9:17:75, type 3c503 (16 bit)
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16450
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16450
lpt0 at 0x378-0x37f irq 7 on isa
lpt0: Interrupt-driven port
lp0: TCP/IP capable interface
psm0 at 0x60-0x64 irq 12 on motherboard
psm0: model Generic PS/2 mouse, device ID 0
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fd0: 1.44MB 3.5in
fd1: 1.2MB 5.25in
wdc0 at 0x1f0-0x1f7 irq 14 flags 0x8000ff on isa
wdc0: unit 0 (wd0): <WDC AC2420H>, multi-block-16
wd0: 405MB (830760 sectors), 989 cyls, 15 heads, 56 S/T, 512 B/S
npx0 flags 0x1 on motherboard
npx0: INT 16 interface
$                            
>How-To-Repeat:
Well, I don't suppose anyone is still using 486 computers these days
so I'm not sure you can. ;-)  I do think I have a 486/33SX chip
around somewhere in case any of the developers wants me to send it to them.
>Fix:
Hopefully, everyone recompiling their kernels has read the instructions
to include co-processor emulation on 386 and 486SX chips.

>Release-Note:
>Audit-Trail:

From: Matt Behrens <mbehrens@globaldsl.com>
To: freebsd-gnats-submit@freebsd.org, tedm@toybox.placo.com
Cc:  
Subject: Re: i386/13706: FreeBSD identifies all 80486 processors as DX chips
Date: Wed, 06 Oct 1999 14:10:43 -0400

 Didn't your dmesg come with two lines after the CPU: line, which look
 like this (from my DX2/40 laptop):
 
 CPU: i486 DX2 (486-class CPU)
   Origin = "GenuineIntel"  Id = 0x435  Stepping=5
   Features=0x3<FPU,VME>
 
 From my 3.2-RELEASE sources (specifically, src/sys/i386/i386):
 
 ---
 #if defined(I486_CPU) || defined(I586_CPU) || defined(I686_CPU)
         if(*cpu_vendor)
                 printf("  Origin = \"%s\"",cpu_vendor);
         if(cpu_id)
                 printf("  Id = 0x%x", cpu_id);
 
 	.
 	.	
 	.
 
         /* Avoid ugly blank lines: only print newline when we have to.
 */
         if (*cpu_vendor || cpu_id)
                 printf("\n");
 
 #endif
 ---
 
 This section of code has been updated but still showed Origin, Id, and
 etc. back in 2.2.8.
 
 I would think that making sure you have
 
 cpu		"I486_CPU"
 
 in your kernel config would at least get the appropriate information to
 see why your SX chip isn't being detected correctly.
 

From: tedm@toybox.placo.com
To: "Matt Behrens" <mbehrens@globaldsl.com>,
	freebsd-gnats-submit@freebsd.org
Cc:  
Subject: Re: i386/13706: FreeBSD identifies all 80486 processors as DX chips
Date: Thu, 07 Oct 1999 02:44:46 +0800

 Hmmm....   Question for you:  Do you actually _have_ a 486SX that you tested
 this on?
 
 On my Compaq Presario 486DX2/66 machine running 2.2.8 the output of dmesg
 shows:
 
 CPU: i486DX (486-class CPU)
 
 This the only line - there is no additional line showing Origin or features.
 Also, the CPU line does NOT show DX2, it only shows DX.
 
 On a customer 486/25SX I see the exact same result, the CPU line shows
 i486DX, _not_ i486SX, and there is no Origin or features line.
 
 Both of those systems are running custom-built kernels with only the
 cpu I486_CPU defined in the kernel config file.
 
 On a system of mine running 3.2, Generic kernel, I see exactly the same
 behavior.  I even went and built a custom kernel - and found EXACTLY THE
 SAME BEHAVIOR!!!.  This was on yet another system running a 486DX2.
 
 Ted
 
 
 //--- forwarded letter -------------------------------------------------------
 > X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.2.5-22 i586)
 > MIME-Version: 1.0
 > Date: Wed, 06 Oct 99 14:10:43 -0400
 > From: "Matt Behrens" <mbehrens@globaldsl.com>
 > To: freebsd-gnats-submit@freebsd.org,
 >     tedm@toybox.placo.com
 > Subject: Re: i386/13706: FreeBSD identifies all 80486 processors as DX chips
 
 > 
 > Didn't your dmesg come with two lines after the CPU: line, which look
 > like this (from my DX2/40 laptop):
 > 
 > CPU: i486 DX2 (486-class CPU)
 >   Origin = "GenuineIntel"  Id = 0x435  Stepping=5
 >   Features=0x3<FPU,VME>
 > 
 > >From my 3.2-RELEASE sources (specifically, src/sys/i386/i386):
 > 
 > ---
 > #if defined(I486_CPU) || defined(I586_CPU) || defined(I686_CPU)
 >         if(*cpu_vendor)
 >                 printf("  Origin = \"%s\"",cpu_vendor);
 >         if(cpu_id)
 >                 printf("  Id = 0x%x", cpu_id);
 > 
 > 	.
 > 	.	
 > 	.
 > 
 >         /* Avoid ugly blank lines: only print newline when we have to.
 > */
 >         if (*cpu_vendor || cpu_id)
 >                 printf("\n");
 > 
 > #endif
 > ---
 > 
 > This section of code has been updated but still showed Origin, Id, and
 > etc. back in 2.2.8.
 > 
 > I would think that making sure you have
 > 
 > cpu		"I486_CPU"
 > 
 > in your kernel config would at least get the appropriate information to
 > see why your SX chip isn't being detected correctly.
 > 
 
 
 
 //----------------------------------------------------------------------------
 // Ted Mittelstaedt  - tedm@toybox.placo.com
 // 
 // Just because something CAN be done, doesn't mean that it SHOULD be done.
 
State-Changed-From-To: open->closed 
State-Changed-By: wilko 
State-Changed-When: Sat Nov 24 01:32:50 PST 2001 
State-Changed-Why:  
Most likely solved in revision 1.72 of identcpu.c 
Lacking a 486SX I cannot verify this. 



http://www.FreeBSD.org/cgi/query-pr.cgi?pr=13706 
>Unformatted:
