Subject: kern/6021: PCI-ISA bridge claims it's "miscellaneous"
To: None <gnats-bugs@gnats.netbsd.org>
From: Johnny C. Lam <lamj@stat.cmu.edu>
List: netbsd-bugs
Date: 08/24/1998 13:09:30
>Number:         6021
>Category:       kern
>Synopsis:       PCI-ISA bridge claims it's "miscellaneous"
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Aug 24 10:20:00 1998
>Last-Modified:
>Originator:     Johnny C. Lam
>Organization:
Carnegie Mellon University
>Release:        1.3E
>Environment:
NetBSD 1.3G (MARIPOSA) #14: Mon Aug 24 07:25:44 EST 1998
    kroot@mariposa:/usr/src/sys/arch/i386/compile/MARIPOSA
cpu0: family 5 model 7 step 0
cpu0: Intel Pentium (P54C) (586-class)
real mem  = 41549824
avail mem = 36503552
using 532 buffers containing 2179072 bytes of memory
mainbus0 (root)
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o enabled, memory enabled
pchb0 at pci0 dev 0 function 0
pchb0: vendor 0x8086 product 0x1235 (rev. 0x01)
pcib0 at pci0 dev 1 function 0
pcib0: vendor 0x8086 product 0x1234 (rev. 0x02)
pcic0 at pci0 dev 3 function 0: Cirrus Logic PD6729/6730 PCMCIA controller
pcic0: controller 0 (Cirrus PD672X) has sockets A and B
pcic0: allocating csc irq 3
vendor 0x10c8 product 0x0001 (VGA display, revision 0x01) at pci0 dev 6 function 0 not configured
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
lpt0 at isa0 port 0x378-0x37b irq 7
wdc0 at isa0 port 0x1f0-0x1f7 irq 14
atapibus0 at wdc0
wd0 at wdc0 drive 0: <FUJITSU M2714T>
wd0: using 16-sector 16-bit pio transfers, lba mode
wd0: 1037MB, 2125220 sec, geom chs 2108/16/63, 512 bytes/sec
sb0 at isa0 port 0x220-0x237 irq 5 drq 1: dsp v3.01
audio0 at sb0
midi0 at sb0: <SB MIDI UART>
pcppi0 at isa0 port 0x61
midi1 at pcppi0: <PC speaker>
sysbeep0 at pcppi0
npx0 at isa0 port 0xf0-0xff: using exception 16
vt0 at isa0 port 0x60-0x6f irq 1
vt0: generic, 80 col, color, 8 scr, mf2-kbd, [R3.32]
pms0 at vt0 irq 12
vt0: console
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
pcmcia0 at pcic0 controller 0 socket 0
sm0 at pcmcia0 function 0 port 0x400-0x40f: Megahertz X-JACK Ethernet
sm0: SMC91C94, revision 1
sm0: MAC address 00:00:86:1a:d8:54, default media UTP
pcmcia1 at pcic0 controller 0 socket 1
com2 at pcmcia1 function 0 port 0x3e8-0x3ef: Megahertz X-JACK 56kbps Modem: ns16550a, working fifo
apm0 at mainbus0: Power Management spec V1.1
apm0: battery life expectancy: 94%
apm0: A/C state: off
apm0: battery charge state: high
biomask 4040 netmask 4040 ttymask 50ca
WARNING: old BSD partition ID!
disklabel: BIOS sees chs 2108/16/63 as 527/64/63
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
pcmcia1: card irq 9
stray interrupt 9

>Description:
	The Intel 82371MX Mobile PCI I/O IDE Xcelerator on my Sharp Laptop
	identifies itself as a miscellaneous bridge instead of an ISA bridge,
	which messes up the ISA bus attachment.

>How-To-Repeat:

>Fix:
*** src/sys/arch/i386/pci/pcib.c.orig	Fri Aug  7 06:12:21 1998
--- src/sys/arch/i386/pci/pcib.c	Sat Aug 22 18:27:26 1998
***************
*** 123,128 ****
--- 123,141 ----
  		return (1);
  	}
  
+ 	/*
+ 	 * The Intel 82371MX identifies itself erroneously as a
+ 	 * miscellaneous bridge.
+ 	 */
+ 	switch (PCI_VENDOR(pa->pa_id)) {
+ 	case PCI_VENDOR_INTEL:
+ 		switch (PCI_PRODUCT(pa->pa_id)) {
+ 		case PCI_PRODUCT_INTEL_82371MX:
+ 			return (1);
+ 		}
+ 		break;
+ 	}
+ 
  	return (0);
  }
>Audit-Trail:
>Unformatted: