From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Jacques Hiblot Date: Tue, 14 Feb 2017 14:16:13 +0100 Subject: [U-Boot] [PATCH] env_mmc: Allow SPL to use any MMC device to load/save the environment In-Reply-To: <1485944813-32491-1-git-send-email-jjhiblot@ti.com> References: <1485944813-32491-1-git-send-email-jjhiblot@ti.com> Message-ID: <89579374-6cd7-a18f-4347-54c71baae5d5@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > --- > 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);