summaryrefslogtreecommitdiff
path: root/arch/arm/mach-socfpga/headsmp.S
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-10-26 15:00:48 +0200
committerArnd Bergmann <arnd@arndb.de>2012-10-26 15:00:48 +0200
commit8691c0db4a70fe87d9a05eec15ebfe99f6e953c1 (patch)
tree21802a1dc88b6dbd4ea39f7cc11b734c4f5465c9 /arch/arm/mach-socfpga/headsmp.S
parent6f0c0580b70c89094b3422ba81118c7b959c7556 (diff)
parent9c4566a117a6fe404a0e49b27ac71b631945a70f (diff)
Merge branch 'socfpga/smp' into next/smp
SMP support for socfpga platform, from Dinh Nguyen <dinguyen@altera.com> v3: -cleaned up socfpga_defconfig. -Needs # CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA is not set -Removed CONFIG_VMSPLIT_2G, as system has 2GB of RAM -Removed CONFIG_ARCH_TIMER -Remove pen_release variable -Added Reviewed-by: Rob Herring <rob.herring@calxeda.com> v2: -Remove pen_release code -Remove code that was already done by v7_setup -Add bindings document for reset and system manager -Move socfpga_sysmgr_init from platsmp.c to socfpga.c, because we will need to use the reset and system manager for more than SMP. -Move core.h to mach-socfpga from mach-socfpga/include/mach * socfpga/smp: ARM: socfpga: Enable SMP for socfpga Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-socfpga/headsmp.S')
-rw-r--r--arch/arm/mach-socfpga/headsmp.S24
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/arm/mach-socfpga/headsmp.S b/arch/arm/mach-socfpga/headsmp.S
new file mode 100644
index 000000000000..17d6eaf9afff
--- /dev/null
+++ b/arch/arm/mach-socfpga/headsmp.S
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2003 ARM Limited
+ * Copyright (c) u-boot contributors
+ * Copyright (c) 2012 Pavel Machek <pavel@denx.de>
+ *
+ * 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>
+
+ __INIT
+
+#define CPU1_START_ADDR 0xffd08010
+
+ENTRY(secondary_trampoline)
+ movw r0, #:lower16:CPU1_START_ADDR
+ movt r0, #:upper16:CPU1_START_ADDR
+
+ ldr r1, [r0]
+ bx r1
+
+ENTRY(secondary_trampoline_end)