[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