Print this page
loader: document the page table setup
loader: simplify MMU enabling code
*** 73,87 ****
* o Set the TTBCR to always use TTBR0
* o Set domain 0 to manager mode
* o Program the Page table root
*/
ENTRY(fakeload_pt_setup)
mov r1, #0
mcr p15, 0, r1, c2, c0, 2
mov r1, #3
mcr p15, 0, r1, c3, c0, 0
! orr r0, r0, #0x1b
mcr p15, 0, r0, c2, c0, 0
bx lr
SET_SIZE(fakeload_pt_setup)
#endif /* __lint */
--- 73,94 ----
* o Set the TTBCR to always use TTBR0
* o Set domain 0 to manager mode
* o Program the Page table root
*/
ENTRY(fakeload_pt_setup)
+ /* use TTBR0 only (should already be true) */
mov r1, #0
mcr p15, 0, r1, c2, c0, 2
+
+ /* set domain 0 to manager mode */
mov r1, #3
mcr p15, 0, r1, c3, c0, 0
!
! /* set TTBR0 to page table root */
! orr r0, r0, #0x18 /* Outer WB, no WA Cachable */
! orr r0, r0, #0x2 /* Sharable */
! orr r0, r0, #0x1 /* Inner Cachable */
mcr p15, 0, r0, c2, c0, 0
bx lr
SET_SIZE(fakeload_pt_setup)
#endif /* __lint */
*** 99,112 ****
* We first make sure that the ARMv6 pages are enabled (bit 23) and then
* enable the MMU (bit 0).
*/
ENTRY(fakeload_mmu_enable)
mrc p15, 0, r0, c1, c0, 0
! orr r0, #0x800000
! mcr p15, 0, r0, c1, c0, 0
! mrc p15, 0, r0, c1, c0, 0
! orr r0, #0x1
mcr p15, 0, r0, c1, c0, 0
bx lr
SET_SIZE(fakeload_mmu_enable)
#endif /* __lint */
--- 106,117 ----
* We first make sure that the ARMv6 pages are enabled (bit 23) and then
* enable the MMU (bit 0).
*/
ENTRY(fakeload_mmu_enable)
mrc p15, 0, r0, c1, c0, 0
! orr r0, #0x800000 /* enable ARMv6 pages */
! orr r0, #0x1 /* enable MMU */
mcr p15, 0, r0, c1, c0, 0
bx lr
SET_SIZE(fakeload_mmu_enable)
#endif /* __lint */