[U-Boot] [PATCH v2 00/26] mmc: Add support for HS200 and UHS modes
Siva Durga Prasad Paladugu
sivadur at xilinx.com
Thu Nov 23 09:46:25 UTC 2017
Hi Jaehoon,
> -----Original Message-----
> From: U-Boot [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Jaehoon
> Chung
> Sent: Friday, October 20, 2017 5:02 PM
> To: Jean-Jacques Hiblot <jjhiblot at ti.com>; trini at konsulko.com;
> kishon at ti.com; sjg at chromium.org
> Cc: u-boot at lists.denx.de
> Subject: Re: [U-Boot] [PATCH v2 00/26] mmc: Add support for HS200 and
> UHS modes
>
> Dear JJ
>
> On 09/21/2017 11:29 PM, 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, Atmel SAMA5D3 xplained). 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 5 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:
> > - send the initialization stream (74 clock cycles)
> > - wait while the card is busy (used during UHS voltage switching). checking
> is
> > done on dat0.
> > - 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.
> > Also in case of a reset (as opposed to a power on), it ensures that
> > the SDCard is in clean state before re-doing the initialization.
> >
> > And finally the last commits add the support for HS200 and UHS.
> >
> > With this in place and the required changes in the HSMMC host driver
> > (including DMA), we observe significant improvements in the
> performances on a DRA72 evm:
> > eMMC HS200: 124 MB/s
> > eMMC DDR52: 78 MB/s
> > sd SDR104: 71 MB/s
> > sd SDR50: 44 MB/s
>
> Applied to u-boot-mmc! Thanks!
> I will apply the patches relevant to this patchset. Sorry for late applying this.
I would like to test UHS and HS200 series on ZynqMP platform.
Is it the branch " testing-uhs-supporting" that I should be using for testing it?
Please confirm.
Thanks,
Siva
>
> Best Regards,
> Jaehoon Chung
>
> >
> > cheers,
> >
> > Jean-Jacques
> >
> > changes since v1:
> > Changes take in account all the comment made during the first round of
> review.
> > But it also include a rework of the handling of the voltage supplies
> > and 2 new helper functions that can be used by the host driver during
> > tuning and dts parsing.
> >
> > Here is a detailed list:
> > * rebase on u-boot/master.
> > * add the description for the new functions/members
> > * fix the typos found in the reviews
> > * limit the new features to DM_MMC only
> > * fix the new checkpatch warnings/errors (is it now more strict ?)
> > * get the voltage regulators from dts (main and IO-lines)
> > * remove the set_vdd callback and do the job in the mmc core
> > * add a send_init_stream callback to perform the 74 clock cycle
> > sequence after power up
> > * do a full power cycle (if possible) before the initialization. This ensures
> > that the sd/MMC is in valid knwon state. Also it allows to check if the
> power
> > cycling works as expected.
> > * disable the UHS modes is power cycling is not available/working. This
> ensures
> > that we won't be stuck if the UHS initialization fails.
> > * select the appropriate signal voltage when selecting a mode (MMC
> > only)
> > * add a helper function to parse the generic dt bindings
> > * add a helper function to send the tuning command
> >
> > Jean-Jacques Hiblot (17):
> > mmc: dm: get the IO-line and main voltage regulators from the dts
> > 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: introduce mmc modes
> > mmc: Add a function 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: Add a new callback function to perform the 74 clocks cycle
> > sequence
> > mmc: Add support for UHS modes
> > mmc: disable UHS modes if Vcc cannot be switched on and off
> > mmc: Change mode when switching to a boot partition
> > mmc: use the right voltage level for MMC DDR and HS200 modes
> > mmc: add a library function to send tuning command
> >
> > Kishon Vijay Abraham I (9):
> > mmc: make mmc_set_ios() return status
> > mmc: Enable signal voltage to be selected from mmc core
> > mmc: add power cyle support in mmc core
> > mmc: add a new mmc parameter to disable mmc clock
> > mmc: disable the mmc clock during power off
> > mmc: Add a execute_tuning() callback to the mmc operations.
> > mmc: add HS200 support in MMC core
> > mmc: Retry some MMC cmds on failure
> > dm: mmc: Add a library function to parse generic dt binding
> >
> > cmd/mmc.c | 3 +-
> > drivers/mmc/Kconfig | 23 +
> > drivers/mmc/fsl_esdhc.c | 2 +-
> > drivers/mmc/mmc-uclass.c | 87 +++
> > drivers/mmc/mmc.c | 1511
> ++++++++++++++++++++++++++++++++++------------
> > include/mmc.h | 176 +++++-
> > 6 files changed, 1417 insertions(+), 385 deletions(-)
> >
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
More information about the U-Boot
mailing list