[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