Environment callbacks can already be configured from Kconfig with CONFIG_ENV_CALLBACK_LIST_STATIC, but static environment flags still require board headers to define CFG_ENV_FLAGS_LIST_STATIC.
Add CONFIG_ENV_FLAGS_LIST_STATIC and append it to ENV_FLAGS_LIST_STATIC after the legacy CFG_ENV_FLAGS_LIST_STATIC value. Normalize existing CFG_ENV_FLAGS_LIST_STATIC definitions to end with a comma so the Kconfig list can be concatenated directly. This lets boards configure writeable-list policy and type validation from defconfig without adding a config header solely for env flags. Signed-off-by: James Hilliard <[email protected]> --- README | 6 ++++++ env/Kconfig | 13 +++++++++++++ include/configs/capricorn-common.h | 2 +- include/configs/hmibsc.h | 2 +- include/configs/imx6q-bosch-acc.h | 2 +- include/configs/iot2050.h | 2 +- include/configs/socrates.h | 2 +- include/env_flags.h | 3 ++- 8 files changed, 26 insertions(+), 6 deletions(-) diff --git a/README b/README index 6836a917c79..b963ce23078 100644 --- a/README +++ b/README @@ -1107,6 +1107,7 @@ Configuration Settings: Use buffered writes to flash. - CONFIG_ENV_FLAGS_LIST_DEFAULT +- CONFIG_ENV_FLAGS_LIST_STATIC - CFG_ENV_FLAGS_LIST_STATIC Enable validation of the values given to environment variables when calling env set. Variables can be restricted to only decimal, @@ -1133,11 +1134,16 @@ Configuration Settings: r - Read-only o - Write-once c - Change-default + w - Writeable if CONFIG_ENV_WRITEABLE_LIST is enabled - CONFIG_ENV_FLAGS_LIST_DEFAULT Define this to a list (string) to define the ".flags" environment variable in the default or embedded environment. + - CONFIG_ENV_FLAGS_LIST_STATIC + Define this to a list (string) to add to the static flags + list. + - CFG_ENV_FLAGS_LIST_STATIC Define this to a list (string) to define validation that should be done if an entry is not found in the ".flags" diff --git a/env/Kconfig b/env/Kconfig index 7abd82ab6f3..ca8f9aff19e 100644 --- a/env/Kconfig +++ b/env/Kconfig @@ -34,6 +34,19 @@ config ENV_CALLBACK_LIST_STATIC If the callback name is not specified, then the callback is deleted. Spaces are also allowed anywhere in the list. +config ENV_FLAGS_LIST_STATIC + string "Static flags list" + default "" + help + The environment flags are associated with variables in a static + list. Define this list in the same format as + CFG_ENV_FLAGS_LIST_STATIC. + + When CONFIG_ENV_WRITEABLE_LIST is enabled, the 'w' access attribute + can be used to mark variables as writable. + + Spaces are also allowed anywhere in the list. + config SAVEENV def_bool y if CMD_SAVEENV diff --git a/include/configs/capricorn-common.h b/include/configs/capricorn-common.h index ee13d2ab950..95a05d64d68 100644 --- a/include/configs/capricorn-common.h +++ b/include/configs/capricorn-common.h @@ -48,7 +48,7 @@ "sig_a:sw,sig_b:sw," \ "target_env:sw," \ "upgrade_available:dw," \ - "ustate:dw" + "ustate:dw," #endif /* Default location for tftp and bootm */ diff --git a/include/configs/hmibsc.h b/include/configs/hmibsc.h index 950ec8b190d..cca562a66c9 100644 --- a/include/configs/hmibsc.h +++ b/include/configs/hmibsc.h @@ -10,6 +10,6 @@ /* PHY needs a longer aneg time */ -#define CFG_ENV_FLAGS_LIST_STATIC "BOOT_A_LEFT:dw,BOOT_B_LEFT:dw,BOOT_ORDER:sw" +#define CFG_ENV_FLAGS_LIST_STATIC "BOOT_A_LEFT:dw,BOOT_B_LEFT:dw,BOOT_ORDER:sw," #endif diff --git a/include/configs/imx6q-bosch-acc.h b/include/configs/imx6q-bosch-acc.h index 84da8250684..5662b59343e 100644 --- a/include/configs/imx6q-bosch-acc.h +++ b/include/configs/imx6q-bosch-acc.h @@ -54,7 +54,7 @@ "fitpart:dw," \ "mmcpart:dw," \ "production:bw," \ - "ustate:dw" + "ustate:dw," #else /* SD Card boot */ diff --git a/include/configs/iot2050.h b/include/configs/iot2050.h index 5c58c7bbaab..fe3fd5405d7 100644 --- a/include/configs/iot2050.h +++ b/include/configs/iot2050.h @@ -43,7 +43,7 @@ "board_uuid:sw,board_name:sw,board_serial:sw,board_a5e:sw," \ "mlfb:sw,fw_version:sw,seboot_version:sw," \ "m2_manual_config:sw," \ - "eth1addr:mw,eth2addr:mw,watchdog_timeout_ms:dw,boot_targets:sw" + "eth1addr:mw,eth2addr:mw,watchdog_timeout_ms:dw,boot_targets:sw," #endif #endif /* __CONFIG_IOT2050_H */ diff --git a/include/configs/socrates.h b/include/configs/socrates.h index 006d649f6ed..9cd0abd60aa 100644 --- a/include/configs/socrates.h +++ b/include/configs/socrates.h @@ -108,7 +108,7 @@ */ #define CFG_SYS_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */ -#define CFG_ENV_FLAGS_LIST_STATIC "ethaddr:mw,eth1addr:mw,system1_addr:xw,serial#:sw,ethact:sw,ethprime:sw" +#define CFG_ENV_FLAGS_LIST_STATIC "ethaddr:mw,eth1addr:mw,system1_addr:xw,serial#:sw,ethact:sw,ethprime:sw," /* pass open firmware flat tree */ diff --git a/include/env_flags.h b/include/env_flags.h index 123fdbcb0ba..98b50c72227 100644 --- a/include/env_flags.h +++ b/include/env_flags.h @@ -89,7 +89,8 @@ enum env_flags_varaccess { NET_FLAGS \ NET6_FLAGS \ SERIAL_FLAGS \ - CFG_ENV_FLAGS_LIST_STATIC + CFG_ENV_FLAGS_LIST_STATIC \ + CONFIG_ENV_FLAGS_LIST_STATIC #ifdef CONFIG_CMD_ENV_FLAGS /* -- 2.53.0

