I am new to the PCIe world.
I am learning the enumeration and configuration of PCIe hierarchy.
Some quote from here:
For PCI-PCI bridges to pass PCI I/O, PCI Memory or PCI Configuration address space reads and writes across them, they need to know the following:
Primary Bus Number The bus number immediately upstream of the PCI-PCI Bridge,
Secondary Bus Number The bus number immediately downstream of the PCI-PCI Bridge,
Subordinate Bus Number The highest bus number of all of the busses that can be reached downstream of the bridge.
My understandings are:
The Secondary/Subordinate bus numbers give the range of specific PCI bridge's downstream buse numbers.
And these 3 bus numbers together serve kind of like a routing table since PCIe hierarchy is essentially a network.
Once the enumeration process finished configuring, software can rely on the Bus/Device/Function address to access devices. All the underlying routing of packet are purely by hardware with no software interference.
Am I right on these? Thanks.