MIPS: bootm: add missing initramfs relocation

The initramfs is currently only relocated if the user calls
the bootm ramdisk subcommand. If bootm should be used without
subcommands, the arch-specific bootm code needs to implement
the relocation.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
This commit is contained in:
Daniel Schwierzeck 2014-11-16 01:27:23 +01:00
parent 426f87045c
commit c9639421fd

View file

@ -52,6 +52,20 @@ void arch_lmb_reserve(struct lmb *lmb)
lmb_reserve(lmb, sp, CONFIG_SYS_SDRAM_BASE + gd->ram_size - sp);
}
static int boot_setup_linux(bootm_headers_t *images)
{
int ret;
ulong rd_len;
rd_len = images->rd_end - images->rd_start;
ret = boot_ramdisk_high(&images->lmb, images->rd_start,
rd_len, &images->initrd_start, &images->initrd_end);
if (ret)
return ret;
return 0;
}
static void linux_cmdline_init(void)
{
linux_argc = 1;
@ -224,6 +238,8 @@ static void boot_jump_linux(bootm_headers_t *images)
int do_bootm_linux(int flag, int argc, char * const argv[],
bootm_headers_t *images)
{
int ret;
/* No need for those on MIPS */
if (flag & BOOTM_STATE_OS_BD_T)
return -1;
@ -243,6 +259,10 @@ int do_bootm_linux(int flag, int argc, char * const argv[],
return 0;
}
ret = boot_setup_linux(images);
if (ret)
return ret;
boot_cmdline_linux(images);
boot_prep_linux(images);
boot_jump_linux(images);