This section summarizes the data flow of a single event, from the time the event is latched to the channel controller to the time the transfer completion code is returned. The following steps list the sequence of EDMA_TPCC activity:
- Event is asserted from an external source (peripheral or external interrupt). This also is similar for a manually-triggered, chained-triggered, or QDMA-triggered event. The event is latched into the EDMA_TPCC_ER[31:0]En / EDMA_TPCC_ERH[31:0] En (or EDMA_TPCC_CER[31:0] En / EDMA_TPCC_CERH[31:0] En, EDMA_TPCC_ESR[31:0] En / EDMA_TPCC_ESRH[31:0] En, EDMA_TPCC_QER[7:0] En) bit.
- Once an event is prioritized and queued into the appropriate event queue, the EDMA_TPCC_SER[31:0] En \ EDMA_TPCC_SERH[31:0] En (or EDMA_TPCC_QSER[7:0] En) bit is set to inform the event prioritization / processing logic to disregard this event since it is already in the queue. Alternatively, if the transfer controller and the event queue are empty, then the event bypasses the queue.
- The EDMA_TPCC processing and the submission logic evaluates the appropriate PaRAM set and determines whether it is a non-null and non-dummy transfer request (TR).
- The EDMA_TPCC clears the EDMA_TPCC_ER[31:0] En/ EDMA_TPCC_ERH[31:0] En (or EDMA_TPCC_CER[31:0] En / EDMA_TPCC_CERH[31:0] En, EDMA_TPCC_ESR[31:0]En / EDMA_TPCC_ESRH[31:0] En, EDMA_TPCC_QER[31:0] En) bit and the EDMA_TPCC_SER[31:0] En / EDMA_TPCC_SERH[31:0] En bit as soon as it determines the TR is non-null. In the case of a null set, the EDMA_TPCC_SER[31:0] En / EDMA_TPCC_SERH[31:0] En bit remains set. It submits the non-null/non-dummy TR to the associated transfer controller. If the TR was programmed for early completion, the EDMA_TPCC immediately sets the interrupt pending register (EDMA_TPCC_IPR[31:0] I[TCC] / EDMA_TPCC_IPRH[31:0] I[TCC] - 32).
- If the TR was programmed for normal completion, the EDMA_TPCC sets the interrupt pending register (EDMA_TPCC_IPR[31:0] I[TCC] / EDMA_TPCC_IPRH[31:0] I[TCC]) when the EDMA_TPTC informs the EDMA_TPCC about completion of the transfer (returns transfer completion codes).
- The EDMA_TPCC programs the associated EDMA_TPTC's Program Register Set with the TR.
- The TR is then passed to the Source Active set and the DST FIFO Register Set, if both the register sets are available.
- The Read Controller processes the TR by issuing read commands to the source slave endpoint. The Read Data lands in the Data FIFO of the EDMA_TPTCn.
- As soon as sufficient data is available, the Write Controller begins processing the TR by issuing write commands to the destination slave endpoint.
- This continues until the TR completes and the EDMA_TPTCn then signals completion status to the EDMA_TPCC.