head.S (d585a021c0b10b0477d6b608c53e1feb8cde0507) | head.S (26584853a44c58f3d6ac7360d697a2ddcd1a3efa) |
---|---|
1/* 2 * linux/arch/arm/boot/compressed/head.S 3 * 4 * Copyright (C) 1996-2002 Russell King 5 * Copyright (C) 2004 Hyok S. Choi (MPU support) 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 424 unchanged lines hidden (view full) --- 433 mov r12, lr 434 bl __setup_mmu 435 mov r0, #0 436 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer 437 mcr p15, 0, r0, c8, c7, 0 @ flush I,D TLBs 438 mrc p15, 0, r0, c1, c0, 0 @ read control reg 439 orr r0, r0, #0x5000 @ I-cache enable, RR cache replacement 440 orr r0, r0, #0x0030 | 1/* 2 * linux/arch/arm/boot/compressed/head.S 3 * 4 * Copyright (C) 1996-2002 Russell King 5 * Copyright (C) 2004 Hyok S. Choi (MPU support) 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 424 unchanged lines hidden (view full) --- 433 mov r12, lr 434 bl __setup_mmu 435 mov r0, #0 436 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer 437 mcr p15, 0, r0, c8, c7, 0 @ flush I,D TLBs 438 mrc p15, 0, r0, c1, c0, 0 @ read control reg 439 orr r0, r0, #0x5000 @ I-cache enable, RR cache replacement 440 orr r0, r0, #0x0030 |
441#ifdef CONFIG_CPU_ENDIAN_BE8 442 orr r0, r0, #1 << 25 @ big-endian page tables 443#endif |
|
441 bl __common_mmu_cache_on 442 mov r0, #0 443 mcr p15, 0, r0, c8, c7, 0 @ flush I,D TLBs 444 mov pc, r12 445 446__armv7_mmu_cache_on: 447 mov r12, lr 448 mrc p15, 0, r11, c0, c1, 4 @ read ID_MMFR0 449 tst r11, #0xf @ VMSA 450 blne __setup_mmu 451 mov r0, #0 452 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer 453 tst r11, #0xf @ VMSA 454 mcrne p15, 0, r0, c8, c7, 0 @ flush I,D TLBs 455 mrc p15, 0, r0, c1, c0, 0 @ read control reg 456 orr r0, r0, #0x5000 @ I-cache enable, RR cache replacement 457 orr r0, r0, #0x003c @ write buffer | 444 bl __common_mmu_cache_on 445 mov r0, #0 446 mcr p15, 0, r0, c8, c7, 0 @ flush I,D TLBs 447 mov pc, r12 448 449__armv7_mmu_cache_on: 450 mov r12, lr 451 mrc p15, 0, r11, c0, c1, 4 @ read ID_MMFR0 452 tst r11, #0xf @ VMSA 453 blne __setup_mmu 454 mov r0, #0 455 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer 456 tst r11, #0xf @ VMSA 457 mcrne p15, 0, r0, c8, c7, 0 @ flush I,D TLBs 458 mrc p15, 0, r0, c1, c0, 0 @ read control reg 459 orr r0, r0, #0x5000 @ I-cache enable, RR cache replacement 460 orr r0, r0, #0x003c @ write buffer |
461#ifdef CONFIG_CPU_ENDIAN_BE8 462 orr r0, r0, #1 << 25 @ big-endian page tables 463#endif |
|
458 orrne r0, r0, #1 @ MMU enabled 459 movne r1, #-1 460 mcrne p15, 0, r3, c2, c0, 0 @ load page table pointer 461 mcrne p15, 0, r1, c3, c0, 0 @ load domain access control 462 mcr p15, 0, r0, c1, c0, 0 @ load control register 463 mrc p15, 0, r0, c1, c0, 0 @ and read it back 464 mov r0, #0 465 mcr p15, 0, r0, c7, c5, 4 @ ISB --- 540 unchanged lines hidden --- | 464 orrne r0, r0, #1 @ MMU enabled 465 movne r1, #-1 466 mcrne p15, 0, r3, c2, c0, 0 @ load page table pointer 467 mcrne p15, 0, r1, c3, c0, 0 @ load domain access control 468 mcr p15, 0, r0, c1, c0, 0 @ load control register 469 mrc p15, 0, r0, c1, c0, 0 @ and read it back 470 mov r0, #0 471 mcr p15, 0, r0, c7, c5, 4 @ ISB --- 540 unchanged lines hidden --- |