aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/head.S
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2006-06-29 13:24:21 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-06-29 13:24:21 -0400
commit8799ee9f49f6171fd58f4d64f8c067ca49006a5d (patch)
treeb746b8800bc99633f31505d151624c8ccd75cd47 /arch/arm/kernel/head.S
parent326764a85b7676388db3ebad6488f312631d7661 (diff)
[ARM] Set bit 4 on section mappings correctly depending on CPU
On some CPUs, bit 4 of section mappings means "update the cache when written to". On others, this bit is required to be one, and others it's required to be zero. Finally, on ARMv6 and above, setting it turns on "no execute" and prevents speculative prefetches. With all these combinations, no one value fits all CPUs, so we have to pick a value depending on the CPU type, and the area we're mapping. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/head.S')
-rw-r--r--arch/arm/kernel/head.S5
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index 330b9476c398..81cb902c487c 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -221,7 +221,7 @@ __create_page_tables:
221 teq r0, r6 221 teq r0, r6
222 bne 1b 222 bne 1b
223 223
224 ldr r7, [r10, #PROCINFO_MMUFLAGS] @ mmuflags 224 ldr r7, [r10, #PROCINFO_MM_MMUFLAGS] @ mm_mmuflags
225 225
226 /* 226 /*
227 * Create identity mapping for first MB of kernel to 227 * Create identity mapping for first MB of kernel to
@@ -272,8 +272,7 @@ __create_page_tables:
272#endif 272#endif
273 273
274#ifdef CONFIG_DEBUG_LL 274#ifdef CONFIG_DEBUG_LL
275 bic r7, r7, #0x0c @ turn off cacheable 275 ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags
276 @ and bufferable bits
277 /* 276 /*
278 * Map in IO space for serial debugging. 277 * Map in IO space for serial debugging.
279 * This allows debug messages to be output 278 * This allows debug messages to be output