]> git.sur5r.net Git - u-boot/blobdiff - arch/mips/lib/bootm.c
Merge git://git.denx.de/u-boot-nand-flash
[u-boot] / arch / mips / lib / bootm.c
index 426f68a990861de8784e45738c2d1e337f17c99a..9c647aa42851a13f62ad62588e61623cfbccbf09 100644 (file)
@@ -95,10 +95,10 @@ static void boot_setup_fdt(bootm_headers_t *images)
 
        debug("## setup FDT\n");
 
-       fdt_chosen(images->ft_addr, 1);
+       fdt_chosen(images->ft_addr);
        fdt_fixup_memory_banks(images->ft_addr, &mem_start, &mem_size, 1);
        fdt_fixup_ethernet(images->ft_addr);
-       fdt_initrd(images->ft_addr, images->initrd_start, images->initrd_end, 1);
+       fdt_initrd(images->ft_addr, images->initrd_start, images->initrd_end);
 
 #if defined(CONFIG_OF_BOARD_SETUP)
        ft_board_setup(images->ft_addr, gd->bd);
@@ -310,10 +310,18 @@ static void boot_jump_linux(bootm_headers_t *images)
        if (mips_boot_malta)
                linux_extra = gd->ram_size;
 
-       /* we assume that the kernel is in place */
-       printf("\nStarting kernel ...\n\n");
+#ifdef CONFIG_BOOTSTAGE_FDT
+       bootstage_fdt_add_report();
+#endif
+#ifdef CONFIG_BOOTSTAGE_REPORT
+       bootstage_report();
+#endif
 
-       kernel(linux_argc, (ulong)linux_argv, (ulong)linux_env, linux_extra);
+       if (images->ft_len)
+               kernel(-2, (ulong)images->ft_addr, 0, 0);
+       else
+               kernel(linux_argc, (ulong)linux_argv, (ulong)linux_env,
+                       linux_extra);
 }
 
 int do_bootm_linux(int flag, int argc, char * const argv[],