7.16.1. Enabling the MMU

To enable the MMU:

  1. Program the Translation Table Base and Domain Access Control Registers.

  2. Program Level 1 and Level 2 page tables as required.

  3. Enable the MMU by setting bit 0 in the Control Register.


Care must be taken if the translated address differs from the untranslated address as the two instructions following the enabling of the MMU will have been fetched using “flat translation” and enabling the MMU may be considered as a branch with delayed execution. A similar situation occurs when the MMU is disabled. Consider the following code sequence:

MOV R1, #0x1
MCR 15,0,R1,0,0            ; Enable MMU
Fetch Flat
Fetch Flat
Fetch Translated
Copyright © 1997, 1998 ARM Limited. All rights reserved.DDI 0087E