19 #include <linux/device.h>
23 #include <asm/cacheflush.h>
29 #include <asm/cputype.h>
36 #define CPU_MASK 0xff0ffff0
37 #define CPU_CORTEX_A9 0x410FC090
38 #define CPU_CORTEX_A15 0x410FC0F0
40 #define OMAP5_CORE_COUNT 0x2
52 static void __cpuinit omap4_secondary_init(
unsigned int cpu)
76 spin_lock(&boot_lock);
77 spin_unlock(&boot_lock);
90 spin_lock(&boot_lock);
99 omap_modify_auxcoreboot0(0x200, 0xfffffdff);
134 spin_unlock(&boot_lock);
139 static void __init wakeup_secondary(
void)
149 omap_auxcoreboot_addr(
virt_to_phys(omap_secondary_startup));
168 static void __init omap4_smp_init_cpus(
void)
170 unsigned int i = 0, ncores = 1,
cpu_id;
187 if (ncores > nr_cpu_ids) {
188 pr_warn(
"SMP: %u cores greater than maximum (%u), clipping\n",
193 for (i = 0; i < ncores; i++)
199 static void __init omap4_smp_prepare_cpus(
unsigned int max_cpus)
212 .smp_init_cpus = omap4_smp_init_cpus,
213 .smp_prepare_cpus = omap4_smp_prepare_cpus,
214 .smp_secondary_init = omap4_secondary_init,
215 .smp_boot_secondary = omap4_boot_secondary,
216 #ifdef CONFIG_HOTPLUG_CPU