[PATCH v2 0/3] Fix io accessors for KVM

Ilias Apalodimas ilias.apalodimas at linaro.org
Wed Jun 18 08:58:11 CEST 2025


Instructions that lead ito an exception in the hypervisor can't modify two
CPU registers at once for the ARM ISA.

These instructions cannot be emulated by KVM as they do not produce
syndrome information data that KVM can use to infer the destination
register, the faulting address, whether it was a load or store, or
if it's a 32 or 64 bit general-purpose register.
As a result an external abort is injected from QEMU, via ext_dabt_pending.

Patch #1 prepares some function for the modified macros
Patch #2 modifies the macros
Patch #3 enables the functionality for armv7/8 QEMU

Changes since v1:
- Split the function modification in its own patch
- Don't limit the changes to v8 only

Ilias Apalodimas (3):
  nxp: Prepare macros for KVM changes
  arm: io.h: Fix io accessors for KVM
  qemu: arm: Enable virtualizable IO accesors

 arch/arm/Kconfig             |  12 +++
 arch/arm/include/asm/io.h    | 152 ++++++++++++++++++++++++++---------
 configs/qemu_arm64_defconfig |   1 +
 configs/qemu_arm_defconfig   |   1 +
 drivers/spi/fsl_dspi.c       |   6 +-
 include/fsl_ifc.h            |  24 +++---
 6 files changed, 142 insertions(+), 54 deletions(-)

--
2.43.0



More information about the U-Boot mailing list