Developer's Daily | Unix by Example |
main | java | perl | unix | dev directory | web log |
isapnp.conf ? File format used by isapnp. |
/etc/isapnp.conf |
The isapnp.conf file is a configuration file for isapnp. isapnp.conf provides instructions for isapnp. This includes how to identify the cards present, and configuration information for each one. |
The file consists of comments and instructions. (ISOLATE) (VERBOSITY 2) (CONFLICT (IO FATAL)) (CONFIGURE DFX0000/1493 (LD 0 (IO 0 (BASE 0x3e8)) (ACT Y))) Instructions can be spread across many lines, and include comments if required. |
The file conceptually has three sections: |
Initialisation |
Which is the set of keywords associated with identifying the Plug-and-Play cards. These usually come at the beginning of the configuration file. |
Configuration |
Which is the set of keywords used to select a card and write values to its configuration registers. |
Tidy up |
Which is the set of keywords used to finish the Plug and Play configuration process. |
There are also some keywords for debugging purposes. |
There are two ways to initialise the configuration mechanism, corresponding to using pnpdump with and without the two optional parameters. |
BIOS does ISOLATION |
This method assumes the BIOS has already carried out the
isolation process, and allocated Card Select Numbers (CSNs)
to each card. (READPORT 0x3bb) (CSN 2) (IDENTIFY *) Using this method, and PEEK instructions instead of the
configuration setting instructions, it is possible to
examine the configuration of the Plug-and-Play cards,
without upsetting normal system operation. This can be
useful for example to check how the BIOS has configured the
hardware. (If you want to get really fancy, you could pipe
the output through a script to configure the kernel
driver(s) to match). |
isapnp does ISOLATION |
With this method, isapnp carries out the isolation
process. This will be required for example on those systems
without a Plug and Play BIOS, or with a broken BIOS. (ISOLATE) which will scan for a suitable readport address and
identify all the devices. You may still want to include
(IDENTIFY *) however, as it will printout the names of the
devices found. Putting a (READPORT xxx) before the (ISOLATE)
will prevent the scanning process. |
This is the core of the process. For each card to be
configured (not all need to be), it is first selected using
the CONFIGURE keyword. (Cards can be selected using the CSN
keyword, but the CSN numbers will change when Plug and Play
cards are added and removed, which could result in
configuration register settings going to the wrong
card). # Card 1: (serial identifier 13 0e 1e 37 b4 19 01 89 14) # EDI0119 Serial No 236861364 [checksum 13] # Version 1.0, Vendor version 1.0 # ANSI string -->PLUG & PLAY ETHERNET CARD<-- # Logical device id EDI0119 # Device support I/O range check register (CONFIGURE EDI0119/236861364 (LD 0 # Compatible device id PNP80d6 # Logical device decodes 10 bit IO address lines # Minimum IO base address 0x0240 # Maximum IO base address 0x03e0 # IO base alignment 32 bytes # Number of IO addresses required: 32 (IO 0 (BASE 0x0340)) # IRQ 3, 4, 5, 9, 10, 11, 12 or 15. # High true, edge sensitive interrupt (INT 0 (IRQ 10 (MODE +E))) # Memory is non-writeable (ROM) # Memory is non-cacheable # Memory decode supports high address # memory is 8-bit only # memory is shadowable # memory is an expansion ROM # Minimum memory base address 0x0c0000 # Maximum memory base address 0x0dc000 # Range base alignment mask 0xff4000 bytes # Range length 16384 bytes # Choose UPPER = Range, or UPPER = Upper limit to suit hardware # (MEM 0 (BASE 0x0c0000) (MODE bu) (UPPER 0x0c4000)) # (MEM 0 (BASE 0x0c0000) (MODE br) (UPPER 0x004000)) (ACT Y))) # End tag... Checksum 0x00 (OK) (CONFIGURE DFX0000/1493 (LD 0 (IO 0 (SIZE 8)(BASE 0x3e8)) (INT 0 (IRQ 11 (MODE +E))) (NAME "DFX0000/1493[0] --- Modem and Fax") (ACT Y))) |
This is just the keyword WAITFORKEY, which returns the
Plug and Play configuration mechanism to the Wait for
Key state. (WAITFORKEY) |
The following is a complete list of the keywords, showing the hierarchy of validity. CONFIGURE (or CSN) LD ACT PEEK DMA CHANNEL PEEK INT IRQ MODE PEEK IO BASE SIZE PEEK CHECK NAME MEM BASE MODE PEEK UPPER REG PEEK POKE CONFLICT IO IRQ DMA MEM DEBUG IDENTIFY IDENTIFY-FORMAT ISOLATE IGNORECRC READPORT VERBOSITY VERIFYLD WAITFORKEY |
In alphabetical order. The ... in the parentheses implies that the instruction is merely a selector of some sort, and further instructions are required to do something useful. |
(ACT arg) |
Context: within (LD ...). |
(BASE arg) |
Context: within (IO ...) or (MEM ...). |
(CHANNEL arg) |
Context: within (DMA ...). |
(CHECK) |
Context: within (IO ...). |
(CONFIGURE arg ...) |
Context: Global. |
(CONFLICT ...) |
Context: Global. (CONFLICT (DMA WARNING)(MEM WARNING)(IO WARNING)(IRQ WARNING)) |
(CSN arg ...) |
Context: Global. |
(DEBUG) |
Context: Global. |
(DMA arg ...) |
Context: within (LD ...). |
(IDENTIFY arg) |
Context: Global. |
(IDENTIFY-FORMAT arg) |
Context: Global. The following format escapes are recognised: |
(IGNORECRC) |
Context: Global. |
(INT arg ...) |
Context: within (LD ...). |
(IO arg ...) |
Context: within (LD ...). |
(IRQ arg ...) |
Context: within (INT ...). |
(ISOLATE arg) |
Context: Global. |
(LD arg ...) |
Context: within (CONFIGURE ...) or (CSN ...). |
(MEM arg ...) |
Context: within (LD ...). |
(MODE arg) |
Context: within (IRQ ...) or (MEM ...). |
(NAME arg) |
Context: within (LD ...). |
(PEEK) |
Context: within most register access keywords. |
This instruction causes the register value to be read and a suitable message output to stdout. VERBOSITY must be greater than 0 to see the output. |
(POKE arg) |
Context: within (REG ...). |
(READPORT arg) |
Context: Global. |
(REG arg ...) |
Context: within (LD ...). |
(SIZE arg) |
Context: within (IO ...). |
(UPPER arg) |
Context: within (MEM ...). |
(VERBOSITY arg) |
Context: Global. |
(VERIFYLD arg) |
Context: Global. |
(WAITFORKEY) |
Context: Global. |
Check http://www.roestock.demon.co.uk/isapnptools/ for latest information and FAQ. If you think you have found a problem not mentioned in the latest version, please send a report to isapnp@roestock.demon.co.uk. |
isapnp.conf has been written by Peter Fox <fox@roestock.demon.co.uk>, the creator and maintainer of isapnptools. |
The latest version of the sources may be obtained by ftp
from ftp://ftp.demon.co.uk/pub/unix/linux/utils |
Plug and Play ISA Specification, Version 1.0a, May 5, 1994. Available from ftp://ftp.microsoft.com/developr/drg/Plug-and-Play/Pnpspecs |
pnpdump(8), isapnp(8) |