Index: sys/arch/arm64/arm64/cpu.c
===================================================================
RCS file: /cvs/src/sys/arch/arm64/arm64/cpu.c,v
retrieving revision 1.88
diff -u -p -r1.88 cpu.c
--- sys/arch/arm64/arm64/cpu.c	13 Apr 2023 02:19:04 -0000	1.88
+++ sys/arch/arm64/arm64/cpu.c	18 Apr 2023 23:22:48 -0000
@@ -1036,6 +1036,8 @@ cpu_start_secondary(struct cpu_info *ci,
 void
 cpu_boot_secondary(struct cpu_info *ci)
 {
+	int i;
+
 	atomic_setbits_int(&ci->ci_flags, CPUF_GO);
 	__asm volatile("dsb sy; sev" ::: "memory");
 
@@ -1045,8 +1047,17 @@ cpu_boot_secondary(struct cpu_info *ci)
 	 */
 	arm_send_ipi(ci, ARM_IPI_NOP);
 
-	while ((ci->ci_flags & CPUF_RUNNING) == 0)
+	for (i = 1000; (!(ci->ci_flags & CPUF_RUNNING)) && i>0;i--) {
 		__asm volatile("wfe");
+	}
+	if (! (ci->ci_flags & CPUF_RUNNING)) {
+		printf("cpu %d failed to start\n", ci->ci_cpuid);
+#if defined(MPDEBUG) && defined(DDB)
+		printf("dropping into debugger; continue from here to resume boot\n");
+		db_enter();
+#endif
+	}
+
 }
 
 void
