diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/lib/bootm.c | 5 | ||||
-rw-r--r-- | arch/m68k/lib/bootm.c | 7 | ||||
-rw-r--r-- | arch/powerpc/lib/bootm.c | 19 |
3 files changed, 15 insertions, 16 deletions
diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c index 77349530f0..802e833a2e 100644 --- a/arch/arm/lib/bootm.c +++ b/arch/arm/lib/bootm.c @@ -178,7 +178,6 @@ static int bootm_linux_fdt(int machid, bootm_headers_t *images) { ulong rd_len; void (*kernel_entry)(int zero, int dt_machid, void *dtblob); - ulong bootmap_base = getenv_bootm_low(); ulong of_size = images->ft_len; char **of_flat_tree = &images->ft_addr; ulong *initrd_start = &images->initrd_start; @@ -188,13 +187,15 @@ static int bootm_linux_fdt(int machid, bootm_headers_t *images) kernel_entry = (void (*)(int, int, void *))images->ep; + boot_fdt_add_mem_rsv_regions(lmb, *of_flat_tree); + rd_len = images->rd_end - images->rd_start; ret = boot_ramdisk_high(lmb, images->rd_start, rd_len, initrd_start, initrd_end); if (ret) return ret; - ret = boot_relocate_fdt(lmb, bootmap_base, of_flat_tree, &of_size); + ret = boot_relocate_fdt(lmb, of_flat_tree, &of_size); if (ret) return ret; diff --git a/arch/m68k/lib/bootm.c b/arch/m68k/lib/bootm.c index 76a2fb27c1..1229ac7f25 100644 --- a/arch/m68k/lib/bootm.c +++ b/arch/m68k/lib/bootm.c @@ -71,7 +71,6 @@ int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *ima int ret; ulong cmd_start, cmd_end; - ulong bootmap_base; bd_t *kbd; void (*kernel) (bd_t *, ulong, ulong, ulong, ulong); struct lmb *lmb = &images->lmb; @@ -79,17 +78,15 @@ int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *ima if ((flag != 0) && (flag != BOOTM_STATE_OS_GO)) return 1; - bootmap_base = getenv_bootm_low(); - /* allocate space and init command line */ - ret = boot_get_cmdline (lmb, &cmd_start, &cmd_end, bootmap_base); + ret = boot_get_cmdline (lmb, &cmd_start, &cmd_end); if (ret) { puts("ERROR with allocation of cmdline\n"); goto error; } /* allocate space for kernel copy of board info */ - ret = boot_get_kbd (lmb, &kbd, bootmap_base); + ret = boot_get_kbd (lmb, &kbd); if (ret) { puts("ERROR with allocation of kernel bd\n"); goto error; diff --git a/arch/powerpc/lib/bootm.c b/arch/powerpc/lib/bootm.c index c7f3d084a3..e01787dcb7 100644 --- a/arch/powerpc/lib/bootm.c +++ b/arch/powerpc/lib/bootm.c @@ -96,7 +96,7 @@ static void boot_jump_linux(bootm_headers_t *images) debug (" Booting using OF flat tree...\n"); WATCHDOG_RESET (); (*kernel) ((bd_t *)of_flat_tree, 0, 0, EPAPR_MAGIC, - CONFIG_SYS_BOOTMAPSZ, 0, 0); + getenv_bootm_mapsize(), 0, 0); /* does not return */ } else #endif @@ -186,7 +186,6 @@ static void boot_prep_linux(void) static int boot_cmdline_linux(bootm_headers_t *images) { - ulong bootmap_base = getenv_bootm_low(); ulong of_size = images->ft_len; struct lmb *lmb = &images->lmb; ulong *cmd_start = &images->cmdline_start; @@ -196,7 +195,7 @@ static int boot_cmdline_linux(bootm_headers_t *images) if (!of_size) { /* allocate space and init command line */ - ret = boot_get_cmdline (lmb, cmd_start, cmd_end, bootmap_base); + ret = boot_get_cmdline (lmb, cmd_start, cmd_end); if (ret) { puts("ERROR with allocation of cmdline\n"); return ret; @@ -208,7 +207,6 @@ static int boot_cmdline_linux(bootm_headers_t *images) static int boot_bd_t_linux(bootm_headers_t *images) { - ulong bootmap_base = getenv_bootm_low(); ulong of_size = images->ft_len; struct lmb *lmb = &images->lmb; bd_t **kbd = &images->kbd; @@ -217,7 +215,7 @@ static int boot_bd_t_linux(bootm_headers_t *images) if (!of_size) { /* allocate space for kernel copy of board info */ - ret = boot_get_kbd (lmb, kbd, bootmap_base); + ret = boot_get_kbd (lmb, kbd); if (ret) { puts("ERROR with allocation of kernel bd\n"); return ret; @@ -235,13 +233,16 @@ static int boot_body_linux(bootm_headers_t *images) ulong *initrd_start = &images->initrd_start; ulong *initrd_end = &images->initrd_end; #if defined(CONFIG_OF_LIBFDT) - ulong bootmap_base = getenv_bootm_low(); ulong of_size = images->ft_len; char **of_flat_tree = &images->ft_addr; #endif int ret; +#if defined(CONFIG_OF_LIBFDT) + boot_fdt_add_mem_rsv_regions(lmb, *of_flat_tree); +#endif + /* allocate space and init command line */ ret = boot_cmdline_linux(images); if (ret) @@ -257,8 +258,8 @@ static int boot_body_linux(bootm_headers_t *images) if (ret) return ret; -#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_SYS_BOOTMAPSZ) - ret = boot_relocate_fdt(lmb, bootmap_base, of_flat_tree, &of_size); +#if defined(CONFIG_OF_LIBFDT) + ret = boot_relocate_fdt(lmb, of_flat_tree, &of_size); if (ret) return ret; @@ -296,7 +297,7 @@ static int boot_body_linux(bootm_headers_t *images) if (*initrd_start && *initrd_end) fdt_initrd(*of_flat_tree, *initrd_start, *initrd_end, 1); } -#endif /* CONFIG_OF_LIBFDT && CONFIG_SYS_BOOTMAPSZ */ +#endif /* CONFIG_OF_LIBFDT */ return 0; } |