How does the system find the driver for pci device on

Hi,
I admit that, this query is not about driver code as such. but more about
the driver installation problem.

We are using 82580 ethernet controllers on our boards.
I am seeing a strange problem with installation only on windows server 2008
standard, 64-bit OS. installation does not find the sources/inf for
installation at all [Device manager shows as Driver not available]. Even
after searching using hdwwiz, in the driver folders supplied, is not
working. The device manager shows Hardware IDs as
PCI\VEN_8086\DEV_1516&SUBSYS_00008086&REV_01
PCI\VEN_8086\DEV_1516&SUBSYS_00008086
PCI\VEN_8086\DEV_1516&CC_020000
PCI\VEN_8086\DEV_1516&CC_0200

In the inf file, I see Hardware IDs
PCI\VEN_8086&DEV_1516&SUBSYS_12B18086
PCI\VEN_8086&DEV_1516&SUBSYS_12B28086

I can change Inf, making it PCI\VEN_8086&DEV_1516&00008086, and achieve
successful installation, but I am a little paranoid about changing a vendor
provided inf file.

What I found strange is that, on some of our other using the same ethernet
controller, installation works fine on same OS, i.e, windows server 2008
standard, 64-bit.

What could be the problem? how do I fix?

Madhusudan Narayan wrote:

I admit that, this query is not about driver code as such. but more
about the driver installation problem.

We are using 82580 ethernet controllers on our boards.

In the inf file, I see Hardware IDs
PCI\VEN_8086&DEV_1516&SUBSYS_12B18086
PCI\VEN_8086&DEV_1516&SUBSYS_12B28086

I can change Inf, making it PCI\VEN_8086&DEV_1516&00008086, and
achieve successful installation, but I am a little paranoid about
changing a vendor provided inf file.

What I found strange is that, on some of our other using the same
ethernet controller, installation works fine on same OS, i.e, windows
server 2008 standard, 64-bit.

What could be the problem? how do I fix?

Check \windows\inf\setupapi.dev.log and see what it has to say. You
should be able to search for your specific hardware ID and find error
information.


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

You need to program Subsys IDs into NVRAM for your ethernet controllers.

>I can change Inf, making it PCI\VEN_8086&DEV_1516&00008086, and achieve successful >installation, but I am a little paranoid about changing a vendor provided inf file.

You should check what is in the PCI configuration header in fields Subsytem ID/Subsystem Vendor ID
(offest 0x2c). I believe your device has 0x00008086 in these fields not 0x12B18086. The Device Manager shows exactly what it got from a PCI device.

Igor Sharovar

Thanks Grigora,
exactly, that was the problem.
I was under an impression that these fields are kind of hardwired or
readonly. I didn’t know that it is fetched from the eeprom. I edited the
eeprom with correct subsystem ID. Now the system detects and installs the
driver properly.

Thanks for the help.

Regards,
Madhusudan

On Thu, Feb 2, 2012 at 12:56 AM, wrote:

> You need to program Subsys IDs into NVRAM for your ethernet controllers.
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>