diff mbox series

[v4,05/14] env: nowhere: add .load ops

Message ID 20200728095128.2363-6-patrick.delaunay@st.com
State Accepted
Commit ad3fec2364ebfc896ce5bd5269f56df9f0c3e5a9
Delegated to: Tom Rini
Headers show
Series env: ext4: corrections and add test for env in ext4 | expand

Commit Message

Patrick DELAUNAY July 28, 2020, 9:51 a.m. UTC
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>
---

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(+)

Comments

Tom Rini July 31, 2020, 9:41 p.m. UTC | #1
On Tue, Jul 28, 2020 at 11:51:18AM +0200, Patrick Delaunay wrote:

> 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>

Applied to u-boot/master, thanks!
diff mbox series

Patch

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")
 };