[Bug 282505] 13.3 kernel running under bhyve accesses unimplemented watchpoint
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 03 Nov 2024 00:50:14 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282505 Bug ID: 282505 Summary: 13.3 kernel running under bhyve accesses unimplemented watchpoint Product: Base System Version: 15.0-CURRENT Hardware: arm OS: Any Status: New Severity: Affects Only Me Priority: --- Component: arm Assignee: freebsd-arm@FreeBSD.org Reporter: jfc@mit.edu Short version: vmm might provide a bad value for id_aa64dfr0_el1 on my hardware. A 13.3 kernel crashes almost immediately running under bhyve on a RockPro64 running 15.0-CURRENT. Function dbg_monitor_enter accesses an unimplemented watchpoint 4. The hardware supported range is 0-3. The A53 and A72 TRMs say 4 watchpoints and dbg_watchpoint_num=4 on the host. This is all too early to enter the debugger or examine memory. I have console output and a register dump. Panic string is panic: Undefined instruction: d51004e2 The instruction decodes to msr dbgwcr4_el1, x2 This is consistent with the register dump, which shows dbg_wb_write_reg called from this loop in dbg_monitor_enter with i==4: for (i = 0; i < dbg_watchpoint_num; i++) { dbg_wb_write_reg(DBG_REG_BASE_WCR, i, 0); dbg_wb_write_reg(DBG_REG_BASE_WVR, i, 0); } The watchpoint count comes from dbg_watchpoint_num = ((READ_SPECIALREG(id_aa64dfr0_el1) >> 20) & 0xf) + 1; I do not yet know what the mrs instruction here returns running under bhyve. The SOC has 4 Cortex A53 and 2 Cortex A72. -- You are receiving this mail because: You are the assignee for the bug.