All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Delaunay <patrick.delaunay@st.com>
To: u-boot@lists.denx.de
Subject: [RESEND PATCH 05/10] sandbox: support the change of env location
Date: Wed, 12 Feb 2020 19:44:56 +0100	[thread overview]
Message-ID: <20200212184501.5911-6-patrick.delaunay@st.com> (raw)
In-Reply-To: <20200212184501.5911-1-patrick.delaunay@st.com>

Add support of environment location with a new sandbox command
'env_loc'.

When the user change the environment location with the command
'env_loc <location>' the env is reinitialized and saved;
the GD_FLG_ENV_DEFAULT flag is also updated.

When the user set the same env location, the environment is
re-loaded.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
---

 board/sandbox/sandbox.c | 40 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 39 insertions(+), 1 deletion(-)

diff --git a/board/sandbox/sandbox.c b/board/sandbox/sandbox.c
index 01f356be31..023a71d5f0 100644
--- a/board/sandbox/sandbox.c
+++ b/board/sandbox/sandbox.c
@@ -21,6 +21,9 @@
  */
 gd_t *gd;
 
+/* env location: current location used during test */
+static enum env_location sandbox_env_location = ENVL_NOWHERE;
+
 /* Add a simple GPIO device */
 U_BOOT_DEVICE(gpio_sandbox) = {
 	.name = "gpio_sandbox",
@@ -53,9 +56,44 @@ enum env_location env_get_location(enum env_operation op, int prio)
 
 	gd->env_load_prio = 0;
 
-	return ENVL_NOWHERE;
+	return sandbox_env_location;
 }
 
+static int do_env_loc(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+	enum env_location loc;
+
+	if (argc < 2)
+		return CMD_RET_USAGE;
+
+	loc = (enum env_location)simple_strtoul(argv[1], NULL, 10);
+	if (loc >= ENVL_COUNT)
+		return CMD_RET_FAILURE;
+
+	if (sandbox_env_location != loc) {
+		sandbox_env_location = loc;
+		if (loc == ENVL_NOWHERE) {
+			gd->flags |= GD_FLG_ENV_DEFAULT;
+			gd->env_valid = ENV_VALID;
+		} else {
+			if (gd->flags & GD_FLG_ENV_DEFAULT) {
+				gd->flags &= ~GD_FLG_ENV_DEFAULT;
+				if (!env_init())
+					env_save();
+			}
+		}
+	} else {
+		if (!env_init())
+			env_load();
+	}
+
+	return CMD_RET_SUCCESS;
+}
+
+U_BOOT_CMD(env_loc, 2, 1, do_env_loc,
+	   "set the environment location", "[loc]"
+);
+
 int dram_init(void)
 {
 	gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
-- 
2.17.1

  parent reply	other threads:[~2020-02-12 18:44 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-12 18:44 [RESEND PATCH 00/10] env: ext4: add test for env in ext4 Patrick Delaunay
2020-02-12 18:44 ` [RESEND PATCH 01/10] env: add absolute path at CONFIG_ENV_EXT4_FILE Patrick Delaunay
2020-02-12 18:44 ` [RESEND PATCH 02/10] env: ext4: set gd->env_valid Patrick Delaunay
2020-02-12 18:44 ` [RESEND PATCH 03/10] env: correctly handle result in env_init Patrick Delaunay
2020-02-12 18:44 ` [RESEND PATCH 04/10] sandbox: activate env in ext4 support Patrick Delaunay
2020-02-16 19:02   ` Simon Glass
2020-02-12 18:44 ` Patrick Delaunay [this message]
2020-02-16 19:02   ` [RESEND PATCH 05/10] sandbox: support the change of env location Simon Glass
2020-02-12 18:44 ` [RESEND PATCH 06/10] test: environment in ext4 Patrick Delaunay
2020-02-19 21:45   ` Stephen Warren
2020-02-12 18:44 ` [RESEND PATCH 07/10] env: ext4: fix possible compilation issue Patrick Delaunay
2020-02-12 18:44 ` [RESEND PATCH 08/10] env: ext4: introduce new function env_ext4_save_buffer Patrick Delaunay
2020-02-12 18:45 ` [RESEND PATCH 09/10] env: ext4: add support of command env erase Patrick Delaunay
2020-02-12 18:45 ` [RESEND PATCH 10/10] test: sandbox: add test for erase command Patrick Delaunay
2020-02-16 19:02   ` Simon Glass
2020-02-19 21:46   ` Stephen Warren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200212184501.5911-6-patrick.delaunay@st.com \
    --to=patrick.delaunay@st.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.