On Mon, Jan 28, 2013 at 07:56:27PM +0100, Thomas Petazzoni wrote: > However, with the usage of the emulated PCI host bridge and emulated > PCI-to-PCI bridges, this is not the case: bus number 0 is the emulated > bus on which the emulated PCI-to-PCI bridges sit, so from the Linux > point of view, the real busses start at bus 1, but from a hardware > point of view, they start at bus 0. Hum.. This is a bit funny sounding, can you confirm.. The bus number programmed into all the end points must match the Linux number. Ie the PCI-E Link Description register of end point devices must report the same bus number as Linux. PCI-E devices learn their bus number by capturing the bus number from type 0 configuration transactions. For the most part config transactions issued to the PCI-E controllers should be type 0 transactions with a bus number that matches what Linux is setting. The only time I think you'd ever see bus number 0 is when accessing the config space of the Marvell PCI-E controller end port. But, I also think you can avoid doing these transactions by just accessing the MMIO versions of those registers.. Jason -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html