Re: [PATCH] mmc: Add delay between CMD6 and CMD13 for Sandisk eMMC cards

From: hisanao.kinkawa
Date: Mon Sep 15 2014 - 21:26:09 EST


Hi

Do not hit the following bug?
Often, This bug fails setting of CMD6.

-------- Original Message --------
Subject: Re: [PATCH v2] mmc:sdhci: handle busy-end interrupt during command
Date: Tue, 2 Sep 2014 11:27:51 +0200
From: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
To: Chanho Min <chanho.min@xxxxxxx>



On 30 August 2014 05:40, Chanho Min <chanho.min@xxxxxxx> wrote:
> It is fully legal for a controller to start handling busy-end interrupt
> before it has signaled that the command has completed. So make sure
> we do things in the proper order, Or it results that command interrupt
> is ignored so it can cause unexpected operations. This is founded at some
> toshiba emmc with the bellow warning.
>
> "mmc0: Got command interrupt 0x00000001 even though
> no command operation was in progress."
>
> This issue has been also reported by Youssef TRIKI:
> It is not specific to Toshiba devices, and happens with eMMC devices
> as well as SD card which support Auto-CMD12 rather than CMD23.
>
> Also, similar patch is submitted by:
> Gwendal Grignou <gwendal@xxxxxxxxxxxx>
>
> Changes since v1:
> Fixed conflict with the next of git.linaro.org/people/ulf.hansson/mmc.git
> and Tested if issue is fixed again.
>
> Signed-off-by: Hankyung Yu <hankyung.yu@xxxxxxx>
> Signed-off-by: Chanho Min <chanho.min@xxxxxxx>
> Tested-by: Youssef TRIKI <youssef.triki@xxxxxx>

Best Regards,
=======================================================
Hisanao Kinkawa [hisanao.kinkawa@xxxxxxxxxxxxx <mailto:hisanao.kinkawa@xxxxxxxxxxxxx>]
=======================================================


(2014/09/15 20:29), Jean-Michel Hautbois wrote:
> 2014-09-15 12:53 GMT+02:00 Jean-Michel Hautbois
> <jean-michel.hautbois@xxxxxxxxxxx>:
>> 2014-09-15 12:44 GMT+02:00 Jaehoon Chung <jh80.chung@xxxxxxxxxxx>:
>>> On 09/15/2014 07:08 PM, Jean-Michel Hautbois wrote:
>>>> Hi Jaehoon,
>>>>
>>>>> On 09/09/2014 09:26 PM, Jean-Michel Hautbois wrote:
>>>>>> Tested on a i.MX6 board, with Sandisk SDIN5D1-2G.
>>>>>> Without this patch, I/O errors occur.
>>>>>> This eMMC seems to have a different Manufacturer ID as it reads 0x45
>>>>>> and not 0x2 as specified in datasheet.
>>>>> I think this patch don't merge into mainline.
>>>>> This is not solution for problem.
>>>>> you mentioned the below comment, this is workaround.
>>>> Yes
>>>>
>>>>>> Signed-off-by: Jean-Michel Hautbois <jean-michel.hautbois@xxxxxxxxxxx>
>>>>>> ---
>>>>>> drivers/mmc/core/mmc_ops.c | 9 +++++++++
>>>>>> 1 file changed, 9 insertions(+)
>>>>>>
>>>>>> diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
>>>>>> index f51b5ba..91babaa 100644
>>>>>> --- a/drivers/mmc/core/mmc_ops.c
>>>>>> +++ b/drivers/mmc/core/mmc_ops.c
>>>>>> @@ -458,6 +458,15 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
>>>>>> if (!use_busy_signal)
>>>>>> return 0;
>>>>>>
>>>>>> + /* WORKAROUND: for Sandisk eMMC cards, it might need certain delay
>>>>>> + * before sending CMD13 after CMD6
>>>>>> + * On SDIN5D1-2G MANFID is 0x45 and not 0x2 as specified in datasheet
>>>>>> + */
>>>>>> + if (card->cid.manfid == CID_MANFID_SANDISK ||
>>>>>> + card->cid.manfid == 0x45) {
>>>>>> + msleep(1);
>>>>>> + }
>>>>> If it's a general problem of Sandisk SDIN5D1-2G,
>>>>> I think you need to verify this problem. And can you use the MMC_FIXUP() and QUIRK?
>>>> Well, this is difficult to verify, I know that on all my SDIN5D1-2G I
>>>> have this MANFID different from what is defined by CID_MANFID_SANDISK.
>>>> How should I use MMC_FIXUP ? Like this ?
>>> I think you need to explain why delay is need.
>>> i didn't have same card, but it might be your host controller or other problem.
>> Well, I don't know why it is needed, this is undocumented, nothing in
>> datasheet explains anything about this.
> It seems to be uSDHC / DDR mode related. I don't even know if this is
> limited to Sandisk !
> And I don't have another board with another manufacturer eMMC to test.
> Maybe some guys from Freescale could help with this ?
>
> Thanks,
> JM
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> .
>