Subject: kern/13825: PCI information changed resulting in not recognizing PCI cards
To: None <gnats-bugs@gnats.netbsd.org>
From: Reinoud Zandijk <imago@kabel208245.kabel.utwente.nl>
List: netbsd-bugs
Date: 08/30/2001 00:46:00
>Number:         13825
>Category:       kern
>Synopsis:       PCI information changed resulting in not recognizing PCI cards
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Aug 29 15:42:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Reinoud Zandijk
>Release:        NetBSD 1.5X aprox. 24 Aug 2001
>Organization:
NetBSD
>Environment:
NetBSD starbuck 1.5X NetBSD 1.5X (config.starbuck) #0: Wed Aug 29 11:40:42 CEST 2001     
root@starbuck:/usr/sources/cvs.netbsd.org/syssrc/sys/arch/alpha/compile/config.starbuck alpha

DEC PWS 500a

XFree 4.0.x just before 4.0.2 import.

>Description:
The `pcitweak -l' that comes with XF4 reports the following on my machine :

starbuck# !pci
pcitweak -l
PCI: PCI scan (all values are in hex)
PCI: 00:03:0: chip 1011,0019 card 0000,0000 rev 30 class 02,00,00 hdr 00
PCI: 00:07:0: chip 1080,c693 card 0000,0000 rev 00 class 06,01,00 hdr 80
PCI: 00:07:1: chip 1080,c693 card 0000,0000 rev 00 class 01,01,80 hdr 80
PCI: 00:07:2: chip 1080,c693 card 0000,0000 rev 00 class 01,01,00 hdr 80
PCI: 00:07:3: chip 1080,c693 card 0000,0000 rev 00 class 0c,03,10 hdr 80
PCI: 00:14:0: chip 1011,0024 card 0000,0000 rev 02 class 06,04,00 hdr 01
PCI: 01:04:0: chip 1077,1020 card 0000,0000 rev 05 class 01,00,00 hdr 00
PCI: 01:09:0: chip 10ec,8139 card 1429,d010 rev 10 class 02,00,00 hdr 00
PCI: 01:0a:0: chip 104c,3d07 card 1048,0a32 rev 01 class 03,00,00 hdr 00
PCI: End of PCI scan

When running XF though, it changes to :

starbuck# pcitweak -l
PCI: PCI scan (all values are in hex)
PCI: 00:03:0: chip 1011,0019 card 0000,0000 rev 30 class 02,00,00 hdr 00
PCI: 00:07:0: chip 1080,c693 card 0000,0000 rev 00 class 06,01,00 hdr 80
PCI: 00:07:1: chip 1080,c693 card 0000,0000 rev 00 class 01,01,80 hdr 80
PCI: 00:07:2: chip 1080,c693 card 0000,0000 rev 00 class 01,01,00 hdr 80
PCI: 00:07:3: chip 1080,c693 card 0000,0000 rev 00 class 0c,03,10 hdr 80
PCI: 00:14:0: chip 1011,0024 card 0000,0000 rev 02 class 06,04,00 hdr 01
PCI: 01:04:0: chip 1077,1020 card 0000,0000 rev 05 class 01,00,00 hdr 00
PCI: 01:09:0: chip 10ec,8139 card 1429,d010 rev 10 class 02,00,00 hdr 00
PCI: 01:0a:0: chip 104c,3d07 card 1048,0a32 rev 01 class 03,80,00 hdr 00
PCI: End of PCI scan

Note the change in the second value of the class variable... this is my 
ELSA GLoria Synergy PCI card... my video card.

When X crashes or whatever the class isnt restored and X won't start up 
again for it can't find the card. Maybe the check is too strickt in XF but 
it doenst feel right to let a program change the class of a device when 
running.

This class is only reset when the machine is rebooted. The rest of the 
machine is still working perfectly.

>How-To-Repeat:
Start XFree86 on the machine and kill it with -9 ... the PCI card wont be 
detected the next time you start up XFree86 4.0.x.

>Fix:
Reboot the machine :(
>Release-Note:
>Audit-Trail:
>Unformatted: