Hi Jan, On Fri, 3 Feb 2023 at 05:23, Jan Kiszka <jan.kis...@siemens.com> wrote: > > From: Jan Kiszka <jan.kis...@siemens.com> > > This completes what 890feecaab72 started by selecting ENV_APPEND and > loading the default env before any other sources. This ensures that load > operations pick up all non-writable vars from the default env and only > permitted parts from other locations according to the regular > priorities. > > With this change, boards only need to define the list of writable > variables but no longer have to provide a custom env_get_location > implementation. > > CC: Joe Hershberger <joe.hershber...@ni.com> > CC: Marek Vasut <ma...@denx.de> > CC: Stefan Herbrechtsmeier <stefan.herbrechtsmeier-...@weidmueller.com> > Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> > Reviewed-by: Marek Vasut <ma...@denx.de> > --- > env/Kconfig | 1 + > env/env.c | 8 ++++++++ > 2 files changed, 9 insertions(+) > > diff --git a/env/Kconfig b/env/Kconfig > index c409ea71fe5..6e24eee55f2 100644 > --- a/env/Kconfig > +++ b/env/Kconfig > @@ -733,6 +733,7 @@ config ENV_APPEND > > config ENV_WRITEABLE_LIST > bool "Permit write access only to listed variables" > + select ENV_APPEND > help > If defined, only environment variables which explicitly set the 'w' > writeable flag can be written and modified at runtime. No variables > diff --git a/env/env.c b/env/env.c > index 06078c7f374..45e638fcd1f 100644 > --- a/env/env.c > +++ b/env/env.c > @@ -195,6 +195,14 @@ int env_load(void) > int best_prio = -1; > int prio; > > + if (CONFIG_IS_ENABLED(ENV_WRITEABLE_LIST)) { > + /* > + * When using a list of writeable variables, the baseline > comes > + * from the built-in default env. So load this first. > + */ > + env_set_default(NULL, 0); > + } > + > for (prio = 0; (drv = env_driver_lookup(ENVOP_LOAD, prio)); prio++) { > int ret; > > -- > 2.35.3 >
This looks OK, but please can you write some tests in test/env ? Regards, SImon