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 |
