Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors—Intel XScale
®
Processor
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Developer’s Manual
August 2006
116
Order Number: 306262-004US
• Disables the trace buffer
• Sets DCSR.moe encoding
• Processor enters a Special Debug State (SDS)
• For data breakpoints, trace buffer full break, and external debug break:
R14_dbg = PC of the next instruction to e 4
for instruction breakpoints and software breakpoints and vector traps:
R14_dbg = PC of the aborted instr 4
• SPSR_dbg = CPSR
• CPSR[4:0] = 0b10101 (DEBUG mode)
• CPSR[5] = 0
• CPSR[6] = 1
• CPSR[7] = 1
• PC = 0x0
Note:
When the vector table is relocated (CP15 Control Register[13] = 1), the debug vector is
relocated to 0xffff0000.
Following a debug exception, the processor switches to debug mode and enters SDS,
which allows the following special functionality:
• All events are disabled. SWI or undefined instructions have unpredictable results.
The processor ignores pre-fetch aborts, FIQ and IRQ (SDS disables FIQ and IRQ
regardless of the enable values in the CPSR). The processor reports data aborts
detected during SDS by setting the Sticky Abort bit in the DCSR, but does not
generate an exception (processor also sets up FSR and FAR as it normally would for
a data abort).
• Normally, during halt mode, software cannot write the hardware breakpoint
registers or the DCSR. However, during the SDS, software has write access to the
breakpoint registers (see
“HW Breakpoint Resources” on page 117
) and the DCSR
(see
Table 35, “Debug Control and Status Register (DCSR)” on page 113
).
• The IMMU is disabled. In halt mode, since the debug handler would typically be
downloaded directly into the IC, it would not be appropriate to do TLB accesses or
translation walks, since there may not be any external memory or if there is, the
translation table or TLB may not contain a valid mapping for the debug handler
code. To avoid these problems, the processor internally disables the IMMU during
SDS.
• The PID is disabled for instruction fetches. This prevents fetches of the debug
handler code from being remapped to a different address than where the code was
downloaded.
The SDS remains in effect regardless of the processor mode. This allows the debug
handler to switch to other modes, maintaining SDS functionality. Entering user mode
may cause unpredictable behavior. The processor exits SDS following a CPSR restore
operation.
When exiting, the debug handler should use:
This restores CPSR, turns off all of SDS functionality, and branches to the target
instruction.
subs pc, lr, #4