1. Introduction

The ISA bus is the most popular expansion standard in the PC industry. The bus architecture requires the allocation of memory and I/O address spaces, DMA channels and interrupt levels among multiple ISA cards. However, the ISA interface has no defined hardware or software mechanism for allocating these resources. As a result, configuration of ISA cards is typically done with "jumpers" that change the decode maps for memory and I/O space and steer the DMA and interrupt signals to different pins on the bus. Further, system configuration files may need to be updated to reflect these changes. Users typically resolve sharing conflicts by referring to documentation provided by each card manufacturer. For the average user, this configuration process can be unreliable and frustrating.

Alternative bus standards (for example, Micro Channel and EISA) have hardware and software mechanisms to identify the resources requested by a card and resolve conflicts. These mechanisms are not compatible with the installed base of PCs with ISA card slots.

This specification proposes a hardware and software mechanism for incorporation in the next generation of ISA cards, referred to as Plug and Play ISA cards, that enables resolution of conflicts between Plug and Play ISA cards. In other words, the Plug and Play software optimally allocates system resources between the Plug and Play ISA cards and other devices in the system without user intervention.

In a system that uses only Plug and Play ISA cards, it will be possible to achieve full auto- configuration. However, it is recognized that the current generation or standard ISA cards will co-exist with Plug and Play ISA cards in the same system. In such systems, the configuration solution needs to be augmented in the BIOS and/or operating system to manage and arbitrate ISA bus resources. User interaction may still be necessary in some cases.

This specification defines mechanisms that each Plug and Play ISA card must implement to support identification, resource usage determination, conflict detection, and conflict resolution. This specification also presents a process for Plug and Play software to automatically configure the new cards without user intervention.