| Summary: | FreeBSD identifies all 80486 processors as DX chips | ||
|---|---|---|---|
| Product: | Base System | Reporter: | tedm <tedm> |
| Component: | i386 | Assignee: | freebsd-bugs (Nobody) <bugs> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | Unspecified | ||
| Hardware: | Any | ||
| OS: | Any | ||
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.
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 Most likely solved in revision 1.72 of identcpu.c Lacking a 486SX I cannot verify this. |
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 $ Fix: Hopefully, everyone recompiling their kernels has read the instructions to include co-processor emulation on 386 and 486SX chips. 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.