]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/lib/bootm.c
ARM: tegra: pinmux naming consistency fixes
[u-boot] / arch / arm / lib / bootm.c
index 77f1a5c9736f13ec4034a641f19f360c86fd8fc7..47ee070593b7fed5094df4312f6994fc2c205cec 100644 (file)
@@ -71,8 +71,7 @@ static void announce_and_cleanup(int fake)
                "(fake run for tracing)" : "");
        bootstage_mark_name(BOOTSTAGE_ID_BOOTM_HANDOFF, "start_kernel");
 #ifdef CONFIG_BOOTSTAGE_FDT
-       if (flag == BOOTM_STATE_OS_FAKE_GO)
-               bootstage_fdt_add_report();
+       bootstage_fdt_add_report();
 #endif
 #ifdef CONFIG_BOOTSTAGE_REPORT
        bootstage_report();
@@ -199,6 +198,7 @@ static void do_nonsec_virt_switch(void)
 
 #ifdef CONFIG_ARM64
        smp_kick_all_cpus();
+       flush_dcache_all();     /* flush cache before swtiching to EL2 */
        armv8_switch_to_el2();
 #ifdef CONFIG_ARMV8_SWITCH_TO_EL1
        armv8_switch_to_el1();
@@ -350,3 +350,26 @@ int bootz_setup(ulong image, ulong *start, ulong *end)
 }
 
 #endif /* CONFIG_CMD_BOOTZ */
+
+#if defined(CONFIG_BOOTM_VXWORKS)
+void boot_prep_vxworks(bootm_headers_t *images)
+{
+#if defined(CONFIG_OF_LIBFDT)
+       int off;
+
+       if (images->ft_addr) {
+               off = fdt_path_offset(images->ft_addr, "/memory");
+               if (off < 0) {
+                       if (arch_fixup_memory_node(images->ft_addr))
+                               puts("## WARNING: fixup memory failed!\n");
+               }
+       }
+#endif
+       cleanup_before_linux();
+}
+void boot_jump_vxworks(bootm_headers_t *images)
+{
+       /* ARM VxWorks requires device tree physical address to be passed */
+       ((void (*)(void *))images->ep)(images->ft_addr);
+}
+#endif