summaryrefslogtreecommitdiff
path: root/doc/develop
diff options
context:
space:
mode:
authorJames Hilliard <[email protected]>2026-05-11 12:20:25 -0600
committerTom Rini <[email protected]>2026-05-25 13:44:40 -0600
commit5e41a5deb4b843808f3c892f2f54f1b9c76b3da1 (patch)
tree1c9412d901a65644293a3f2131d9092d85776605 /doc/develop
parentd5888d509cc43942ec98d993f2d129f5c8ddc432 (diff)
env: migrate static flags list to Kconfig
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 use it as the only board-provided static environment flags list. Convert the remaining default-config users from CFG_ENV_FLAGS_LIST_STATIC to defconfig settings and drop the legacy header macro from ENV_FLAGS_LIST_STATIC. Move the environment flags format documentation out of README and into the developer environment documentation. Include the format in the Kconfig help as well. This lets boards configure writeable-list policy and type validation from defconfig without adding a config header solely for env flags. This preserves the behavior of default configs. Header-only cases that were inactive in upstream defconfigs are not converted into defconfig entries: iot2050 can add its list when enabling ENV_WRITEABLE_LIST, and smegw01 can add mmcdev:dw support if the unlocked SYS_BOOT_LOCKED=n configuration is needed. Signed-off-by: James Hilliard <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]> Reviewed-by: Walter Schweizer <[email protected]>
Diffstat (limited to 'doc/develop')
-rw-r--r--doc/develop/environment.rst40
1 files changed, 40 insertions, 0 deletions
diff --git a/doc/develop/environment.rst b/doc/develop/environment.rst
index e46cd39d601..a7ed4aab0a5 100644
--- a/doc/develop/environment.rst
+++ b/doc/develop/environment.rst
@@ -49,3 +49,43 @@ The signature of the callback functions is::
include/search.h
The return value is 0 if the variable change is accepted and 1 otherwise.
+
+Flags for environment variables
+-------------------------------
+
+Environment flags validate the values given to environment variables and
+restrict how environment variables can be changed.
+
+The static list is configured with CONFIG_ENV_FLAGS_LIST_STATIC. The list
+must be in the following format::
+
+ type_attribute = [s|d|x|b|i|m]
+ access_attribute = [a|r|o|c|w]
+ attributes = type_attribute[access_attribute]
+ entry = variable_name[:attributes]
+ list = entry[,list]
+
+The type attributes are:
+
+* s - String (default)
+* d - Decimal
+* x - Hexadecimal
+* b - Boolean ([1yYtT|0nNfF])
+* i - IP address, if networking is enabled
+* m - MAC address, if networking is enabled
+
+The access attributes are:
+
+* a - Any (default)
+* r - Read-only
+* o - Write-once
+* c - Change-default
+* w - Writeable, if CONFIG_ENV_WRITEABLE_LIST is enabled
+
+CONFIG_ENV_FLAGS_LIST_DEFAULT defines the ``.flags`` variable in the
+default or embedded environment. Any association in ``.flags`` overrides
+an association in the static list.
+
+If CONFIG_REGEX is defined, the variable name is evaluated as a regular
+expression. This allows multiple variables to define the same flags without
+explicitly listing them all.