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