Hello,
I need to pass through the PCIe bus to Linux VM via io and uvmm servers.
First, I generated the corresponding dtb file from qemu for virt machine to get the exact pcie device node.

$ qemu-system-aarch64 -nographic -machine virt,virtualization=true,dumpdtb=conf/arm_virt-64-full.dtb
$ dtc -I dtb -O dts conf/arm_virt-64-full.dtb

Secondly, I copied the following nodes to my dts file (pcie@10000000, intc@8000000 and v2m@8020000) exactly as they are in the original dts file.
Finally, I modified the ned scripts as mentioned in the comments of the pcie_ecam.cc file.

The issue is that there is no IO driver for the device v2m@8020000 which is responsible for msi-controller.
This device is needed for the PCIe.

The error logs : 
VMM[PCIe ctl]: PCIe host bridge pcie@10000000 refers to invalid MSI controller: MSI parent is not an MSI controller
VMM[HW PCI dev]: No MSI-X controller available for MSI-X device pci_bus[1] (devid=1)
VMM[HW PCI dev]: No MSI-X controller available for MSI-X device pci_bus[2] (devid=2).
VMM[ioproxy]: No corresponding IO resource for 'v2m@8020000'.reg[0] (0x8020000-0x8020fff).
VMM[vm]: Device creation for v2m@8020000 failed. Disabling device.

How can I pass through the PCIe device if there is no IO driver for the needed msi-controller ? 

Thanks in advance,
Regards
--
Mohamed Dawod
Software Engineer, Cairo Egypt



Driving Innovation! Visit our website www.avelabs.com, to read Avelabs Confidentiality Notice, follow this link: http://www.avelabs.com/email/disclaimer.html