[U-Boot] [PATCH] env_mmc: Allow SPL to use any MMC device to load/save the environment

Tom Rini trini at konsulko.com
Tue Feb 14 19:52:52 CET 2017


On Tue, Feb 14, 2017 at 02:16:13PM +0100, Jean-Jacques Hiblot wrote:

> Hi Tom,
> 
> Have you had a chance to look at the patch below?

It looks fine but was too close to the release window (given the
potential impact) to merge.  Thanks!

> 
> 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);
> 

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170214/c22a2023/attachment.sig>


More information about the U-Boot mailing list