[U-Boot] [PATCH] bootm: use BOOTM_STATE_OS_CMDLINE flag for plain bootm

Daniel Schwierzeck daniel.schwierzeck at gmail.com
Tue Sep 17 13:40:46 CEST 2013


2013/9/6 Paul Burton <paul.burton at imgtec.com>:
> 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 at imgtec.com>
> ---
>  common/cmd_bootm.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
> index 1685c14..b8255eb 100644
> --- a/common/cmd_bootm.c
> +++ b/common/cmd_bootm.c
> @@ -797,8 +797,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)
> --
> 1.8.3.4
>
>

you should also add BOOTM_STATE_OS_BD_T. Though it is not used by MIPS,
it is also needed if single call of bootm should execute all available
bootm sub-commands.

The patch is already assigned to Tom in patchwork, so I hope he'll
pick it up for 2013.10.

-- 
Best regards,
Daniel


More information about the U-Boot mailing list