SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
I/O support is permitted only for the "legacy EP" type, that is, EP's side it is required that PCIECTRL_TI_CONF_DEVICE_TYPE[3:0] TYPE has been preliminary set to 0x1 by EP's local software. Before PCI activity starts, one or several BAR of the EP function shall be enabled in I/O mode, to get enumerated by the RC as per the PCI standard.
An iATU (internal address translation unit) inbound region can be programmed in BAR matching mode to map the BAR to the controller’s inbound window (that is, translate their address to the memory space of the SoC), and issue them on the PCIe master port towards device L3_MAIN.
BAR matching mode is expected to be the most common method for an EP. In that mode, the iATU can be set up before enumeration, that is, before the BAR’s actual range (offset) is configured by the remote RC.
Alternatively, the ATU inbound region could be programmed in address matching mode. However, a valid I/O access coming into an EP is necessarily within a BAR, so BAR matching should be used. Additionally, BAR matching can be configured before enumeration, that is, before the RC has mapped the I/O BAR to their actual address.
Incoming I/O requests to the local EP’s IO BAR shall then cause the PCIe master port to access a given address range of the local system (potentially the entire 32-bit address range), in 32-bit read/write accesses.