]> git.dujemihanovic.xyz Git - u-boot.git/commit
arm: semihosting: Fix returning from traps on ARMv6 and lower
authorSean Anderson <sean.anderson@seco.com>
Fri, 27 Oct 2023 20:40:14 +0000 (16:40 -0400)
committerTom Rini <trini@konsulko.com>
Fri, 10 Nov 2023 17:52:28 +0000 (12:52 -0500)
commit6ef83ab6be8978ab85a7d8967e9585ddf5f2bbbd
tree0df8a7d4c98ecb921119080aacb5726601c4a5f5
parent298c26c5c7f4105f4e421d227009baeba5c59678
arm: semihosting: Fix returning from traps on ARMv6 and lower

U-Boot runs in supervisor mode. On ARMv6 and lower, software interrupts
are taken in supervisor mode. When entering an interrupt, the link
register is set to the address of the next instruction. However, if we
are already in supervisor mode, this clobbers the link register. The
debugger can't help us, since by the time it notices we've taken a
software interrupt, the link register is already gone. Work around this
by moving the return address to another register.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
arch/arm/lib/semihosting.S