[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