Bug 4777 - Cyrix 6x86MX PR200+ incorrectly identified as 486
Cyrix 6x86MX PR200+ incorrectly identified as 486
Product: Platform Specific/Hardware
Classification: Unclassified
Component: i386
i386 Linux
: P2 normal
Assigned To: Zwane Mwaikambo
Depends on:
  Show dependency treegraph
Reported: 2005-06-22 00:00 UTC by Stefano Rivera
Modified: 2013-11-25 11:34 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.8 (debian), 2.6.11 (linus), 2.6.12 (linus)
Tree: Mainline
Regression: ---


Description Stefano Rivera 2005-06-22 00:00:32 UTC

Hardware Environment:
Cyrix 6x86MX PR200+
on a VXProII motherboard

# lspci
0000:00:05.0 Host bridge: Hint Corp VXPro II Chipset
0000:00:05.1 ISA bridge: Hint Corp VXPro II Chipset
0000:00:05.2 IDE interface: Hint Corp VXPro II IDE
0000:00:08.0 VGA compatible controller: Alliance Semiconductor Corporation
ProVideo 6422 (rev 02)
0000:00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)

Problem Description:

On 2.6 kernels I've tested:
# cat /proc/cpuinfo
processor       : 0
vendor_id       : unknown
cpu family      : 4
model           : 0
model name      : 486
stepping        : unknown
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : no
cpuid level     : -1
wp              : yes
flags           :
bogomips        : 164.86

On 2.4.27-2 (debian):
# cat /proc/cpuinfo
processor       : 0
vendor_id       : CyrixInstead
cpu family      : 6
model           : 1
model name      : 6x86MX 2.5x Core/Bus Clock
stepping        : 4
cpu MHz         : 0.000
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : yes
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu de tsc msr cx8 pge cmov mmx cyrix_arr ds_cpl est cid
bogomips        : 166.29

Comment 1 Stefano Rivera 2005-06-22 03:27:42 UTC
Aha. Enabling Cyrix CPU ID in BIOS solves this.

2.4 Kernels still correctly Identify the CPU without this, though...

Comment 2 Zwane Mwaikambo 2005-06-22 08:35:39 UTC
I'll see what the difference is, but if it requires too much code to fix, i'd
recommend sticking with the BIOS option.
Comment 3 Dave Jones 2005-06-22 09:30:52 UTC
Can you paste the output of dmesg after booting (with cpuid disabled in bios please)
Comment 4 Dave Jones 2005-06-22 09:53:20 UTC
My guess as to whats happening so far :-

In 2.4, identify_cpu called id_and_try_enable_cpuid()
In 2.6, we do the work that id_and_try_enable_cpuid() did in cyrix_identify(),
which is too late.
Comment 5 Stefano Rivera 2005-06-22 10:38:43 UTC
# dmesg
Linux version 2.6.12-gabi (stefanor@imago) (gcc version 3.3.5 (Debian
1:3.3.5-13)) #1 Wed Jun 22 00:46:19 SAST 2005
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000004000000 (usable)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)
64MB LOWMEM available.
On node 0 totalpages: 16384
  DMA zone: 4096 pages, LIFO batch:1
  Normal zone: 12288 pages, LIFO batch:7
  HighMem zone: 0 pages, LIFO batch:1
