Information

Enhanced Secure Digital Host Controller
MPC8308 PowerQUICC II Pro Processor Reference Manual, Rev. 1
Freescale Semiconductor 11-55
5. Disable the buffer read ready interrupt, configure the DMA setting, and enable the eSDHC DMA
when sending the command with data transfer. Set XFERTYP[AC12EN].
6. Wait for the transfer complete interrupt.
7. Check the status bit to see if a read CRC error or any other errors occurred between sending Auto
CMD12 and receiving the response.
11.6.3.2.2 Read with Pause
In general, the read operation is not able to pause. Only the SDIO card (and SD Combo card working under
I/O mode) supporting the read wait feature can pause during the read operation. If the SDIO card supports
read wait (CCCR[SRW] = 1), the driver can set PROCTL[SABGREQ] to pause the transfer between the
data blocks. Before setting SABGREQ, PROCTL[RWCTL] must be set. Otherwise, the eSDHC does not
assert the read wait signal during the block gap and data corruption occurs. It is recommended to set the
RWCTL bit once the read wait capability of the SDIO card is recognized.
Similar to the flow described in Section 11.6.3.2.1, “Normal Read,” the read with pause is shown with the
same type of read operations:
1. Check CCCR[SRW] in the SDIO card to confirm the card supports read wait.
2. Set PROCTL[RWCTL].
3. Check the card status and wait until the card is ready for data.
4. Set the card block length.
MMC/SD cards — use SET_BLOCKLEN (CMD16)
SDIO cards or the I/O portion of SD Combo cards — use IO_RW_DIRECT (CMD52) to set
IO block size bit field in CCCR register (for function 0) or FBR (for functions 1–7)
5. Set eSDHC BLKATTR[BLKSIZE] to the same as the block length set in the card in Step 2.
6. Set eSDHC BLKATTR[BLKCNT] with the number of blocks to send.
7. Disable the buffer read ready interrupt, configure the DMA setting, and enable the eSDHC DMA
when sending the command with data transfer. Set XFERTYP[AC12EN].
8. Set PROCTL[SABGREQ].
9. Wait for the transfer complete interrupt.
10. Clear PROCTL[SABGREQ].
11. Check the status bit to see if a read CRC error occurred.
12. Set PROCTL[CREQ] to continue the read operation.
13. Wait for the transfer complete interrupt.
14. Check the status bit to see if a read CRC error or any other errors occurred between sending Auto
CMD12 and receiving the response.
Similar to the write operation, it is possible to meet the ending block of the transfer when paused. In this
case, the eSDHC ignores the stop-at-block-gap request and treats it as a command read operation.
Unlike the write operation, there is no remaining data inside the buffer when the transfer is paused. All
data received before the pause is transferred to the host system. Whether or not a suspend command is sent,
the internal data buffer is not flushed.