summaryrefslogtreecommitdiff
path: root/src/target/arm_dpm.h
diff options
context:
space:
mode:
authorDavid Brownell <dbrownell@users.sourceforge.net>2009-12-03 16:08:04 -0800
committerDavid Brownell <dbrownell@users.sourceforge.net>2009-12-03 16:08:04 -0800
commitea7a49cb9b46ccc27daf6c9b306290c7e905a9fc (patch)
tree24c67ceb5f9a185a0e3220a3121d366c74b28aef /src/target/arm_dpm.h
parent6eee0729d79eab496d1d4368a2bae7e4e2d19876 (diff)
downloadopenocd+libswd-ea7a49cb9b46ccc27daf6c9b306290c7e905a9fc.tar.gz
openocd+libswd-ea7a49cb9b46ccc27daf6c9b306290c7e905a9fc.tar.bz2
openocd+libswd-ea7a49cb9b46ccc27daf6c9b306290c7e905a9fc.tar.xz
openocd+libswd-ea7a49cb9b46ccc27daf6c9b306290c7e905a9fc.zip
ARM DPM: share debug reason logic
No point in both ARM11 and Cortex-A8 having private copies of the logic sorting out e.g. DBG_REASON_WATCHPOINT. Add and use a shared routine for this ... there's actually a bunch more debug entry logic that could be shared, this is just a start on that. Note that this routine fixes a bug observed in the ARM11 code, where some abort mode quirks were displayed as being an unknown debug reason; and also silences needless ARM11 chatter. Likewise with private copies of DSCR ... add one to the DPM struct. Save it as part of setting DBG_REASON_* so later patches can switch over to using that copy. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Diffstat (limited to 'src/target/arm_dpm.h')
-rw-r--r--src/target/arm_dpm.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/target/arm_dpm.h b/src/target/arm_dpm.h
index 11213a36..135e3db8 100644
--- a/src/target/arm_dpm.h
+++ b/src/target/arm_dpm.h
@@ -125,6 +125,9 @@ struct arm_dpm {
/** Address of the instruction which triggered a watchpoint. */
uint32_t wp_pc;
+ /** Recent value of DSCR. */
+ uint32_t dscr;
+
// FIXME -- read/write DCSR methods and symbols
};
@@ -151,4 +154,6 @@ void arm_dpm_report_wfar(struct arm_dpm *, uint32_t wfar);
#define DSCR_ENTRY(dscr) (((dscr) >> 2) & 0xf)
+void arm_dpm_report_dscr(struct arm_dpm *dpm, uint32_t dcsr);
+
#endif /* __ARM_DPM_H */