diff options
| -rw-r--r-- | boot/bootm.c | 17 | ||||
| -rw-r--r-- | cmd/bootm.c | 14 | ||||
| -rw-r--r-- | include/bootm.h | 13 | 
3 files changed, 31 insertions, 13 deletions
| diff --git a/boot/bootm.c b/boot/bootm.c index 66b7e350aa8..cce8485f2d4 100644 --- a/boot/bootm.c +++ b/boot/bootm.c @@ -1123,6 +1123,23 @@ err:  	return ret;  } +int bootm_run(struct bootm_info *bmi) +{ +	int states; + +	bmi->cmd_name = "bootm"; +	states = BOOTM_STATE_START | BOOTM_STATE_FINDOS | BOOTM_STATE_PRE_LOAD | +		BOOTM_STATE_FINDOTHER | BOOTM_STATE_LOADOS | +		BOOTM_STATE_OS_PREP | BOOTM_STATE_OS_FAKE_GO | +		BOOTM_STATE_OS_GO | BOOTM_STATE_MEASURE; +	if (IS_ENABLED(CONFIG_SYS_BOOT_RAMDISK_HIGH)) +		states |= BOOTM_STATE_RAMDISK; +	if (IS_ENABLED(CONFIG_PPC) || IS_ENABLED(CONFIG_MIPS)) +		states |= BOOTM_STATE_OS_CMDLINE; + +	return bootm_run_states(bmi, states); +} +  int bootm_boot_start(ulong addr, const char *cmdline)  {  	char addr_str[30]; diff --git a/cmd/bootm.c b/cmd/bootm.c index 26d20b9118d..9737a2d28c0 100644 --- a/cmd/bootm.c +++ b/cmd/bootm.c @@ -136,7 +136,6 @@ static int do_bootm_subcommand(struct cmd_tbl *cmdtp, int flag, int argc,  int do_bootm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])  {  	struct bootm_info bmi; -	int states;  	int ret;  	/* determine if we have a sub command */ @@ -157,17 +156,6 @@ int do_bootm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])  			return do_bootm_subcommand(cmdtp, flag, argc, argv);  	} -	states = BOOTM_STATE_START | BOOTM_STATE_FINDOS | BOOTM_STATE_PRE_LOAD | -		BOOTM_STATE_FINDOTHER | BOOTM_STATE_LOADOS | -		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; -	if (IS_ENABLED(CONFIG_MEASURED_BOOT)) -		states |= BOOTM_STATE_MEASURE; -	if (IS_ENABLED(CONFIG_PPC) || IS_ENABLED(CONFIG_MIPS)) -		states |= BOOTM_STATE_OS_CMDLINE; -  	bootm_init(&bmi);  	if (argc)  		bmi.addr_img = argv[0]; @@ -180,7 +168,7 @@ int do_bootm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])  	bmi.argc = argc;  	bmi.argv = argv; -	ret = bootm_run_states(&bmi, states); +	ret = bootm_run(&bmi);  	return ret ? CMD_RET_FAILURE : 0;  } diff --git a/include/bootm.h b/include/bootm.h index 628d3d3e83f..6e6b2ad8f7e 100644 --- a/include/bootm.h +++ b/include/bootm.h @@ -150,6 +150,19 @@ int bootm_measure(struct bootm_headers *images);   */  int bootm_run_states(struct bootm_info *bmi, int states); +/** + * bootm_run() - Run the entire bootm process + * + * This runs through the bootm 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 bootm_run(struct bootm_info *bmi); +  void arch_preboot_os(void);  /* | 
