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

Jean-Jacques Hiblot jjhiblot at ti.com
Wed Oct 18 13:19:16 UTC 2017



On 14/10/2017 16:51, Marek Vasut wrote:
> On 10/02/2017 11:15 AM, Jean-Jacques Hiblot wrote:
>>
>> On 22/09/2017 16:42, Jaehoon Chung wrote:
>>> 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
>>> I have one question.
>>>
>>> Did you test about accessing Boot partition of eMMC?
>>> As i know, boot partition doesn't support the HS200 mode.
>>>
>>> When i checked your patches, there is no the function of mode changing
>>> for accessing boot partition.
>>> If i missed it, let me know, plz.
>> Yes I did test the boot partitions. HS200 is not used in this case.
>> The key function is mmc_boot_part_access_chk(). It checks if the current
>> mode is supported by the partition. If not, it'll reselect a new mode.
> Is anything new happening on the HS200 front ?
I've been busy lately but I'll send the v3  in a few days that adresses 
all the comments done by Jaheoon and Simon.

Jean-Jacques
>



More information about the U-Boot mailing list