DMI not present.
Allocating PCI resources starting at 04000000 (gap: 04000000:fac00000)
Built 1 zonelists
Kernel command line: root=/dev/hda1 ro
Initializing CPU#0
PID hash table entries: 512 (order: 9, 8192 bytes)
Using pit for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 61104k/65536k available (2089k kernel code, 4008k reserved, 873k data,
152k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 164.35 BogoMIPS (lpj=82176)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 00000000 00000000 00000000 00000000 00000000
00000000 00000000
CPU: After all inits, caps: 00000000 00000000 00000000 00000000 00000000
00000000 00000000
CPU: 486
Checking 'hlt' instruction... OK.
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfdb31, last bus=0
mtrr: v2.0 (20020519)
Linux Plug and Play Support v0.97 (c) Adam Belay
PnPBIOS: Scanning system for PnP BIOS support...
PnPBIOS: Found PnP BIOS installation structure at 0xc00f8730
PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0x808e, dseg 0xf0000
PnPBIOS: 14 nodes reported by PnP BIOS; 14 recorded by driver
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
Boot video device is 0000:00:08.0
pnp: 00:0d: ioport range 0x4d0-0x4d1 has been reserved
pnp: 00:0d: ioport range 0xcf8-0xcff has been reserved
pnp: 00:0d: ioport range 0x3f7-0x3f7 has been reserved
pnp: 00:0d: ioport range 0x108-0x109 has been reserved
apm: BIOS version 1.2 Flags 0x0b (Driver version 1.16ac)
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
Initializing Cryptographic API
isapnp: Scanning for PnP cards...
isapnp: Card 'ESS ES1868 Plug and Play AudioDrive'
isapnp: 1 Plug & Play card detected total
lp: driver loaded but no devices found
Real Time Clock Driver v1.12
Non-volatile memory driver v1.2
ppdev: user-space parallel port driver
Software Watchdog Timer: 0.07 initialized. soft_noboot=0 soft_margin=60 sec
(nowayout= 0)
Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60
Hangcheck: Using monotonic_clock().
PNP: PS/2 controller doesn't have AUX irq; using default 0xc
PNP: PS/2 Controller [PNP0303] at 0x60,0x64 irq 112
serio: i8042 KBD port at 0x60,0x64 irq 1
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
parport: PnPBIOS parport detected.
parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,ECP,DMA]
lp0: using parport0 (interrupt-driven).
io scheduler noop registered
io scheduler deadline registered
Floppy drive(s): fd0 is 1.44M
FDC 0 is an 8272A
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
8139cp: 10/100 PCI Ethernet driver v1.2 (Mar 22, 2004)
8139cp: pci dev 0000:00:0a.0 (id 10ec:8139 rev 10) is not an 8139C+ compatible chip
8139cp: Try the "8139too" driver instead.
8139too Fast Ethernet driver 0.9.27
eth0: RealTek RTL8139 at 0xc480ef00, 00:02:44:14:d4:78, IRQ 10
eth0:  Identified 8139 chip type 'RTL-8139C'
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
HINT_IDE: IDE controller at PCI slot 0000:00:05.2
HINT_IDE: chipset revision 0
HINT_IDE: not 100% native mode: will probe irqs later
HINT_IDE: dma_base is invalid
ide0: HINT_IDE Bus-Master DMA disabled (BIOS)
HINT_IDE: dma_base is invalid
ide1: HINT_IDE Bus-Master DMA disabled (BIOS)
Probing IDE interface ide0...
hda: WDC AC24300L, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: Compaq CRD-8322B, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
pnp: Device 01:01.03 activated.
ide3: generic PnP IDE interface
ide2: I/O resource 0x3EE-0x3EE not free.
ide2: ports already in use, skipping probe
Probing IDE interface ide3...
Probing IDE interface ide4...
Probing IDE interface ide5...
hda: max request size: 128KiB
hda: 8421840 sectors (4311 MB) w/256KiB Cache, CHS=8912/15/63
hda: cache flushes not supported
 hda: hda1 hda2 < hda5 >
hdc: ATAPI 32X CD-ROM drive, 128kB Cache
Uniform CD-ROM driver Revision: 3.20
mice: PS/2 mouse device common for all mice
input: PC Speaker
md: linear personality registered as nr 1
md: raid0 personality registered as nr 2
md: raid1 personality registered as nr 3
md: raid10 personality registered as nr 9
md: md driver 0.90.1 MAX_MD_DEVS=256, MD_SB_DISKS=27
device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com
Advanced Linux Sound Architecture Driver Version 1.0.9rc2  (Thu Mar 24 10:33:39
2005 UTC).
pnp: Device 01:01.00 activated.
pnp: Device 01:01.01 activated.
ALSA device list:
  #0: ESS AudioDrive ES1868 at 0x220, irq 5, dma1 1, dma2 0
NET: Registered protocol family 2
input: AT Translated Set 2 keyboard on isa0060/serio0
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
ip_tables: (C) 2000-2002 Netfilter core team
NET: Registered protocol family 1
NET: Registered protocol family 17
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
ReiserFS: hda1: found reiserfs format "3.6" with standard journal
ReiserFS: hda1: using ordered data mode
ReiserFS: hda1: journal params: device hda1, size 8192, journal first block 18,
max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda1: checking transaction log (hda1)
ReiserFS: hda1: Using r5 hash to sort names
VFS: Mounted root (reiserfs filesystem) readonly.
Freeing unused kernel memory: 152k freed
Adding 176672k swap on /dev/hda5.  Priority:-1 extents:1
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Hangcheck: hangcheck value past margin!
Comment 6 Andrew Morton 2005-07-28 22:05:21 UTC
So... are we planning on fixing 2.6 or should we close this
one off?
Comment 7 Zwane Mwaikambo 2005-08-05 07:02:35 UTC
I'd rather avoid fixing this if it's possible to use BIOS workaround.

Note You need to log in before you can comment on or make changes to this bug.