diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/kernel/head.S | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 1e985f2cd70f..1aca1775b28f 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
@@ -251,12 +251,11 @@ __turn_mmu_on: | |||
251 | * r10 = procinfo | 251 | * r10 = procinfo |
252 | * | 252 | * |
253 | * Returns: | 253 | * Returns: |
254 | * r0, r3, r5, r6, r7 corrupted | 254 | * r0, r3, r6, r7 corrupted |
255 | * r4 = physical page table address | 255 | * r4 = physical page table address |
256 | */ | 256 | */ |
257 | .type __create_page_tables, %function | 257 | .type __create_page_tables, %function |
258 | __create_page_tables: | 258 | __create_page_tables: |
259 | ldr r5, [r8, #MACHINFO_PHYSRAM] @ physram | ||
260 | pgtbl r4 @ page table address | 259 | pgtbl r4 @ page table address |
261 | 260 | ||
262 | /* | 261 | /* |
@@ -303,7 +302,7 @@ __create_page_tables: | |||
303 | * Then map first 1MB of ram in case it contains our boot params. | 302 | * Then map first 1MB of ram in case it contains our boot params. |
304 | */ | 303 | */ |
305 | add r0, r4, #PAGE_OFFSET >> 18 | 304 | add r0, r4, #PAGE_OFFSET >> 18 |
306 | orr r6, r5, r7 | 305 | orr r6, r7, #PHYS_OFFSET |
307 | str r6, [r0] | 306 | str r6, [r0] |
308 | 307 | ||
309 | #ifdef CONFIG_XIP_KERNEL | 308 | #ifdef CONFIG_XIP_KERNEL |
@@ -311,7 +310,7 @@ __create_page_tables: | |||
311 | * Map some ram to cover our .data and .bss areas. | 310 | * Map some ram to cover our .data and .bss areas. |
312 | * Mapping 3MB should be plenty. | 311 | * Mapping 3MB should be plenty. |
313 | */ | 312 | */ |
314 | sub r3, r4, r5 | 313 | sub r3, r4, #PHYS_OFFSET |
315 | mov r3, r3, lsr #20 | 314 | mov r3, r3, lsr #20 |
316 | add r0, r0, r3, lsl #2 | 315 | add r0, r0, r3, lsl #2 |
317 | add r6, r6, r3, lsl #20 | 316 | add r6, r6, r3, lsl #20 |