SPRUIL1D May 2019 – December 2024 DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1 , TDA4VM , TDA4VM-Q1
Since the ports are all split based on orderid, there are normally fixed connections to components as well as the final output port that a transaction will follow. Table 8-24 details the rules that are applied to a transaction from the various input ports, where X is the port matching the transaction orderid. The only less consistent path is when the DMA source accesses the PAT, and then the output route becomes the IO path (due to problems routing from PAT to either IO or DMA PVUs), or when the VirtSS is configured for less DMA PVUs and the transactions will route to the DMA PVU if it exists for that orderID and if not then the IO PVU for that orderID. Note that the PAT and PVU contain registers that can modify the orderid of a transaction, and if these features are enabled, then the output port for those transactions will be modified as well, so these rules would no longer apply.
Input Port | Components |
---|---|
<non-dma>_mstX | PAT and/or IO PVU |
dma_mstX | IO PVU only (if not private DMA PVU for that orderid) |
dma_mstX | DMA PVU only |
dma_mstX | PAT and IO PVU |
<non-dma>_mstX | IO TBU |
dma_mstX | DMA TBU |
There are also paths that are explicitly blocked, either because they could cause deadlock or because the path is not possible. The impossible paths are due to the PVU and SMMU translations always resulting in physical addresses, which cannot target a PVU or SMMU since those only receive intermediate or virtual transactions. Table 8-25 shows all the blocked paths, and any transactions that attempt to target these paths inside the VirtSS will return errors.
Source Port or Component | Target Port or Component that is Blocked |
---|---|
PAT output | PAT input (could deadlock) |
PVU output | PVU or SMMU input (impossible) |
SMMU output | PVU or SMMU input (impossible) |
If the system is using PAT to PVU paths, then the PVU tables are not allowed to map to physical addresses which map to a PAT. This is because it can cause a loop for transactions going to PAT to PVU back to PAT, which could cause a deadlock. Software must avoid this condition by not allowing the PVU to map any translations back to a PAT range.