Hi James, 

On Sat, 2026-05-09 at 17:01 -0600, James Hilliard wrote:
> 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,"

the implicit requirement to have a coma at the end looks a bit fragile
or error-prone to me, I'm not sure if there could be a better option...

>  #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 \

While other macros are local to this header, CFG_ENV_FLAGS_LIST_STATIC
is external to it and the requirement to have a trailing coma is not
obvious... The patch itself looks good though, but maybe there is a way
to make this more robust.

> +     CONFIG_ENV_FLAGS_LIST_STATIC
>  
>  #ifdef CONFIG_CMD_ENV_FLAGS
>  /*

-- 
Alexander Sverdlin
Siemens AG
www.siemens.com

Reply via email to