bootm: Add subcommands

Add the ability to break the steps of the bootm command into several
subcommands: start, loados, ramdisk, fdt, bdt, cmdline, prep, go.

This allows us to do things like manipulate device trees before
they are passed to a booting kernel or setup memory for a secondary
core in multicore situations.

Not all OS types support all subcommands (currently only start, loados,
ramdisk, fdt, and go are supported).

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
diff --git a/lib_sh/bootm.c b/lib_sh/bootm.c
index 078a24d..ae1f869 100644
--- a/lib_sh/bootm.c
+++ b/lib_sh/bootm.c
@@ -56,6 +56,9 @@
 	unsigned long size = images->ep - (unsigned long)param;
 	char *bootargs = getenv("bootargs");
 
+	if ((flag != 0) && (flag != BOOTM_STATE_OS_GO))
+		return 1;
+
 	/* Setup parameters */
 	memset(param, 0, size);	/* Clear zero page */
 	strcpy(cmdline, bootargs);