mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 08:43:19 -04:00
arm64: Always set the debug control and value regs
When listing watchpoints we read the raw registers. To ensure we print
an accurate list always set the watchpoint and breakpoint registers.
Sponsored by: Arm Ltd
Reviewed by: jhb
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D44351
(cherry picked from commit 2e2c983d52)
This commit is contained in:
parent
64b0acf87c
commit
c3d86d27c3
1 changed files with 14 additions and 13 deletions
|
|
@ -496,23 +496,24 @@ dbg_register_sync(struct debug_monitor_state *monitor)
|
|||
if (monitor == NULL)
|
||||
monitor = &kernel_monitor;
|
||||
|
||||
for (i = 0; i < dbg_breakpoint_num; i++) {
|
||||
dbg_wb_write_reg(DBG_REG_BASE_BCR, i,
|
||||
monitor->dbg_bcr[i]);
|
||||
dbg_wb_write_reg(DBG_REG_BASE_BVR, i,
|
||||
monitor->dbg_bvr[i]);
|
||||
}
|
||||
|
||||
for (i = 0; i < dbg_watchpoint_num; i++) {
|
||||
dbg_wb_write_reg(DBG_REG_BASE_WCR, i,
|
||||
monitor->dbg_wcr[i]);
|
||||
dbg_wb_write_reg(DBG_REG_BASE_WVR, i,
|
||||
monitor->dbg_wvr[i]);
|
||||
}
|
||||
|
||||
mdscr = READ_SPECIALREG(mdscr_el1);
|
||||
if ((monitor->dbg_flags & DBGMON_ENABLED) == 0) {
|
||||
mdscr &= ~(MDSCR_MDE | MDSCR_KDE);
|
||||
} else {
|
||||
for (i = 0; i < dbg_breakpoint_num; i++) {
|
||||
dbg_wb_write_reg(DBG_REG_BASE_BCR, i,
|
||||
monitor->dbg_bcr[i]);
|
||||
dbg_wb_write_reg(DBG_REG_BASE_BVR, i,
|
||||
monitor->dbg_bvr[i]);
|
||||
}
|
||||
|
||||
for (i = 0; i < dbg_watchpoint_num; i++) {
|
||||
dbg_wb_write_reg(DBG_REG_BASE_WCR, i,
|
||||
monitor->dbg_wcr[i]);
|
||||
dbg_wb_write_reg(DBG_REG_BASE_WVR, i,
|
||||
monitor->dbg_wvr[i]);
|
||||
}
|
||||
mdscr |= MDSCR_MDE;
|
||||
if ((monitor->dbg_flags & DBGMON_KERNEL) == DBGMON_KERNEL)
|
||||
mdscr |= MDSCR_KDE;
|
||||
|
|
|
|||
Loading…
Reference in a new issue