mmc: Add support for HS200 and UHS modes
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest0 of 22 patches 0 repliesNew
Patches in v1 No applies recorded yet
None of the 22 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [U-Boot] [PATCH 00/22] mmc: Add support for HS200 and UHS modes
hi Jaehoon,
Quoted 10 lines · Jaehoon Chung
Hi Kever,
Quoted 7 lines · Kever Yang
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?
Quoted 7 lines
Quoted 5 lines
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?
Quoted 149 lines
Best Regards,
Jaehoon ChungQuoted 142 lines
Thanks,
- KeverQuoted 134 lines · Jaehoon Chung
Quoted 54 lines · Jean-Jacques Hiblot
Hi Jaehoon,
Quoted 50 lines · Jaehoon Chung
Hi,
Quoted 47 lines · Jean-Jacques Hiblot
Hi,
Quoted 31 lines · Jaehoon Chung
Hi,
Quoted 28 lines · Jean-Jacques Hiblot
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 voltageQuoted 6 lines
Quoted 5 lines
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 cmdSWITCH_UHS18Vhas been sent, making debug messages in that context a problem. With this SD I've been able to check that SDR104 is working.Quoted 8 lines
Quoted 5 lines
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
branchhigh_speed_hsmmc_v2implements the required bit for th HSMMC found on TI boardsSorry 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 ChungQuoted 61 lines
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
Quoted 52 lines
Best Regards,
Jaehoon ChungQuoted 49 lines
Jean-Jacques
Quoted 47 lines
Quoted 47 lines
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/scheers,
Jean-Jacques
Jean-Jacques Hiblot (18):
mmc: splitmmc_startup()
mmc: move the MMC startup for version above v4.0 in a separate
function
mmc: makeext_csdpart 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: makemmc_set_ios()return status
mmc: add power cyle support in mmc core
mmc: add a new mmc parameter to disable mmc clock
mmc: Add aexecute_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 partitionKishon 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 offVignesh 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
Signature · 1 line
Ziyuan Xu