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.vul...@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.vul...@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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot