SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Whenever a transfer is initiated, the transmission can be stopped before it finishes. Several cases are possible, depending on the transfer type:
Because the eMMC/SD/SDIOi controller manages transfers based on a block granularity, the buffer accepts a block only if there is enough space to store it completely. Consequently, if a block is pending in the buffer, no command is sent to the card because the card clock will be shut off by the controller.
The eMMC/SD/SDIOi controller includes three features that make a transfer stop more convenient and easier to manage:
Auto CMD12/Auto CMD23 feature is enabled by setting the MMCi.MMCHS_CMD[3:2] ACEN bit field to 0x1 or to 0x2 respectively (this setting is relevant for an MMC/SD transfer with a known number of blocks to transfer). When the Auto CMD12/Auto CMD23 feature is enabled, the eMMC/SD/SDIOi controller automatically issues a CMD12/CMD23 command when the expected number of blocks is exchanged.
This feature is enabled by setting the MMCi.MMCHS_HCTL[16] SBGR bit to 0x1. When enabled, this capability holds the transfer on until the end of a block boundary. If a stop transmission is needed, software can use this pause to send a CMD12 to the card.
For ADMA-capable modules (MMC1 and MMC2) (for more information, see Section 25.4.5, DMA Modes), the last instruction can stop the transfer (the END bit is enabled in the descriptor line).
For eMMC and SD cards, the stop-at-block-gap feature is not supported in read mode.
For SDIO cards, this setting can be supported in read mode if the card has read-wait capability.
In SDR104 mode Aut