[PATCH] Revert "mmc: rockchip_sdhci: Limit number of blocks read in a single command"

Jonas Karlman jonas at kwiboo.se
Wed May 3 16:16:56 CEST 2023


Hi Simon,

On 2023-05-03 14:41, Simon Glass wrote:
> This makes MMC extremely slow on bob. Even reading the environment takes
> ages.
> 
> If there is a bug on a particular controller, it should be worked around
> using the compatible string, e.g. with ->flags in struct sdhci_data -
> althought I don't see any docs for the flags.

This revert will break booting from emmc on rock5b-rk3588.

An alternative to this revert could be to enable CONFIG_MMC_SDHCI_SDMA
for more rk3399 defconfigs. Using DMA should improve/restore performance.

I have a followup patch in the works that changes this slightly, can
include a change to only apply this workaround for rk35xx.

Regards,
Jonas

> 
> This reverts commit 2cc6cde647e2cf61a29f389e8d263bf19672f0f5.
> 
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
> 
>  configs/rock5b-rk3588_defconfig | 1 -
>  drivers/mmc/rockchip_sdhci.c    | 8 --------
>  2 files changed, 9 deletions(-)
> 
> diff --git a/configs/rock5b-rk3588_defconfig b/configs/rock5b-rk3588_defconfig
> index d3136ac850fe..3fcc6a26bb51 100644
> --- a/configs/rock5b-rk3588_defconfig
> +++ b/configs/rock5b-rk3588_defconfig
> @@ -58,7 +58,6 @@ CONFIG_MMC_DW=y
>  CONFIG_MMC_DW_ROCKCHIP=y
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_SDMA=y
> -# CONFIG_SPL_MMC_SDHCI_SDMA is not set
>  CONFIG_MMC_SDHCI_ROCKCHIP=y
>  CONFIG_ETH_DESIGNWARE=y
>  CONFIG_GMAC_ROCKCHIP=y
> diff --git a/drivers/mmc/rockchip_sdhci.c b/drivers/mmc/rockchip_sdhci.c
> index 4f110976f4e8..2857dcc9ec4f 100644
> --- a/drivers/mmc/rockchip_sdhci.c
> +++ b/drivers/mmc/rockchip_sdhci.c
> @@ -589,14 +589,6 @@ static int rockchip_sdhci_probe(struct udevice *dev)
>  	if (ret)
>  		return ret;
>  
> -	/*
> -	 * Reading more than 4 blocks with a single CMD18 command in PIO mode
> -	 * triggers Data End Bit Error on RK3568 and RK3588. Limit to reading
> -	 * max 4 blocks in one command when using PIO mode.
> -	 */
> -	if (!(host->flags & USE_DMA))
> -		cfg->b_max = 4;
> -
>  	return sdhci_probe(dev);
>  }
>  



More information about the U-Boot mailing list