17 #include <linux/errno.h>
19 #include <linux/device.h>
24 #include <asm/cacheflush.h>
29 #include <mach/hardware.h>
30 #include <mach/regs-clock.h>
39 #define CPU1_BOOT_REG (samsung_rev() == EXYNOS4210_REV_1_1 ? \
40 S5P_INFORM5 : S5P_VA_SYSRAM)
47 static void write_pen_release(
int val)
62 static void __cpuinit exynos_secondary_init(
unsigned int cpu)
75 write_pen_release(-1);
80 spin_lock(&boot_lock);
81 spin_unlock(&boot_lock);
92 spin_lock(&boot_lock);
112 & S5P_CORE_LOCAL_PWR_EN) != S5P_CORE_LOCAL_PWR_EN) {
121 spin_unlock(&boot_lock);
149 spin_unlock(&boot_lock);
159 static void __init exynos_smp_init_cpus(
void)
162 unsigned int i, ncores;
170 if (ncores > nr_cpu_ids) {
171 pr_warn(
"SMP: %u cores greater than maximum (%u), clipping\n",
176 for (i = 0; i < ncores; i++)
182 static void __init exynos_smp_prepare_cpus(
unsigned int max_cpus)
198 .smp_init_cpus = exynos_smp_init_cpus,
199 .smp_prepare_cpus = exynos_smp_prepare_cpus,
200 .smp_secondary_init = exynos_secondary_init,
201 .smp_boot_secondary = exynos_boot_secondary,
202 #ifdef CONFIG_HOTPLUG_CPU