Comment 13 for bug 1576347

Revision history for this message
Marshall Porter (meoporter) wrote :

Hello, I can also confirm that if you have a series of NVMe devices, at first when just the OVMF boot menu has loaded, using qemu with a -monitor and typing 'info pci', it appears that all are given valid bus addresses.

However, once the Windows 10 x64 installer iso loads, it seems that every other NVMe device stays initialized correctly, but the ones in-between switch to a 0xfffff... bus address. So, for example, with 6 devices, numbers 1,3,5 will get initialized and recognized by the Windows installer, and 2,4,6 will not. Not sure if this clue helps identify this a qemu or Windows issue or not, but I thought it was worth noting.

Also, I found that an alternative way to getting two or more NVMe devices successfully recognized by Windows is to use multiple root PCIe devices like so:

qemu-system-x86_64 \
-enable-kvm \
-machine pc-q35-2.11,accel=kvm \
-nodefaults \
...
-device pcie-root-port,id=pcie_r0,bus=pcie.0,chassis=0,slot=0 \
-device nvme,drive=disk0,serial=serial0,bus=pcie_r0 \
-drive id=disk0,if=none,media=disk,cache=none,aio=native,format=raw,discard=unmap,file=/opt/os.raw \
-device pcie-root-port,id=pcie_r1,bus=pcie.0,chassis=0,slot=1 \
-device nvme,drive=disk1,serial=serial1,bus=pcie_r1 \
-drive id=disk1,if=none,media=disk,cache=none,aio=native,format=raw,discard=unmap,file=/opt/data.raw \