Date: Thu, 25 Jan 1996 15:36:35 +0100 From: se@zpr.uni-koeln.de (Stefan Esser) To: ap@bnc.net Cc: bugs@freebsd.org Subject: Re: kern/970: PCI probe failing with two bridges Message-ID: <199601251436.AA04773@Sysiphos> In-Reply-To: Noses <noses@oink.rhein.de> "kern/970: PCI probe failing with two bridges" (Jan 25, 11:42)
next in thread | previous in thread | raw e-mail | index | archive | help
On Jan 25, 11:42, Noses wrote: } Subject: kern/970: PCI probe failing with two bridges } While booting I'm getting the following messages: } } Probing for devices on the PCI bus: } chip0 <Intel 82437 (Triton)> rev 2 on pci0:0 } chip1 <Intel 82371 (Triton)> rev 2 on pci0:7 } ahc0 <Adaptec 2940 SCSI host adapter> rev 3 int a irq 5 on pci0:9 } ahc0: 2940 Single Channel, SCSIId=7, aic7870, 255 SCBs } [disks...] } chip2 <DEC 21050 PCI-PCI bridge> rev 2 on pci 0:11 } chip3 <DEC 21050 PCI-PCI bridge> rev 2 on pci 0:12 } Probing for devices on the PCI bus: } de0 <Digital DC21040 Ethernet> rev 35 int a irq 12 on pci1:4 } de0: DC21040 [10Mb/s] pass 2.3 Ethernet address 00:00:c0:30:06:c0 } de0: enabling Thinwire/AUI port } de1 <Digital DC21040 Ethernet> rev 35 int a irq 9 on pci1:5 } de1: DC21040 [10Mb/s] pass 2.3 Ethernet address 00:00:c0:05:05:c0 } de1: enabling Thinwire/AUI port } Probing for devices on the PCI bus: } de2 <Digital DC21040 Ethernet> rev 35 int a irq 12 on pci1:4 } pci_map_port failed: device's iorange 0xd8800-0xd87f is incompatible with its bridge's range 0xc0000-0xcfff } de3 <Digital DC21040 Ethernet> rev 35 int a irq 9 on pci1:5 } pci_map_port failed: device's iorange 0xd400-0xd47f is incompatible with its bridge's range 0xc0000-0xcfff } >Fix: } None. Urgently needed. Not true. (The "None" part, the urgently needed is beyond my control ;-). The bug was found by Matt Thomas, and has been incorporated into both FreeBSD-stable and FreeBSD-current. But it is just two characters to add, so you can manually fix it: In file /sys/pci/pcireg.h, there are macros to extract the bus numbers from the bridges PCI configuration space registers. The lines below are correct, in the version delivered with 2.1R, there are ">" operators instead of the correct ">>". #define PCI_SUBORDINATE_BUS_EXTRACT(x) (((x) >> 16) & 0xff) #define PCI_SECONDARY_BUS_EXTRACT(x) (((x) >> 8) & 0xff) ^^ these were ">" in 2.1R Either get a new version of /sys/pci/pcireg.h or just modify those two lines to correctly use the shift operators ... Regards, STefan -- Stefan Esser, Zentrum fuer Paralleles Rechnen Tel: +49 221 4706021 Universitaet zu Koeln, Weyertal 80, 50931 Koeln FAX: +49 221 4705160 ============================================================================== http://www.zpr.uni-koeln.de/~se <se@ZPR.Uni-Koeln.DE>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199601251436.AA04773>