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

Daniel Schwierzeck daniel.schwierzeck at gmail.com
Fri Mar 15 11:17:01 UTC 2019



Am 08.03.19 um 13:30 schrieb Horatiu Vultur:
> 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(-)

Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>

>>>
>>> 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.
> 

thanks for testing

-- 
- Daniel


More information about the U-Boot mailing list