Table 13-23 Setting Of Cp15 Registers On Debug Events - ARM ARM1176JZF-S Technical Reference Manual

Table of Contents

Advertisement

13.8.5
Effect of a debug event on CP15 registers
Register
IFSR
DFSR
FAR
WFAR
ARM DDI 0301H
ID012310
The four CP15 registers that can be set on a debug event are:
Instruction Fault Status Register (IFSR)
Data Fault Status Register (DFSR)
Fault Address Register (FAR)
Watchpoint Fault Address Register (WFAR).
The Instruction Fault Address Register (IFAR) is never updated on debug events.
The registers are set under the following circumstances:
The IFSR is set whenever a breakpoint, software breakpoint, or vector catch debug event
generates a Debug exception entry. It is set to indicate the cause for the Prefetch Abort
vector fetch.
The DFSR is set whenever a watchpoint debug event generates a Debug exception entry.
It is set to indicate the cause for the Data Abort vector fetch.
The processor updates the FAR on debug exception entry because of watchpoints,
although this is architecturally Unpredictable. It is set to the Modified Virtual Address
(MVA) that triggered the watchpoint.
The WFAR is set whenever a watchpoint debug event generates either a Debug exception
or Debug state entry. It is set to the VA of the instruction that caused the Watchpoint debug
event, plus an offset dependent on the processor state. These offsets are the same as the
ones that Table 13-25 on page 13-39 lists.
Table 13-23 lists the setting of CP15 registers on debug events.
Debug exception taken because of:
A breakpoint,
software breakpoint,
or vector catch
debug event
Cause of Prefetch Abort
exception handler entry
Unchanged
Unchanged
Unchanged
You must take care when setting a breakpoint or software breakpoint debug event inside the
Prefetch Abort or Data Abort exception handlers, or when setting a watchpoint debug event on
a data address that might be accessed by any of these handlers. These debug events overwrite
the R14_abt, SPRS_abt and the CP15 registers listed in this section, leading to an unpredictable
software behavior if the handlers did not have the chance of saving the registers.
Copyright © 2004-2009 ARM Limited. All rights reserved.
Non-Confidential, Unrestricted Access

Table 13-23 Setting of CP15 registers on debug events

Debug state entry because of:
A debug event
A watchpoint
other than a
debug event
watchpoint
Unchanged
Unchanged
Cause of Data Abort
Unchanged
exception handler entry
Watchpointed address
Unchanged
Address of the
Unchanged
instruction causing the
watchpoint debug event
Debug
A watchpoint
debug event
Unchanged
Unchanged
Unchanged
Address of the
instruction causing the
watchpoint debug
event
13-34

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents