aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-zynq/common.h
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2013-03-20 13:50:12 +0100
committerMichal Simek <michal.simek@xilinx.com>2013-04-04 09:24:00 +0200
commitaa7eb2bb4e4a22e41bbe4612ff46e5885b13c33e (patch)
treeef3f5e0578ee98f1e95b686796a64a80807ef795 /arch/arm/mach-zynq/common.h
parentarm: zynq: Add smp_twd timer (diff)
downloadlinux-dev-aa7eb2bb4e4a22e41bbe4612ff46e5885b13c33e.tar.xz
linux-dev-aa7eb2bb4e4a22e41bbe4612ff46e5885b13c33e.zip
arm: zynq: Add smp support
Zynq is dual core Cortex A9 which starts always at zero. Using simple trampoline ensure long jump to secondary_startup code. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-zynq/common.h')
-rw-r--r--arch/arm/mach-zynq/common.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-zynq/common.h b/arch/arm/mach-zynq/common.h
index d7ec3caaa1d7..fd308f8b18d9 100644
--- a/arch/arm/mach-zynq/common.h
+++ b/arch/arm/mach-zynq/common.h
@@ -19,6 +19,17 @@
extern int zynq_slcr_init(void);
extern void zynq_slcr_system_reset(void);
+extern void zynq_slcr_cpu_stop(int cpu);
+extern void zynq_slcr_cpu_start(int cpu);
+
+#ifdef CONFIG_SMP
+extern void secondary_startup(void);
+extern char zynq_secondary_trampoline;
+extern char zynq_secondary_trampoline_jump;
+extern char zynq_secondary_trampoline_end;
+extern int __cpuinit zynq_cpun_start(u32 address, int cpu);
+extern struct smp_operations zynq_smp_ops __initdata;
+#endif
extern void __iomem *zynq_slcr_base;
extern void __iomem *zynq_scu_base;