[U-Boot] [BUG] snow: mmc: SD card access broken: unable to select a mode

Anand Moon linux.amoon at gmail.com
Tue Apr 10 05:24:07 UTC 2018


Hi Guillaume,

On 9 April 2018 at 21:59, Guillaume Gardet <guillaume.gardet at free.fr> wrote:
>
>
> Le 09/04/2018 à 18:02, Guillaume Gardet a écrit :
>>
>>
>>
>> Le 09/04/2018 à 17:18, Jean-Jacques Hiblot a écrit :
>>>
>>>
>>>
>>> On 09/04/2018 16:46, Guillaume Gardet wrote:
>>>>
>>>>
>>>>
>>>> Le 09/04/2018 à 16:21, Jean-Jacques Hiblot a écrit :
>>>>>
>>>>>
>>>>>
>>>>> On 09/04/2018 16:03, Guillaume Gardet wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> Le 09/04/2018 à 15:58, Jean-Jacques Hiblot a écrit :
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 09/04/2018 14:02, Guillaume Gardet wrote:
>>>>>>>>
>>>>>>>> Hi Jaehoon,
>>>>>>>>
>>>>>>>> There are problems with SD card access on Samsung Chromebook (snow)
>>>>>>>> with latest master (and also 2018.05-rc1 and 2018.03).
>>>>>>>>
>>>>>>>> eMMC is ok, but SD card access leads to 'unable to select a mode'
>>>>>>>> problem. If I disable HS mode, I can access the SD card without problem:
>>>>>>>>
>>>>>>>> ********************************************************************************
>>>>>>>> diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c
>>>>>>>> index 23f642980bf..28f4fa0f213 100644
>>>>>>>> --- a/drivers/mmc/dw_mmc.c
>>>>>>>> +++ b/drivers/mmc/dw_mmc.c
>>>>>>>> @@ -508,7 +508,8 @@ void dwmci_setup_cfg(struct mmc_config *cfg,
>>>>>>>> struct dwmci_host *host,
>>>>>>>>          cfg->host_caps |= MMC_MODE_4BIT;
>>>>>>>>          cfg->host_caps &= ~MMC_MODE_8BIT;
>>>>>>>>      }
>>>>>>>> -    cfg->host_caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz;
>>>>>>>> +    /* Temp workaround for Chromebook snow to avoid the 'unable to
>>>>>>>> select a mode' error */
>>>>>>>> +//     cfg->host_caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz;
>>>>>>>>
>>>>>>>>      cfg->b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT;
>>>>>>>>  }
>>>>>>>>
>>>>>>>> ********************************************************************************
>>>>>>>>
>>>>>>>> Once we try to select HS mode, all access to SD card result in
>>>>>>>> failure, even when trying to setup a lower frequency mode, including SD
>>>>>>>> legacy at 25 MHz.
>>>>>>>>
>>>>>>>> Any idea what is going? Maybe you have fixes pending?
>>>>>>>
>>>>>>>
>>>>>>> Can try with MMC_MODE_HS | MMC_MODE_HS_52MHz but with a lower
>>>>>>> max-frequency (<25MHz) ? It would be interesting to know if it could come
>>>>>>> from a frequency limitation.
>>>>>>
>>>>>>
>>>>>> I already tried to change SD_HS freq (in mmc_mode2freq) from 50000000
>>>>>> to 25000000 with no difference.
>>>>>>
>>>>>>> Is there some pad configuration to do when using higher frequency?
>>>>>>
>>>>>>
>>>>>> I do not think so.
>>>>>
>>>>> Can you enable the debug output and post a log ?
>>>>
>>>>
>>>> Here is the log from u-boot built from u-boot-mmc (latest commit:
>>>> 21c2ac32b845)
>>>> Yes, I have no serial, so I retyped the messages, so I hope there is no
>>>> typo:
>>>> **********************************************************************
>>>> selecting mode MMC legacy (freq : 0 MHz)
>>>> selecting mode MMC legacy (freq : 25 MHz)
>>>> sd card: widths [4, 1] modes [SD Legacy, SD High SPeed (50MHz)]
>>>> host: widths [4, 1] modes [MMC legacy, SD Legacy, MMC High Speed
>>>> (26MHz), SD High Speed (50MHz), MMC High Speed (52MHz), MMC DDR52 (52MHz)]
>>>> trying mode SD High Speed (50MHz) width 4 (at 50 MHz)
>>>> selecting mode SD High Speed (50 MHz) (freq : 50 MHz)
>>>> unable to read ssr
>>>> selecting mode SD Legacy (25 MHz) (freq : 25 MHz)
>>>> trying mode SD High Speed (50MHz) width 1 (at 50 MHz)
>>>
>>> So it fails either in sd_select_bus_width() or sd_set_card_speed()
>>> Can you try to limit the bus width to 1 ? Does it fail also at 50 MHz ?
>>
>>
>> Yes, it fails too.
>
>
> If I disable sd_set_card_speed, then it is working fine.
>
> Guillaume
>

Thanks for your investigation on this issue,
I feel their is some clk initialization for mmc for exynos platform is missing.

Best Regards
-Anand

>>
>> Guillaume
>>
>>>
>>>> selecting mode SD Legacy (25 MHz) (freq : 25 MHz)
>>>> trying mode SD Legacy (25MHz) width 4 (at 25 MHz)
>>>> selecting mode SD Legacy (25 MHz) (freq : 25 MHz)
>>>> trying mode SD Legacy (25MHz) width 1 (at 25 MHz)
>>>> selecting mode SD Legacy (25 MHz) (freq : 25 MHz)
>>>> unable to select a mode
>>>> mmc_init: -524, time 127
>>>> ** Bad device mmc 1 **
>>>> **********************************************************************
>>>>
>>>> Note that eMMC (on mmc 0) is working fine with MMC DDR52 (52MHz).
>>>>
>>>> Guillaume
>>>>
>>>
>>>
>>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot


More information about the U-Boot mailing list