SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
After coming out of reset, the PCI fabric is enumerated by the RC through configuration (Cfg) transactions to the switches and EP present in the topology. The enumeration process is covered by the PCI and PCIe standards - for more details refer to the PCI Express Base 3.0 Specification, revision 1.0.
Configuration transactions are created by an outbound ATU region set up to translate the PCIe controller slave port accesses into Cfg TLP on the PCIe wire.
The (28-bit) address offset within the 256 MiB ECAM block is the concatenation of :
The device PCIe controller itself supports only one function in EP mode. On the PCIe fabric, however when in RC mode, the PCIe controller may need to configure up to 8 functions per EP (potentially for all 65536 EPs). Hence the ECAM config. space visible to RC is 256 MiB in size.
A Cfg read access to the Vendor ID register is used by the RC to detect the presence of a function. If that specific read (address 0x000 in the 4-KiB PCI config space) fails with an UR PCIe response (Unsupported Request: no function present), the PCIe controller shall return a correct response to L3_MAIN with data 0xFFFF. This indicates the absence of the function to the application, without triggering an error on L3_MAIN.