[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Passthrough device to QEMU without IOMMU split

From: Pandey, Prabhat Chand
Subject: Passthrough device to QEMU without IOMMU split
Date: Thu, 23 Jan 2020 04:38:57 +0000

Hello All,


I have 3 PCIe Endpoint devices, all are fall in the same IOMMU group.

I am using vfio-pci to passthrough PCIe devices, and QEMU version 4.2.

What I understood that if I wants to passthrough any devices, I need to bind all the devices

fall under the same IOMMU group to the vfio-pci, then only I will be able to launch QEMU.


I am able to passthrough all the 3 devices to the guest OS using below steps:

  1. echo 0000:00:14.1 > /sys/bus/pci/devices/0000\:00\:14.1/driver/unbind
  2. echo 0000:00:14.2 > /sys/bus/pci/devices/0000\:00\:14.2/driver/unbind
  3. echo 0000:00:14.0 > /sys/bus/pci/devices/0000\:00\:14.0/driver/unbind
  4. modprobe vfio-pci
  5. echo 8086 9d30 > /sys/bus/pci/drivers/vfio-pci/new_id
  6. echo 8086 9d31 > /sys/bus/pci/drivers/vfio-pci/new_id
  7. echo 8086 9d2f > /sys/bus/pci/drivers/vfio-pci/new_id
  8. Added devices into QEMU launch script:
  1. -device vfio-pci,host=00:14.0,id=xhci,addr=0x14.0,multifunction=on \
  2. -device vfio-pci=host=00:14.1,id=dwc3,addr=0x14.1 \
  1. Launch QEMU and it’s working fine.


But I just want to passthrough only 1 out of 3 devices from the same IOMMU group.

I have found 1 solution, i.e. split devices into multiple IOMMU group is solving this problem, below is the patch I used:



Now my question, Is there any other way to passthrough 1 devices out of 3 PCIe devices which all are there in a same IOMMU group, without splitting IOMMU group?

Like any flag in QEMU?



Prabhat Pandey

reply via email to

[Prev in Thread] Current Thread [Next in Thread]