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

Jerome Forissier jerome.forissier at linaro.org
Wed Jun 18 13:03:39 CEST 2025



On 6/18/25 08:58, Ilias Apalodimas wrote:
> 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

Again, IMHO this is more complex than necessary because you're combining
the KVM fix with some code refactoring. Patch #1 can be dropped altogether
and patch #2 can be simplified (from "2 files changed, 123 insertions(+),
39 deletions(-)" to "2 files changed, 97 insertions(+)". Unless I missed
something? Please see [1]. Of course it also passes the LVM test ;)

[1] https://source.denx.de/u-boot/custodians/u-boot-net/-/pipelines/26751.

-- 
Jerome

> 
> 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