[U-Boot] [PATCH 1/1] fsl_esdhc: Fix multi-block read restriction on i.MX53 eSDHCv2
Kumar Gala
galak at kernel.crashing.org
Mon Apr 11 07:57:48 CEST 2011
On Apr 10, 2011, at 11:43 PM, Jason Liu wrote:
> Hi, Kumar Gala
>
> 2011/3/22 Jason Liu <jason.hui at 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.hui at 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?
No issues as this is protected with a CONFIG_MX53 so will not impact an PPC SoCs
- k
More information about the U-Boot
mailing list