Add the ops .load for nowhere ENV backend to load the
default environment.

This ops is needed for the command 'env load'

Signed-off-by: Patrick Delaunay <[email protected]>
---

Changes in v4:
- don't use env_import in SPL to avoid to increase its size
  as it is only required for 'env load' command

Changes in v3:
- new: add load ops in nowhere

 env/nowhere.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/env/nowhere.c b/env/nowhere.c
index f5b0a17652..d33fdf27d0 100644
--- a/env/nowhere.c
+++ b/env/nowhere.c
@@ -27,8 +27,25 @@ static int env_nowhere_init(void)
        return 0;
 }
 
+static int env_nowhere_load(void)
+{
+       /*
+        * for SPL, set env_valid = ENV_INVALID is enougth as env_get_char()
+        * return the default env if env_get is used
+        * and SPL don't used env_import to reduce its size
+        * For U-Boot proper, import the default environment to allow reload.
+        */
+       if (!IS_ENABLED(CONFIG_SPL_BUILD))
+               env_set_default(NULL, 0);
+
+       gd->env_valid   = ENV_INVALID;
+
+       return 0;
+}
+
 U_BOOT_ENV_LOCATION(nowhere) = {
        .location       = ENVL_NOWHERE,
        .init           = env_nowhere_init,
+       .load           = env_nowhere_load,
        ENV_NAME("nowhere")
 };
-- 
2.17.1

Reply via email to