bootm: use BOOTM_STATE_OS_CMDLINE flag for plain bootm
authorPaul Burton <paul.burton@imgtec.com>
Fri, 6 Sep 2013 10:23:55 +0000 (11:23 +0100)
committerTom Rini <trini@ti.com>
Fri, 20 Sep 2013 14:29:48 +0000 (10:29 -0400)
A plain bootm used to call the architecture specific boot function with
no flags, but was modified by commit 35fc84fa "Refactor the bootm
command to reduce code duplication" to call the architecture specific
boot function multiple times with various flags in sequence. The
BOOTM_STATE_OS_CMDLINE flag was not used, indeed it seems that at least
ARM prepares the command line on BOOTM_STATE_OS_PREP. However on MIPS
since commit 59e8cbdb "MIPS: bootm: refactor initialisation of kernel
cmdline" the command line is not prepared in response to a
BOOTM_STATE_OS_PREP flag, only on BOOTM_STATE_OS_CMDLINE or a call with
no flags. The end result is that a combination of those 2 commits leads
to MIPS boards booting kernels with no command line arguments.

An extra invocation of the architecture specific boot function with
BOOTM_STATE_OS_CMDLINE fixes this.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
common/cmd_bootm.c

index b07b0f48b20a9053ecef1d0cf9a3282fba17bd17..16d08f35248f9d691a0a1cf8c6733a111218dacf 100644 (file)
@@ -799,8 +799,9 @@ int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
        return do_bootm_states(cmdtp, flag, argc, argv, BOOTM_STATE_START |
                BOOTM_STATE_FINDOS | BOOTM_STATE_FINDOTHER |
-               BOOTM_STATE_LOADOS | BOOTM_STATE_OS_PREP |
-               BOOTM_STATE_OS_FAKE_GO | BOOTM_STATE_OS_GO, &images, 1);
+               BOOTM_STATE_LOADOS | BOOTM_STATE_OS_CMDLINE |
+               BOOTM_STATE_OS_PREP | BOOTM_STATE_OS_FAKE_GO |
+               BOOTM_STATE_OS_GO, &images, 1);
 }
 
 int bootm_maybe_autostart(cmd_tbl_t *cmdtp, const char *cmd)