When booting from USB there is no place to store the environment and
should use default env. However CONFIG_ENV_IS_NOWHERE has dependence
with other env storage config. If we enable multiple storages, NOWHERE
can't be enabled. And saveenv won't be built if NOWHERE is set.
This patch introduces a new CONFIG_ENV_DEFAULT_NOWHERE, that can enable
NOWHERE as a default env location when other storage are not avaliable.
And allow to build saveenv.
Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit
64c02d26555491eb7cb758f58511620c1590c378)
stored. U-Boot will therefore always start up with a default
environment.
+config ENV_DEFAULT_NOWHERE
+ depends on !ENV_IS_NOWHERE
+ bool "Environment is not stored if no matched location"
+ help
+ Define this when multiple ENV locations are defined and use nowhere as
+ default when no storage medium is matched.
+
config ENV_IS_IN_EEPROM
bool "Environment in EEPROM"
depends on !CHAIN_OF_TRUST
obj-$(CONFIG_ENV_IS_IN_SATA) += sata.o
obj-$(CONFIG_ENV_IS_IN_REMOTE) += remote.o
obj-$(CONFIG_ENV_IS_IN_UBI) += ubi.o
+obj-$(CONFIG_ENV_DEFAULT_NOWHERE) += nowhere.o
else
obj-$(CONFIG_$(SPL_TPL_)ENV_SUPPORT) += attr.o
obj-$(CONFIG_$(SPL_TPL_)ENV_SUPPORT) += flags.o
env_htab.change_ok += gd->reloc_off;
#endif
if (gd->env_valid == ENV_INVALID) {
-#if defined(CONFIG_ENV_IS_NOWHERE) || defined(CONFIG_SPL_BUILD)
+#if defined(CONFIG_ENV_IS_NOWHERE) || defined(CONFIG_ENV_DEFAULT_NOWHERE) || defined(CONFIG_SPL_BUILD)
/* Environment not changable */
set_default_env(NULL, 0);
#else
#ifdef CONFIG_ENV_IS_IN_UBI
ENVL_UBI,
#endif
-#ifdef CONFIG_ENV_IS_NOWHERE
+#if defined(CONFIG_ENV_IS_NOWHERE) || defined(CONFIG_ENV_DEFAULT_NOWHERE)
ENVL_NOWHERE,
#endif
};