summaryrefslogtreecommitdiffstats
path: root/arch/mn10300/kernel/switch_to.S
diff options
context:
space:
mode:
authorAkira Takeuchi <takeuchi.akr@jp.panasonic.com>2010-10-27 17:28:55 +0100
committerDavid Howells <dhowells@redhat.com>2010-10-27 17:28:55 +0100
commit368dd5acd154b09c043cc4392a74da01599b37d5 (patch)
treedd94ae3d044f6e774dec2437613515bd6b46dacb /arch/mn10300/kernel/switch_to.S
parent04157a6e7df99fd5ed64955233d6e00ab6613614 (diff)
downloadop-kernel-dev-368dd5acd154b09c043cc4392a74da01599b37d5.zip
op-kernel-dev-368dd5acd154b09c043cc4392a74da01599b37d5.tar.gz
MN10300: And Panasonic AM34 subarch and implement SMP
Implement the Panasonic MN10300 AM34 CPU subarch and implement SMP support for MN10300. Also implement support for the MN2WS0060 processor and the ASB2364 evaluation board which are AM34 based. Signed-off-by: Akira Takeuchi <takeuchi.akr@jp.panasonic.com> Signed-off-by: Kiyoshi Owada <owada.kiyoshi@jp.panasonic.com> Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'arch/mn10300/kernel/switch_to.S')
-rw-r--r--arch/mn10300/kernel/switch_to.S17
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/mn10300/kernel/switch_to.S b/arch/mn10300/kernel/switch_to.S
index 630aad7..b08cb2e 100644
--- a/arch/mn10300/kernel/switch_to.S
+++ b/arch/mn10300/kernel/switch_to.S
@@ -15,6 +15,9 @@
#include <linux/linkage.h>
#include <asm/thread_info.h>
#include <asm/cpu-regs.h>
+#ifdef CONFIG_SMP
+#include <proc/smp-regs.h>
+#endif /* CONFIG_SMP */
.text
@@ -35,7 +38,14 @@ ENTRY(__switch_to)
mov d1,a1
# save prev context
+#ifdef CONFIG_SMP
+ mov (CPUID),a2
+ add a2,a2
+ add a2,a2
+ mov (___frame,a2),d0
+#else /* CONFIG_SMP */
mov (__frame),d0
+#endif /* CONFIG_SMP */
mov d0,(THREAD_FRAME,a0)
mov __switch_back,d0
mov d0,(THREAD_PC,a0)
@@ -59,7 +69,14 @@ ENTRY(__switch_to)
#endif
mov (THREAD_FRAME,a1),a2
+#ifdef CONFIG_SMP
+ mov (CPUID),a0
+ add a0,a0
+ add a0,a0
+ mov a2,(___frame,a0)
+#else /* CONFIG_SMP */
mov a2,(__frame)
+#endif /* CONFIG_SMP */
mov (THREAD_PC,a1),a2
mov d2,d0 # for ret_from_fork
mov d0,a0 # for __switch_to
OpenPOWER on IntegriCloud