[U-Boot] [PATCH] bootz: fix silent console

Simon Glass sjg at chromium.org
Thu Nov 20 20:15:43 CET 2014


Hi Markus,

On 18 November 2014 12:52, Markus Niebel <list-09_u-boot at tqsc.de> wrote:
> From: Markus Niebel <Markus.Niebel at tq-group.com>
>
> fixup was lost during split between command code and logic.
>
> Signed-off-by: Markus Niebel <Markus.Niebel at tq-group.com>
> ---
>  common/bootm.c     | 2 +-
>  common/cmd_bootm.c | 6 ++++++
>  include/bootm.h    | 2 ++
>  3 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/common/bootm.c b/common/bootm.c
> index 6b3ea8c..94b9503 100644
> --- a/common/bootm.c
> +++ b/common/bootm.c
> @@ -467,7 +467,7 @@ ulong bootm_disable_interrupts(void)
>  #define CONSOLE_ARG     "console="
>  #define CONSOLE_ARG_LEN (sizeof(CONSOLE_ARG) - 1)
>
> -static void fixup_silent_linux(void)
> +void fixup_silent_linux(void)
>  {
>         char *buf;
>         const char *env_val;
> diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
> index 6723360..d3e410a 100644
> --- a/common/cmd_bootm.c
> +++ b/common/cmd_bootm.c
> @@ -596,6 +596,12 @@ int do_bootz(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
>          * disable interrupts ourselves
>          */
>         bootm_disable_interrupts();
> +#if defined(CONFIG_SILENT_CONSOLE) && !defined(CONFIG_SILENT_U_BOOT_ONLY)
> +       /*
> +        * same goes for fixup_silent_linux
> +        */
> +       fixup_silent_linux();
> +#endif
>
>         images.os.os = IH_OS_LINUX;
>         ret = do_bootm_states(cmdtp, flag, argc, argv,
> diff --git a/include/bootm.h b/include/bootm.h
> index b3d1a62..8e094b3 100644
> --- a/include/bootm.h
> +++ b/include/bootm.h
> @@ -50,6 +50,8 @@ ulong bootm_disable_interrupts(void);
>
>  /* This is a special function used by booti/bootz */
>  int bootm_find_ramdisk_fdt(int flag, int argc, char * const argv[]);
> +/* This function is used also used by bootz */
> +void fixup_silent_linux(void);
>
>  int do_bootm_states(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
>                     int states, bootm_headers_t *images, int boot_progress);

Quite a bit of effort was expended trying to join this code back
together rather than having two separate code paths for bootm and
bootz.

Since this is cmdline-related, I suggest something like this:

- Enable BOOTM_STATE_OS_CMDLINE for all archs in do_bootm()
- Call fixup_silent_linux() in do_bootm_states() when processing
BOOTM_STATE_OS_CMDLINE
- Add BOOTM_STATE_OS_CMDLINE to the do_bootm_states() call in do_bootz()

Or similar...that way we keep bootm and bootz in sync. The separate
call to bootm_disable_interrupts() is unfortunate but is a problem for
another day.

Regards,
Simon


More information about the U-Boot mailing list