[PATCH v3 02/23] cmd: nvedit: remove error check, handle with Kconfig
Troy Kisky
troykiskyboundary at gmail.com
Mon Mar 13 22:31:24 CET 2023
Avoid error messages when SPL,TPL,VPL build don't
have the environment options of the main build.
This is needed when defined(CONFIG_ENV_IS_IN_xxx) is changed
to CONFIG_IS_ENABLED(ENV_IS_IN_xxx).
Signed-off-by: Troy Kisky <troykiskyboundary at gmail.com>
---
Changes in v3:
remove error entirely and prevent with Kconfig
cmd/nvedit.c | 32 +++++---------------------------
env/Kconfig | 17 ++++++++++-------
2 files changed, 15 insertions(+), 34 deletions(-)
diff --git a/cmd/nvedit.c b/cmd/nvedit.c
index 7cbc3fd573a..96bbf1904b1 100644
--- a/cmd/nvedit.c
+++ b/cmd/nvedit.c
@@ -43,28 +43,6 @@
DECLARE_GLOBAL_DATA_PTR;
-#if defined(CONFIG_ENV_IS_IN_EEPROM) || \
- defined(CONFIG_ENV_IS_IN_FLASH) || \
- defined(CONFIG_ENV_IS_IN_MMC) || \
- defined(CONFIG_ENV_IS_IN_FAT) || \
- defined(CONFIG_ENV_IS_IN_EXT4) || \
- defined(CONFIG_ENV_IS_IN_NAND) || \
- defined(CONFIG_ENV_IS_IN_NVRAM) || \
- defined(CONFIG_ENV_IS_IN_ONENAND) || \
- defined(CONFIG_ENV_IS_IN_SPI_FLASH) || \
- defined(CONFIG_ENV_IS_IN_REMOTE) || \
- defined(CONFIG_ENV_IS_IN_UBI)
-
-#define ENV_IS_IN_DEVICE
-
-#endif
-
-#if !defined(ENV_IS_IN_DEVICE) && \
- !defined(CONFIG_ENV_IS_NOWHERE)
-# error Define one of CONFIG_ENV_IS_IN_{EEPROM|FLASH|MMC|FAT|EXT4|\
-NAND|NVRAM|ONENAND|SATA|SPI_FLASH|REMOTE|UBI} or CONFIG_ENV_IS_NOWHERE
-#endif
-
/*
* Maximum expected input data size for import command
*/
@@ -596,7 +574,7 @@ static int do_env_edit(struct cmd_tbl *cmdtp, int flag, int argc,
}
#endif /* CONFIG_CMD_EDITENV */
-#if defined(CONFIG_CMD_SAVEENV) && defined(ENV_IS_IN_DEVICE)
+#if defined(CONFIG_CMD_SAVEENV) && !IS_ENABLED(CONFIG_ENV_IS_DEFAULT)
static int do_env_save(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
@@ -1108,7 +1086,7 @@ static int do_env_info(struct cmd_tbl *cmdtp, int flag,
int eval_flags = 0;
int eval_results = 0;
bool quiet = false;
-#if defined(CONFIG_CMD_SAVEENV) && defined(ENV_IS_IN_DEVICE)
+#if defined(CONFIG_CMD_SAVEENV) && !IS_ENABLED(CONFIG_ENV_IS_DEFAULT)
enum env_location loc;
#endif
@@ -1151,7 +1129,7 @@ static int do_env_info(struct cmd_tbl *cmdtp, int flag,
/* evaluate whether environment can be persisted */
if (eval_flags & ENV_INFO_IS_PERSISTED) {
-#if defined(CONFIG_CMD_SAVEENV) && defined(ENV_IS_IN_DEVICE)
+#if defined(CONFIG_CMD_SAVEENV) && !IS_ENABLED(CONFIG_ENV_IS_DEFAULT)
loc = env_get_location(ENVOP_SAVE, gd->env_load_prio);
if (ENVL_NOWHERE != loc && ENVL_UNKNOWN != loc) {
if (!quiet)
@@ -1232,7 +1210,7 @@ static struct cmd_tbl cmd_env_sub[] = {
#if defined(CONFIG_CMD_RUN)
U_BOOT_CMD_MKENT(run, CONFIG_SYS_MAXARGS, 1, do_run, "", ""),
#endif
-#if defined(CONFIG_CMD_SAVEENV) && defined(ENV_IS_IN_DEVICE)
+#if defined(CONFIG_CMD_SAVEENV) && !IS_ENABLED(CONFIG_ENV_IS_DEFAULT)
U_BOOT_CMD_MKENT(save, 1, 0, do_env_save, "", ""),
#if defined(CONFIG_CMD_ERASEENV)
U_BOOT_CMD_MKENT(erase, 1, 0, do_env_erase, "", ""),
@@ -1323,7 +1301,7 @@ static char env_help_text[] =
#if defined(CONFIG_CMD_RUN)
"env run var [...] - run commands in an environment variable\n"
#endif
-#if defined(CONFIG_CMD_SAVEENV) && defined(ENV_IS_IN_DEVICE)
+#if defined(CONFIG_CMD_SAVEENV) && !IS_ENABLED(CONFIG_ENV_IS_DEFAULT)
"env save - save environment\n"
#if defined(CONFIG_CMD_ERASEENV)
"env erase - erase environment\n"
diff --git a/env/Kconfig b/env/Kconfig
index 2bbe4c466a6..7342397e169 100644
--- a/env/Kconfig
+++ b/env/Kconfig
@@ -55,20 +55,23 @@ config ENV_MAX_ENTRIES
be generous and should work in most cases. This setting can be used
to tune behaviour; see lib/hashtable.c for details.
-config ENV_IS_NOWHERE
- bool "Environment is not stored"
- default y if !ENV_IS_IN_EEPROM && !ENV_IS_IN_EXT4 && \
+config ENV_IS_DEFAULT
+ def_bool y if !ENV_IS_IN_EEPROM && !ENV_IS_IN_EXT4 && \
!ENV_IS_IN_FAT && !ENV_IS_IN_FLASH && \
!ENV_IS_IN_MMC && !ENV_IS_IN_NAND && \
!ENV_IS_IN_NVRAM && !ENV_IS_IN_ONENAND && \
!ENV_IS_IN_REMOTE && !ENV_IS_IN_SPI_FLASH && \
!ENV_IS_IN_UBI
+ select ENV_IS_NOWHERE
+
+config ENV_IS_NOWHERE
+ bool "Environment is not stored"
help
- Define this if you don't want to or can't have an environment stored
+ Define this if you don't care whether or not an environment is stored
on a storage medium. In this case the environment will still exist
- while U-Boot is running, but once U-Boot exits it will not be
- stored. U-Boot will therefore always start up with a default
- environment.
+ while U-Boot is running, but once U-Boot exits it may not be
+ stored. If no other ENV_IS_IN_ is defined, U-Boot will always start
+ up with the default environment.
config ENV_IS_IN_EEPROM
bool "Environment in EEPROM"
--
2.34.1
More information about the U-Boot
mailing list