[ltp] hw configuration issues ˇPS2.EXE, adiós!

linux-thinkpad@www.bm-soft.com linux-thinkpad@www.bm-soft.com
Fri, 16 Feb 2001 23:04:36 -0800 (PST)


Hi all.

When I started playing with the new release of
IBM's modem driver (big thanks, you people at IBM), I quickly
found that resource (especially IRQ) conflicts are hard to avoid.
This means that frequently rebooting to dos and running PS2.EXE
was necessary (tpctl is great, but it permits only volatile
configuration of the serial port, IR and parallel port).

So thought I - but fortunately, I was WRONG.

Thanks to DAVID HINDS (bless him the great penguin)! The
pcmcia package already contains PNP-BIOS support 
(must be enabled when configuring/compiling the pcmcia
package) and the utilities "lspnp" and "setpnp".
CHECK THESE OUT.

   lspnp [-v] [-vv]

prints the actual configuration as well as all allowed
configurations of all ISA PNP devices. [Note that the 
pcmcia_core module must be loaded].

Using "setpnp", you can reconfigure interrupts, ioports
as needed, under linux.

You also can write your configurations to the BIOS, just
specify the '-b' option to 'setpnp'.

RTM.

Notes:

--- I found that certain changes _must_ be written to
the BIOS and require a reboot to be effective (although
they show up in lspnp -vv, they are not effective).
Other settings may well be changed on the fly, just
give it a try and YMMV. In general, it seems that
most resource settings can be changed, but it seems not
to be possible to enable devices that are disabled in the
bios without rebooting (setpnp -b can be used for that
purpose, though).

E.g., if you serial port is disabled in the bios
(PS2 SERA DISABLE), although it is possible to do

  setpnp xx ioport 0x3f8 irq 4

this wont really enable the port. However, it _is_ possible to do

  setpnp -b xx ioport 0x3f8 irq 4

and reboot. This still saves you one reboot and manipulating
the bios settings using lspnp/setpnp is more comfortable than
using PS2.EXE. Using "setpnp -b", you can enable all devices
and just turn their interrupt off. On the running system, you
may then selectively enable any interrupts needed, load and
configure drivers etc.

--- If you play with both, "tpctl" and "setpnp", both
tools will display inconsistent settings. It seems that each
tool displays its own settings only. The last one used
determines the effective settings, however.

--- If you modify your configuration in order to free resources
for being used by PC-cards, you must unload - reload the core
(i.e. essentially, the whole pcmcia module stack) module,
so it sees the new irqs.

--- It was easy to separate the pnp-bios stuff from the
rest of the pcmcia modules, i.e. move it to a separate
module [in case there is any interest: contact me].

--- Pnp-bios must be enabled in the "Easy-Setup" [I never
understood that stupid name for this reduced-feature setup].
This means, that the so called "Quick-boot" [another
braindamaged name] feature under "Config" must be enabled.

--- Another goodie: PS2.EXE wouldn't let you use the same
interrupt for IR and the serial port. However, as long as
you use the serial driver for both of them (using SIR,
"irattach" and the irtty line discipline), LINUX would
be / is capable of sharing one IRQ for serial/IR. "setpnp"
enables you to configure the hardware as needed :-)

--- Till.

-- 
   "The only real number is one, the rest are mere repetition."
                                             Vladimir Nabokov.

----- The Linux ThinkPad mailing list -----
The linux-thinkpad mailing list home page is at:
http://www.bm-soft.com/~bm/tp_mailing.html