| * Smp support for CHRP machines. |
| * Written by Cort Dougan (cort@cs.nmt.edu) borrowing a great |
| * deal of code from the sparc and intel versions. |
| * Copyright (C) 1999 Cort Dougan <cort@cs.nmt.edu> |
| #include <linux/kernel.h> |
| #include <linux/interrupt.h> |
| #include <linux/kernel_stat.h> |
| #include <linux/spinlock.h> |
| #include <asm/sections.h> |
| static void __devinit smp_chrp_kick_cpu(int nr) |
| *(unsigned long *)KERNELBASE = nr; |
| asm volatile("dcbf 0,%0"::"r"(KERNELBASE):"memory"); |
| static void __devinit smp_chrp_setup_cpu(int cpu_nr) |
| struct smp_ops_t chrp_smp_ops = { |
| .message_pass = smp_mpic_message_pass, |
| .kick_cpu = smp_chrp_kick_cpu, |
| .setup_cpu = smp_chrp_setup_cpu, |
| .give_timebase = rtas_give_timebase, |
| .take_timebase = rtas_take_timebase, |