PCMCIA IRQ Routing on Windows XPUpdated: April 15, 2002
This article explains problems related to 16-bit PC Card devices that require ISA interrupts to operate and why vendors should move to support shareable PCI interrupts. It also explains how device vendors with devices or drivers that do not support sharable PCI can inform Microsoft Windows operating systems using an INF. The article also introduces Microsoft plans to require that 16-bit PC Card devices and drivers support shareable PCI interrupts in order to receive the "Designed for Windows" logo. On This Page
Introduction16-bit PC Card devices that require ISA interrupts cause significant problems for end users because, in some systems, CardBus controllers do not have an ISA interrupt connected to them. Therefore, such CardBus controllers cannot provide an ISA interrupt to devices inserted into CardBus slots. If a device appears that requires an ISA interrupt (which is relatively common for 16-bit PC Cards), the device cannot function and may cause system-wide problems, such as interrupt storms. This article explains this problem in detail. The long-term solution to this problem is to implement a proposed new logo requirement that would require all 16-bit PC Card devices to support shareable PCI interrupts. Note: Before the advent of CardBus, 16-bit PC Cards were connected to the system over a legacy PCMCIA bridge (also referred to as a PCIC bridge). These bridges are not capable of running CardBus cards or routing 16-bit PC Card devices to a PCI IRQ. The information in this article about routing to PCI interrupts does not apply to PCIC bridges. Types of PCMCIA DevicesThere are two classes of PCMCIA cards, both of which are supported by CardBus controllers:
Interrupt Routing for CardBus and 16-bit PC CardsCardBus cards are essentially PCI devices, and their interrupts are routed to PCI IRQs as defined by the PCI specification. 16-bit PC Cards were defined before the advent of PCI, and their interrupts were, therefore, typically routed to ISA IRQs. It is important to note that 16-bit PC Cards can also support routing interrupts to PCI. However, they have to meet the following two basic requirements in order to successfully use PCI interrupts instead of ISA interrupts.
System Configuration IssuesAlthough many 16-bit PC Card drivers do not successfully support interrupt sharing (and therefore require an ISA interrupt), there are system configurations on the market in which the CardBus controller is not connected to any ISA IRQ, and therefore, cannot provide an ISA interrupt to 16-bit PC Cards. Examples of configurations where CardBus controllers do not have a connection to an ISA interrupt include:
Because no ISA interrupts are available for CardBus controllers in these configurations, PCI interrupts are the only type of interrupts available. However, if a device that does not support PCI interrupts is inserted into a CardBus slot in this system, it will not function and may cause system-wide problems, such as an interrupt storm. Ideally, no device would require an ISA interrupt, and Windows could just assign shareable PCI interrupts to all 16-bit PC Cards. Microsoft is planning to require support for PCI interrupts in future versions of the "Designed for Windows" Logo requirements so that this problem can be avoided. INF OverridesIf Windows routes an interrupt from a 16-bit PC Card and that card does not support shareable PCI interrupts, then the system may stop responding. To avoid this problem, vendors should always support shareable PCI interrupts. If a device does not support shareable PCI interrupts, it should inform Windows using this INF override so that an interrupt storm can be avoided.
PcmciaExclusiveIrq:
HKR,,PcmciaExclusiveIrq,0x00010001,1 CAUTION: This INF setting effectively breaks this device for all bridges that have no ISA IRQs detached. Use this setting only when it is absolutely certain that the device cannot function on a shared PCI IRQ. Logo Requirement TimelineAs stated earlier in this article, future planned logo requirements will require all 16-bit PC Card devices to support shareable PCI interrupts. This is a proposed logo requirement and will take effect 18 months after the formal requirement is published. Note to 16-bit PC Card vendors: In the same timeline, your devices will be required to support flexible allocation of I/O resources for your devices. That is, 16-bit PC Card devices will not be allowed to request specific ranges of I/O space, but will only be allowed to request a specific amount of I/O space. Resources and Call to ActionCall to Action:
Feedback: Resources:
|
|
