On Sep 6, 2015 10:14 PM, "Shawn Lin" <shawn....@rock-chips.com> wrote:
>
> 在 2015/9/6 20:09, Yousong Zhou 写道:
>>
>> Hi,
>>
>> On 6 September 2015 at 08:12, Shawn Lin <shawn....@rock-chips.com> wrote:
>>>
>>> On 2015/9/5 22:58, Hans de Goede wrote:
>>>>
>>>>
>>>> Hi Shawn Lin,
>>>>
>>>> On 05-09-15 16:07, Shawn Lin wrote:
>>>>>
>>>>>
>>>>> On 2015/9/5 18:19, Yousong Zhou wrote:
>>>>>>
>>>>>>
>>>>>> A SD card with sunxi-mmc can fail with the following error message
>>>>>> (RCD for
>>>>>> response CRC error) when trying to switch to highspeed mode.  Setting
>>>>>> the bus
>>>>>> clock before the access mode switch fixed it.
>>>>>
>>>>>
>>>>>
>>>>> No, that's wrong!
>>>>>
>>>>> Before this card is switched to highspeed, it works under
>>>>> identification mode(From spec: bus clock <= 400KHz). How could you
>>>>> raise bus clock to higher clk rate which I _guess_ is 52MHz before you
>>>>> notify sd cards to run into highspeed mode?
>>>>>
>>>>> Althought it works for this card, this patch will not please the other
>>>>> cards that they might not reply CMDs any longer including the
>>>>> following CMD6.
>>>>
>>>>
>>>>
>>>> Thanks for the feedback, this is exactly why I asked Yousong Zhou to
>>>> take this
>>>> to the mmc list.
>>>>
>>>> So if this is not the proper fix for the problem that Yousong Zhou is
>>>> seeing, then
>>>> what might be the proper fix ?
>>>>
>>>
>>>  From my knowledge of mmc, there hadn't have a way to deal with this
"broken"
>>> case. In another word, IMO,it's ANTI-SPEC. We can't be too spec
sometimes,
>>> but at least we shouldn't violate it.
>>>
>>
>> Maybe the fix is anti-spec.  But the fact is that the card works on
>> many other platforms with the builtin card reader (not through an USB
>> adapter), including Mac OS X, my old Nokia Symbian phone, and Windows.
>>
>>>> Could it be that the sunxi-mmc is doing some things in the wrong order
>>>> when
>>>> changing the clock, or is this all under control of the mmc core ?
>>>>
>>>
>>> all of this is under control of the mmc core.
>>> So if Yongsong does want this card to work for any linux-based mmc
stack, I
>>> guess something like that should be "better"?
>>>
>>> if (switch to HS fail) {
>>>          set_bus_clk
>>>          goto retry switch to HS
>>> }
>>>
>>> BUT...I admit it seems strange as well.
>>>
>>
>> The SD Specification (simplified version) says "If CRC error occurs on
>> the status data, the host should issue a power cycle.", so I guess the
>> above approach is anti-spec in some way :)
>>
>
> Right,I was guessing that way from your intention.
>
>
>> In case it may help debug this problem, I'd like to add that the card
>> previously worked fine with U-Boot before commit [1].  This can also
>> be confirmed by Debian Jessie installer image with which the old
>> U-Boot there worked fine while the kernel (3.16) did not.
>>
>>   [1] sunxi: mmc: Properly setup mod-clk and clock sampling phases,
>>
http://git.denx.de/?p=u-boot.git;a=commit;h=fc3a832576ce7bb597b1823935bfb7dcca235c3c
>>
>
> Interesting... but that at least prove your patch is a workaround but not
find the root cause.
>
> Anyway, look into commit-sha [1], can you have a test by restoring
mod-clk and clock sampling phases before jump to kernel.
>

Maybe my statement about U-Boot commit [1] above was a little ambiguous,
sorry.  I meant to say that with that commit applied, U-Boot failed
initialising the card the same way as the kernel, i.e. response crc error.

The Debian Jessie installer image's U-Boot worked fine and booted the
kernel because it was before commit [1] happened.  However after that the
3.16 kernel failed initialising the card.

So, with commit [1], U-Boot failed right away without any chance at all
jumping to kernel.

OpenWrt ticket 20387 has more info about the U-Boot failure.

https://dev.openwrt.org/ticket/20387

Anyway, I have no idea what's the effect of those magic numbers on
"sampling phases".  Never played with such things before :)

> I happended to fix some problems which seems *similar* to yours(but I'm
not sure just from commit[1]'s msg):
>
> https://patchwork.kernel.org/patch/7119661/
>
>> Cheers
>>
>>                  yousong
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>> the body of a message to majord...@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>>
>>
>
>
> --
> Best Regards
> Shawn Lin
>
> --
> You received this message because you are subscribed to the Google Groups
"linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an
email to linux-sunxi+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to