Print this page
loader: document the page table setup
loader: simplify MMU enabling code
@@ -73,15 +73,22 @@
* 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
- orr r0, r0, #0x1b
+
+ /* 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,14 +106,12 @@
* 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
+ 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 */