Hello,
I have an HP DL380p gen8 with ESXi 5.1.0 u1. The machine has a PCI-E riser board with a custom PCI-E card called "VP Mark IV" made and used by a relatively small company. The card is shown with "lspci" or "esxcli hardware pci list". The esxcli command tells me the card is not passthru capable. No matter what I try, I cannot get it to show up in the list of passthru devices.
Since the card is behind a PCI bridge I have disabled the ACS check: "esxcfg-advcfg –k TRUE disableACSCheck"
My question:
1) I want to pass this device to one guest OS. Does VMware need a driver for this card to be able to pass it through?
2) How does VMware determine if a device is passthru capable?
3) Any other idea's what is the problem here?
I have attached a document with outputs of:
lspci -vp
esxcli hardware pci list
cat /etc/vmware/esx.conf
Just to let you all know that we have reprogrammed the device class and now PCI passthru works!
new device class:
Device Class: 0x1180
Device Class Name: Signal processing controller
Problem fixed.
Also I have just tried another very specific PCI-E card which shows passthrough capable straight out of the box. It is in the same machine, same slot on riser board, same config.
Question 4:
I was wondering if this could have to do with different PCI-E versions of the boards, as the card that I am trying is an earlier PCI-E version (trying to find out which version exactly)?
Another thing we noticed about the card that is not passthru capable is that the device class s set to bridge.
Could it be that VMware looks at this, thinks it is a bridge device and therefore not passthru capable?
And if so does anybody know:
5) A way to force VMware to ignore the device class?
6)a way to change this (peek/poke registers) from within the ESXi environment so we can set the card to another device class?
Extract of "esxcli hardware pci list"
Device Class: 0x0680
Device Class Name: Bridge
In the mean time I have tried many other PCI-E cards and all seem to be passthru capable.
Next week we should have the chip on that "VP Mark IV" card reprogrammed with a new device class. It would have been nice to try the same card on KVM to see what it does. At least on KVM I would be able to use "setpci" command to temporary change the device class myself.
This is the first time I am on the VMware forums and I am a bit surprised by the lack of replies on this thread. It is probably to the non-generic nature of this problem. Anyways I will report back as soon as we have set a new device class on that PCI board...
Just to let you all know that we have reprogrammed the device class and now PCI passthru works!
new device class:
Device Class: 0x1180
Device Class Name: Signal processing controller
Problem fixed.
Great news and thanks for reporting back.
I think you are right about the lack of responses, its probably because the specific nature of the problem.
// Linjo