Interrupt Controller Failure
Explanation: The system has detected an error associated with the interrupt controller or controllers on the system motherboard.
Some background
Device interrupts are fed to the processor using a special piece of hardware called an interrupt controller. The standard for this device is the original Intel 8259 interrupt controller, and has been since the development of early PCs. As with most of these dedicated controllers, in modern motherboards the 8259 is, in most cases, incorporated into a larger chip as part of the chipset.
The interrupt controller has 8 input lines that take requests from one of 8 different devices. The controller then passes the request on to the processor, telling it which device issued the request (which interrupt number triggered the request, from 0 to 7). The original AT and XT had one of these controllers, and hence supported interrupts 0 to 7 only.
Starting with the IBM AT, a second interrupt controller was added to the system to expand it; this was part of the expansion of the ISA system bus from 8 to 16 bits. In order to ensure compatibility the designers of the AT didn’t want to change the single interrupt line going to the processor, so they decided to cascade the two interrupt controllers together.
The first interrupt controller still has 8 inputs and a single output going to the processor. The second one has the same design, but it takes 8 new inputs and its output feeds into input line 2 of the first controller. If any of the inputs on the second controller become active, the output from that controller triggers interrupt #2 on the first controller, which then signals the processor.
So what happens to IRQ #2? That line is now being used to cascade the second controller, so the designers of the original AT changed the wiring on the motherboard to send any devices that used IRQ2 over to IRQ9 instead. What this means is that any older devices that used IRQ2 now use IRQ9, and if you set any device to use IRQ2 on an AT or later system, it is really using IRQ9.
Devices designed to use IRQ2 as a primary setting are rare in today’s systems, since IRQ2 has been out of use for over 10 years or more. In most cases IRQ2 is just considered unusable, while IRQ9 is a regular, usable interrupt line. Some modems for example, still offer the use of IRQ2 as a way to get around the fact that COM3 and COM4 share interrupts with COM1 and COM2 by default. You may need to do this if you have a lot of devices contending for the low-numbered IRQs, a common occurrence.
If you select IRQ2 on a device such as a modem, IRQ9 will really be used instead. Any software that uses the device needs to be told that it is using IRQ9, not IRQ2. Also, if you do this, you cannot use IRQ9 for any other device. You should never attempt to use IRQ2 if you are already using IRQ9, and vice-versa.
Diagnosis: Although this problem is nearly always a motherboard problem, it can also be caused by a bad expansion card as well. If the interrupt controller number is supplied as part of the error message, that might help you narrow down the interrupt request line where the problem was detected. Keep in mind that IRQ controller #1 handles all of the IRQs, some directly and others indirectly via controller #2. IRQ controller #2 handles IRQs 8 through 15.
Recommendation:
- Start your troubleshooting as though this was an expansion card issue. If your rule this out as a possibility, then take a hard look at the motherboard.
- While you can troubleshoot the motherboard, if the controller has gone bad, it cannot be repaired unless the motherboard is sent back to the manufacturer. You may want to consider purchasing a replacement.
Notice: Windows® 95, Windows® 98, Windows® NT, Windows® 2000 and Microsoft® Office are registered trademarks or trademarks of the Microsoft Corporation.
All other trademarks are the property of their respective owners.