14.2.3 Read Block
Normal transaction:
Host - Issues a DMA read transaction and waits for a response.
Client - Sends a response after CMD_RES_PERIOD.
Host - Waits for a data packet start.
Client - Sends the data packets, separated by DATA_DATA_PERIOD[1] where DATA_DATA_PERIOD is controlled by software and has one of these values: NO_DELAY (default), 4_BYTE_PERIOD, 8_BYTE_PERIOD, and 16_BYTE_PERIOD.
Client - Continues sending until the count ends.
Host - Receives data packets. No response is sent for data packets but a termination/retransmit command may be sent if there is an error.
The message sequence for this case is shown below:
Termination command is issued:
Host - Can issue a termination command at any time during the transaction.
Host - Monitors for RES_START after CMD_RESP_PERIOD.
Client - Cuts off the current running data packet if there is any.
Client - Responds to the termination command after CMD_RESP_PERIOD from the end of the termination command packet.
Repeat command is issued:
- Host - Can issue a repeat command at any time during the transaction.
- Host - Monitors for RES_START after CMD_RESP_PERIOD.
- Client - Cuts off the current running data packet, if any.
- Client - Responds to the repeat command after CMD_RESP_PERIOD from the end of the repeat command packet.
- Client - Sends the data packet again that has an error then continues the transaction as normal.
[1] The period between the data packets is “DATA_DATA_PERIOD + DMA access time.” The Host monitors for DATA_START directly after DATA_DATA_PERIOD.