[U-Boot] [PATCH 1/8] dm: mmc: Don't re-init when accessing environment

Jean-Jacques Hiblot jjhiblot at ti.com
Mon Apr 24 08:55:12 UTC 2017


Hi Simon,

On 24/04/2017 04:02, Simon Glass wrote:
> With driver model MMC is probed automatically when needed. We should not
> re-init MMC each time.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>   common/env_mmc.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/common/env_mmc.c b/common/env_mmc.c
> index a5d14d448c..1611886e22 100644
> --- a/common/env_mmc.c
> +++ b/common/env_mmc.c
> @@ -98,9 +98,10 @@ static const char *init_mmc_for_env(struct mmc *mmc)
>   	if (!mmc)
>   		return "!No MMC card found";
>   
> +#ifndef CONFIG_BLK
>   	if (mmc_init(mmc))
>   		return "!MMC init failed";
> -
> +#endif
I'm not convinced by this.  mmc_init() is the starting point of the MMC 
device initialization process and it must be called somehow before 
accessing the device and most probe() functions do not call mmc_init().
The sandbox driver does it, but I'm not sure it's the right way because 
the MMC device initialization process takes a long time. I'd rather have 
the device initialized only when it's accessed for the first time not 
when it's probed (especially in the SPL)

Jean-Jacques

>   	if (mmc_set_env_part(mmc))
>   		return "!MMC partition switch failed";
>   



More information about the U-Boot mailing list