diff options
| author | Hyok S. Choi <hyok.choi@samsung.com> | 2006-01-13 16:05:25 -0500 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-01-13 16:05:25 -0500 |
| commit | afeb90ca08000cbd75f22836e667f368e25fe3ac (patch) | |
| tree | f9c3b5c842f8db8dc188185b65a0cae311175c47 | |
| parent | e72b04756f16e40dfd6dab3da81e03fe6dfe16e6 (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>
| -rw-r--r-- | arch/arm/kernel/entry-armv.S | 7 |
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. |
