From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ziyuan Date: Fri, 25 Aug 2017 16:16:51 +0800 Subject: [U-Boot] [PATCH 00/22] mmc: Add support for HS200 and UHS modes In-Reply-To: <9cccacfa-cee3-cb81-4a17-24b98f3795b9@samsung.com> References: <1494613000-8156-1-git-send-email-jjhiblot@ti.com> <025a078b-a775-0c92-fa5c-ed2afab32454@samsung.com> <1cc6418c-369b-21f6-2e32-0c861f47f85f@ti.com> <9cccacfa-cee3-cb81-4a17-24b98f3795b9@samsung.com> Message-ID: <599FDCF3.7020701@rock-chips.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de hi Jaehoon, On 07/28/2017 09:05 PM, 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. *ping* Anything update? > > 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 >> >> >> >> > > > -- Ziyuan Xu