[U-Boot] [PATCH] env_mmc: Allow SPL to use any MMC device to load/save the environment
Jean-Jacques Hiblot
jjhiblot at ti.com
Tue Feb 14 14:16:13 CET 2017
Hi Tom,
Have you had a chance to look at the patch below?
Jean-Jacques
On 01/02/2017 11:26, Jean-Jacques Hiblot wrote:
> SPL has been restricted to use only dev 0 based on the assumption that only
> one MMC device is registered. This is not always the case and many
> platforms now register several devices as expected by the spl mmc boot code
> For those platform SPL_ENV_SUPPORT is broken if dev is forced to 0.
>
> A word of warning: this commit may break SPL_ENV_SUPPORT on platforms that
> do not register the same MMC controllers in SPL and in u-boot (mostly iMX6
> based platforms). Fortunately none of those activate SPL_ENV_SUPPORT in
> their default configuration.
>
> Signed-off-by: Jean-Jacques Hiblot <jjhiblot at ti.com>
> ---
> common/env_mmc.c | 15 ---------------
> 1 file changed, 15 deletions(-)
>
> diff --git a/common/env_mmc.c b/common/env_mmc.c
> index 16f6a17..a5d14d4 100644
> --- a/common/env_mmc.c
> +++ b/common/env_mmc.c
> @@ -82,10 +82,6 @@ static int mmc_set_env_part(struct mmc *mmc)
> int dev = mmc_get_env_dev();
> int ret = 0;
>
> -#ifdef CONFIG_SPL_BUILD
> - dev = 0;
> -#endif
> -
> env_mmc_orig_hwpart = mmc_get_blk_desc(mmc)->hwpart;
> ret = blk_select_hwpart_devnum(IF_TYPE_MMC, dev, part);
> if (ret)
> @@ -116,9 +112,6 @@ static void fini_mmc_for_env(struct mmc *mmc)
> #ifdef CONFIG_SYS_MMC_ENV_PART
> int dev = mmc_get_env_dev();
>
> -#ifdef CONFIG_SPL_BUILD
> - dev = 0;
> -#endif
> blk_select_hwpart_devnum(IF_TYPE_MMC, dev, env_mmc_orig_hwpart);
> #endif
> }
> @@ -223,10 +216,6 @@ void env_relocate_spec(void)
> ALLOC_CACHE_ALIGN_BUFFER(env_t, tmp_env1, 1);
> ALLOC_CACHE_ALIGN_BUFFER(env_t, tmp_env2, 1);
>
> -#ifdef CONFIG_SPL_BUILD
> - dev = 0;
> -#endif
> -
> mmc = find_mmc_device(dev);
>
> errmsg = init_mmc_for_env(mmc);
> @@ -306,10 +295,6 @@ void env_relocate_spec(void)
> int dev = mmc_get_env_dev();
> const char *errmsg;
>
> -#ifdef CONFIG_SPL_BUILD
> - dev = 0;
> -#endif
> -
> mmc = find_mmc_device(dev);
>
> errmsg = init_mmc_for_env(mmc);
More information about the U-Boot
mailing list