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

Marek Vasut marek.vasut at gmail.com
Sat Oct 14 14:51:32 UTC 2017


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 ?

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list