diff options
author | Nicolas Pitre <nico@cam.org> | 2007-02-21 09:58:13 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-05-03 16:03:48 -0400 |
commit | 40435792525c49cf126ba92d223e877acb5ce021 (patch) | |
tree | 55160c4689c9e7b80e871d24acb4a1b4cc3a18d9 /arch/arm/kernel | |
parent | 99cce8f7b10716f8fdbaca21a7f3ba000119ad3b (diff) |
[ARM] 4227/1: minor head.S fixups
Let's surround constructs like:
orr r3, r3, #(KERNEL_RAM_PADDR & 0x00f00000)
between .if .endif since (KERNEL_RAM_PADDR & 0x00f00000) is 0 in 99% of
all cases.
Also let's mask PHYS_OFFSET with 0x00f00000 instead of 0x00e00000.
Section mappings are really 1MB not 2MB and the 2MB groupping is
a higher level issue already much better enforced with
#if (PHYS_OFFSET & 0x001fffff)
#error "PHYS_OFFSET must be at an even 2MiB boundary!"
#endif
at the top of the file.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/head.S | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 66db0a9bf0bc..1d35edacc011 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
@@ -257,7 +257,9 @@ __create_page_tables: | |||
257 | * Map some ram to cover our .data and .bss areas. | 257 | * Map some ram to cover our .data and .bss areas. |
258 | */ | 258 | */ |
259 | orr r3, r7, #(KERNEL_RAM_PADDR & 0xff000000) | 259 | orr r3, r7, #(KERNEL_RAM_PADDR & 0xff000000) |
260 | .if (KERNEL_RAM_PADDR & 0x00f00000) | ||
260 | orr r3, r3, #(KERNEL_RAM_PADDR & 0x00f00000) | 261 | orr r3, r3, #(KERNEL_RAM_PADDR & 0x00f00000) |
262 | .endif | ||
261 | add r0, r4, #(KERNEL_RAM_VADDR & 0xff000000) >> 18 | 263 | add r0, r4, #(KERNEL_RAM_VADDR & 0xff000000) >> 18 |
262 | str r3, [r0, #(KERNEL_RAM_VADDR & 0x00f00000) >> 18]! | 264 | str r3, [r0, #(KERNEL_RAM_VADDR & 0x00f00000) >> 18]! |
263 | ldr r6, =(_end - 1) | 265 | ldr r6, =(_end - 1) |
@@ -274,7 +276,9 @@ __create_page_tables: | |||
274 | */ | 276 | */ |
275 | add r0, r4, #PAGE_OFFSET >> 18 | 277 | add r0, r4, #PAGE_OFFSET >> 18 |
276 | orr r6, r7, #(PHYS_OFFSET & 0xff000000) | 278 | orr r6, r7, #(PHYS_OFFSET & 0xff000000) |
277 | orr r6, r6, #(PHYS_OFFSET & 0x00e00000) | 279 | .if (PHYS_OFFSET & 0x00f00000) |
280 | orr r6, r6, #(PHYS_OFFSET & 0x00f00000) | ||
281 | .endif | ||
278 | str r6, [r0] | 282 | str r6, [r0] |
279 | 283 | ||
280 | #ifdef CONFIG_DEBUG_LL | 284 | #ifdef CONFIG_DEBUG_LL |