Index: sys/arm64/arm64/machdep.c =================================================================== --- sys/arm64/arm64/machdep.c +++ sys/arm64/arm64/machdep.c @@ -98,6 +98,10 @@ #include #endif +#ifdef DDB +#include +#endif + static void get_fpcontext(struct thread *td, mcontext_t *mcp); static void set_fpcontext(struct thread *td, mcontext_t *mcp); @@ -1072,6 +1076,24 @@ } } +static void +arm64_kdb_init(caddr_t kmdp) +{ +#ifdef DDB + vm_offset_t ksym_start; + vm_offset_t ksym_end; + + ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); + ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t); + db_fetch_ksymtab(ksym_start, ksym_end); +#endif + kdb_init(); +#ifdef KDB + if (boothowto & RB_KDB) + kdb_enter(KDB_WHY_BOOTFLAGS, "Boot flags requested debugger"); +#endif +} + void initarm(struct arm64_bootparams *abp) { @@ -1171,7 +1193,7 @@ init_param2(physmem); dbg_init(); - kdb_init(); + arm64_kdb_init(kmdp); pan_enable(); kcsan_cpu_init(0); @@ -1202,8 +1224,6 @@ } #ifdef DDB -#include - DB_SHOW_COMMAND(specialregs, db_show_spregs) { #define PRINT_REG(reg) \