Driver PCI returned invalid ID for a child device


We have the same issue which was posted here (a long time ago):

We compared the configuration spaces of a machine with and without the
error message in the event viewer (event ID 56).

We see a difference in the command/status register (enable parity error
response bit and enable system error (SERR) bit). In case of the error
message in the event viewer logging, these bits were NOT set. The other
difference is in the cache line size register.

We can not imagine these differences are the cause for the error log
message. Even if the difference in the command/status register causes the
error log message we expected the bits were set.

Could anyone point us into the right direction which leads us to the root
cause? By the way, we developed the driver code our self.

With kind regards,

Frank van Eijkelenburg

When you see that error, check the device tree in Device MAnager. See if your device got enumerated or there is Unknown Device instead. If there is Unknown Device, check its hardware ID.

Your hardware may be reporting invalid VID/PID/SSID in config reads…

Thank you for your response.

The device manager is ok (no unknown devices for our cards). Besides, the card is functioning properly. It is only the error log message in the event viewer which looks a bit strange. This error message is shown before the information log message from out driver which logs it starts successfully. Could it be a timing issue?

The VID and PID are correct, but about the SSID I am not sure. Is it mandatory to use this field and should it be unique for each driver instance (out pcie card contains four data channels and for each channel a driver is installed).

Best regards,

Frank van Eijkelenburg

SSID is the vendor-specific ID of a board based on a chip with given VID/PID.
CHeck if you have serial number descriptor. The serial number should be different for all devices with the given device ID, even for PCIe functions on the single chip.

I checked the SSID and it is the same as the PID.

About the serial number, isn’t this an optional field? And if this is used in a wrong way, why would one PC complain while another doesn’t?

The PC with the error messages in the event viewer contains four of our pcie boards. When I remove three of them, there are no error messages anymore. As soon as I insert more than one pcie board the errors messages appear. Per pcie board there are four drivers used (4 PCIe endpoints exists on the board and they are behind a pcie switch chip on the same board).

Best regards,

Frank van Eijkelenburg

What instance IDs do you see in the hardware (ENUM\PCI) key?

If I take the first six entries from the device manager: