[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