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.

Debug State<br />

For more information about the <strong>ARM</strong>v7 cache maintenance operations, see:<br />

CP15 c7, Cache <strong>and</strong> branch predictor maintenance functions on page B3-126 for a VMSA<br />

implementation<br />

CP15 c7, Cache <strong>and</strong> branch predictor maintenance functions on page B4-68 for a PMSA<br />

implementation.<br />

In v6 Debug <strong>and</strong> on any processor that does not implement Security Extensions, or when debugging in a<br />

state <strong>and</strong> mode where privileged CP15 operations can be executed, the debugger can use any CP15<br />

operations. These include, but are not limited to, those operations listed in Table C5-5 on page C5-25.<br />

v7 Debug restrictions on instruction cache invalidation in Secure User debug<br />

An <strong>ARM</strong>v7 implementation that includes the Security Extensions <strong>and</strong> supports Secure User halting debug<br />

must support Secure User debug access to at least one of these instruction cache invalidation operations:<br />

Invalidate entire instruction cache, <strong>and</strong> flush branch predictor arrays, MCR p15,0,,c7,c5,0<br />

Invalidate instruction cache by MVA, MCR p15,0,,c7,c5,1.<br />

An implementation might support both of these operations.<br />

If the DSCCR.nWT bit is not implemented, the implementation must also support Secure User debug access<br />

to at least the operation to Clean data or unified cache line by MVA to point of coherency.<br />

A debugger requires access to an instruction cache invalidation operations so that it can maintain coherency<br />

between instruction memory <strong>and</strong> data memory, <strong>and</strong> between processors in a multiprocessor system.<br />

However, the architecture imposes restrictions on the operation of these instructions in Debug state, that are<br />

not required when the instructions are used in normal operation. In Secure User mode in Debug state when<br />

invasive debug is not permitted in Secure privileged modes:<br />

If the Invalidate all instruction caches operation is supported it must:<br />

— invalidate all unlocked lines in the cache<br />

— leave any locked lines in the cache unchanged.<br />

If there are locked lines in the cache the instruction can abort, but only after it has invalidated all<br />

unlocked lines. However, there is no requirement for the operation to abort if there are locked lines.<br />

If the Invalidate instruction caches by MVA operation is supported, this operation must not invalidate<br />

a locked line. If an instruction attempts to invalidate a locked line in Secure User mode debug the<br />

implementation must either:<br />

— ignore the instruction<br />

— abort the instruction.<br />

These requirements mean that these instructions might operate differently in Debug state to how they<br />

operate in Non-debug state.<br />

Note<br />

In <strong>ARM</strong>v7, it is IMPLEMENTATION DEFINED whether instruction cache locking is supported.<br />

C5-26 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!