diff options
author | Magnus Damm <damm@opensource.se> | 2010-12-14 10:56:55 +0300 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-12-14 12:15:44 +0300 |
commit | 1c51ed4fb9f11fa1e0873aa2d5b28f42a85ac299 (patch) | |
tree | 258c5de6db68146a86fc27ae1dc2b8fed2dc40e3 /arch/arm/mach-shmobile/include | |
parent | 09dd7ded60019d6a4fd2ae20a08c4ad2bc3ed3e9 (diff) | |
download | linux-1c51ed4fb9f11fa1e0873aa2d5b28f42a85ac299.tar.xz |
ARM: mach-shmobile: SMP base support
Add SMP base support for R-Mobile / SH-Mobile processors.
This patch contains all base code to support CONFIG_SMP
regardless of ARCH_SHMOBILE processor type. Both local timer
and CPU hotplug are supported, but no processor specific
code is included.
At this point only the default behavior is in place, so
a single core will always be used even though CONFIG_SMP
is enabled on multicore systems.
The SMP Kconfig entry for arch/arm/Kconfig is excluded from
this patch to simplify merging.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/arm/mach-shmobile/include')
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/common.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/entry-macro-intc.S | 6 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/smp.h | 16 |
3 files changed, 23 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/include/mach/common.h b/arch/arm/mach-shmobile/include/mach/common.h index 15932fd2435e..32822f7556ea 100644 --- a/arch/arm/mach-shmobile/include/mach/common.h +++ b/arch/arm/mach-shmobile/include/mach/common.h @@ -3,6 +3,7 @@ extern struct sys_timer shmobile_timer; extern void shmobile_setup_console(void); +extern void shmobile_secondary_vector(void); struct clk; extern int clk_init(void); diff --git a/arch/arm/mach-shmobile/include/mach/entry-macro-intc.S b/arch/arm/mach-shmobile/include/mach/entry-macro-intc.S index a285d13c7416..d06d4ba3251e 100644 --- a/arch/arm/mach-shmobile/include/mach/entry-macro-intc.S +++ b/arch/arm/mach-shmobile/include/mach/entry-macro-intc.S @@ -17,6 +17,12 @@ #include <mach/hardware.h> #include <mach/irqs.h> + .macro test_for_ipi, irqnr, irqstat, base, tmp + .endm + + .macro test_for_ltirq, irqnr, irqstat, base, tmp + .endm + .macro disable_fiq .endm diff --git a/arch/arm/mach-shmobile/include/mach/smp.h b/arch/arm/mach-shmobile/include/mach/smp.h new file mode 100644 index 000000000000..f4a35ff82c67 --- /dev/null +++ b/arch/arm/mach-shmobile/include/mach/smp.h @@ -0,0 +1,16 @@ +#ifndef __MACH_SMP_H +#define __MACH_SMP_H + +#include <asm/hardware/gic.h> +#include <asm/smp_mpidr.h> + +/* + * We use IRQ1 as the IPI + */ +static inline void smp_cross_call(const struct cpumask *mask) +{ +#if defined(CONFIG_ARM_GIC) + gic_raise_softirq(mask, 1); +#endif +} +#endif |