env: nowhere: add .load ops
authorPatrick Delaunay <patrick.delaunay@st.com>
Tue, 28 Jul 2020 09:51:18 +0000 (11:51 +0200)
committerTom Rini <trini@konsulko.com>
Fri, 31 Jul 2020 14:13:00 +0000 (10:13 -0400)
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 <patrick.delaunay@st.com>
env/nowhere.c

index f5b0a17..d33fdf2 100644 (file)
@@ -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")
 };