"Christoph Egger" wrote: > > In message: <20090710024528.ec36959...@thoreau.thistledown.com.au> > > Simon Burge <sim...@netbsd.org> writes: > > : Christoph Egger wrote: > > : > > : > Michael Lorenz wrote: > > : > > > : > > +/* > > : > > + * NetBSD's userland has a /dev/pci* entry for each bus but > > userland has no way > > : > > + * to tell if a bus is a subordinate of another one or if it's on a > > different > > : > > + * host bridge. > > : > > > : > I have a patch which introduces support for PCI domains. It allows the > > : > userland to distinguish between them by checking if the pci bus > > belongs > > : > to the same PCI domain. > > : > > : What exactly is a "PCI domain"? A quick google seems to suggest that > > : this is a Linux concept as opposed to a PCI concept. In a previous > > : life we used NetBSD on a number of different machines of various > > : architectures that had multiple PCI host bridges, although admittedly we > > : didn't need to know the topology of the PCI bus layout. > > > > PCI domains, as implemented by Linux and FreeBSD are separate host > > bridges. Each bus complex behind the host bridge has independent > > numbering. Each of these bus complexes are in a different domain. > > > > Not all systems with multiple host bridges have separate numbering > > domains, but many do. > > PCI domains are part of the PCI host bridge specification. > It is a 16bit-wide number.
Can you please provide a reference for this? There's nothing mentioned in the PCI Local Bus Specification version 2.3. I can find plenty of references to "clock domains" and "address space domains", but when I exclude Linux references I can't seem to find anything useful. Everything I see so far says that a "PCI domain" is an OS abstraction and not part of a PCI specification. I'm also not sure exactly what problem you're trying to solve - why exactly does it matter if two PCI busses share a common "domain" or not? Cheers, Simon.