05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

B3.2.3 Enabling <strong>and</strong> disabling the MMU<br />

Virtual Memory System <strong>Architecture</strong> (VMSA)<br />

The MMU can be enabled <strong>and</strong> disabled by writing to the SCTLR.M bit, see c1, System Control Register<br />

(SCTLR) on page B3-96. On reset, this bit is cleared to 0, disabling the MMU.<br />

When the MMU is disabled, memory accesses are treated as follows:<br />

All data accesses are treated as Non-cacheable <strong>and</strong> Strongly-ordered. Unexpected data cache hit<br />

behavior is IMPLEMENTATION DEFINED.<br />

The treatment of instruction accesses depends on the value of the SCTLR.I bit:<br />

When I == 0<br />

All instruction accesses are Non-cacheable.<br />

When I == 1<br />

All instruction accesses are Cacheable:<br />

Inner Write-Through no Write-Allocate<br />

Outer Write-Through no Write-Allocate.<br />

In both cases all instruction accesses are Non-shareable, Normal memory.<br />

Note<br />

On some implementations, if the SCTLR.TRE bit is set to 0 then this behavior can be changed by the<br />

remap settings in the memory remap registers, see CP15 c10, Memory Remap Registers on<br />

page B3-143. The details of TEX remapping when SCTLR.TRE is set to 0 are IMPLEMENTATION<br />

DEFINED, see SCTLR.TRE, SCTLR.M, <strong>and</strong> the effect of the MMU remap registers on page B3-38.<br />

No memory access permission checks are performed, <strong>and</strong> no aborts are generated by the MMU.<br />

For every access the PA is equal to the MVA. This is known as a flat address mapping.<br />

If the FCSE is implemented, the FCSE PID is SBZ when the MMU is disabled. This is the reset value<br />

for the FCSE PID. Behavior is UNPREDICTABLE if the FCSE PID is not zero when the MMU is<br />

disabled.<br />

When the FCSE is implemented software must clear the FCSE PID before disabling the MMU.<br />

CP15 cache maintenance operations act on the target cache whether the MMU is enabled or not, <strong>and</strong><br />

regardless of the values of the memory attributes. However, if the MMU is disabled, they use the flat<br />

address mapping, <strong>and</strong> all mappings are considered global.<br />

CP15 TLB invalidate operations act on the target TLB whether the MMU is enabled or not.<br />

All relevant CP15 registers must be programmed before the MMU is enabled. This includes setting up<br />

suitable translation tables in memory.<br />

When the MMU is disabled, an instruction can be fetched if one of the following conditions is met:<br />

The instruction is in the same 4KB block of memory (aligned to 4KB) as an instruction that is<br />

required by a simple sequential execution of the program, or is in the 4KB block of memory<br />

immediately following such a block.<br />

<strong>ARM</strong> DDI 0406B Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. B3-5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!