PCI primary peer detection failure with 2.2.3

James Bottomley (James.Bottomley@columbiasc.ncr.com)
Fri, 19 Mar 1999 09:44:40 -0600


The motherboard is a quad PPro intel ALDER OEM.

Reversing one of the new hunks of code in pcibios_fixup_peer_bridges() allows
the machine to boot again (it panics because the internal SCSI controller is
on PCI bus 1 which it doesn't find under vanilla 2.2.3).

This is the Fix:
Index: linux/arch/i386/kernel/bios32.c
===================================================================
RCS file: /home/jejb/CVSROOT/linux/arch/i386/kernel/bios32.c,v
retrieving revision 1.1.1.2
retrieving revision 1.1.1.2.6.1
diff -u -r1.1.1.2 -r1.1.1.2.6.1
--- bios32.c 1999/03/18 18:56:36 1.1.1.2
+++ bios32.c 1999/03/19 00:41:49 1.1.1.2.6.1
@@ -995,7 +995,7 @@
for(i=0; i<256; i += 8)
if (!pcibios_read_config_word(n, i, PCI_VENDOR_ID, &l)
&&
l != 0x0000 && l != 0xffff) {
-#ifdef CONFIG_PCI_BIOS
+#if 0
if (pci_bios_present) {
int succ, idx = 0;
u8 bios_bus, bios_dfn;

However, it does look accidental that the host bridge for primary peer bus 1
was ever detected in the first place. Should the Orion chipset be treated as
an exception like the 450NX?

This is the output of lspci -v for the machine (under 2.2.3 with above patch):

00:0b.0 Ethernet controller: Digital Equipment Corporation DECchip 21041
[Tulip Pass 3] (rev 11)
Flags: bus master, medium devsel, latency 96, IRQ 16
I/O ports at f880
Memory at feafec00 (32-bit, non-prefetchable)

00:0c.0 Ethernet controller: Digital Equipment Corporation DECchip 21041
[Tulip Pass 3] (rev 11)
Flags: bus master, medium devsel, latency 96, IRQ 17
I/O ports at f800
Memory at feafe800 (32-bit, non-prefetchable)

00:0d.0 SCSI storage controller: Adaptec AIC-7874 [AHA-2944] (rev 03)
Flags: bus master, medium devsel, latency 96, IRQ 11
I/O ports at fc00
Memory at feaff000 (32-bit, non-prefetchable)

00:0e.0 Non-VGA unclassified device: Intel Corporation 82375EB (rev 15)
Flags: bus master, medium devsel, latency 72

00:0f.0 Unknown class [ff00]: Intel Corporation: Unknown device 0008
Flags: fast devsel
Memory at fec01000 (32-bit, prefetchable)
Memory at fec01000 (32-bit, prefetchable)
Memory at fec01000 (32-bit, prefetchable)
Memory at fec01000 (32-bit, prefetchable)
Memory at fec01000 (32-bit, prefetchable)
Memory at fec01000 (32-bit, prefetchable)

00:14.0 RAM memory: Intel Corporation 82450GX [Orion] (rev 05)
Flags: fast devsel

00:19.0 Host bridge: Intel Corporation 82450KX [Orion] (rev 06)
Flags: bus master, medium devsel, latency 96

00:1a.0 Host bridge: Intel Corporation 82450KX [Orion] (rev 06)
Flags: bus master, medium devsel, latency 96

01:0a.0 Ethernet controller: Digital Equipment Corporation DECchip 21041
[Tulip Pass 3] (rev 11)
Flags: bus master, medium devsel, latency 96, IRQ 19
I/O ports at ec80
Memory at fe7fec00 (32-bit, non-prefetchable)

01:0b.0 SCSI storage controller: Adaptec AIC-7880U
Flags: bus master, medium devsel, latency 96, IRQ 28
I/O ports at e800
Memory at fe7ff000 (32-bit, non-prefetchable)

01:0c.0 SCSI storage controller: Adaptec AIC-7880U
Flags: bus master, medium devsel, latency 96, IRQ 5
I/O ports at e400
Memory at fe7fd000 (32-bit, non-prefetchable)

01:0e.0 PCI bridge: Digital Equipment Corporation DECchip 21052 (rev 01)
Flags: bus master, medium devsel, latency 96
Bus: primary=01, secondary=02, subordinate=02, sec-latency=0
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: fe000000-fe3fffff
Prefetchable memory behind bridge: fde00000-fde00000

02:01.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c875 (rev
03)
Flags: bus master, medium devsel, latency 96, IRQ 22
I/O ports at dc00
Memory at fe3ffc00 (32-bit, non-prefetchable)
Memory at fe3fe000 (32-bit, non-prefetchable)

02:02.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c875 (rev
03)
Flags: bus master, medium devsel, latency 96, IRQ 23
I/O ports at d800
Memory at fe3ff800 (32-bit, non-prefetchable)
Memory at fe3fd000 (32-bit, non-prefetchable)

02:03.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c875 (rev
03)
Flags: bus master, medium devsel, latency 96, IRQ 21
I/O ports at d400
Memory at fe3ff400 (32-bit, non-prefetchable)
Memory at fe3fc000 (32-bit, non-prefetchable)

02:04.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c875 (rev
03)
Flags: bus master, medium devsel, latency 96, IRQ 31
I/O ports at d000
Memory at fe3ff000 (32-bit, non-prefetchable)
Memory at fe3fb000 (32-bit, non-prefetchable)

02:08.0 Memory: AT&T GIS (NCR): Unknown device 0009 (rev 02)
Flags: slow devsel, IRQ 31
Memory at fe3fac00 (32-bit, non-prefetchable)
Memory at fe3c0000 (32-bit, non-prefetchable)
Memory at fe200000 (32-bit, non-prefetchable)

James Bottomley

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/