[U-Boot] [PATCH 00/22] mmc: Add support for HS200 and UHS modes
Jean-Jacques Hiblot
jjhiblot at ti.com
Tue May 23 15:24:26 UTC 2017
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.
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