Give ddb more access to registers on macppc, powerpc64
authorgkoehler <gkoehler@openbsd.org>
Fri, 28 Jan 2022 18:37:40 +0000 (18:37 +0000)
committergkoehler <gkoehler@openbsd.org>
Fri, 28 Jan 2022 18:37:40 +0000 (18:37 +0000)
commit2987d5a7a589a1283ed91f0964a8efa52698e7f4
tree506e2d21a18cb88d491c6ade18fcf2a310e620cf
parent99c437516b4902ed2464a9e29e4bfbab7c115116
Give ddb more access to registers on macppc, powerpc64

Edit db_regs[] in db_trace.c on both powerpc and powerpc64, so ddb can
access $r14, $r15, $r16, $dar, $dsisr.

Only for powerpc: change db_trap_glue to copy all registers to and
from ddb_regs (it was skipping some); change db_set_single_step and
db_clear_single_step to flip the correct bit of srr1; delete
FIXUP_PC_AFTER_BREAK, which was off by 1 instruction.

"ddb{1}> s" on my PowerMac7,3 (dual G5 at 2700 MHz) began to panic
like, "*cpu0: mutex 0xa7d0a0 not held in tc_update_timekeep".  Add an
arbitrary delay(100) after sending PPC_IPI_DDB; I want cpu0 to get the
ipi before it can see db_active == 1 and skip acquiring a mutex.

ok kettenis@
sys/arch/powerpc/ddb/db_interface.c
sys/arch/powerpc/ddb/db_trace.c
sys/arch/powerpc/include/db_machdep.h
sys/arch/powerpc64/powerpc64/db_trace.c