summaryrefslogtreecommitdiff
path: root/arch/arm/mach-zynq/headsmp.S
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/headsmp.S
parent2f34e0a58f34db094257e33b461d58b578004b67 (diff)
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/headsmp.S')
-rw-r--r--arch/arm/mach-zynq/headsmp.S24
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/arm/mach-zynq/headsmp.S b/arch/arm/mach-zynq/headsmp.S
new file mode 100644
index 000000000000..d183cd234a9b
--- /dev/null
+++ b/arch/arm/mach-zynq/headsmp.S
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2013 Steffen Trumtrar <s.trumtrar@pengutronix.de>
+ * Copyright (c) 2012-2013 Xilinx
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#include <linux/linkage.h>
+#include <linux/init.h>
+
+ __CPUINIT
+
+ENTRY(zynq_secondary_trampoline)
+ ldr r0, [pc]
+ bx r0
+.globl zynq_secondary_trampoline_jump
+zynq_secondary_trampoline_jump:
+ /* Space for jumping address */
+ .word /* cpu 1 */
+.globl zynq_secondary_trampoline_end
+zynq_secondary_trampoline_end:
+
+ENDPROC(zynq_secondary_trampoline)