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);
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[],