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.

C5.8.1 Access to specific cache management functions in Debug state<br />

Debug State<br />

If a processor includes the Security Extensions <strong>and</strong> supports Secure User halting debug, it must implement<br />

mechanisms that enable memory system requirements to be met when debugging in Secure User mode when<br />

invasive debug is not permitted in Secure privileged modes. This is a situation where executing the CP15<br />

cache <strong>and</strong> TLB control operations would otherwise be prohibited.<br />

To meet these requirements, <strong>ARM</strong> recommends that, on a processor that implements the Security<br />

Extensions <strong>and</strong> supports Secure User halting debug, when the processor is in Debug state:<br />

the rules for accessing CP15 registers do not apply for a certain set of register access operations<br />

the set of operations depends on the Debug architecture version, as shown in Table C5-5.<br />

Versions Operation Description<br />

Table C5-5 CP15 operations permitted from User mode in Debug state<br />

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

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

MCR p15,0,,c7,c5,7 Invalidate MVA from branch predictor array<br />

MCR p15,0,,c7,c10,1 Clean data or unified cache line by MVA to point of coherency b<br />

MCR p15,0,,c7,c10,2 Clean data or unified cache line by set/way b<br />

MCR p15,0,,c7,c11,1 Clean data or unified cache line by MVA to point of unification b<br />

MCR p15,0,,c7,c1,0 Invalidate entire instruction cache Inner Shareable c<br />

MCR p15,0,,c7,c1,6 Invalidate entire branch predictor array Inner Shareable c<br />

v6.1 Debug MCRR p15,0,,,c5 Invalidate instruction cache by VA range<br />

v6.1 Debug,<br />

v7 Debug<br />

MCR p15,0,,c7,c5,6 Flush entire branch predictor array<br />

a. See also v7 Debug restrictions on instruction cache invalidation in Secure User debug on page C5-26.<br />

b. A debugger does not have to perform cache cleaning operations if DBGDSCCR.nWT is implemented <strong>and</strong> is set to 0,<br />

see Debug State Cache Control Register (DBGDSCCR) on page C10-81. This is because when nWT is set to 0, writes<br />

do not leave dirty data in the cache that is not coherent with outer levels of memory. However, the I-cache is not updated,<br />

so I-cache invalidate operations are required.<br />

c. These instructions are part of the Multiprocessing Extensions. See Multiprocessor effects on cache maintenance<br />

operations on page B2-23.<br />

These instructions must be executable in Debug state regardless of any processor setting. However, use of<br />

an operation can generate an abort if instruction cache lockdown is in use.<br />

For more information about debug access to coprocessor instructions, see Coprocessor <strong>and</strong> Advanced SIMD<br />

instructions in Debug state on page C5-16.<br />

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

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

Saved successfully!

Ooh no, something went wrong!