linux: Enable PCI passthrough for QEMU

Message ID 1fa0c74d-4dc5-9e12-4c09-73db1278cbf3@ipfire.org
State Accepted
Commit 38a5d03f590f5c7438f9c3abc77580df486e1f6e
Headers
Series linux: Enable PCI passthrough for QEMU |

Commit Message

Peter Müller Aug. 2, 2022, 4:01 p.m. UTC
  Fixes: #12754
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
---
 config/kernel/kernel.config.aarch64-ipfire | 12 +++++++++++-
 config/kernel/kernel.config.armv6l-ipfire  | 12 +++++++++++-
 config/kernel/kernel.config.riscv64-ipfire | 12 +++++++++++-
 config/kernel/kernel.config.x86_64-ipfire  | 12 +++++++++++-
 4 files changed, 44 insertions(+), 4 deletions(-)
  

Comments

Michael Tremer Aug. 3, 2022, 8:28 a.m. UTC | #1
Reviewed-by: Michael Tremer <michael.tremer@ipfire.org>

> On 2 Aug 2022, at 17:01, Peter Müller <peter.mueller@ipfire.org> wrote:
> 
> Fixes: #12754
> Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
> ---
> config/kernel/kernel.config.aarch64-ipfire | 12 +++++++++++-
> config/kernel/kernel.config.armv6l-ipfire  | 12 +++++++++++-
> config/kernel/kernel.config.riscv64-ipfire | 12 +++++++++++-
> config/kernel/kernel.config.x86_64-ipfire  | 12 +++++++++++-
> 4 files changed, 44 insertions(+), 4 deletions(-)
> 
> diff --git a/config/kernel/kernel.config.aarch64-ipfire b/config/kernel/kernel.config.aarch64-ipfire
> index 9232335ff..123679467 100644
> --- a/config/kernel/kernel.config.aarch64-ipfire
> +++ b/config/kernel/kernel.config.aarch64-ipfire
> @@ -6740,7 +6740,17 @@ CONFIG_UIO=m
> # CONFIG_UIO_NETX is not set
> # CONFIG_UIO_PRUSS is not set
> # CONFIG_UIO_MF624 is not set
> -# CONFIG_VFIO is not set
> +CONFIG_VFIO=m
> +CONFIG_VFIO_IOMMU_TYPE1=m
> +CONFIG_VFIO_VIRQFD=m
> +# CONFIG_VFIO_NOIOMMU is not set
> +CONFIG_VFIO_PCI_CORE=m
> +CONFIG_VFIO_PCI_MMAP=y
> +CONFIG_VFIO_PCI_INTX=y
> +CONFIG_VFIO_PCI=m
> +CONFIG_VFIO_PCI_VGA=y
> +CONFIG_VFIO_PCI_IGD=y
> +# CONFIG_VFIO_MDEV is not set
> CONFIG_VIRT_DRIVERS=y
> CONFIG_VIRTIO=y
> CONFIG_VIRTIO_PCI_LIB=y
> diff --git a/config/kernel/kernel.config.armv6l-ipfire b/config/kernel/kernel.config.armv6l-ipfire
> index dc0aee51b..ac1d9749c 100644
> --- a/config/kernel/kernel.config.armv6l-ipfire
> +++ b/config/kernel/kernel.config.armv6l-ipfire
> @@ -6747,7 +6747,17 @@ CONFIG_UIO=m
> # CONFIG_UIO_NETX is not set
> # CONFIG_UIO_PRUSS is not set
> # CONFIG_UIO_MF624 is not set
> -# CONFIG_VFIO is not set
> +CONFIG_VFIO=m
> +CONFIG_VFIO_IOMMU_TYPE1=m
> +CONFIG_VFIO_VIRQFD=m
> +# CONFIG_VFIO_NOIOMMU is not set
> +CONFIG_VFIO_PCI_CORE=m
> +CONFIG_VFIO_PCI_MMAP=y
> +CONFIG_VFIO_PCI_INTX=y
> +CONFIG_VFIO_PCI=m
> +CONFIG_VFIO_PCI_VGA=y
> +CONFIG_VFIO_PCI_IGD=y
> +# CONFIG_VFIO_MDEV is not set
> CONFIG_VIRT_DRIVERS=y
> CONFIG_VIRTIO=m
> CONFIG_VIRTIO_MENU=y
> diff --git a/config/kernel/kernel.config.riscv64-ipfire b/config/kernel/kernel.config.riscv64-ipfire
> index 0801f4389..c379447e7 100644
> --- a/config/kernel/kernel.config.riscv64-ipfire
> +++ b/config/kernel/kernel.config.riscv64-ipfire
> @@ -5590,7 +5590,17 @@ CONFIG_UIO_PCI_GENERIC=m
> # CONFIG_UIO_NETX is not set
> # CONFIG_UIO_PRUSS is not set
> # CONFIG_UIO_MF624 is not set
> -# CONFIG_VFIO is not set
> +CONFIG_VFIO=m
> +CONFIG_VFIO_IOMMU_TYPE1=m
> +CONFIG_VFIO_VIRQFD=m
> +# CONFIG_VFIO_NOIOMMU is not set
> +CONFIG_VFIO_PCI_CORE=m
> +CONFIG_VFIO_PCI_MMAP=y
> +CONFIG_VFIO_PCI_INTX=y
> +CONFIG_VFIO_PCI=m
> +CONFIG_VFIO_PCI_VGA=y
> +CONFIG_VFIO_PCI_IGD=y
> +# CONFIG_VFIO_MDEV is not set
> CONFIG_VIRT_DRIVERS=y
> CONFIG_VIRTIO=y
> CONFIG_VIRTIO_PCI_LIB=y
> diff --git a/config/kernel/kernel.config.x86_64-ipfire b/config/kernel/kernel.config.x86_64-ipfire
> index 40975b5fc..fc68e47b1 100644
> --- a/config/kernel/kernel.config.x86_64-ipfire
> +++ b/config/kernel/kernel.config.x86_64-ipfire
> @@ -6241,7 +6241,17 @@ CONFIG_UIO_PCI_GENERIC=m
> # CONFIG_UIO_PRUSS is not set
> # CONFIG_UIO_MF624 is not set
> CONFIG_UIO_HV_GENERIC=m
> -# CONFIG_VFIO is not set
> +CONFIG_VFIO=m
> +CONFIG_VFIO_IOMMU_TYPE1=m
> +CONFIG_VFIO_VIRQFD=m
> +# CONFIG_VFIO_NOIOMMU is not set
> +CONFIG_VFIO_PCI_CORE=m
> +CONFIG_VFIO_PCI_MMAP=y
> +CONFIG_VFIO_PCI_INTX=y
> +CONFIG_VFIO_PCI=m
> +CONFIG_VFIO_PCI_VGA=y
> +CONFIG_VFIO_PCI_IGD=y
> +# CONFIG_VFIO_MDEV is not set
> CONFIG_IRQ_BYPASS_MANAGER=m
> CONFIG_VIRT_DRIVERS=y
> # CONFIG_VBOXGUEST is not set
> -- 
> 2.35.3
  

