[U-Boot] [PATCH 00/22] mmc: Add support for HS200 and UHS modes

Jaehoon Chung jh80.chung at samsung.com
Thu Jun 29 09:59:37 UTC 2017


On 06/16/2017 07:00 PM, Jean-Jacques Hiblot wrote:
> Hi Jaehoon,
> 
> 
> On 25/05/2017 09:41, Jaehoon Chung wrote:
>> Hi,
>>
>> On 05/24/2017 12:24 AM, Jean-Jacques Hiblot wrote:
>>> Hi,
>>>
>>>
>>> On 18/05/2017 06:27, Jaehoon Chung wrote:
>>>> Hi,
>>>>
>>>> On 05/13/2017 03:16 AM, Jean-Jacques Hiblot wrote:
>>>>> This series brings support for HS200 and UHS modes to the mmc core.
>>>>> It has been tested with the hsmmc driver on several platforms (DRA7,
>>>>> AM57x, AM437x, beaglebone black). Some modifications are required in
>>>>> the host driver to take advantage of this (voltage switching, tuning).
>>>>> The changes to the host driver will be posted a another series as this
>>>>> one is already long enough.
>>>>>
>>>>> The series starts with a small refactoring of th sd/mmc startup. The first 4 commits
>>>>> are mostly moving code around with little or no functionnal change.
>>>>>
>>>>> Then the notion of "mode" is introduced. Until now, this information wasn't
>>>>> kept in struct mmc. Only the clock and a flag for ddr was kept. Later the mode
>>>>> information will be used to select the clock frequency, the ddr flag and the
>>>>> tuning procedure. It will be also be check against the host capabilities.
>>>>>
>>>>> Then comes the big refactoring job in:
>>>>> "mmc: refactor MMC startup to make it easier to support new modes" and
>>>>> "mmc: refactor SD startup to make it easier to support new modes"
>>>>> Since the number of modes is increasing, it makes sense to try them in a more
>>>>> organized way. those commits use a list of supported modes and iterate through
>>>>> them to find the best working one. It also allows to switch more easilly from
>>>>> one mode to another (switching from HS200 to DDR52 to access boot partitions for example)
>>>>>
>>>>> Then there are a couple of new callback added to:
>>>>> - enable/disable Vdd
>>>>> - check if the card is busy (used during UHS voltage switching)
>>>>> - select the IO voltage
>>>>>
>>>>> Then Power cycle is added. Without power cycle, if a UHS card fails to enumerate in
>>>>> UHS mode, it can't fall back to high speed mode and card enumeration will fail.
>>>>>
>>>>> And finally the last commits add the support for HS200 and UHS.
>>>>> I haven't been able to test the UHS SDR104 mode by lack of compatible sdcard.
>>>> After testing my targets, some boards don't work fine..So i'm checking this problem..
>>> Jaehoon,
>>>
>>> what kind of issues are you running into and on what platforms ?
>>> So far, besides the items brought-up by the reviews, there are 2 issues that are in the pipe for the next version:
>>>   * signal voltage selection is not done for the MMCs only for SDs.
>>>   * I noticed a timing constraint in voltage selection for SDs that can be a problem when trying a UHS mode with some SDs (seen only with Sandisk Ultra  64Gb micro SD class I) :  the voltage must be switched quickly after the cmd SWITCH_UHS18V has been sent, making debug messages in that context a problem. With this SD I've been able to check that SDR104 is working.
>> How about making the "testing-hs200-uhs" branch for this? It needs to test more..
>> I guess my target doesn't do the voltage change..i'm doing for ufs driver on u-boot in my local..
>> So i didn't see fully..today i have a free time..So i'm doing full review other thing..and about pending patches.
>>
>> Thanks for waiting me.. :)
> 
> I updated the branches for testing in my github repo (https://github.com/jjhiblot/u-boot.git )
> branch testing-hs200-uhs_v2 touches only the MMC core
> branch high_speed_hsmmc_v2 implements the required bit for th HSMMC found on TI boards

Sorry for late..I make the hs200-ufs-testing branch in u-boot-mmc repo.
I will rebase on latest u-boot. and start the testing.

Best Regards,
Jaehoon Chung

> 
> Most of the comments (if not all of them) have been taken in account and the branches have been rebased on top of u-boot master.
> 
> Will you be able to do some testing and let me know if there are other things to change ? Don't hesitate to let me know what boards it breaks (if any), I'll do my best to get my hands on one and help with the debugging.
> 
> Thanks,
> 
> JJ
>>
>> Best Regards,
>> Jaehoon Chung
>>
>>> Jean-Jacques
>>>>> With this in place and the required changes in the HSMMC (including DAM), we observe significant
>>>>> improvements in the performances on a DRA7 evm:
>>>>> eMMC HS200: 130 MB/s
>>>>> eMMC DDR52: 80 MB/s
>>>>> sd   SDR50: 80 MB/s
>>>>>
>>>>> cheers,
>>>>>
>>>>> Jean-Jacques
>>>>>
>>>>>
>>>>> Jean-Jacques Hiblot (18):
>>>>>     mmc: split mmc_startup()
>>>>>     mmc: move the MMC startup for version above v4.0 in a separate
>>>>>       function
>>>>>     mmc: make ext_csd part of struct mmc
>>>>>     mmc: add a function to read and test the ext csd (mmc >= 4)
>>>>>     mmc: introduces mmc modes.
>>>>>     mmc: Add a fonction to dump the mmc capabilities
>>>>>     mmc: use mmc modes to select the correct bus speed
>>>>>     cmd: mmc: display the mode name and current bus speed in the mmc info
>>>>>     mmc: refactor SD startup to make it easier to support new modes
>>>>>     mmc: refactor MMC startup to make it easier to support new modes
>>>>>     mmc: make mmc_set_ios() return status
>>>>>     mmc: add power cyle support in mmc core
>>>>>     mmc: add a new mmc parameter to disable mmc clock
>>>>>     mmc: Add a execute_tuning() callback to the mmc operations.
>>>>>     mmc: add HS200 support in MMC core
>>>>>     mmc: Add a new callback function to check if the card is busy
>>>>>     mmc: Add support for UHS modes
>>>>>     mmc: Change mode when switching to a boot partition
>>>>>
>>>>> Kishon Vijay Abraham I (3):
>>>>>     mmc: Enable signal voltage to be selected from mmc core
>>>>>     mmc: Add a new callback function to enable/disable vdd
>>>>>     mmc: disable the mmc clock during power off
>>>>>
>>>>> Vignesh R (1):
>>>>>     mmc: Retry some MMC cmds on failure
>>>>>
>>>>>    cmd/mmc.c                |    3 +-
>>>>>    drivers/mmc/fsl_esdhc.c  |    2 +-
>>>>>    drivers/mmc/mmc-uclass.c |   42 ++
>>>>>    drivers/mmc/mmc.c        | 1220 +++++++++++++++++++++++++++++++++-------------
>>>>>    include/mmc.h            |  138 +++++-
>>>>>    5 files changed, 1058 insertions(+), 347 deletions(-)
>>>>>
>>>
>>>
>>>
>>
> 
> 
> 
> 



More information about the U-Boot mailing list