[PATCH v2 0/6] Exception handling in HYP mode on ARMv7-A
Jim Posen
jim.posen at gmail.com
Wed Nov 24 20:39:55 CET 2021
Currently, when U-Boot is running in hypervisor mode on ARMv7-A CPUs
with virtualization extensions, the exception handling does not work.
A couple things need to change which are detailed in my earlier
message to the u-boot mailing list with the subject "Exception
handling in HYP mode on ARMv7-A".
I have verified that this patch series works on the ODroid XU4 and
the Raspberry Pi 3B in Aarch32 mode when running in hypervisor mode.
One simple way to verify is by running the miscellaneous "exception"
command (CMD_EXCEPTION).
This can be tested with QEMU now. Configure with qemu_arm_defconfig
and add CMD_EXCEPTION and QEMU_ARM_32BIT_HAS_VIRT. Then run
qemu-system-arm \
-machine virt,virtualization \
-nographic -serial mon:stdio \
-bios u-boot.bin
U-Boot 2021.10-...
...
=> exception undefined
Changes in v2:
- Fix CP15 register written to in start.S
- Check processor mode as HVBAR register is only accessible in HYP
mode
- Add QEMU config option for ARM32 with virtualization extensions
Jim Posen (6):
Compile for ARMv7-A with virtualization extensions
Hypervisor mode interrupt vector table
Set HVBAR register correctly
Remove dead code
Fix PC adjustment logic in exception handlers
Config to target QEMU virt machine with virtualization
arch/arm/Makefile | 4 +
arch/arm/cpu/armv7/start.S | 8 ++
arch/arm/include/asm/u-boot-arm.h | 14 ++--
arch/arm/lib/interrupts.c | 26 +++---
arch/arm/lib/relocate.S | 13 +++
arch/arm/lib/vectors.S | 129 +++++++++++++++++++++++-------
arch/arm/mach-bcm283x/Kconfig | 3 +
arch/arm/mach-exynos/Kconfig | 1 +
arch/arm/mach-qemu/Kconfig | 6 ++
9 files changed, 153 insertions(+), 51 deletions(-)
--
2.25.1
More information about the U-Boot
mailing list