Replace the VIRTIO_IOMMU_F_BYPASS feature with
VIRTIO_IOMMU_F_BYPASS_CONFIG, which enables a config space bit to switch
global bypass on and off.
Add a boot-bypass option, which defaults to 'on' to be in line with
other vIOMMUs and to allow running firmware/bootloader that are unaware
of the IOMMU. x86 doesn't need a workaround to boot with virtio-iommu
anymore.
Since v1 [1]:
* The specification [2] and Linux header [3] changes have been merged
* Patch 1 pulls in the whole Linux header changes, in order to
get the virtio_iommu.h update
* Reset bypass on system reset, and other fixes suggested by Eric
* Added a simple test, patch 4, that checks the boot bypass value
[1] https://lore.kernel.org/qemu-devel/20210930185050.262759-1-jean-philippe@linaro.org/
[2] https://github.com/oasis-tcs/virtio-spec/issues/119
[3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=063ebb19d962
Jean-Philippe Brucker (4):
linux-headers: update to v5.17-rc1
virtio-iommu: Default to bypass during boot
virtio-iommu: Support bypass domain
tests/qtest/virtio-iommu-test: Check bypass config
include/hw/virtio/virtio-iommu.h | 1 +
include/standard-headers/asm-x86/kvm_para.h | 1 +
include/standard-headers/drm/drm_fourcc.h | 11 ++
include/standard-headers/linux/ethtool.h | 1 +
include/standard-headers/linux/fuse.h | 60 +++++++-
include/standard-headers/linux/pci_regs.h | 142 +++++++++---------
include/standard-headers/linux/virtio_gpio.h | 72 +++++++++
include/standard-headers/linux/virtio_i2c.h | 47 ++++++
include/standard-headers/linux/virtio_iommu.h | 8 +-
.../standard-headers/linux/virtio_pcidev.h | 65 ++++++++
include/standard-headers/linux/virtio_scmi.h | 24 +++
linux-headers/asm-generic/unistd.h | 5 +-
linux-headers/asm-mips/unistd_n32.h | 2 +
linux-headers/asm-mips/unistd_n64.h | 2 +
linux-headers/asm-mips/unistd_o32.h | 2 +
linux-headers/asm-powerpc/unistd_32.h | 2 +
linux-headers/asm-powerpc/unistd_64.h | 2 +
linux-headers/asm-riscv/bitsperlong.h | 14 ++
linux-headers/asm-riscv/mman.h | 1 +
linux-headers/asm-riscv/unistd.h | 44 ++++++
linux-headers/asm-s390/unistd_32.h | 2 +
linux-headers/asm-s390/unistd_64.h | 2 +
linux-headers/asm-x86/kvm.h | 16 +-
linux-headers/asm-x86/unistd_32.h | 1 +
linux-headers/asm-x86/unistd_64.h | 1 +
linux-headers/asm-x86/unistd_x32.h | 1 +
linux-headers/linux/kvm.h | 17 +++
hw/virtio/virtio-iommu.c | 83 +++++++++-
tests/qtest/virtio-iommu-test.c | 2 +
hw/virtio/trace-events | 4 +-
30 files changed, 552 insertions(+), 83 deletions(-)
create mode 100644 include/standard-headers/linux/virtio_gpio.h
create mode 100644 include/standard-headers/linux/virtio_i2c.h
create mode 100644 include/standard-headers/linux/virtio_pcidev.h
create mode 100644 include/standard-headers/linux/virtio_scmi.h
create mode 100644 linux-headers/asm-riscv/bitsperlong.h
create mode 100644 linux-headers/asm-riscv/mman.h
create mode 100644 linux-headers/asm-riscv/unistd.h
--
2.34.1