VMware Cloud Community
virtualizemyhap
Contributor
Contributor
Jump to solution

PCI-E card passthru

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

Tags (4)
0 Kudos
1 Solution

Accepted Solutions
virtualizemyhap
Contributor
Contributor
Jump to solution

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.

View solution in original post

0 Kudos
5 Replies
virtualizemyhap
Contributor
Contributor
Jump to solution

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)?

0 Kudos
virtualizemyhap
Contributor
Contributor
Jump to solution

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

0 Kudos
virtualizemyhap
Contributor
Contributor
Jump to solution

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...

0 Kudos
virtualizemyhap
Contributor
Contributor
Jump to solution

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.

0 Kudos
Linjo
Leadership
Leadership
Jump to solution

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

Best regards, Linjo Please follow me on twitter: @viewgeek If you find this information useful, please award points for "correct" or "helpful".
0 Kudos