Red Hat 7.1 Linux Beta - beta3 Feb 7, 2001 Failing HW: ML570, DL580 Passing HW: DL360, ML350, ML370, ML530 More than one secondary bus for a given north bridge is not recognized. This leaves PCI slots that are inaccessible. It appears that the following email and patch corrects the issue: ------------------------------------------ The patch below (against vanilla 2.4.0) makes Linux recognize PCI-Devices sitting in another PCI bus than 0 (or 1). This was tested on a Netfinity 7100-8666 using a ServerWorks chipset. 00:00.0 Host bridge: ServerWorks CNB20HE (rev 21) 00:00.1 Host bridge: ServerWorks CNB20HE (rev 01) 00:00.2 Host bridge: ServerWorks: Unknown device 0006 00:00.3 Host bridge: ServerWorks: Unknown device 0006 00:01.0 SCSI storage controller: Adaptec 7896 00:01.1 SCSI storage controller: Adaptec 7896 00:05.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet LANCE] (rev 44) 00:06.0 VGA compatible controller: S3 Inc. Trio 64 3D (rev 01) 00:0f.0 ISA bridge: ServerWorks OSB4 (rev 4f) 00:0f.1 IDE interface: ServerWorks: Unknown device 0211 00:0f.2 USB Controller: ServerWorks: Unknown device 0220 (rev 04) 02:04.0 Ethernet controller: Digital Equipment Corporation DECchip 21142/43 (rev 41) 02:06.0 RAID bus controller: IBM: Unknown device 01bd The last two lines do not occur without the patch. diff -ur linux-2.4.0/linux/arch/i386/kernel/pci-pc.c linux/arch/i386/kernel/pci-pc.c --- linux-2.4.0/linux/arch/i386/kernel/pci-pc.c Thu Jun 22 16:17:16 2000 +++ linux/arch/i386/kernel/pci-pc.c Tue Jan 16 18:10:30 2001 @@ -849,10 +849,13 @@ * ServerWorks host bridges -- Find and scan all secondary buses. * Register 0x44 contains first, 0x45 last bus number routed there. */ - u8 busno; - pci_read_config_byte(d, 0x44, &busno); - printk("PCI: ServerWorks host bridge: secondary bus %02x\n", busno); - pci_scan_bus(busno, pci_root_ops, NULL); + u8 busno_first, busno_last, i; + pci_read_config_byte(d, 0x44, &busno_first); + pci_read_config_byte(d, 0x45, &busno_last); + for (i = busno_first; i <= busno_last; i++) { + printk("PCI: ServerWorks host bridge: secondary bus % 02x\n", i); + pci_scan_bus(i, pci_root_ops, NULL); + } pcibios_last_bus = -1; } Adam -- Adam al10.de Lackorzynski http://a.home.dhs.org ------------------------------------------ Reproducible: Yes. Compaq Bug #: 194031 Compaq considers this defect a MUST-FIX for Florence.
Assigning to correct component.
Will use the agreed (on l-k) patch on this for the next build. (the patch in the bug has been superseeded by an other one)
Are you prepared to test a patch or do you want to wait for the next kernel rpm to be released?
This defect is considered MUST-FIX for Florence Gold release
Tested patch from arjanv and it works, thanks.
I will close this bug as "deferred" as it is fixed and confirmed, and the fix will be in the next kernel we release.