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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Common Memory System <strong>Architecture</strong> Features<br />

Cache lockdown<br />

Cache lockdown requirements can conflict with the management of hardware coherency. For this reason,<br />

<strong>ARM</strong>v7 introduces significant changes in this area, compared to previous versions of the <strong>ARM</strong> architecture.<br />

These changes recognize that, in many systems, cache lockdown is inappropriate.<br />

For an <strong>ARM</strong>v7 implementation:<br />

There is no requirement to support cache lockdown.<br />

If cache lockdown is supported, the lockdown mechanism is IMPLEMENTATION DEFINED. However<br />

key properties of the interaction of lockdown with the architecture must be described in the<br />

implementation documentation.<br />

The Cache Type Register does not hold information about lockdown. This is a change from <strong>ARM</strong>v6.<br />

However some CP15 c9 encodings are available for IMPLEMENTATION DEFINED, cache lockdown<br />

features, see Implementation defined memory system features on page B2-27.<br />

Note<br />

For details of cache lockdown in <strong>ARM</strong>v6 see c9, Cache lockdown support on page AppxG-45.<br />

B2.2.3 Cache enabling <strong>and</strong> disabling<br />

Levels of cache on page B2-2 indicates that:<br />

from <strong>ARM</strong>v7 the architecture defines the control of multiple levels of cache<br />

before <strong>ARM</strong>v7 the architecture defines the control of only one level of cache.<br />

This means the mechanism for cache enabling <strong>and</strong> disabling caches changes in <strong>ARM</strong>v7. In both cases,<br />

enabling <strong>and</strong> disabling of caches is controlled by the SCTLR.C <strong>and</strong> SCTLR.I bits, see:<br />

c1, System Control Register (SCTLR) on page B3-96, for a VMSA implementation<br />

c1, System Control Register (SCTLR) on page B4-45, for a PMSA implementation.<br />

In <strong>ARM</strong>v7:<br />

The SCTLR.C bit enables or disables all data <strong>and</strong> unified caches, across all levels of cache visible to<br />

the processor.<br />

The SCTLR.I bit enables or disables all instruction caches, across all levels of cache visible to the<br />

processor.<br />

If an implementation requires finer-grained control of cache enabling it can implement control bits<br />

in the Auxiliary Control Register for this purpose. For example, an implementation might define<br />

control bits to enable <strong>and</strong> disable the caches at a particular level. For more information about the<br />

Auxiliary Control Register see:<br />

— c1, Implementation defined Auxiliary Control Register (ACTLR) on page B3-103, for a VMSA<br />

implementation<br />

— c1, Implementation defined Auxiliary Control Register (ACTLR) on page B4-50, for a PMSA<br />

implementation.<br />

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

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

Saved successfully!

Ooh no, something went wrong!