[U-Boot] [PATCH] Fix bootm to work on powerpc again (compressed uImage)

Simon Glass sjg at chromium.org
Fri Jun 28 23:46:15 CEST 2013


Hi Stefan,

On Fri, Jun 28, 2013 at 1:02 AM, Stefan Roese <sr at denx.de> wrote:

> Patch 35fc84fa1 [Refactor the bootm command to reduce code duplication]
> breaks booting Linux (compressed uImage with fdt) on powerpc.
>
> boot_jump_linux() mustn't be called before boot_prep_linux() and
> boot_body_linux() have been called. So remove the superfluous call
> to boot_jump_linux() in arch/powerpc/lib/bootm.c as its called later on
> in this function.
>
> Signed-off-by: Stefan Roese <sr at denx.de>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Tom Rini <trini at ti.com>
>

Acked-by: Simon Glass <sjg at chromium.org>


> ---
> Simon, I'm not 100% sure why this is triggered by your patch.
>

I'm very grateful for your time spent looking at this and getting to the
bottom of it!

Maybe because do_bootm_linux() is a funny function - you can call it with a
mask in which case it will do that step, but if you call it with 0 it will
do all steps. Seems like something that should be tidied up.


>
> As you see, my patch only fixes powerpc. ARM might have the same problem
> as it has the same code duplication in bootm.c.
>
> Thanks,
> Stefan
>
>  arch/powerpc/lib/bootm.c | 5 -----
>  1 file changed, 5 deletions(-)
>
> diff --git a/arch/powerpc/lib/bootm.c b/arch/powerpc/lib/bootm.c
> index dd6c98c..d4ad323 100644
> --- a/arch/powerpc/lib/bootm.c
> +++ b/arch/powerpc/lib/bootm.c
> @@ -256,11 +256,6 @@ int do_bootm_linux(int flag, int argc, char * const
> argv[], bootm_headers_t *ima
>                 return 0;
>         }
>
> -       if (flag & BOOTM_STATE_OS_GO) {
> -               boot_jump_linux(images);
> -               return 0;
> -       }
> -
>         boot_prep_linux(images);
>         ret = boot_body_linux(images);
>         if (ret)
> --
> 1.8.3.1
>
>
Regards,
Simon


More information about the U-Boot mailing list