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

Jean-Jacques Hiblot jjhiblot at ti.com
Fri Apr 7 12:02:43 UTC 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!
Hi Tom,

Don't want to pester you. I'm just checking on the status regarding this 
patch. Without it the environment is not accessible in the SPL for the 
omap platforms and we rely on the environment for the falcon boot.

Jean-Jacques
>
>> 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