From: Bjorn H. <bjo...@hp...> - 2002-02-14 22:06:40
|
On Thursday 14 February 2002 12:52 pm, Martin Wilck wrote: > The current ACPI code for root bridges sets the bus number > to the value of the "_BBN" field and calls pci_scan_bus() with that > number. > > This fails on our systems because _BBN is always 0 (it represents the > number of the bus over which the bridge is reached rather than that of > the bus that the bridge controls). I'm the farthest thing from an ACPI expert, but this doesn't make sense to me. You're talking about root bridges (or host/PCI bridges in PCI-speak). The bus over which such a bridge is reached is by definition NOT a PCI bus; it is a "host" bus. _BBN is a *PCI* bus number, so it seems to me that it must apply to the bus number on the PCI side, not on the host side. Furthermore, the ACPI spec (sec 6.5.5 in rev 2.0) says "the _BBN object must be unique for every host bridge within a segment," and since you don't mention segments, I assume all your root bridges are in the same segment. > Thus, for all our root bridges (0, 1, > 2) the same bus (0) is scanned, and devices on bus 1 and 2 are not > detected. It sounds to me like you are describing a system with three root bridges, where the PCI buses under them are numbered 0, 1, and 2. That sounds strange to me, because it means you could not put a PCI-to-PCI bridge on buses 0 or 1 since PCI bus numbers must be contiguous under a bridge. We have systems with multiple root bridges, but each bridge gets allocated a range of bus numbers to allow for downstream bridges. -- Bjorn Helgaas - bjo...@hp... Linux Systems Operation R&D Hewlett-Packard |