[Q]Virtual PCI Driver and DTM PCIHCT test case

Hello everyone,

I am executing pcihct windows certification test case but that case failed with 4 error. Actually, I am not sure, why DTM added this case because there is no hardware however virtual driver using pci interface for communication/processing.

Anyway, my driver has *probably* missing pci specs but I don’t know how can I handle them. Missing specs are related with below;

  • PCI Function @ 0.2.0 (PCI function at location 00000000.02.00)
  • Common Header registers (Header Type Register)
  • Header Type-0 specific registers (Subsystem ID and Subsystem Vendor ID Registers)
  • Message Signaled Interrupts Capability (MSI Control Register)

I guess this test case is necessary for certification so how can I debug or handle these missing specification? Any idea/suggestion and example it would be great.

Cheers

xxxxx@gmail.com wrote:

I am executing pcihct windows certification test case but that case failed with 4 error. Actually, I am not sure, why DTM added this case because there is no hardware however virtual driver using pci interface for communication/processing.

What? If there is no hardware, how can PCI possibly by involved? I’m
afraid you need you describe your situation more completely.

Anyway, my driver has *probably* missing pci specs but I don’t know how can I handle them.

Your driver doesn’t handle PCI specs at all. Hardware does that.

Missing specs are related with below;

  • PCI Function @ 0.2.0 (PCI function at location 00000000.02.00)
  • Common Header registers (Header Type Register)
  • Header Type-0 specific registers (Subsystem ID and Subsystem Vendor ID Registers)
  • Message Signaled Interrupts Capability (MSI Control Register)

I guess this test case is necessary for certification so how can I debug or handle these missing specification? Any idea/suggestion and example it would be great.

If you have a piece of PCI hardware, you must meet the PCI specs to pass
WHQL. If you do not have a piece of PCI hardware, then how does WHQL
decide to run PCI tests on your device?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim,

First of all thanks for your post.

In briefly, our system has a type 1 *commercial/homemade* Hypervisor application like Xen also Windows running on that. Hypervisor allocates all hardware resources and specifically assigns each OS. Our virtual driver has a vendor id and hardware id than .inf file has already reserved that kind of information to DTM.

I am did not write this driver but now I am owner of the driver project. I saw some PCI related source piece in the project like PPCI_COMMON_HEADER, PPCI_CAPABILITIES_HEADER, PCI_CAPABILITY_ID_MSI, and PCI_CAPABILITY_ID_VENDOR_SPECIFIC.

So I guess this section is not enough for PCI compliance test I think I have to need some of another checks for this but I am not sure how can I catch them.

Cheers

xxxxx@gmail.com wrote:

In briefly, our system has a type 1 *commercial/homemade* Hypervisor application like Xen also Windows running on that. Hypervisor allocates all hardware resources and specifically assigns each OS. Our virtual driver has a vendor id and hardware id than .inf file has already reserved that kind of information to DTM.

I am did not write this driver but now I am owner of the driver project. I saw some PCI related source piece in the project like PPCI_COMMON_HEADER, PPCI_CAPABILITIES_HEADER, PCI_CAPABILITY_ID_MSI, and PCI_CAPABILITY_ID_VENDOR_SPECIFIC.

So I guess this section is not enough for PCI compliance test I think I have to need some of another checks for this but I am not sure how can I catch them.

I’m getting out of my depth here, but I don’t think it is complaining
about your driver. I think it is complaining about the virtualized
device underneath your driver. Remember that WHQL is not just a
software test. Besides testing your driver, it also tests your hardware
to make sure it works as expected. It uses some tricks to bypass your
driver and talk directly to the bus driver.

The DTM logs should have more detail about exactly which operations failed.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Tim thank you very much for your suggestion.

This issue *probably* releated with Hypervisor layer,also WHQL errors point to virtual hardware not equal with PCI bus specs.

Have a good weekend :slight_smile:

Cheers