It is not possible to use the same configuration file on multiple machines with these earlier versions of isapnptools.
However, it is possible to concoct something with a few scripts etc. The key is to split off each board's configuration into it's own file, then use an empty run of isapnp with just an IDENTIFY to discover which board configurations need to be used. Here is what I said to someone with this problem:
I suggest you run isapnp twice (or more!):
If you do this, it may be advisable to fix the READPORT in all four scripts.
Using this method, you could have an individual script for each board, and if you named them by the compacted ident, you could get a list of files to configure thus:
BOARDS=`isapnp probe.conf | grep '^Board' | cut -c22,23,25,26,28,29,31,32,34,35,37,38,40,41,43,44,46,47` for board in $BOARDS do isapnp $board.conf done
where probe.conf is little more than
(READPORT 0x3bb) # or whatever (ISOLATE) (IDENTIFY *) (WAITFORKEY)
Note that if you were to use this method with isapnptools version 1.12 or later, you could skip the grep and cut by using an appropriate IDENTIFYFORMAT command.
And each of the board scripts fit the following skeleton:
(READPORT 0x3bb) # or whatever (CSN 10) # or whatever (IDENTIFY *) (CONFIGURE ....) (WAITFORKEY)
With version 1.12 and later, CONFIGURE blocks for boards not present will be skipped, so you can just have a single file containing the configurations for all boards in all systems.
If you have machines with the same or similar setup of PnP cards,
then this can be further optimised by having a single configuration
for each type of card, using
#1,#2,etc instead of the real serial
numbers. Any systems with a non-standard setup could be overridden by
specifying the card's full serial number.
Is there a way to issue a "Reset CSN Command", as described in Section 4.3 (p15) of the "Plug and Play ISA Specification 1.0a" using isapnptools?
Sure, just poke the register using the REG command: after selecting a device and logical device (it doesn't matter which !) do
(REG 2 (POKE 4))
See section A.1 on page 51 also.
This might be a good use for CSN, as in
(CSN 1 (LD 0 (REG 2 (POKE 4))))
You may have to reconfigure the cards again afterwards if you want to fiddle with the PnP registers.
For isapnptools up to 1.15 you can modify the Makefile to uncomment the line
PNPDUMPFLAGS += -DDUMPREGS
this will cause pnpdump will dump all the standard configuration registers for each board.
For isapnptools 1.16 and later, just give the option --dumpregs to pnpdump to get this dump.
Note that this dump is dumping the physical registers, and will thus show the settings that have been put in there by the BIOS, or some cards will put a default setting in. Unused registers read back as 0.
But for example, the missing two IO resources on an AWE32 have been reported to show up this way.
It is also handy to check that isapnp has done the right thing.
The following shell script will display a list of ISA PnP boards in your system:
#!/bin/bash cat << _EOT | isapnp - #(DEBUG) (IGNORECRC) (IDENTIFY-FORMAT "\"%v/%s\"\n" ) (ISOLATE PRESERVE) (IDENTIFY *) (WAITFORKEY) _EOT
on my system this gives: