bootm: Create a function to run through the bootz states

In a few places, the bootz command is used to handle a boot. We want
these to be done without needing CONFIG_CMDLINE, so add a new
bootz_run() function to handle this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Simon Glass 2023-12-15 20:14:23 -07:00 committed by Tom Rini
parent 6b50aff13f
commit 3405c9b6a5
3 changed files with 28 additions and 7 deletions

View File

@ -1140,6 +1140,19 @@ int bootm_run(struct bootm_info *bmi)
return bootm_run_states(bmi, states);
}
int bootz_run(struct bootm_info *bmi)
{
int states;
bmi->cmd_name = "bootz";
states = BOOTM_STATE_MEASURE | BOOTM_STATE_OS_PREP |
BOOTM_STATE_OS_FAKE_GO | BOOTM_STATE_OS_GO;
if (IS_ENABLED(CONFIG_SYS_BOOT_RAMDISK_HIGH))
states |= BOOTM_STATE_RAMDISK;
return bootm_run_states(bmi, states);
}
int bootm_boot_start(ulong addr, const char *cmdline)
{
char addr_str[30];

View File

@ -74,7 +74,7 @@ static int bootz_start(struct cmd_tbl *cmdtp, int flag, int argc,
int do_bootz(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
struct bootm_info bmi;
int states, ret;
int ret;
/* Consume 'bootz' */
argc--; argv++;
@ -99,12 +99,7 @@ int do_bootz(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
bmi.conf_fdt = argv[2];
bmi.cmd_name = "bootz";
states = BOOTM_STATE_MEASURE | BOOTM_STATE_OS_PREP |
BOOTM_STATE_OS_FAKE_GO | BOOTM_STATE_OS_GO;
if (IS_ENABLED(CONFIG_SYS_BOOT_RAMDISK_HIGH))
states |= BOOTM_STATE_RAMDISK;
ret = bootm_run_states(&bmi, states);
ret = bootz_run(&bmi);
return ret;
}

View File

@ -163,6 +163,19 @@ int bootm_run_states(struct bootm_info *bmi, int states);
*/
int bootm_run(struct bootm_info *bmi);
/**
* bootz_run() - Run the entire bootz process
*
* This runs through the bootz process from start to finish, using the default
* set of states.
*
* This uses bootm_run_states().
*
* @bmi: bootm information
* Return: 0 if ok, something else on error
*/
int bootz_run(struct bootm_info *bmi);
void arch_preboot_os(void);
/*