[U-Boot] [PATCH] mmc:sdhci: Fix card ready status timeout.

Pantelis Antoniou panto at antoniou-consulting.com
Mon Sep 16 18:34:09 CEST 2013


Hi there,

On Sep 13, 2013, at 3:59 PM, Przemyslaw Marczak wrote:

> Dear Pantelis,
> 
> On 09/09/2013 02:58 PM, Przemyslaw Marczak wrote:
>> According to JEDEC eMMC specification, after data transfer
>> (multiple or single block) host must wait for card ready
>> status. This is done by waiting for command and data lines
>> to be at idle state after transfer. JEDEC does not specify
>> maximum timeout.
>> 
>> Before this change max timeout was 10 ms but in case of UMS
>> - when system does multiple read/write operations on random
>> card blocks - timeout causes I/O errors.
>> The timeout has been increased to 200ms after data transfer.
>> For other transfers it stays unchanged. Default values are
>> now defined with "if defined" directive so it can be redefined
>> at board config if needed.
>> 
>> Tested on Goni and Trats.
>> 
>> Signed-off-by: Przemyslaw Marczak <p.marczak at samsung.com>
>> Cc: Pantelis Antoniou <panto at antoniou-consulting.com>
> 
> Please do not apply this patch yet due to still not enough results on some targets.
> Timeout value should depends on internal cards operations execution time but this time is unpredictably and that is why JEDEC not specifies it. Maybe u-boot sdhci driver needs some more changes to be more flexible for such operations. In example sdhci background operations timeout at kernel is specified to 4 minutes.
> I need to make more research.
> 

OK, this need to be fleshed out a bit more.

Please keep me in the loop cause this sounds board-specific.
Perhaps the CONFIG_* option is a sound idea; real world is messy like that.

> Regards,
> 
> -- 
> Przemyslaw Marczak
> Samsung R&D Institute Poland
> Samsung Electronics
> p.marczak at samsung.com

Regards

-- Pantelis




More information about the U-Boot mailing list