summaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-10-03 09:14:00 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-03 09:14:00 -0700
commit63c422afe3739b68bec0b5c42807d1450c951caf (patch)
tree2cdbcbd4c6fcea69fbe0b164242336c38168f631 /arch/arm/kernel
parent6f3a28f7d1f0a65a78443c273b6e8ec01becf301 (diff)
parentd14b272bc63f35a8f20b4b1df16c080b8d24f8f1 (diff)
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 3848/1: pxafb: Add option of fixing video modes and spitz QVGA mode support [ARM] 3880/1: remove the last trace of iop31x support [ARM] 3879/1: ep93xx: instantiate platform devices for ep93xx ethernet [ARM] 3809/3: get rid of 4 megabyte kernel image size limit [ARM] Fix XIP_KERNEL build error in arch/arm/mm/mmu.c [ARM] 3874/1: Remove leftover usage of asm/timeofday.h
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/head.S18
1 files changed, 9 insertions, 9 deletions
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index 5365d4e5949..ebc3e74a794 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -234,18 +234,18 @@ __create_page_tables:
/*
* Now setup the pagetables for our kernel direct
- * mapped region. We round TEXTADDR down to the
- * nearest megabyte boundary. It is assumed that
- * the kernel fits within 4 contigous 1MB sections.
+ * mapped region.
*/
add r0, r4, #(TEXTADDR & 0xff000000) >> 18 @ start of kernel
str r3, [r0, #(TEXTADDR & 0x00f00000) >> 18]!
- add r3, r3, #1 << 20
- str r3, [r0, #4]! @ KERNEL + 1MB
- add r3, r3, #1 << 20
- str r3, [r0, #4]! @ KERNEL + 2MB
- add r3, r3, #1 << 20
- str r3, [r0, #4] @ KERNEL + 3MB
+
+ ldr r6, =(_end - PAGE_OFFSET - 1) @ r6 = number of sections
+ mov r6, r6, lsr #20 @ needed for kernel minus 1
+
+1: add r3, r3, #1 << 20
+ str r3, [r0, #4]!
+ subs r6, r6, #1
+ bgt 1b
/*
* Then map first 1MB of ram in case it contains our boot params.