diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-08-26 15:28:52 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-09-20 18:33:36 -0400 |
commit | e8ce0eb5e2254b85415e4b58e73f24a5d13846a1 (patch) | |
tree | 26aaee04d5a4bb872eea215f65073825258ecd76 /arch/arm/mm/proc-xsc3.S | |
parent | f5fa68d9674156ddaafa12a058ccc93c8866d5f9 (diff) |
ARM: pm: preallocate a page table for suspend/resume
Preallocate a page table and setup an identity mapping for the MMU
enable code. This means we don't have to "borrow" a page table to
do this, avoiding complexities with L2 cache coherency.
Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/proc-xsc3.S')
-rw-r--r-- | arch/arm/mm/proc-xsc3.S | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index 755e1bf22681..efd49492fa4d 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
@@ -435,13 +435,7 @@ ENTRY(cpu_xsc3_do_resume) | |||
435 | mcr p15, 0, r7, c3, c0, 0 @ domain ID | 435 | mcr p15, 0, r7, c3, c0, 0 @ domain ID |
436 | mcr p15, 0, r8, c2, c0, 0 @ translation table base addr | 436 | mcr p15, 0, r8, c2, c0, 0 @ translation table base addr |
437 | mcr p15, 0, r9, c1, c0, 1 @ auxiliary control reg | 437 | mcr p15, 0, r9, c1, c0, 1 @ auxiliary control reg |
438 | |||
439 | @ temporarily map resume_turn_on_mmu into the page table, | ||
440 | @ otherwise prefetch abort occurs after MMU is turned on | ||
441 | mov r0, r10 @ control register | 438 | mov r0, r10 @ control register |
442 | mov r2, r8, lsr #14 @ get TTB0 base | ||
443 | mov r2, r2, lsl #14 | ||
444 | ldr r3, =0x542e @ section flags | ||
445 | b cpu_resume_mmu | 439 | b cpu_resume_mmu |
446 | ENDPROC(cpu_xsc3_do_resume) | 440 | ENDPROC(cpu_xsc3_do_resume) |
447 | #endif | 441 | #endif |