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.

NS_DL, bit [0]<br />

<strong>ARM</strong>v6 Differences<br />

Non-secure data cache linefill. Can be used to disable data cache linefill for Non-secure<br />

regions. The possible values of this bit are:<br />

0 Data cache linefill enabled. This corresponds to normal cache operation.<br />

1 Data cache linefill disabled for regions marked as Non-secure.<br />

It might be necessary to ensure that cache contents are not changed, for example when debugging or when<br />

processing an interruptible cache operation. The CBOR provides this option.<br />

For example, Clean All, <strong>and</strong> Clean <strong>and</strong> Invalidate All operations in Non-secure state might not prevent fast<br />

interrupts to the Secure side if the FW bit in the SCR is set to 0. In this case, operations in the Secure state<br />

can read or write Non-secure locations in the cache. Such operations might cause the cache to contain valid<br />

or dirty Non-secure entries after the Non-secure Clean All <strong>and</strong> Clean <strong>and</strong> Invalidate All operation has<br />

completed. To prevent this problem, the Secure state must be:<br />

prevented from allocating Non-secure entries into the cache by disabling Non-secure linefill<br />

made to treat all writes to Non-secure regions that hit in the cache as being write-though by forcing<br />

Non-secure Write-Through.<br />

The CBOR provides separate controls for Secure <strong>and</strong> Non-secure memory regions, <strong>and</strong> can be used to<br />

prevent cache linefill, or to force Write-Through operation, while leaving the caches enabled. The controls<br />

for Secure memory regions can be accessed only when the processor is in the Secure state.<br />

Accessing the CBOR<br />

To access the CBOR you read or write the CP15 registers with set to 0, set to c9, set to<br />

c8, <strong>and</strong> set to 0. For example:<br />

MRC p15, 0, , c9, c8, 0 ; Read CP15 Cache Behavior Override Register<br />

MCR p15, 0, , c9, c8, 0 ; Write CP15 Cache Behavior Override Register<br />

c9, TCM Non-Secure Access Control Registers, DTCM-NSACR <strong>and</strong> ITCM-NSACR<br />

The Data TCM Non-Secure Access Control Register (DTCM-NSACR) defines the accessibility of the Data<br />

TCM Region Register when the processor is in Non-secure state.<br />

The Instruction TCM Non-Secure Access Control Register (ITCM-NSACR) defines the accessibility of the<br />

current Instruction or Unified TCM Region Register when the processor is in Non-secure state.<br />

For information on TCM support, see Tightly Coupled Memory (TCM) support on page AppxG-23.<br />

The TCM-NSACR registers are:<br />

32-bit read/write registers<br />

accessible only in privileged modes<br />

implemented only in a VMSAv6 implementation that includes the Security Extensions<br />

Secure registers, see Restricted access CP15 registers on page B3-73.<br />

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

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

Saved successfully!

Ooh no, something went wrong!