[U-Boot] [PATCH] env_mmc: Allow SPL to use any MMC device to load/save the environment
Jean-Jacques Hiblot
jjhiblot at ti.com
Wed Feb 15 10:05:21 CET 2017
On 14/02/2017 19:52, Tom Rini wrote:
> 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!
Ok Thank you for the feedback.
>
>> 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