]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - arch/arc/lib/bootm.c
arc: bootm: Move slave cores kick-starting under !fake
[people/ms/u-boot.git] / arch / arc / lib / bootm.c
index d185a50bd318938a130cf5bd97721d4e80944f29..9eef7070cf436f7f2803dc0618cc436c00ef1904 100644 (file)
@@ -37,6 +37,11 @@ void arch_lmb_reserve(struct lmb *lmb)
        lmb_reserve(lmb, sp, (CONFIG_SYS_SDRAM_BASE + gd->ram_size - sp));
 }
 
+int arch_fixup_fdt(void *blob)
+{
+       return 0;
+}
+
 static int cleanup_before_linux(void)
 {
        disable_interrupts();
@@ -53,6 +58,9 @@ static void boot_prep_linux(bootm_headers_t *images)
                hang();
 }
 
+__weak void smp_set_core_boot_addr(unsigned long addr, int corenr) {}
+__weak void smp_kick_all_cpus(void) {}
+
 /* Subcommand: GO */
 static void boot_jump_linux(bootm_headers_t *images, int flag)
 {
@@ -77,11 +85,14 @@ static void boot_jump_linux(bootm_headers_t *images, int flag)
                r2 = (unsigned int)images->ft_addr;
        } else {
                r0 = 1;
-               r2 = (unsigned int)getenv("bootargs");
+               r2 = (unsigned int)env_get("bootargs");
        }
 
-       if (!fake)
+       if (!fake) {
+               smp_set_core_boot_addr((unsigned long)kernel_entry, -1);
+               smp_kick_all_cpus();
                kernel_entry(r0, 0, r2);
+       }
 }
 
 int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)