[PATCH] 2.4.2-acX does not recognize any bus on Intel Serverworks based motherboard

Petr Vandrovec (vandrove@vc.cvut.cz)
Fri, 2 Mar 2001 19:34:44 +0100


Hi Martin,
what's idea behind 'pcibios_last_bus >= 0xff' ? On friend's STL2 Intel
motherboard Serverworks bridge contains 0x01 in reg. 0x44 (first bus behind
bridge) and 0xFF in reg. 0x45 (last bus behind bridge).
This sets pcibios_last_bus to 0xFF in serverworks fixup code. After this
pcibios_fixup_peer_bridges() refuses to do anything, so devices connected
to secondary bus are not visible to system.
With patch below system sees all devices again - patch is for 2.4.2-ac9.
Thanks,
Petr Vandrovec
vandrove@vc.cvut.cz

diff -urdN linux/arch/i386/kernel/pci-pc.c linux/arch/i386/kernel/pci-pc.c
--- linux/arch/i386/kernel/pci-pc.c Fri Mar 2 17:55:05 2001
+++ linux/arch/i386/kernel/pci-pc.c Fri Mar 2 17:56:50 2001
@@ -784,7 +784,7 @@
struct pci_dev dev;
u16 l;

- if (pcibios_last_bus <= 0 || pcibios_last_bus >= 0xff)
+ if (pcibios_last_bus <= 0 || pcibios_last_bus > 0xff)
return;
DBG("PCI: Peer bridge fixup\n");
for (n=0; n <= pcibios_last_bus; n++) {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/