[U-Boot] [PATCH] mmc: dw_mmc: reduce timeout detection cycle

Simon Glass sjg at chromium.org
Mon Jul 25 04:07:27 CEST 2016


On 19 July 2016 at 02:08, Ziyuan Xu <xzy.xu at rock-chips.com> wrote:
> Hi Jaehoon,
>
>
> On 2016年07月19日 15:51, Jaehoon Chung wrote:
>>
>> Hi,
>>
>> On 07/19/2016 04:40 PM, Ziyuan Xu wrote:
>>>
>>> Hi Jaehoon,
>>>
>>> On 2016年07月19日 12:22, Jaehoon Chung wrote:
>>>>
>>>> Hi Ziyuan,
>>>>
>>>> On 07/19/2016 11:33 AM, Ziyuan Xu wrote:
>>>>>
>>>>> Hi Jaehoon,
>>>>>
>>>>> On 2016年07月19日 10:03, Jaehoon Chung wrote:
>>>>>>
>>>>>> Hi Ziyuan,
>>>>>>
>>>>>> On 07/19/2016 10:38 AM, Ziyuan Xu wrote:
>>>>>>>
>>>>>>> It's no need to speed 10 seconds to wait the mmc device out from busy
>>>>>>> status. 500 milliseconds enough.
>>>>>>
>>>>>> I agreed that 10 seconds is too big..
>>>>>> Could you explain more how you get 500ms and feel enough?
>>>>>
>>>>> Ordinarily, there are 3 types of scenarios that the mmc device was
>>>>> busy:
>>>>> 1. The mmc interface didn't initialize (eg. gpio  iomux)
>>>>> The device will be busy status until gpio iomux.
>>>>>
>>>>> 2. The last command with data transfer.
>>>>> The maximum value of data timeout is 0xffffff cyles(see dwi databook
>>>>> Timeout Register), and the clock is up to 52MHZ under high speed mode.
>>>>> timeout = 0xffffff * 1/52M = 0.32s
>>>>>
>>>>> 3. voltage switch
>>>>> U-BOOT doesn't support voltage switch.
>>>>>
>>>>> In summary, I think 500 milliseconds is enough. What do you think?
>>>>
>>>> I think it's not important thing.
>>>>
>>>> This is for checking whether card is busy or not before sending command.
>>>> I think it's not relevant to Timeout register. Just ensure that card is
>>>> not busy before sending command.
>>>> And there is no effect for I/O performance, isn't?
>>>
>>> Yup,  I agree with you.  For scenarios 2, I mean that if the last command
>>> with data transfer, we will hit data_busy assertion probably. If the mmc
>>> device remains in a busy state more than 500ms, I think it may also be busy
>>> state after 10s.
>>>>
>>>> But 50ms is not bad. :) It's personal preference.
>>>
>>> BTW, the timeout value is 500ms in kernel.
>>
>> Yep, it looks good to me. :)
>> I have tested your patch with Exynos SoCs.
>>
>> Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com>
>> Tested-by: Jaehoon Chung <jh80.chung at samsung.com>
>
> Thanks for your test and review!
>

Let's get others to test this.

Applied to u-boot-dm, thanks!


More information about the U-Boot mailing list