diff options
author | zbb <zbb@FreeBSD.org> | 2016-05-29 17:35:38 +0000 |
---|---|---|
committer | zbb <zbb@FreeBSD.org> | 2016-05-29 17:35:38 +0000 |
commit | 43ac6ab3a1231197b63e03c06ccbad7157083fde (patch) | |
tree | 0169ca4632d3cfa823f61326c02a8420ce23a2ec /sys/arm/include | |
parent | 041ba1ed245d03101f7169a2e92a28f069e9fd28 (diff) | |
download | FreeBSD-src-43ac6ab3a1231197b63e03c06ccbad7157083fde.zip FreeBSD-src-43ac6ab3a1231197b63e03c06ccbad7157083fde.tar.gz |
Improve ARM debug_monitor for SMP machines
- Reset debug architecture and enable monitor for secondary
CPUs in init_secondary() rather than when configuring watchpoint, etc.
- Disable HW debugging capabilities when one of the CPU cores fails
to set up.
- Use dbg_capable() in a more atomic manner to avoid any mismatch
between CPUs.
Differential Revision: https://reviews.freebsd.org/D6009
Diffstat (limited to 'sys/arm/include')
-rw-r--r-- | sys/arm/include/debug_monitor.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/arm/include/debug_monitor.h b/sys/arm/include/debug_monitor.h index 776d344..3656e9a 100644 --- a/sys/arm/include/debug_monitor.h +++ b/sys/arm/include/debug_monitor.h @@ -45,6 +45,7 @@ enum dbg_access_t { #if __ARM_ARCH >= 6 void dbg_monitor_init(void); +void dbg_monitor_init_secondary(void); void dbg_show_watchpoint(void); int dbg_setup_watchpoint(db_expr_t, db_expr_t, enum dbg_access_t); int dbg_remove_watchpoint(db_expr_t, db_expr_t); @@ -69,7 +70,10 @@ static __inline void dbg_monitor_init(void) { } - +static __inline void +dbg_monitor_init_secondary(void) +{ +} static __inline void dbg_resume_dbreg(void) { |