x86: zboot: Move environment setting into zboot_load()

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>
This commit is contained in:
Simon Glass
2023-12-03 17:29:31 -07:00
committed by Tom Rini
parent 42a99d0df6
commit db0c6f47c3
2 changed files with 9 additions and 14 deletions

View File

@@ -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;
}

View File

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