ARM: mvebu: move Armada XP specific SMP initialization to platsmp.c
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-mvebu / platsmp.c
index a6da03f5b24ec921090af5508a2b6d87a66c7197..e98075f7175a67f1b6bda6f1d924c3a017f1a9ce 100644 (file)
@@ -77,9 +77,17 @@ static void armada_xp_secondary_init(unsigned int cpu)
 
 static int armada_xp_boot_secondary(unsigned int cpu, struct task_struct *idle)
 {
+       int ret, hw_cpu;
+
        pr_info("Booting CPU %d\n", cpu);
 
-       armada_xp_boot_cpu(cpu, armada_xp_secondary_startup);
+       hw_cpu = cpu_logical_map(cpu);
+       mvebu_pmsu_set_cpu_boot_addr(hw_cpu, armada_xp_secondary_startup);
+       ret = mvebu_cpu_reset_deassert(hw_cpu);
+       if (ret) {
+               pr_warn("unable to boot CPU: %d\n", ret);
+               return ret;
+       }
 
        return 0;
 }