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:

  1. Host - Can issue a repeat command at any time during the transaction.
  2. Host - Monitors for RES_START after CMD_RESP_PERIOD.
  3. Client - Cuts off the current running data packet, if any.
  4. Client - Responds to the repeat command after CMD_RESP_PERIOD from the end of the repeat command packet.
  5. 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.