On Thu, Mar 12, 2020 at 12:14:20PM +1100, David Gibson wrote: > On Wed, Mar 11, 2020 at 03:11:16AM -0400, Michael S. Tsirkin wrote: > > On Wed, Mar 11, 2020 at 11:58:57AM +1100, David Gibson wrote: > > > Note that several things that I believe are now in the PCIe spec, but > > > really derive more from PC legacy considerations, don't apply at all > > > for PAPR. e.g. there's no meaningful distinction between integrated > > > and slotted devices, multiple independent host bridges is routine and > > > doesn't require any (virtual) hardware visible domain numbers. > > > > Domain numbers are a Linux thing, not a PCIe thing. On x86 they come > > from ACPI segment numbers. As such they aren't usually hardware > > visible on x86, they are supplied by firmware. > > Oh, ok. I thought that at least on the standard IO 0xcf8 host bridge > controller the domain number was written into certain registers to > select the relevant root bus.
standard 0xcf8 can only access 256 bus numbers. software does not much care on which root bus these are though. > On POWER the domain numbers are arbitrarily assigned within Linux. > "Hardware" (well, the firmware/hypervisor) uses a different > identifier, called the BUID (generally a large, 64-bit pseudo-address) > in the device tree and hypercalls. > > [As an aside, this means the use of domain numbers in libvirt XML is > complete bogosity] For fun, they aren't actually used either. And of course using the word "domain" in a domain XML format means you can't search for it anywhere without getting a million unrelated hits. > -- > David Gibson | I'll have my music baroque, and my code > david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ > _other_ > | _way_ _around_! > http://www.ozlabs.org/~dgibson