Linux Step By Steps
ISAPNP-Programming

INTERFACE
ISOLATION
SERIAL NUMBER
RECORDS
DECODES
REGISTERS


ISAPNP The internals.

History:

In the beginning, IBM's micro channel architecture introduced the configuring of hardware without the use of dip switches and jumpers. This idea migrated to the IBM PC and klones as Plug And Play and became generic on the then standard ISA bus. Newer models of existing devices, such as modems, ethernet, and soundcards, began to be incorporated with plug and play features.

The characteristics of plug and play are automated on the newer PCI bus . On a pci bus, the pci cards themselves can arbitrate which resources to use between themselves. The hardware to do this is extra functionality is not present in isa hardware and so assistance is needed by software to determine a suitable configuration.

Most computers still accomodate ISA slots, and, of all the cards available for ISA, the majority are pnp, or can be made to be.

Background:

Instead of the often cryptic jumpering on older cards, and, instead of 'not knowing' what i/o address could be used, an isa pnp card will tell you which, of a range of possibilities, it can handle. In fact, a fully functioning isapnp card provides 3 separate resource configurations.

Configurations:

All ISAPNP cards provide at least one set of configuration data. In a mythical PNP joystick card, the configuration data could be as simple as stating it uses only one resource, io address 0x200 (the joystick port). It might be as complex as a soundblaster which provides multiple configuration sets, for multiple 'devices'. The pnp channel simply configures the device to respond on (and to) specific irq, dma, and io addresses, then plays no further part in the running of the card, or the system.

Devices:

Properly termed, 'logical devices'.  Any one card could have up to 256 'logical devices' but realistically only a small number exist.. All cards have at least one logical device. But, using the Soundblaster as an example, it normally has at least THREE logical devices, and, each one, is considered a separate functioning device as if each were on it's own separate card. Each 'device' on any card is treated uniquely.

Cards:

From the viewpoint of PNP, all pnp capable cards detected are assigned logically from 1 to 255. The card is told during initialisation, which 'logical card' it is. There could be 255 x 256 logical devices in any given mythical system.

Resources:

Resources are aspects of the hardware that make the card function in an IBM PC. As it applies to ISAPNP, the resources are

Only one of these resource types might be used by a given 'logical device'. Almost always, some range of IO address, at least, is specified, since isa cards generally, are designed as IO devices.