Highlighted
Contributor
Contributor

Esxi 6.5, PCI.IDS and PCI passthrough with pci bridge

Hi, i am trying to configure an ESXI 6.5 to use some National Instrument PCI cards in a virtualized environment. I had a lot of problems so far, caused by the design of my system: The computer on which ESXI is installed is also the client machine which permit to use some P2V VM with National Instrument PCI carde using Passthru.

The structure work fine, I have acces to ESXI, my master VM, and my P2V VMs on the same machine (and the same screen).
I’m using a PCIe-Q370-r11 Motherboard with a PXE-13S-r50 backplane (8 Pci slots divided in two bridges, 4 Pcie slot.
Actually i’m using 4 pci and 2 pcie slots:
- Gpu Quadro P2000 and USB controller with passthrough to the master VM

- 4 National Instrument pci cards with passthrough to the P2V Vm.

Problem: Passthrough works fine on all VMs, I can start all of them. But on the P2V Vms, PCI cards don’t work. Windows know they’re here, drivers seems to be installed correctly, National Instrument software also detect them correctly.

When I go using lspci on my ESXI, those cards are marqued as  ´´Class FF00’´ (Unassigned class). They are all on the same PCI bridge. The cards names are correct, their ID seems OK too. But the cards Serial Number won’t show up in my VM.


I don’t get it why it’s behaving like this.
The PCI cards are not unknown to ESXI, but for some reason, they are not correctly used by VMs.

Maybe a problem with pci bridge's drivers? Or pci.ids incorrect?

If anybody had this issue before, i’ll be happy to hear it!

Thanks for reading the entire post with my terrible English level 

23 Replies
Highlighted
Contributor
Contributor

I was watching in this direction when I saw your last post :smileygrin:

Well, I'm working as system technician for 6 months only, so those configurations are far too advanced for me!

After checking my native WIN10 (same MB and backplane), it appears that there are 3 devices on the same address range: PCI-5412, PCI to PCI Bridge, and Intel Root Port 19, all sharing the same IRQ and memory address. So I guess I'll try to reproduce this configuration in my VM using the method in your last post Smiley Wink

0 Kudos
Highlighted
Contributor
Contributor

A few hours later...

It appears that modifying those parameters is impossible.

So I guess the only thing I can do now is to find a way to make my PCI Bridge "passthrough capable".

Problem is : Even in maintenance mode, the modification done in "esx.conf" isn not persistent. Once I reboot the host, "esx.conf" appears with the old setup.

As usual, information is rare on this subject (at least for 6.5 ) . Does it exist a way to make those changes persistent after reboot?

0 Kudos
Highlighted
Virtuoso
Virtuoso

This is a longshot, try uninstalling/reinstalling the NI software and drivers. This assumes the installation looks for the PCI card during installation and as previously the passthrough was lacking the virtualdev="pci" and it didn't find it and just set up default I/O addresses.

Did you also ask NI if there is a way to change/configure the 2 I/O addresses whether by registry or by modifying the INF file of the driver file and then reinstall the driver.

There is not a lot of documentation to go by. I see in the vmx executable strings pciPassthru.useActualBases but can't find any information about that setting. The name sounds a bit like a True/False setting that tells PCI passthrough to use the actual base address.

Was the PCI card on physical PC also using the same pairs of address ranges (0xFE.....)?

0 Kudos
Highlighted
Contributor
Contributor

Hi!

Uninstall/reinstall drivers and NI softwares doesn't work. Although, the "virtual.dev = pci" option seems not persistent, as each time I edit the vmx file, this line disappear on next edit.

NI won't help me with virtualization, as it's contrary to their company politic.

pciPassthru.useActualBases seems to have no effect when modified.

With native Win10(with no ESXI), address range is the same for the PCI-5412, PCI Bridge and Intel Root Port.

Thta's why I'm looking for a way to passthough the entire "device" pcie-to-pci-bridge to the VM, to get the same setup than on the native Win10.

Unfortunately this passthrough option is greyed out in my ESXI, which is a big problem, as i'm not able to modify the .conf file persistently.

0 Kudos