Hello, I have a deployment that looks like the following:
- Linux Hypervisor host (KVM backed) - QEMU emulator version 9.2.0 - 6.13.6-arch1-1 I have successfully passed through a NIC in the past (NetXtreme BCM5720) with the following method: - Map Vendor/Product ID to vfio - ensure card is owned by vfio-pci driver - passthrough via qemu script For some odd reason, this connects 4-LX is not working with two interesting side effects depending what I passthrough. Scenario 1 - Passthrough physical port —— When I passthrough a physical port, I receive the following in startup: mcx0 at pci2 dev 0 function 0 "Mellanox ConnectX-4 Lx" rev 0x00: unable to map register memory I am assuming that I am failing this check: https://github.com/openbsd/src/blob/bda32853b08c72fc3eb0808fd3758afa7c71d447/sys/dev/pci/if_mcx.c#L2756C2-L2764C1https://github.com/openbsd/src/blob/bda32853b08c72fc3eb0808fd3758afa7c71d447/sys/dev/pci/if_mcx.c#L2756C2-L2764C1 I attempted to use UKC prompt to map memory with no success. Scenario 2 - Passthrough virtual function — When I passthrough a virtual function, startup output shows the virtual function and the NIC, but I fail to get any connectivity despite carrier saying active. When I use the same method to passthrough VFs, on Linux guests, this works! It is only OpenBSD that is impacted. I would ideally like to get BOTH of these methods of passthrough working. I have had issues with qemu and OpenBSD in the past, so I can test various versions, kernels, and alternate methods. Any assistance would be appreciated. Thank you! - Max Power
