Hi, Kumar Gala 2011/3/22 Jason Liu <jason....@linaro.org>: > For freescale i.MX53 eSDHCv2, when using CMD12, cmdtype need > to be set to ABORT, otherwise, next read command will hang. > > This is a software Software Restrictions in i.MX53 reference manual: > > 29.7.8 Multi-block Read > For pre-defined multi-block read operation, that is,the number of blocks > to read has been defined by previous CMD23 for MMC, or pre-defined number > of blocks in CMD53 for SDIO/SDCombo,or whatever multi-block read without > abort command at card side, an abort command, either automatic or manual > CMD12/CMD52, is still required by ESDHC after the pre-defined number of > blocks are done, to drive the internal state machine to idle mode. In this > case, the card may not respond to this extra abort command and ESDHC will > get Response Timeout. It is recommended to manually send an abort command > with RSPTYP[1:0] both bits cleared. > > Signed-off-by: Jason Liu <jason....@linaro.org> > --- > drivers/mmc/fsl_esdhc.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c > index f3cccbe..5c3618b 100644 > --- a/drivers/mmc/fsl_esdhc.c > +++ b/drivers/mmc/fsl_esdhc.c > @@ -99,6 +99,10 @@ uint esdhc_xfertyp(struct mmc_cmd *cmd, struct mmc_data > *data) > else if (cmd->resp_type & MMC_RSP_PRESENT) > xfertyp |= XFERTYP_RSPTYP_48; > > +#ifdef CONFIG_MX53 > + if (cmd->cmdidx == MMC_CMD_STOP_TRANSMISSION) > + xfertyp |= XFERTYP_CMDTYP_ABORT; > +#endif > return XFERTYP_CMD(cmd->cmdidx) | xfertyp; > }
Ping, Any comments? > > -- > 1.7.1 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot