
Hi,
On 3/16/22 02:46, Alper Nebi Yasak wrote:
This series implements support for the HS400 Enhanced Strobe mode on the Rockchip SDHCI driver, for both RK3399 and RK3568. To test, I'm building for chromebook_kevin with the following configs enabled:
+CONFIG_MMC_SPEED_MODE_SET=y [...] CONFIG_MMC_PWRSEQ=y +CONFIG_MMC_IO_VOLTAGE=y +CONFIG_MMC_UHS_SUPPORT=y +CONFIG_MMC_HS400_ES_SUPPORT=y +CONFIG_MMC_HS400_SUPPORT=y CONFIG_MMC_DW=y CONFIG_MMC_DW_ROCKCHIP=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y CONFIG_MMC_SDHCI_ROCKCHIP=y
and running roughly:
$ mmc rescan [0|1|3|10|11|12] $ mmc info $ mmc part $ load mmc 0:1 0xd0000000 256MiB.bin $ load mmc 0:1 0xd0000000 16MiB.bin $ load mmc 0:1 0xd0000000 8MiB.bin
Here's the differences in info and speeds I get with this:
Mode | Bus Speed | Bus Width -----------------------+--------------+-------------- MMC Legacy | 25000000 | 8-bit MMC High Speed (26MHz) | 26000000 | 8-bit MMC High Speed (52MHz) | 52000000 | 8-bit HS200 (200MHz) | 200000000 | 8-bit HS400 (200MHz) | 200000000 | 8-bit DDR HS400ES (200MHz) | 200000000 | 8-bit DDR Mode | 256 MiB Load | 16 MiB Load | 8 MiB Load -----------------------+--------------+--------------+-------------- MMC Legacy | ~22.1 MiB/s | ~21.9 MiB/s | ~21.6 MiB/s MMC High Speed (26MHz) | ~22.1 MiB/s | ~21.9 MiB/s | ~21.6 MiB/s MMC High Speed (52MHz) | ~43.7 MiB/s | ~42.8 MiB/s | ~41.7 MiB/s HS200 (200MHz) | ~161.2 MiB/s | ~149.5 MiB/s | ~137.9 MiB/s HS400 (200MHz) | ~254.5 MiB/s | ~235.3 MiB/s | ~216.2 MiB/s HS400ES (200MHz) | ~254.7 MiB/s | ~238.8 MiB/s | ~216.2 MiB/s
Hope I haven't missed anything. Enabling the configs above for each board is left to board maintainers as I can't test on those boards.
Changes in v5:
- Incorporate RK3568 HS400ES fixes from Yifeng Zhao:
- Use DWCMSHC_CTRL_HS400 = 0x7, instead of SDHCI_CTRL_HS400 = 0x5
- Configure DWCMSHC_CARD_IS_EMMC in rk3568_sdhci_set_ios_post()
- Configure DLL_STRBIN and DLL_TXCLK for HS400.
- Drop re-init fix already merged to master
v4: https://protect2.fireeye.com/v1/url?k=1188e6ba-7003f38c-11896df5-74fe485cbff...
Changes in v4:
- Add comment for SDHCI set_enhanced_strobe() operation
- Add comment for Rockchip SDHCI set_enhanced_strobe() driver data op
v3: https://protect2.fireeye.com/v1/url?k=e0d60bb1-815d1e87-e0d780fe-74fe485cbff...
Changes in v3:
- Set DWCMSHC_CARD_IS_EMMC bit in rk3568_emmc_phy_init()
v2: https://protect2.fireeye.com/v1/url?k=418d7235-20066703-418cf97a-74fe485cbff...
Changes in v2:
- Unset ES bit in rk3399 set_control_reg() to fix a reinit issue
- Don't use unnecessary & for function pointer in ops struct
- Rename rk3399_set_enhanced_strobe -> rk3399_sdhci_set_enhanced_strobe
- Rename rk3568_set_enhanced_strobe -> rk3568_sdhci_set_enhanced_strobe
- Let set_enhanced_strobe() unset the ES bit if mode is not HS400_ES
- Rewrote cover letter
v1: https://protect2.fireeye.com/v1/url?k=7057862b-11dc931d-70560d64-74fe485cbff...
Alper Nebi Yasak (3): mmc: sdhci: Add HS400 Enhanced Strobe support rockchip: sdhci: Add HS400 Enhanced Strobe support for RK3399 rockchip: sdhci: Add HS400 Enhanced Strobe support for RK3568
drivers/mmc/rockchip_sdhci.c | 117 +++++++++++++++++++++++++++++++++-- drivers/mmc/sdhci.c | 18 ++++++ include/sdhci.h | 12 ++++ 3 files changed, 141 insertions(+), 6 deletions(-)
Applied to u-boot-mmc.
Best Regards, Jaehoon Chung