aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/entry-armv.S
diff options
context:
space:
mode:
authorHyok S. Choi <hyok.choi@samsung.com>2006-01-13 16:05:25 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-01-13 16:05:25 -0500
commitafeb90ca08000cbd75f22836e667f368e25fe3ac (patch)
treef9c3b5c842f8db8dc188185b65a0cae311175c47 /arch/arm/kernel/entry-armv.S
parente72b04756f16e40dfd6dab3da81e03fe6dfe16e6 (diff)
[ARM] Support register switch in nommu mode
This patch adds register switch support in nommu mode. Signed-off-by: Hyok S. Choi <hyok.choi@samsung.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/entry-armv.S')
-rw-r--r--arch/arm/kernel/entry-armv.S7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index a52baedf6262..fb8e7f4c4b37 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -3,6 +3,7 @@
3 * 3 *
4 * Copyright (C) 1996,1997,1998 Russell King. 4 * Copyright (C) 1996,1997,1998 Russell King.
5 * ARM700 fix by Matthew Godbolt (linux-user@willothewisp.demon.co.uk) 5 * ARM700 fix by Matthew Godbolt (linux-user@willothewisp.demon.co.uk)
6 * nommu support by Hyok S. Choi (hyok.choi@samsung.com)
6 * 7 *
7 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as 9 * it under the terms of the GNU General Public License version 2 as
@@ -538,7 +539,11 @@ ENTRY(__switch_to)
538 add ip, r1, #TI_CPU_SAVE 539 add ip, r1, #TI_CPU_SAVE
539 ldr r3, [r2, #TI_TP_VALUE] 540 ldr r3, [r2, #TI_TP_VALUE]
540 stmia ip!, {r4 - sl, fp, sp, lr} @ Store most regs on stack 541 stmia ip!, {r4 - sl, fp, sp, lr} @ Store most regs on stack
542#ifndef CONFIG_MMU
543 add r2, r2, #TI_CPU_DOMAIN
544#else
541 ldr r6, [r2, #TI_CPU_DOMAIN]! 545 ldr r6, [r2, #TI_CPU_DOMAIN]!
546#endif
542#if __LINUX_ARM_ARCH__ >= 6 547#if __LINUX_ARM_ARCH__ >= 6
543#ifdef CONFIG_CPU_MPCORE 548#ifdef CONFIG_CPU_MPCORE
544 clrex 549 clrex
@@ -556,7 +561,9 @@ ENTRY(__switch_to)
556 mov r4, #0xffff0fff 561 mov r4, #0xffff0fff
557 str r3, [r4, #-15] @ TLS val at 0xffff0ff0 562 str r3, [r4, #-15] @ TLS val at 0xffff0ff0
558#endif 563#endif
564#ifdef CONFIG_MMU
559 mcr p15, 0, r6, c3, c0, 0 @ Set domain register 565 mcr p15, 0, r6, c3, c0, 0 @ Set domain register
566#endif
560#ifdef CONFIG_VFP 567#ifdef CONFIG_VFP
561 @ Always disable VFP so we can lazily save/restore the old 568 @ Always disable VFP so we can lazily save/restore the old
562 @ state. This occurs in the context of the previous thread. 569 @ state. This occurs in the context of the previous thread.