Microsoft KB Archive/170922

= How PCI Devices Are Detected and Why They May Fail =

Article ID: 170922

Article Last Modified on 10/31/2006

-

APPLIES TO


 * Microsoft Windows NT Workstation 3.51
 * Microsoft Windows NT Workstation 4.0 Developer Edition
 * Microsoft Windows NT Server 3.51
 * Microsoft Windows NT Server 4.0 Standard Edition

-



This article was previously published under Q170922



SUMMARY
This article attempts to:
 * Explain, on a high level, how PCI devices are detected.


 * Explain why some PCI devices are not detected or hang the computer.


 * Explain how the computer determines which PCI devices are assigned which interrupt requests (IRQ).

NOTE: Windows NT expects all devices to be configured correctly before it attempts to start so that it can load the appropriate driver for each device. Windows NT does not utilize the Plug and Play specification; therefore, it cannot dynamically reassign an IRQ.



MORE INFORMATION
This article is divided into the following sections:
 * PCI Overview and Interrupt Assignment


 * Troubleshooting

PCI Overview and Interrupt Assignment
The PCI specification allows the motherboard manufacturer to determine interrupt assignments. Because there is no single method to assign an IRQ to a PCI device, you may experience problems installing multiple PCI devices in Windows NT.

Programmable Interrupt Controller (PIC):

Every motherboard has a device called the Programmable Interrupt Controller (PIC). This is the central location all devices must use when they wish to be serviced by the central processing unit (CPU). The following is an example of one design:

  PCI Int#A (PCI Slot 1)---      |===============| |    |Programmable   | PCI Int#A (PCI Slot 2)-|              | Interrupt Line to CPU |    |Interrupt      |========> PCI Int#A (PCI Slot 3)---     |               | |Controller    | |===============|

A problem with this design is that three PCI devices must share the same interrupt number and line. If any of the cards do not properly pass the interrupt (driver or hardware failure) to one of the other devices requesting attention, one of the cards may fail to be detected or will not be used by a driver.

The following is an example of a newer design:

  PCI Int#A (PCI Slot 1)--|==============| |Programmable | PCI Int#A (PCI Slot 2)--|             | Interrupt Line to CPU |Interrupt    |========> PCI Int#A (PCI Slot 3)--|             | |Controller   | |==============|

Because each device has their own direct trace to the PIC, this design allows the PIC to assign a different IRQ for each PCI device. This allows assigning virtual IRQ's or allowing each device to have its own discrete IRQ.

Troubleshooting
If the computer fails to boot, there is probably a hardware issue. Please contact the hardware manufacturer for more information.

Perform one of the following steps if the computer boots, but Windows NT states a device failed:
 * Click the Start button, point to Programs, point to Administrative Tools, click Windows NT Diagnostics, click the Resources tab, and then click IRQ.

If all PCI devices in question appear with their own separate IRQ's, but your system shows them as sharing an IRQ, the problem is most likely system related. Please check with your hardware manufacturer to see if a BIOS upgrade is available.
 * Install the last PCI device that fails, but do not install its driver. If the computer fails, it is most likely a hardware issue that should be resolved with the manufacturer.
 * If possible, remove all PCI devices and install them in the reverse order to see if IRQ sharing performs better. You can also try changing the slots where the cards are installed.

For additional information, please see the following article in the Microsoft Knowledge Base:

148501 Preventing PCI Resource Conflicts on Intel-Based Computers

Additional query words: hardware apic

Keywords: kbhowto kbinfo kbsetup KB170922

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.