SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
An ATU inbound region can be programmed in BAR matching mode to remap (part or all of) each memory BAR to the controller’s inbound window (this means to translate their address to the memory space of the device chip), and issue them on the PCIe controller's master port towards L3_MAIN. BAR matching mode is expected to be the most common method for an EP. In that mode, the ATU can be set up before enumeration - before the BAR’s actual range (offset) is configured by the remote RC.
Alternatively, the ATU inbound region can be programmed in address matching mode. In that case, any access routed to the device (EP or RC) and matching the range specified in the ATU is remapped to the controller’s inbound window (this means to translate their address to the memory space of the device), and issued on the master port towards L3_MAIN.
Address matching is the preferred method for an RC, which would route any access outside its base/limit range, as defined in its PCIe standard (Type-1) configuration space, and independently of any BAR so that BAR matching is not possible. In that case, only space not already taken up by a BAR can be used. Note the setup of an address matching iATU inbound region can only be done after enumeration, that is, after the RC has discovered and mapped all enabled Memory BAR of all EP functions to their address.
Finally, in case an incoming access does not match any enabled ATU inbound region (BAR or address matching), the transaction is just passed through untranslated, that is, with the address unchanged and the TLP attributes stripped off. This is not expected to be commonly used.
Incoming memory requests (to the local EP’s Memory BAR) shall then cause the master port on L3_MAIN to access a given address range of the local system (potentially the entire 32-bit address range).