version 1, including all changes.
.
Rev |
Author |
# |
Line |
1 |
perry |
1 |
PNPDUMP |
|
|
2 |
!!!PNPDUMP |
|
|
3 |
NAME |
|
|
4 |
SYNOPSIS |
|
|
5 |
DESCRIPTION |
|
|
6 |
FILES |
|
|
7 |
BUGS |
|
|
8 |
WARNING |
|
|
9 |
AUTHOR |
|
|
10 |
AVAILABILITY |
|
|
11 |
REFERENCES |
|
|
12 |
SEE ALSO |
|
|
13 |
---- |
|
|
14 |
!!NAME |
|
|
15 |
|
|
|
16 |
|
|
|
17 |
pnpdump - Dump ISA Plug-And-Play devices resource information |
|
|
18 |
!!SYNOPSIS |
|
|
19 |
|
|
|
20 |
|
|
|
21 |
__pnpdump__ [[ --help ] [[ --config ] [[ |
|
|
22 |
--script[[=outputfile] ] [[ --reset ] [[ --ignorecsum ] [[ |
|
|
23 |
--masks ] [[ --dumpregs ] [[ --max-realtime=''t'' ] [[ |
|
|
24 |
--version ] [[ --debug-isolate ] [[ --outputfile=outputfile] [[ |
|
|
25 |
[[ ''devs'' ] ''readport'' ] |
|
|
26 |
!!DESCRIPTION |
|
|
27 |
|
|
|
28 |
|
|
|
29 |
__pnpdump__ will scan all the ISA PnP cards, dumping |
|
|
30 |
their resource data to ''stdout''. The resource data is |
|
|
31 |
supposed to be a description of the resources (IO ports, |
|
|
32 |
interrupts, DMA channels) that the card would like, or |
|
|
33 |
needs, to use to work. It is stored in a small ROM on the |
|
|
34 |
card, which can be read as part of the Plug and Play |
|
|
35 |
configuration process. |
|
|
36 |
|
|
|
37 |
|
|
|
38 |
Note that some manufacturers are rather lax about the |
|
|
39 |
contents of this ROM, particularly if the card is not |
|
|
40 |
required for booting, so the resource data may not be |
|
|
41 |
accurate. As they also typically provide a DOS/Windows |
|
|
42 |
driver for the card, they really only need to be able to |
|
|
43 |
recognise it, as the driver can then complete the |
|
|
44 |
configuration. |
|
|
45 |
|
|
|
46 |
|
|
|
47 |
The output of __pnpdump__ is in a form that can be used |
|
|
48 |
by __isapnp__, except that the actual configuration |
|
|
49 |
statements are commented out. See __isapnp.conf(5)__ for |
|
|
50 |
details of the format. |
|
|
51 |
|
|
|
52 |
|
|
|
53 |
By default, __pnpdump__ will reset all the Card Serial |
|
|
54 |
Numbers, then ISOLATE each one and allocate it a handle |
|
|
55 |
(Card Select Number). This process will include trying |
|
|
56 |
different ''readport'' addresses until a suitable one is |
|
|
57 |
found avoiding conflicts with other hardware. For a |
|
|
58 |
description of what the ''readport'' is, see the relevant |
|
|
59 |
entry in __isapnp.conf(5)__. As of the isapnptools 1.12 |
|
|
60 |
release, any existing configuration settings will be |
|
|
61 |
unaffected. |
|
|
62 |
|
|
|
63 |
|
|
|
64 |
If a single parameter is provided, this will be used as the |
|
|
65 |
minimum ''readport'' address to start scanning. This may |
|
|
66 |
be chosen to avoid an unfortunate conflict. |
|
|
67 |
|
|
|
68 |
|
|
|
69 |
To skip the Isolation process, both additional parameters |
|
|
70 |
may be supplied: |
|
|
71 |
|
|
|
72 |
|
|
|
73 |
__Parameters__ |
|
|
74 |
|
|
|
75 |
|
|
|
76 |
''devs'' is the ''number of PnP cards'' that the BIOS |
|
|
77 |
has found, |
|
|
78 |
|
|
|
79 |
|
|
|
80 |
ISOLATEd and allocated CSNs to in the system. Note that if |
|
|
81 |
this is greater than the actual number of cards in the |
|
|
82 |
system, pnpdump will stop scanning when it receives a first |
|
|
83 |
serial identifier byte of 0xff (this is what happens when |
|
|
84 |
there isn't a card with that CSN). |
|
|
85 |
|
|
|
86 |
|
|
|
87 |
If this parameter is provided, then __pnpdump__ will not |
|
|
88 |
ISOLATE each card and assign CSNs, however, the |
|
|
89 |
''readport'' provided must be the same as the one the |
|
|
90 |
BIOS used. This could be difficult to determine if it is not |
|
|
91 |
assigned via a BIOS setup screen. |
|
|
92 |
|
|
|
93 |
|
|
|
94 |
''readport'' is the address of the ''readport'' to use |
|
|
95 |
for the |
|
|
96 |
|
|
|
97 |
|
|
|
98 |
Plug-And-Play access. The number base is determined by the |
|
|
99 |
format: a leading ''0x'' implies hex, a leading ''0'' |
|
|
100 |
implies octal, otherwise decimal is assumed. |
|
|
101 |
|
|
|
102 |
|
|
|
103 |
The address of the ''readport'' must be chosen to avoid |
|
|
104 |
any conflicts with existing (non Plug and Play) hardware, |
|
|
105 |
and must be in the range 0x203..0x3ff. |
|
|
106 |
|
|
|
107 |
|
|
|
108 |
If the ''readport'' is specified without ''devs'', |
|
|
109 |
then this is the minimum ''readport'' to use when |
|
|
110 |
scanning for a suitable one. |
|
|
111 |
|
|
|
112 |
|
|
|
113 |
Note that for the two parameter option to work, you must |
|
|
114 |
have a PnP BIOS which has already carried out the ISOLATION |
|
|
115 |
process correctly, and you must know what ''readport'' |
|
|
116 |
address the BIOS used. |
|
|
117 |
|
|
|
118 |
|
|
|
119 |
__pnpdump__ will run with real-time scheduling if |
|
|
120 |
possible to achieve the required IO timings. This will lock |
|
|
121 |
out all normal programs while it executes. In version 1.19 |
|
|
122 |
and later of __isapnptools__, __pnpdump__ will only |
|
|
123 |
run in this mode for 5 seconds (or as set on the command |
|
|
124 |
line), it then reverts to standard scheduling like any other |
|
|
125 |
program. Previous versions should only be run from a |
|
|
126 |
standard console as ^C will kill it from there. If you run |
|
|
127 |
the command remotely (and X counts as remote), you will not |
|
|
128 |
be able to kill it as no other programs can |
|
|
129 |
run. |
|
|
130 |
|
|
|
131 |
|
|
|
132 |
__Options__ |
|
|
133 |
|
|
|
134 |
|
|
|
135 |
''-h, --help'' |
|
|
136 |
|
|
|
137 |
|
|
|
138 |
Show a help summary. |
|
|
139 |
|
|
|
140 |
|
|
|
141 |
''-c, --config'' |
|
|
142 |
|
|
|
143 |
|
|
|
144 |
attempt to determine safe settings to which the devices can |
|
|
145 |
be set, and uncomment those settings in the output. pnpdump |
|
|
146 |
will use information in the /proc filesystem and the |
|
|
147 |
contents of the /etc/isapnp.gone file to discover system |
|
|
148 |
resources that have already been allocated, if these |
|
|
149 |
facilities are available on the system. |
|
|
150 |
|
|
|
151 |
|
|
|
152 |
Note that if the resource allocation is impossible, pnpdump |
|
|
153 |
is not intelligent enough to realise this and may hang |
|
|
154 |
trying to find a solution. |
|
|
155 |
|
|
|
156 |
|
|
|
157 |
''-d, --dumpregs'' |
|
|
158 |
|
|
|
159 |
|
|
|
160 |
this will cause pnpdump will dump all the standard |
|
|
161 |
configuration registers for each board. |
|
|
162 |
|
|
|
163 |
|
|
|
164 |
Note that this dump is dumping the physical registers, and |
|
|
165 |
will thus show the settings that have been put in there by |
|
|
166 |
the BIOS, or some cards will put a default setting in. |
|
|
167 |
Unused registers read back as 0. |
|
|
168 |
|
|
|
169 |
|
|
|
170 |
''-D, --debug-isolate'' |
|
|
171 |
|
|
|
172 |
|
|
|
173 |
this will cause pnpdump to output loads of extra |
|
|
174 |
information, showing the actual data received during the |
|
|
175 |
isolation process. You'll probably need the ISAPnP spec to |
|
|
176 |
work out what it means. |
|
|
177 |
|
|
|
178 |
|
|
|
179 |
''-i, --ignorecsum'' |
|
|
180 |
|
|
|
181 |
|
|
|
182 |
this will cause pnpdump will ignore checksum errors when |
|
|
183 |
deciding if the readport address is good. Section 3.3.2 of |
|
|
184 |
the spec suggests that a bad checksum should cause the |
|
|
185 |
''readport'' to be rejected. In reality, it seems to be |
|
|
186 |
possible for the checksum to be bad for reasons other than a |
|
|
187 |
''readport'' address conflict, and in this situation all |
|
|
188 |
''readport'' addresses will be rejected resulting in no |
|
|
189 |
boards found. |
|
|
190 |
|
|
|
191 |
|
|
|
192 |
Using this flag allows the boards to still be found. Boards |
|
|
193 |
with a bad identifier checksum will have the identifier |
|
|
194 |
corrected by the resource data if the resource data |
|
|
195 |
identifier has a good checksum. |
|
|
196 |
|
|
|
197 |
|
|
|
198 |
''-r, --reset'' |
|
|
199 |
|
|
|
200 |
|
|
|
201 |
Carry out a full configuration reset, rather than just |
|
|
202 |
resetting the CSNs. __DANGEROUS__ as this could reset PnP |
|
|
203 |
boards in active use by the kernel, resulting in a lockup or |
|
|
204 |
worse. |
|
|
205 |
|
|
|
206 |
|
|
|
207 |
''-m, --masks'' |
|
|
208 |
|
|
|
209 |
|
|
|
210 |
Print the lists of acceptable interrupts and direct memory |
|
|
211 |
access (DMA) channels as binary bitmasks. For example, print |
|
|
212 |
|
|
|
213 |
|
|
|
214 |
''-o, --outputfile=filename'' |
|
|
215 |
|
|
|
216 |
|
|
|
217 |
write all output to the file specified, rather than stdout. |
|
|
218 |
This option is not available in the DOS |
|
|
219 |
version. |
|
|
220 |
|
|
|
221 |
|
|
|
222 |
''-t t, --max-realtime=t'' |
|
|
223 |
|
|
|
224 |
|
|
|
225 |
Set the maximum time the process can run at real-time |
|
|
226 |
priority to ''t'' seconds. If ''t'' is set to 0, the |
|
|
227 |
timeout is disabled; in this case you __must__ run the |
|
|
228 |
program from a normal text console to allow it to be aborted |
|
|
229 |
via control-C if it hangs. The default timeout is 5 seconds. |
|
|
230 |
After the timeout has expired, the process runs with normal |
|
|
231 |
scheduling, which means it may go a lot slower, but will |
|
|
232 |
prevent locking up the comupter (if it hangs while running |
|
|
233 |
under X windows for example). This option is only available |
|
|
234 |
when compiled with real time scheduling |
|
|
235 |
support. |
|
|
236 |
|
|
|
237 |
|
|
|
238 |
''-s, --script[[=outputscript]'' |
|
|
239 |
|
|
|
240 |
|
|
|
241 |
write a shell script to the specified file that can be used |
|
|
242 |
to configure the system based on what ISA PnP boards were |
|
|
243 |
found and how they were configured. Note that the script |
|
|
244 |
generated uses array variables, so you need bash version 2 |
|
|
245 |
and later to run them. This option is not available in the |
|
|
246 |
DOS version. |
|
|
247 |
|
|
|
248 |
|
|
|
249 |
If --script is specified without an argument, then the |
|
|
250 |
script is piped (using popen) directly into a shell (sh) |
|
|
251 |
process. This is really useful only with |
|
|
252 |
--config. |
|
|
253 |
|
|
|
254 |
|
|
|
255 |
For each card, the script tries to execute the shell script |
|
|
256 |
/etc/pnp/config-scripts/isa/PRODUCT_ID or, failing that, |
|
|
257 |
/usr/share/pnp/config-scripts/isa/PRODUCT_ID. The generated |
|
|
258 |
shell script will try the compatible device ID's if any can |
|
|
259 |
any are in the ISA PnP information and no script for the |
|
|
260 |
device itself can be found. |
|
|
261 |
|
|
|
262 |
|
|
|
263 |
The /usr/share directory contents are the standard location, |
|
|
264 |
while the /etc directory is for you to put your customized |
|
|
265 |
versions of these scripts. You should write these shell |
|
|
266 |
scripts to generate the file /etc/conf.modules.isapnp at |
|
|
267 |
boot time, and then do something like |
|
|
268 |
|
|
|
269 |
|
|
|
270 |
''-v, --version'' |
|
|
271 |
|
|
|
272 |
|
|
|
273 |
Print the isapnptools version number on stderr. |
|
|
274 |
!!FILES |
|
|
275 |
|
|
|
276 |
|
|
|
277 |
/sbin/pnpdump |
|
|
278 |
|
|
|
279 |
|
|
|
280 |
The executable. |
|
|
281 |
|
|
|
282 |
|
|
|
283 |
/etc/isapnp.conf |
|
|
284 |
|
|
|
285 |
|
|
|
286 |
The resting place of the editted output. |
|
|
287 |
/etc/isapnp.gone The standard place for describing |
|
|
288 |
resources that are unavailable, but not flagged as such in |
|
|
289 |
/proc/* etc. The format of this file is explained in the |
|
|
290 |
example provided with __isapnptools__. |
|
|
291 |
!!BUGS |
|
|
292 |
|
|
|
293 |
|
|
|
294 |
If the resource allocation is impossible, pnpdump -c is not |
|
|
295 |
intelligent enough to realise this and may hang trying to |
|
|
296 |
find a solution. |
|
|
297 |
|
|
|
298 |
|
|
|
299 |
Check http://www.roestock.demon.co.uk/isapnptools/ for |
|
|
300 |
latest information and FAQ. |
|
|
301 |
|
|
|
302 |
|
|
|
303 |
If you think you have found one not mentioned in the latest |
|
|
304 |
version, please send a report to |
|
|
305 |
isapnp@roestock.demon.co.uk. |
|
|
306 |
!!WARNING |
|
|
307 |
|
|
|
308 |
|
|
|
309 |
This program can reset all your Plug-and-Play devices. It |
|
|
310 |
can also lock up your machine. Use at your own |
|
|
311 |
risk. |
|
|
312 |
!!AUTHOR |
|
|
313 |
|
|
|
314 |
|
|
|
315 |
__pnpdump__ has been written by Peter Fox |
|
|
316 |
__ |
|
|
317 |
!!AVAILABILITY |
|
|
318 |
|
|
|
319 |
|
|
|
320 |
The latest version of the sources may be obtained by ftp |
|
|
321 |
from ftp://ftp.demon.co.uk/pub/unix/linux/utils |
|
|
322 |
Or follow the pointer from my web page at |
|
|
323 |
http://www.roestock.demon.co.uk/isapnptools/ |
|
|
324 |
!!REFERENCES |
|
|
325 |
|
|
|
326 |
|
|
|
327 |
Plug and Play ISA Specification, Version 1.0a, May 5, 1994. |
|
|
328 |
Available from |
|
|
329 |
ftp://ftp.microsoft.com/developr/drg/Plug-and-Play/Pnpspecs |
|
|
330 |
!!SEE ALSO |
|
|
331 |
|
|
|
332 |
|
|
|
333 |
isapnp(8), isapnp.conf(5) |
|
|
334 |
---- |