[U-Boot] [PATCH] bootm: mips: Remove boot_reloc_ramdisk

Horatiu Vultur horatiu.vultur at microchip.com
Fri Mar 8 12:30:39 UTC 2019


Hi Daniel,

The 03/07/2019 18:33, Daniel Schwierzeck wrote:
> Am Do., 7. März 2019 um 16:49 Uhr schrieb Horatiu Vultur
> <horatiu.vultur at microchip.com>:
> >
> > Remove the function boot_reloc_ramdisk in the file arch/mips/lib/bootm
> > because it is relocating again the ramdisk. The function do_bootm_states()
> > already relocates the ramdisk even if it is a legacy uImage or a FIT image.
> >
> > The relocation in the function do_bootm_states() was introduce in the
> > commit c2e7e72bb9f0cb47d024997b381cb64786eb5402 ("bootm: relocate ramdisk
> > if CONFIG_SYS_BOOT_RAMDISK_HIGH set")
> >
> > Signed-off-by: Horatiu Vultur <horatiu.vultur at microchip.com>
> > ---
> >  arch/mips/lib/bootm.c | 19 -------------------
> >  1 file changed, 19 deletions(-)
> >
> > diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c
> > index deca518..35152cb 100644
> > --- a/arch/mips/lib/bootm.c
> > +++ b/arch/mips/lib/bootm.c
> > @@ -215,23 +215,6 @@ static void linux_env_legacy(bootm_headers_t *images)
> >         }
> >  }
> >
> > -static int boot_reloc_ramdisk(bootm_headers_t *images)
> > -{
> > -       ulong rd_len = images->rd_end - images->rd_start;
> > -
> > -       /*
> > -        * In case of legacy uImage's, relocation of ramdisk is already done
> > -        * by do_bootm_states() and should not repeated in 'bootm prep'.
> > -        */
> > -       if (images->state & BOOTM_STATE_RAMDISK) {
> > -               debug("## Ramdisk already relocated\n");
> > -               return 0;
> > -       }
> > -
> > -       return boot_ramdisk_high(&images->lmb, images->rd_start,
> > -               rd_len, &images->initrd_start, &images->initrd_end);
> > -}
> > -
> >  static int boot_reloc_fdt(bootm_headers_t *images)
> >  {
> >         /*
> > @@ -270,8 +253,6 @@ static int boot_setup_fdt(bootm_headers_t *images)
> >
> >  static void boot_prep_linux(bootm_headers_t *images)
> >  {
> > -       boot_reloc_ramdisk(images);
> > -
> >         if (CONFIG_IS_ENABLED(MIPS_BOOT_FDT) && images->ft_len) {
> >                 boot_reloc_fdt(images);
> >                 boot_setup_fdt(images);
> > --
> > 2.7.4
> >
> 
> Combined with c2e7e72bb9f0cb47d024997b381cb64786eb5402 it looks right.
> But could you please verify that following scenarios still work?
> 
> - bootm uImage_legacy_addr initrd_addr
> - bootm start uImage_legacy_addr initrd_addr + bootm loados ramdisk
> fdt prep go (single step)
> - bootm uImage_fit_addr
> - bootm start uImage_fit_addr (single step) + bootm loados ramdisk fdt
> prep go (single step)

I tried all the above cases and all seems to work fine. I managed to
start the linux kernel and it found the ramdisk. One observation
in my case I used also a DT, but I don't see how this can influence the
tests.

> 
> -- 
> - Daniel

-- 
/Horatiu


More information about the U-Boot mailing list