This RFC patch series is the QEMU side of a GPIO Pass-Through prototype
for Renesas R-Car platforms using vfio-platform. Together with its
counterpart for Linux, it provides direct access from a QEMU+KVM guest
to a GPIO controller in an R-Car Gen3 SoC. This allows the guest to
control the LEDs on a Renesas Salvator-X(S) board.
This patch series is not meant to be upstreamed as-is. Indeed, for
various reasons (e.g. security, as the different GPIOs on the same GPIO
controller may control different parts of the system) access to GPIOs is
better not implemented using Device Pass-Through, but by
paravirtualization. Yet, this is still a simple and valuable
proof-of-concept, which can serve as a basis for the future development
of Pass-Through support for more complex platform devices on R-Car Gen3
- Patches 1-2 (submitted before by Eric Auger) make the vfio-platform
device non-abstract, incl. matching using a compatible string.
- Patch 3 allows dynamic sysbus devices again, without needing to
create device-specific vfio types for each and every new device.
- Patch 4 (submitted before by Xiao Feng Ren) adds support for the
VFIO No-IOMMU mode, which was added to Linux two years ago (in
- Patch 5 adds code to instantiate device nodes for Renesas R-Car Gen3
Several questions and TODOs are appended to the individual patches.
Please see https://elinux.org/R-Car/Virtualization/VFIO for full usage
instructions of this prototype.
Thanks for your comments!
Auger Eric (2):
vfio/platform: make the vfio-platform device non abstract
hw/arm/sysbus-fdt: Allow device matching with compat string
Geert Uytterhoeven (2):
hw/arm/virt: Allow dynamic sysbus devices again
hw/arm/sysbus-fdt: Enable rcar-gen3-gpio dynamic instatiation
Xiao Feng Ren (1):
vfio: No-IOMMU mode support
hw/arm/sysbus-fdt.c | 108 +++++++++++++++++++++++++++++++++++-----
hw/arm/virt.c | 1 +
hw/vfio/common.c | 61 ++++++++++++++++++-----
hw/vfio/platform.c | 20 +++++++-
include/hw/vfio/vfio-common.h | 2 +
include/hw/vfio/vfio-platform.h | 2 +
6 files changed, 166 insertions(+), 28 deletions(-)
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds