Re: PCI domains
In message: <20090710024528.ec36959...@thoreau.thistledown.com.au> Simon Burge 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. Warner
Re: PCI domains
> In message: <20090710024528.ec36959...@thoreau.thistledown.com.au> > Simon Burge 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. Christoph
Re: PCI domains
"Christoph Egger" wrote: > > In message: <20090710024528.ec36959...@thoreau.thistledown.com.au> > > Simon Burge 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.
Re: PCI domains
> "Christoph Egger" wrote: > > > > In message: <20090710024528.ec36959...@thoreau.thistledown.com.au> > > > Simon Burge 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. It's not in the PCI Local Bus Specification nor in the PCI-to-PCI Bridge Specification. It is in the PCI Host Bridge Specification which is a vendor specific paper. The pci host bridges for the alpha port implements PCI domains. > 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? Read the C comment in my first mail. X.org wants to have some information NetBSD currently doesn't provide to userland. This is what I rather want to discuss. Christoph
Re: PCI domains
"Christoph Egger" wrote: > > "Christoph Egger" wrote: > > > > > 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. > > It's not in the PCI Local Bus Specification nor in the > PCI-to-PCI Bridge Specification. It is in the > PCI Host Bridge Specification which is a vendor specific paper. Again, can you please point to a specific reference? I grabbed a few different host bridge specs and have yet to find any concrete reference to "PCI domains". > The pci host bridges for the alpha port implements PCI domains. Our alpha port? thoreau 1170> grep -ir domain alpha alpha/include/ieeefp.h: * Public domain. alpha/include/fpu.h: * the definition prefix can easily be determined from public domain alpha/pci/pci_6600.h:/* Public Domain */ > > 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? > > Read the C comment in my first mail. X.org wants to have some > information NetBSD currently doesn't provide to userland. > This is what I rather want to discuss. Is that the comment that starts "With each /dev/pci* we can map everything on the same root"? I'll have to re-read that again to make sure I understand what you're saying, but in a nutshell is the reason you want to introduce the "PCI domains" concept to keep Xorg happy? Cheers, Simon.
Re: PCI domains
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hello, On Jul 10, 2009, at 5:26 AM, Simon Burge wrote: 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? It matters when you want to map IO space which is per host bridge, not per bus. But even then all you end up with is additional mappings of the same IO space which is kind of a waste but not really a problem. have fun Michael -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.7 (Darwin) iQEVAwUBSleMCspnzkX8Yg2nAQKKyQf9GYrlWHf98xLq2oOK8HzPAHb68EANDfEW cOORlnY1WewhPIbgtE2WYRoOK9VacZgMX4zjpuH9lpGqwVbHSMp1CKQLbyXctnS4 snPxpP/JXSzPDnlM0ZNnDAEvMjZAG2bjPhtdBQQUpKAvBTJQetAPYfyVV/pnLc15 +fq9uBwHuI6n595SREOdaIAS13BJzoQsJGfO8J1fWhdFIK+uXVUknFgfp17BSkZb T5Pay/OfbCacrSzLPLpm7AlVjmVZc8AxMLsxgznoPm3UljnQRi4rwuy6xdZDCwyY zn3YxRxHCkd3/zWBW9MHQjjL/ZQMWqmn3jZM95bEqwu6BclUuimFoQ== =1vAp -END PGP SIGNATURE-
Re: PCI domains
ia64 also needs multiple PCI domain support. Actually HP Itanium servers use PCI domains. IIRC in Alpha terms, it's called "PCI hose". 2009/7/10 Simon Burge > "Christoph Egger" wrote: > > > > "Christoph Egger" wrote: > > > > > > > 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. > > > > It's not in the PCI Local Bus Specification nor in the > > PCI-to-PCI Bridge Specification. It is in the > > PCI Host Bridge Specification which is a vendor specific paper. > > Again, can you please point to a specific reference? I grabbed a few > different host bridge specs and have yet to find any concrete reference > to "PCI domains". > > > The pci host bridges for the alpha port implements PCI domains. > > Our alpha port? > > thoreau 1170> grep -ir domain alpha > alpha/include/ieeefp.h: * Public domain. > alpha/include/fpu.h: * the definition prefix can easily be determined from > public domain > alpha/pci/pci_6600.h:/* Public Domain */ > > > > 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? > > > > Read the C comment in my first mail. X.org wants to have some > > information NetBSD currently doesn't provide to userland. > > This is what I rather want to discuss. > > Is that the comment that starts "With each /dev/pci* we can map > everything on the same root"? I'll have to re-read that again to make > sure I understand what you're saying, but in a nutshell is the reason > you want to introduce the "PCI domains" concept to keep Xorg happy? > > Cheers, > Simon. > -- Takayoshi Kochi
Re: PCI domains [Was: CVS commit: xsrc/external/mit/libpciaccess/dist/src]
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hello, On Jul 9, 2009, at 10:45 PM, Simon Burge wrote: 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. If you want to map PCI IO space you do that once per host bridge, not once per bus which would be a waste. That's all the X code cares about. have fun Michael -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.7 (Darwin) iQEVAwUBSld1S8pnzkX8Yg2nAQJadgf9Ex3bCTZqboPBh97ltOqzXKH4Kn2LJ4au Nru/PCHnK+31zNvOqvU3c3r3VUMmA/RMnWwP9JsDFpFThD2H3QVoIzk95rExibqF 30123zYNuKLVwHHBFp0ydPPdDwuaEf/weinMCT0fz6W9pDXYeuD6mLPriMIZfEJN pKTUWw3Qew7Wqcw1tCqB89Tm3fYnWuukc8B30bi8y1cf6niIX1kPCnABVIWFH3/4 QVngUUMmVpGY3CQedjjb+6f25Rh1iIwPR+s89MOBL4latLwMHSS6zikwul7jYuUl /NOR+QnjZ6a6iJRLtdTJxhF1Vspt3L1b85ugFrxfkgdzGbH+woEkww== =HCtk -END PGP SIGNATURE-