In an MMU-600-based system, the AMBA DTI protocol defines the standard for communicating with a TCU.
The AMBA DTI protocol includes both:
- DTI-TBU protocol, for communication between a TBU and a TCU.
- DTI-ATS protocol, for communication between a PCIe Root Complex and a TCU.
The DTI protocol is a point-to-point protocol. Each channel consists of a link, a DTI master, and a DTI slave. The DTI masters in the respective protocols are:
- The TBU, in the DTI-TBU protocol.
- The PCIe Root Complex, in the DTI-ATS protocol.
The DTI slave in both DTI-TBU and DTI-ATS is the TCU.
DTI masters and slaves communicate using defined DTI messages. The DTI protocol defines the following message groups:
- Connection and disconnection.
- Translation request.
- Invalidation and synchronization.
- Page request.
- Register access.
The DTI_TBU_CONDIS_REQ message initiates a TBU connection or disconnection handshake. The TBU uses this message to connect to the TCU. During connection, the TBU can specify the number of requested translation tokens.
The TBU uses the TOK_TRANS_REQ field to request translation tokens. The max_tok_trans signal defines the number of translation tokens that the TBU requests.
The TBU uses the TOK_INV_GNT field to grant invalidation tokens. The TBU grants only one invalidation token, and the TCU is only capable of issuing one invalidate message at a time.
A DTI master uses a DTI_TBU_CONDIS_REQ or a DTI_ATS_CONDIS_REQ message to initiate a connection handshake. If the master provides a TID value that is greater than the maximum supported TID that TCUCFG_NUM_TBU defines, the slave sends a Connect Deny message.
A translation request to the TCU where StreamID ≥ 224 results in a fault and an SMMUv3 C_BAD_STREAMID event. If the TBU receives an invalidation request where StreamID ≥ 224, any comparisons with a StreamID value fail. No TLB entries are invalidated, but other effects that do not consider the supplied StreamID occur as normal.
- The TBU never generates translation requests with StreamID ≥ 224.
- The TCU never generates invalidation requests with StreamID ≥ 224.
See the Arm AMBA Distributed Translation Interface (DTI) Protocol Specification for more information.