[PATCH] arm kgdb: fix breakpoint for thumb2
Russell King (Oracle)
linux at armlinux.org.uk
Mon Feb 14 02:13:43 PST 2022
On Mon, Feb 14, 2022 at 10:59:49AM +0100, Johannes Stezenbach wrote:
> Entering kdb via SysRq-G with CONFIG_THUMB2_KERNEL=y
> on Cortex-A7 in Qemu results in an Ooops, and it is
> not possible to continue because of "Catastrophic error detected".
> The root cause is using an arm breakpoint instruction in
> thumb code.
This sounds like a bug in qemu.
0xe7ffdeXX is two 16-bit instructions:
0: e7ff b.n 2 <.text+0x2>
2: def1 udf #241 ; 0xf1
0xe7ff is a branch to the UDF instruction.
0xdeXX is a UDF (Permanently undefined) instruction which should raise a
undefined instruction trap. As per the Arm ARM on UDF: "Permanently
Undefined generates an Undefined Instruction exception."
The encoding is also a 32-bit UDF instruction:
0: e7ffdef1 udf #64993 ; 0xfde1
which is exactly why these opcodes were chosen - so we can instrument
both ARM and Thumb code without caring which it is.
Qemu needs fixing if it complains about this.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
More information about the linux-arm-kernel
mailing list