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

Guillaume Gardet guillaume.gardet at free.fr
Mon Apr 9 14:46:30 UTC 2018



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)
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



More information about the U-Boot mailing list