diff --git a/boot/bootm.c b/boot/bootm.c
index 5323613..6a4cebc 100644
--- a/boot/bootm.c
+++ b/boot/bootm.c
@@ -1123,47 +1123,35 @@
 	return ret;
 }
 
-int bootm_run(struct bootm_info *bmi)
+int boot_run(struct bootm_info *bmi, const char *cmd, int extra_states)
 {
 	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;
+	bmi->cmd_name = cmd;
+	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;
-	if (IS_ENABLED(CONFIG_PPC) || IS_ENABLED(CONFIG_MIPS))
-		states |= BOOTM_STATE_OS_CMDLINE;
+	states |= extra_states;
 
 	return bootm_run_states(bmi, states);
 }
 
-int bootz_run(struct bootm_info *bmi)
+int bootm_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 boot_run(bmi, "bootm", BOOTM_STATE_START | BOOTM_STATE_FINDOS |
+			BOOTM_STATE_PRE_LOAD | BOOTM_STATE_FINDOTHER |
+			BOOTM_STATE_LOADOS);
+}
 
-	return bootm_run_states(bmi, states);
+int bootz_run(struct bootm_info *bmi)
+{
+	return boot_run(bmi, "bootz", 0);
 }
 
 int booti_run(struct bootm_info *bmi)
 {
-	int states;
-
-	bmi->cmd_name = "booti";
-	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);
+	return boot_run(bmi, "booti", 0);
 }
 
 int bootm_boot_start(ulong addr, const char *cmdline)
diff --git a/include/bootm.h b/include/bootm.h
index eba35b3..9e0f8d6 100644
--- a/include/bootm.h
+++ b/include/bootm.h
@@ -151,6 +151,24 @@
 int bootm_run_states(struct bootm_info *bmi, int states);
 
 /**
+ * boot_run() - Run the entire bootm/booti/bootz process
+ *
+ * This runs through the boot process from start to finish, with a base set of
+ * states, along with the extra ones supplied.
+ *
+ * This uses bootm_run_states().
+ *
+ * Note that it is normally easier to use bootm_run(), etc. since they handle
+ * the extra states correctly.
+ *
+ * @bmi: bootm information
+ * @cmd: command being run, NULL if none
+ * @extra_states: Mask of extra states to use for the boot
+ * Return: 0 if ok, something else on error
+ */
+int boot_run(struct bootm_info *bmi, const char *cmd, int extra_states);
+
+/**
  * bootm_run() - Run the entire bootm process
  *
  * This runs through the bootm process from start to finish, using the default
