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.

Invasive Debug Authentication<br />

C2.1 About invasive debug authentication<br />

Invasive debug can be enabled or disabled. If it is disabled the processor ignores all debug events except<br />

BKPT Instruction. This means that debug events other than the BKPT Instruction debug event do not cause<br />

the processor to enter Debug state or to take a debug exception.<br />

In addition, if a processor implements the Security Extensions, invasive debug can be permitted or not<br />

permitted. When invasive debug is not permitted, all debug events are not permitted. When a debug event is<br />

not permitted:<br />

if the debug event is not a BKPT Instruction debug event then it is ignored<br />

if the debug event is a BKPT Instruction debug event then it causes a debug exception.<br />

Note<br />

The BKPT Instruction debug event is never ignored.<br />

The difference between enabled <strong>and</strong> permitted is that whether a debug event is permitted depends on both<br />

the security state <strong>and</strong> the operating mode of the processor.<br />

For debug events that cause entry to Debug state, Secure User halting debug refers to permitting these events<br />

in Secure User mode when invasive debug is not permitted in Secure privileged modes. The debug events<br />

that cause entry to Debug state are:<br />

Halting debug events<br />

if Halting debug-mode is selected, Software debug events.<br />

Support for Secure User halting debug is required in v6.1 Debug. In v7 Debug it is IMPLEMENTATION<br />

DEFINED whether Secure User halting debug is supported. On an implementation that does not support<br />

Secure User halting debug the DBGDIDR.nSUHD_imp bit is RAO, see Debug ID Register (DBGDIDR) on<br />

page C10-3. <strong>ARM</strong> deprecates the use of Secure User halting debug.<br />

If the Security Extensions are implemented, when invasive debug is not permitted in Secure privileged<br />

modes it must be possible to permit, in Secure User mode, the debug events that do not cause entry to Debug<br />

state. The debug events that do not cause entry to Debug state are Software debug events when Monitor<br />

debug-mode is selected.<br />

Note<br />

When the Security Extensions are implemented, the Debug architecture distinguishes between permitting<br />

invasive halting debug <strong>and</strong> permitting invasive non-halting debug. However, in Non-secure state <strong>and</strong> in<br />

Secure privileged modes whether a debug event is permitted does not depend on whether the event would<br />

cause entry to Debug state. Therefore, the distinction between permitting invasive halting debug <strong>and</strong><br />

invasive non-halting debug applies only in Secure User mode.<br />

When Secure User halting debug is supported, the processor can be configured so that both invasive halting<br />

debug <strong>and</strong> invasive non-halting debug are permitted in Secure User mode when invasive debug is not<br />

permitted in Secure privileged modes. Therefore, the alternatives for when a debug event is permitted are:<br />

in all processor modes, in both Secure <strong>and</strong> Non-secure security states<br />

only in Non-secure state<br />

C2-2 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!