Plug and Play ISA Device Requirements

This section includes additional requirements for ISA cards, including requirements for design implementations that appear only as recommendations in the ISA specification, to ensure that such cards will perform correctly under Windows.

The information in this section is provided for manufacturers of ISA devices who want to ensure that their devices are completely compatible with Plug and Play operating systems.

For more details, see the Plug and Play ISA specification.

2. ISA device complies with Plug and Play ISA standards
Required

Any card or bus that implements Plug and Play ISA must fully implement the standards defined in the Plug and Play ISA Specification, Version 1.0a. This specification also defines the requirements for a unique ID for each ISA device. The unique ID is used to identify the device for Plug and Play configuration.

3. Option ROMs are used only on cards with boot devices
Required

This requirement applies only for x86-based systems. Option ROMs must be used only on cards that contain boot devices.

Cards with option ROMs must not hook the primary boot interrupts (Int 9h, Int 10h, Int 13h, Int 18h, and Int 19h) until the system calls the boot connection vector in the selected option ROM expansion header.

For cards with option ROMs, the default configuration must be able to be disabled after the card has been isolated.

4. Implement full 16-bit I/O address decode logic
Required

This circuit can be simple enough to limit I/O addresses to the 0h to 3FFh range, or it can be flexible enough to use the upper address regions. For more information, see the “Basic PC 98” chapter in Part 2 of this guide.

5. ISA device and driver support IRQ sharing if resource requirements cannot be met
Required

This requirement does not apply for Windows NT drivers. This is a requirement only if the device cannot meet the PC 97 resource requirements (as defined for the particular device class in the related chapter in Part 4 of PC 97 Hardware Design Guide). This requirement applies only for devices of the same class, not across device classes.

To share IRQs, the following requirements must be met:

  • The IRQ line must be pulled high by the system board.

  • The IRQ line must never be driven high by the devices.

  • To signal an interrupt, devices must pull the IRQ line low for a minimum of 100 nanoseconds and then release it. The interrupt is signaled by the rising edge that occurs as a result of the pull-up on the IRQ line.

  • The drivers for all devices connected to the IRQ line must correctly support the interrupt-sharing services of the virtual programmable interrupt controller device (VpicD). This means that after dispatching an interrupt from VpicD, the drivers must respond to VpicD and correctly indicate whether they actually processed an interrupt for their devices. VpicD will ensure that all devices with pending interrupts have been serviced before returning from the interrupt.

  • IRQ sharing support implemented in the device driver for servicing interrupts.

6. Unimplemented registers return a deterministic value when read

Required

Any unimplemented registers in the range 00h–2Fh must return a deterministic value when they are read. Unimplemented configuration registers must return the “disabled” or “unused” value (not necessarily 0) when they are read.

7. Each ISA card provides complete and correct identifiers
Required

In the Plug and Play ISA specification, it is required that a Plug and Play card have both an industry-unique Vendor ID (acquired by sending e-mail to pnpid@microsoft.com) and a company-unique Product ID (assigned by the manufacturer). The specification requires that this Product ID be unique among all Plug and Play ISA cards manufactured by that company. This means each product (for example, fax card, display adapter, sound adapter, and so on) and every model (for example, 14.4 fax, 28.8 fax, and so on) from the same manufacturer must have different product identifiers.

This is a requirement because it allows the operating system to isolate and identify these different cards. The user must never have a Plug and Play card that cannot be identified because it cannot be distinguished from other models of cards from the same manufacturer. The use of a unique Product ID does not solve the problems that occur when a user installs two of the same cards in a PC system.

In those cases, the user might install a Plug and Play card but will not receive indication that it was installed and the card will not work. For this purpose, the Plug and Play ISA specification defines a unique serial-number field that can be added to the Vendor and Product IDs to make the card completely unique. A board-unique number in the serial-number field is required for ISA devices included on a system.

8. ISA system board devices are reported through the BIOS or use unique Serial ID
Required

A peripheral ISA device implemented on the system board can use a fixed Serial ID (which is not unique) if the device is reported through the BIOS.

If the system board device participates in the Plug and Play ISA isolation scheme (rather than being reported through the BIOS), then it must meet the same requirements for a unique Serial ID as for an add-on card.

Notice that it is possible that an add-on card containing an ISA chip might be added to a PC system that contains the same chip on the system board. In such a case, the add-on device will be found only if it has a different Serial ID.

9. IDs using PNP suffix are allowed only in the Compatible Device ID field
Required

Device IDs that use the three-character PNP suffix are allowed only in the Compatible Device ID field and cannot be used as Device ID or Logical Device ID fields. The exception would be the device to which the PNP-based ID was originally assigned.

Resource data describe what resources must be available for each logical device on the card (for example, number of available IRQ numbers, address ranges of memory, and so on). Resource data can be stored in the same nonvolatile storage device (such as a serial ROM) that contains the serial identifier. The resource data in the nonvolatile storage device must be sequentially loaded into the resource data register (04h).

The content of the nonvolatile storage device must be programmed with the information the system needs to interpret which resources the card requires. The structure of the data contained in the storage device is variable, depending on what resources are needed.

The resource data for a Plug and Play ISA card can be read while the card is in the Config state. This card can enter the Config state either after it has been isolated during the isolation sequence or whenever it receives a Wake (Card Select Number [CSN]) software command in which the CSN matches the CSN assigned to the card. Only one card at a time can be in the Config state.

10. Option ROMs correctly support boot devices
Required

Plug and Play ISA expansion cards that contain boot devices require some special considerations to properly boot the system. For PC 97, the system must implement support for Plug and Play ISA boot devices and option ROMs as described in the Plug and Play BIOS specification.

The types of devices required for the boot process include the primary input device (usually a keyboard), the primary output device (usually a display adapter and monitor), and any Initial Program Load (IPL) devices.

Any Plug and Play ISA expansion card that provides a boot function must be active when the system powers up. This gives non-Plug and Play systems the means for using Plug and Play ISA devices during a legacy boot process. In this case, a non-Plug and Play system BIOS will not perform the isolation sequence but will instead perform a ROM scan to detect the presence of a boot device. After the ROM scan detects the presence of an option ROM on the boot device, the system ROM will jump to the option ROM to initialize the device. The Plug and Play option ROM on the card will detect that the system BIOS is not Plug and Play-compatible and will respond accordingly. Although an initial set of static resources must be provided during this legacy boot, the Plug and Play ISA card must be capable of changing these resources using the standard Plug and Play ISA isolation and configuration process.

As required in the Plug and Play ISA specification, resource usage of a card is always reflected in the card’s configuration registers. This information allows Windows 95 to easily determine the default settings of a Plug and Play boot device. The default settings can then be overridden by the operating system with full cooperation of the device driver.