23 #include <linux/sched.h>
25 #include <asm/mmu_context.h>
39 static void *mailbox_0_set_regs[] = {
46 static void *mailbox_0_clear_regs[] = {
53 static void *mailbox_0_regs[] = {
69 change_c0_status(
ST0_IM, imask);
81 static void bcm1480_send_ipi_single(
int cpu,
unsigned int action)
86 static void bcm1480_send_ipi_mask(
const struct cpumask *
mask,
92 bcm1480_send_ipi_single(i, action);
98 static
void __cpuinit bcm1480_init_secondary(
void)
109 static void __cpuinit bcm1480_smp_finish(
void)
120 static void bcm1480_cpus_done(
void)
136 printk(
"cfe_start_cpu(%i) returned %i\n" , cpu, retval);
146 static void __init bcm1480_smp_setup(
void)
154 for (i = 1, num = 0; i <
NR_CPUS; i++) {
164 static void __init bcm1480_prepare_cpus(
unsigned int max_cpus)
169 .send_ipi_single = bcm1480_send_ipi_single,
170 .send_ipi_mask = bcm1480_send_ipi_mask,
171 .init_secondary = bcm1480_init_secondary,
172 .smp_finish = bcm1480_smp_finish,
173 .cpus_done = bcm1480_cpus_done,
174 .boot_secondary = bcm1480_boot_secondary,
175 .smp_setup = bcm1480_smp_setup,
176 .prepare_cpus = bcm1480_prepare_cpus,
187 action = (
__raw_readq(mailbox_0_regs[cpu]) >> 48) & 0xffff;