
Am Do., 7. März 2019 um 16:49 Uhr schrieb Horatiu Vultur horatiu.vultur@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@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)