diff mbox series

[06/13] x86: zboot: Move environment setting into zboot_load()

Message ID 20231204002944.897949-7-sjg@chromium.org
State Accepted
Commit db0c6f47c37f91db5a0caf27ebc870b8fe72c6aa
Delegated to: Tom Rini
Headers show
Series Complete decoupling of zboot logic from commands | expand

Commit Message

Simon Glass Dec. 4, 2023, 12:29 a.m. UTC
The only difference between the command and the underlying logic is the
setting of envrionment variables. Move this out of the command
processing since it needs to be done in any case.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 arch/x86/lib/zimage.c |  7 +++++++
 cmd/x86/zboot.c       | 16 ++--------------
 2 files changed, 9 insertions(+), 14 deletions(-)
diff mbox series

Patch

diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c
index 1d1249fc25ac..b72e2f01bd57 100644
--- a/arch/x86/lib/zimage.c
+++ b/arch/x86/lib/zimage.c
@@ -370,6 +370,7 @@  int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
 int zboot_load(void)
 {
 	struct boot_params *base_ptr;
+	int ret;
 
 	if (state.base_ptr) {
 		struct boot_params *from = (struct boot_params *)state.base_ptr;
@@ -389,6 +390,12 @@  int zboot_load(void)
 	}
 	state.base_ptr = base_ptr;
 
+	ret = env_set_hex("zbootbase", map_to_sysmem(state.base_ptr));
+	if (!ret)
+		ret = env_set_hex("zbootaddr", state.load_address);
+	if (ret)
+		return ret;
+
 	return 0;
 }
 
diff --git a/cmd/x86/zboot.c b/cmd/x86/zboot.c
index f5c90a8ba896..d39ab6a9698f 100644
--- a/cmd/x86/zboot.c
+++ b/cmd/x86/zboot.c
@@ -62,30 +62,18 @@  static int do_zboot_start(struct cmd_tbl *cmdtp, int flag, int argc,
 	return 0;
 }
 
-static int _zboot_load(void)
+static int do_zboot_load(struct cmd_tbl *cmdtp, int flag, int argc,
+			 char *const argv[])
 {
 	int ret;
 
 	ret = zboot_load();
-	if (!ret)
-		ret = env_set_hex("zbootbase", map_to_sysmem(state.base_ptr));
-	if (!ret)
-		ret = env_set_hex("zbootaddr", state.load_address);
 	if (ret)
 		return ret;
 
 	return 0;
 }
 
-static int do_zboot_load(struct cmd_tbl *cmdtp, int flag, int argc,
-			 char *const argv[])
-{
-	if (_zboot_load())
-		return CMD_RET_FAILURE;
-
-	return 0;
-}
-
 static int _zboot_setup(void)
 {
 	struct boot_params *base_ptr = state.base_ptr;