summaryrefslogtreecommitdiff
path: root/env
diff options
context:
space:
mode:
Diffstat (limited to 'env')
-rw-r--r--env/Kconfig9
-rw-r--r--env/env.c2
2 files changed, 11 insertions, 0 deletions
diff --git a/env/Kconfig b/env/Kconfig
index dcc525d4ed..1cae1edf6a 100644
--- a/env/Kconfig
+++ b/env/Kconfig
@@ -614,6 +614,15 @@ config DELAY_ENVIRONMENT
later by U-Boot code. With CONFIG_OF_CONTROL this is instead
controlled by the value of /config/load-environment.
+config ENV_APPEND
+ bool "Always append the environment with new data"
+ default n
+ help
+ If defined, the environment hash table is only ever appended with new
+ data, but the existing hash table can never be dropped and reloaded
+ with newly imported data. This may be used in combination with static
+ flags to e.g. to protect variables which must not be modified.
+
config ENV_ACCESS_IGNORE_FORCE
bool "Block forced environment operations"
default n
diff --git a/env/env.c b/env/env.c
index 2af2fae23c..42c7d8155e 100644
--- a/env/env.c
+++ b/env/env.c
@@ -201,7 +201,9 @@ int env_load(void)
printf("OK\n");
gd->env_load_prio = prio;
+#if !CONFIG_IS_ENABLED(ENV_APPEND)
return 0;
+#endif
} else if (ret == -ENOMSG) {
/* Handle "bad CRC" case */
if (best_prio == -1)