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

Marek Vasut marek.vasut at gmail.com
Sat Sep 16 17:12:41 UTC 2017


On 09/15/2017 03:20 PM, Jean-Jacques Hiblot wrote:
> Hi Jaehoon,
> 
> What is the status on this one?

I'd like to know that too. Plus all the other outstanding SD/MMC patches
which block other stuff and already missed at least one MW ...

> Do you still have issues with some platforms?
> 
> Jean-Jacques
> 
> 
> On 28/07/2017 15:05, Jaehoon Chung wrote:
>> Hi Kever,
>>
>> On 07/26/2017 08:33 PM, Kever Yang wrote:
>>> Hi Jaehoon,
>>>
>>>
>>>      What's the status of this patch set now?
>>>
>>>      Can we land this patch set or the other patch set from Ziyuan Xu?
>>>
>>> The performance for  mmc in U-Boot is really bad now, and this patch
>>> set has been
>>>
>>> on list for more than two months now, I'm using the patch set from
>>> Ziyuan Xu locally,
>>>
>>> but really hope the upstream can move forward.
>> Apologized for late. Will try to upstream this before releasing v2017.09.
>> Really sorry for late, again. Thanks for reminding this.
>>
>> Best Regards,
>> Jaehoon Chung
>>
>>>
>>> Thanks,
>>> - Kever
>>> On 06/29/2017 05:59 PM, Jaehoon Chung wrote:
>>>> 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(-)
>>>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>> _______________________________________________
>>>> U-Boot mailing list
>>>> U-Boot at lists.denx.de
>>>> https://lists.denx.de/listinfo/u-boot
>>>
>>>
>>>
>>>
>>
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot


-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list