mirror of
https://github.com/opnsense/src.git
synced 2026-06-05 06:42:56 -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
This commit is contained in:
parent
ed3c6cd76d
commit
2e2c983d52
1 changed files with 14 additions and 13 deletions
|
|
@ -495,23 +495,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