aboutsummaryrefslogtreecommitdiff
path: root/sys/arm64/arm64/mp_machdep.c
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2019-10-30 10:51:24 +0000
committerAndrew Turner <andrew@FreeBSD.org>2019-10-30 10:51:24 +0000
commita5d295e2a726275501525489b5f9cd2210406c8b (patch)
tree97a537f18a6df8c4775262853b42ce8292f6951f /sys/arm64/arm64/mp_machdep.c
parentacd6f4bee79fee6dad75e78e66b4ad5428262f9b (diff)
downloadsrc-a5d295e2a726275501525489b5f9cd2210406c8b.tar.gz
src-a5d295e2a726275501525489b5f9cd2210406c8b.zip
Update the debug monitor handling to work after userspace has started
The debug monitor register state is now stored in a struct and updated when required. Currently there is only a kernel state, however a per-process state will be added in a future change. Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D22128
Notes
Notes: svn path=/head/; revision=354175
Diffstat (limited to 'sys/arm64/arm64/mp_machdep.c')
-rw-r--r--sys/arm64/arm64/mp_machdep.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/arm64/arm64/mp_machdep.c b/sys/arm64/arm64/mp_machdep.c
index ae35b26ffdb4..db42ea763213 100644
--- a/sys/arm64/arm64/mp_machdep.c
+++ b/sys/arm64/arm64/mp_machdep.c
@@ -29,6 +29,7 @@
*/
#include "opt_acpi.h"
+#include "opt_ddb.h"
#include "opt_kstack_pages.h"
#include "opt_platform.h"
@@ -55,6 +56,7 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_kern.h>
#include <machine/machdep.h>
+#include <machine/debug_monitor.h>
#include <machine/intr.h>
#include <machine/smp.h>
#ifdef VFP
@@ -353,6 +355,10 @@ ipi_stop(void *dummy __unused)
while (!CPU_ISSET(cpu, &started_cpus))
cpu_spinwait();
+#ifdef DDB
+ dbg_register_sync(NULL);
+#endif
+
CPU_CLR_ATOMIC(cpu, &started_cpus);
CPU_CLR_ATOMIC(cpu, &stopped_cpus);
CTR0(KTR_SMP, "IPI_STOP (restart)");