Patch

diff --git a/config/kernel/kernel.config.aarch64-ipfire b/config/kernel/kernel.config.aarch64-ipfire
index 9232335ff..123679467 100644
--- a/config/kernel/kernel.config.aarch64-ipfire
+++ b/config/kernel/kernel.config.aarch64-ipfire
@@ -6740,7 +6740,17 @@  CONFIG_UIO=m
 # CONFIG_UIO_NETX is not set
 # CONFIG_UIO_PRUSS is not set
 # CONFIG_UIO_MF624 is not set
-# CONFIG_VFIO is not set
+CONFIG_VFIO=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_VIRQFD=m
+# CONFIG_VFIO_NOIOMMU is not set
+CONFIG_VFIO_PCI_CORE=m
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_IGD=y
+# CONFIG_VFIO_MDEV is not set
 CONFIG_VIRT_DRIVERS=y
 CONFIG_VIRTIO=y
 CONFIG_VIRTIO_PCI_LIB=y
diff --git a/config/kernel/kernel.config.armv6l-ipfire b/config/kernel/kernel.config.armv6l-ipfire
index dc0aee51b..ac1d9749c 100644
--- a/config/kernel/kernel.config.armv6l-ipfire
+++ b/config/kernel/kernel.config.armv6l-ipfire
@@ -6747,7 +6747,17 @@  CONFIG_UIO=m
 # CONFIG_UIO_NETX is not set
 # CONFIG_UIO_PRUSS is not set
 # CONFIG_UIO_MF624 is not set
-# CONFIG_VFIO is not set
+CONFIG_VFIO=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_VIRQFD=m
+# CONFIG_VFIO_NOIOMMU is not set
+CONFIG_VFIO_PCI_CORE=m
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_IGD=y
+# CONFIG_VFIO_MDEV is not set
 CONFIG_VIRT_DRIVERS=y
 CONFIG_VIRTIO=m
 CONFIG_VIRTIO_MENU=y
diff --git a/config/kernel/kernel.config.riscv64-ipfire b/config/kernel/kernel.config.riscv64-ipfire
index 0801f4389..c379447e7 100644
--- a/config/kernel/kernel.config.riscv64-ipfire
+++ b/config/kernel/kernel.config.riscv64-ipfire
@@ -5590,7 +5590,17 @@  CONFIG_UIO_PCI_GENERIC=m
 # CONFIG_UIO_NETX is not set
 # CONFIG_UIO_PRUSS is not set
 # CONFIG_UIO_MF624 is not set
-# CONFIG_VFIO is not set
+CONFIG_VFIO=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_VIRQFD=m
+# CONFIG_VFIO_NOIOMMU is not set
+CONFIG_VFIO_PCI_CORE=m
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_IGD=y
+# CONFIG_VFIO_MDEV is not set
 CONFIG_VIRT_DRIVERS=y
 CONFIG_VIRTIO=y
 CONFIG_VIRTIO_PCI_LIB=y
diff --git a/config/kernel/kernel.config.x86_64-ipfire b/config/kernel/kernel.config.x86_64-ipfire
index 40975b5fc..fc68e47b1 100644
--- a/config/kernel/kernel.config.x86_64-ipfire
+++ b/config/kernel/kernel.config.x86_64-ipfire
@@ -6241,7 +6241,17 @@  CONFIG_UIO_PCI_GENERIC=m
 # CONFIG_UIO_PRUSS is not set
 # CONFIG_UIO_MF624 is not set
 CONFIG_UIO_HV_GENERIC=m
-# CONFIG_VFIO is not set
+CONFIG_VFIO=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_VIRQFD=m
+# CONFIG_VFIO_NOIOMMU is not set
+CONFIG_VFIO_PCI_CORE=m
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_IGD=y
+# CONFIG_VFIO_MDEV is not set
 CONFIG_IRQ_BYPASS_MANAGER=m
 CONFIG_VIRT_DRIVERS=y
 # CONFIG_VBOXGUEST is not set