420 lines
23 KiB
HTML
420 lines
23 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
|
|
<TITLE> Plug-and-Play-HOWTO: How to Deal with PnP Cards</TITLE>
|
|
<LINK HREF="Plug-and-Play-HOWTO-5.html" REL=next>
|
|
<LINK HREF="Plug-and-Play-HOWTO-3.html" REL=previous>
|
|
<LINK HREF="Plug-and-Play-HOWTO.html#toc4" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="Plug-and-Play-HOWTO-5.html">Next</A>
|
|
<A HREF="Plug-and-Play-HOWTO-3.html">Previous</A>
|
|
<A HREF="Plug-and-Play-HOWTO.html#toc4">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s4">4.</A> <A HREF="Plug-and-Play-HOWTO.html#toc4">How to Deal with PnP Cards</A></H2>
|
|
|
|
<H2><A NAME="ss4.1">4.1</A> <A HREF="Plug-and-Play-HOWTO.html#toc4.1">Introduction to Dealing with PnP Devices </A>
|
|
</H2>
|
|
|
|
<P> Today almost all new internal boards (cards) are Plug-and-Play
|
|
(PnP). Thus, the configuring of bus-resources should, in almost all
|
|
cases be entirely automatic. If a device is not working, see if it
|
|
was detected, possibly by rebooting. If the device driver can't
|
|
resource-configure it, then hopefully one or more of methods 2-6 will:</P>
|
|
<P>
|
|
<OL>
|
|
<LI>
|
|
<A HREF="#dev_d_conf">Device Driver Configures</A></LI>
|
|
<LI>
|
|
<A HREF="#sys_">/sys User Interface Configures</A> kernel
|
|
2.6 + (not for PCI yet, other severe limitations)</LI>
|
|
<LI>
|
|
<A HREF="#bios_conf">BIOS Configures</A> (For the PCI bus
|
|
you only need a PCI BIOS, otherwise you need a PnP BIOS) </LI>
|
|
<LI>
|
|
<A HREF="#disable_pnp">ISA cards only: Disable PnP</A> by
|
|
jumpers or DOS/Windows software (but many cards can't do this) </LI>
|
|
<LI>
|
|
<A HREF="#isapnp_">ISA Bus: Isapnp</A> is a program you can always
|
|
use to configure ISA PnP devices</LI>
|
|
<LI>
|
|
<A HREF="#pciutils_">PCI Utilities</A> is for configuring
|
|
the PCI bus but the device driver should handle it </LI>
|
|
<LI>
|
|
<A HREF="#windows_conf">Windows Configures</A> and then you
|
|
boot Linux from within Windows/DOS. Use as a last resort</LI>
|
|
</OL>
|
|
</P>
|
|
<P>Any of the above will set the bus-resources in the hardware but only
|
|
the first one (and possibly the second) tells the driver what has been
|
|
done. How the driver gets informed depends on the driver. You may
|
|
need to do something to inform it. See
|
|
<A HREF="Plug-and-Play-HOWTO-5.html#tell_driver_config">Tell the Driver the Configuration</A></P>
|
|
|
|
<H2><A NAME="dev_d_conf"></A> <A NAME="ss4.2">4.2</A> <A HREF="Plug-and-Play-HOWTO.html#toc4.2">Device Driver Configures, Reserving Resources </A>
|
|
</H2>
|
|
|
|
<P>Device drivers (with the help of code provided by the kernel)
|
|
can be written to use PnP methods to set the bus-resources in the
|
|
hardware but only for the device that they control. But many device
|
|
drivers just accept what the BIOS or Linux has configured and use code
|
|
provided by the kernel to find out how this device has been
|
|
configured. Since the driver has checked the configuration and
|
|
possibly reconfigured it, it obviously knows the configuration and
|
|
there is no need for you to tell it this info. This is obviously the
|
|
easiest way to do it since you don't have to do anything if the driver
|
|
does it all.</P>
|
|
<P>If you have old pre-PnP ISA hardware, the Linux PnP software may not
|
|
know about it and the bus-resources it requires. So it might
|
|
erroneously allocate the resources that this old hardware needs to
|
|
some other device. The result is a resource conflict but there's a
|
|
way to try to avoid it. You can reserve the resources that the old
|
|
ISA card needs by configuring the BIOS at boot-time (usually), the isa-pnp
|
|
module or to the kernel (if the PnP is built into the kernel). For
|
|
example, to reserve IRQ 5 give this argument to the isa-pnp module (or
|
|
to the kernel): isapnp_reserve_irq=5. See BootPrompt-HOWTO. Instead
|
|
of ..._irq there are also _io, _dma, and _mem. </P>
|
|
<P>For PCI devices, most drivers will configure PnP. Unfortunately, a
|
|
driver could grab bus-resources that are needed by other devices (but
|
|
not yet allocated to them by the kernel). Thus a more sophisticated
|
|
PnP Linux kernel would be better, where the kernel did the allocation
|
|
after all requests were in. See
|
|
<A HREF="Plug-and-Play-HOWTO-2.html#how_linux_pnps">How Linux Does PnP</A>.</P>
|
|
|
|
<H2><A NAME="sys_"></A> <A NAME="ss4.3">4.3</A> <A HREF="Plug-and-Play-HOWTO.html#toc4.3">/sys User Interface Configures </A>
|
|
</H2>
|
|
|
|
<P>Starting with kernel 2.6 there's supposedly a new way for the user
|
|
to resource configure using the /sys directory tree. But as of Aug.
|
|
2004, it can't be used for configuring in most cases. See
|
|
<A HREF="Plug-and-Play-HOWTO-6.html#sys_dir">The /sys Directory Tree</A>.</P>
|
|
|
|
<H2><A NAME="bios_conf"></A> <A NAME="ss4.4">4.4</A> <A HREF="Plug-and-Play-HOWTO.html#toc4.4">BIOS Configures </A>
|
|
</H2>
|
|
|
|
<H3>Intro to Using the BIOS to Configure PnP </H3>
|
|
|
|
<P> If you have a PnP BIOS, it can configure the hardware. If the
|
|
driver can't do it, the BIOS probably can. This means that your BIOS
|
|
reads the resource requirements of all devices and configures them
|
|
(allocates bus-resources to them). It is a substitute for a PnP OS
|
|
except that the BIOS doesn't match up the drivers with their devices
|
|
nor tell the drivers how it has done the configuring. It should
|
|
normally use the configuration it has stored in its non-volatile
|
|
memory (ESCD). If it finds a new device or if there's a conflict, the
|
|
BIOS should make the necessary changes to the configuration and may
|
|
not use the same configuration as was in the ESCD. In this case it
|
|
should update the ESCD to reflect the new situation.</P>
|
|
<P>Your BIOS needs to support such configuring and there have been cases
|
|
where it doesn't do it correctly or completely. The BIOS may need
|
|
to be told via the CMOS menu that it's not a PnP OS. While many
|
|
device drivers will be able to automatically detect what the BIOS has
|
|
done, in some cases you may need to determine it (not always easy).
|
|
See
|
|
<A HREF="Plug-and-Play-HOWTO-6.html#current_config">What Is My Current Configuration?</A>
|
|
A possible advantage to letting the BIOS do it is that it does its
|
|
work before Linux starts so it all gets done early in the boot
|
|
process.</P>
|
|
<P>Most BIOS made after about 1996 ?? can resource-configure both the PCI
|
|
and ISA buses. But it's been claimed that some older BIOSs can only
|
|
do the PCI. And of course, for PCs with only the PCI bus, the BIOS
|
|
only needs to do PCI. To try to find out more about your BIOS, look
|
|
on the Web. Please don't ask me as I don't have data on this. The
|
|
details of the BIOS that you would like to know about may be hard to
|
|
find (or not available). Some old BIOS's may have minimal PnP
|
|
capabilities and seemingly expect the operating system to do it right.
|
|
If this happens you'll either have to find another method or try to
|
|
set up the ESCD database if the BIOS has one. See the next section.</P>
|
|
|
|
<H3><A NAME="escd_"></A> The BIOS's ESCD Database </H3>
|
|
|
|
<P> The BIOS maintains a non-volatile database containing a
|
|
PnP-configuration that it will try to use (if you claim that it's not
|
|
a PnP OS). It's called the ESCD (Extended System Configuration Data).
|
|
Again, the provision of ESCD is optional but most PnP-BIOSs have it.
|
|
The ESCD not only stores the resource-configuration of PnP devices but
|
|
also stores configuration information of non-PnP devices (and marks
|
|
them as such) so as to avoid conflicts. The ESCD data is usually
|
|
saved on a chip and remains intact when the power is off, but
|
|
sometimes it's kept on a hard-drive??</P>
|
|
<P>The ESCD is intended to hold the last used configuration. But since
|
|
Linux can change how devices are configured (including the user using
|
|
isapnp or pci utilities) then the ESCD will not know about this and
|
|
will not save this configuration in the ESCD. A good PnP OS might
|
|
update the ESCD so you can use it later on for a non-PnP OS (like
|
|
standard Linux). MS Windows9x does this only in special cases. See
|
|
<A HREF="#W9x_ESCD">Using Windows to set ESCD</A>. Starting with
|
|
kernel 2.6, Linux is capable of modifying the ESCD but it's not used
|
|
yet (as of Aug. 2004).</P>
|
|
<P>To use what's set in ESCD be sure you've set "Not a PnP OS" or the
|
|
like in the BIOS's CMOS. Then each time the BIOS starts up (before
|
|
the Linux OS is loaded) it should configure things this way. If the
|
|
BIOS detects a new PnP card which is not in the ESCD, then it must
|
|
allocate bus-resources to the card and update the ESCD. It may even
|
|
have to change the bus-resources assigned to existing PnP cards and
|
|
modify the ESCD accordingly.</P>
|
|
<P>There's a program that you may use to view the contents of the ESCD.
|
|
It shows IRQs and IO addresses etc., but device names are missing
|
|
(only EISA device-ID numbers). It's at:
|
|
<A HREF="http://home.t-online.de/home/gunther.mayer/lsescd/">Index of /home/gunther.mayer/lsescd</A></P>
|
|
<P>If each device saved its last configuration in its hardware, hardware
|
|
configuring wouldn't be needed each time you start your PC. But it
|
|
doesn't work this way. So all the ESCD data needs to be kept correct
|
|
if you use the BIOS for PnP. There are some BIOSs that don't have an
|
|
ESCD but do have some non-volatile memory to store info regarding
|
|
which bus-resources have been reserved for use by non-PnP cards. Many
|
|
BIOSs have both.</P>
|
|
|
|
<H3><A NAME="W9x_ESCD"></A> Using Windows to set the ESCD </H3>
|
|
|
|
<P>Eventually the Linux kernel may set the ESCD. Starting with kernel
|
|
2.6, a function in the new code could do it provided the kernel has
|
|
been compiled with PNPBIOS. But it currently sits in the code unused.</P>
|
|
<P>If the BIOS doesn't set up the ESCD the way you want it (or the way it
|
|
should be) then it would be nice to have a Linux utility to set the
|
|
ESCD. One may resort to attempting to use Windows for this (if you
|
|
have it on the same PC) to do this.</P>
|
|
<P>There are three ways to use Windows to try to set/modify the ESCD.
|
|
One way is to use the ICU utility designed for DOS or Windows 3.x. It
|
|
should also work OK for Windows 9x/2k ?? Another way is to set up
|
|
devices manually ("forced") under Windows 9x/2k so that Windows will
|
|
put this info into the ESCD when Windows is shut down normally. The
|
|
third way is only for legacy devices that are not plug-and-play. If
|
|
Windows knows about them and what bus-resources they use, then Windows
|
|
should put this info into the ESCD.</P>
|
|
<P>If PnP devices are configured automatically by Windows without the
|
|
user "forcing" it to change settings, then such settings probably will
|
|
not make it into the ESCD. Of course Windows may well decide on its
|
|
own to configure the same as what is set in the ESCD so they could
|
|
wind up being the same by coincidence.</P>
|
|
<P>Windows 9x are PnP operating systems and automatically PnP-configure
|
|
devices. They maintain their own PnP-database deep down in the
|
|
Registry (stored in binary Windows files). There is also a lot of
|
|
other configuration stuff in the Registry besides PnP-bus-resources.
|
|
There is both a current PnP resource configuration in memory and
|
|
another (perhaps about the same) stored on the hard disk. To look at
|
|
this in Windows98 or to force changes to it you use the Device
|
|
Manager.</P>
|
|
<P>In Windows98 there are 2 ways to get to the Device Manager: 1. My
|
|
Computer --> Control Panel --> System Properties --> Device Manager.
|
|
2. (right-click) My Computer --> Properties --> Device Manager. Then
|
|
in Device Manager you select a device (sometimes a multi-step process
|
|
if there are a few devices of the same class). Then click on
|
|
"Properties" and then on "Resources". To attempt to change the
|
|
resource configuration manually, uncheck "Use automatic settings" and
|
|
then click on "Change Settings". Now try to change the setting, but
|
|
it may not let you change it. If it does let you, you have "forced" a
|
|
change. A message should inform you that it's being forced. If you
|
|
want to keep the existing setting shown by Windows but make it
|
|
"forced" then you will have to force a change to something else and
|
|
then force it back to its original setting.</P>
|
|
<P>To see what has been "forced" under Windows98 look at the "forced
|
|
hardware" list: Start --> Programs --> Accessories --> System Tools
|
|
--> System Information --> Hardware Resources --> Forced Hardware.
|
|
When you "force" a change of bus-resources in Windows, it should put
|
|
your change into the ESCD (provided you exit Windows normally). From
|
|
the "System Information" window you may also inspect how IRQs and IO
|
|
ports have been allocated under Windows.</P>
|
|
<P>Even if Windows shows no conflict of bus-resources, there may be a
|
|
conflict under Linux. That's because Windows may assign bus-resources
|
|
differently than the ESCD does. In the rare case where all
|
|
devices under Windows are either legacy devices or have been "forced",
|
|
then Windows and the ESCD configurations should be identical.</P>
|
|
|
|
<H3>Adding a New Device (under Linux or Windows) </H3>
|
|
|
|
<P> If you add a new PnP device and have the BIOS set to "not a PnP
|
|
OS", then the BIOS should automatically configure it and store the
|
|
configuration in ESCD. If it's a non-PnP legacy device (or one made
|
|
that way by jumpers, etc.) then here are a few options to handle it:</P>
|
|
<P>You may be able to tell the BIOS directly (via the CMOS setup menus)
|
|
that certain bus-resources it uses (such as IRQs) are reserved and are
|
|
not to be allocated by PnP. This does not put this info into the
|
|
ESCD. But there may be a BIOS menu selection as to whether or not to
|
|
have these CMOS choices override what may be in the ESCD in case of
|
|
conflict. Another method is to run ICU under DOS/Windows. Still
|
|
another is to install it manually under Windows 9x/2k and then make
|
|
sure its configuration is "forced" (see the previous section). If
|
|
it's "forced" Windows should update the ESCD when you shut down the
|
|
PC.</P>
|
|
|
|
<H2><A NAME="disable_pnp"></A> <A NAME="ss4.5">4.5</A> <A HREF="Plug-and-Play-HOWTO.html#toc4.5">ISA cards only: Disable PnP ? </A>
|
|
</H2>
|
|
|
|
<P> PCI devices are inherently PnP so it can't be disabled. But a few
|
|
ISA devices once had options for disabling PnP by jumpers or by
|
|
running a Windows program that comes with the device (jumperless
|
|
configuration). If the device driver can't configure it, this will
|
|
avoid the possibly complicated task of doing PnP configuring. Don't
|
|
forget to tell the BIOS that these bus-resources are reserved. But
|
|
since Linux support for PnP has improved, you usually don't want to
|
|
disable PnP. Here's some more arguments in favor of PnP:</P>
|
|
<P>
|
|
<OL>
|
|
<LI> If you have MS Windows on the same machine, then you may
|
|
want to allow PnP to configure devices differently under Windows from
|
|
what it does under Linux.</LI>
|
|
<LI> The range of selection for IRQ numbers (or port addresses) etc.
|
|
may be too limited unless you use PnP.</LI>
|
|
<LI> You might have a Linux device driver that uses PnP methods to
|
|
search for the device it controls.</LI>
|
|
<LI> If you need to change the configuration in the future, it may
|
|
be easier to do this if it's PnP (no setting of jumpers or running a
|
|
Dos/Windows program).</LI>
|
|
</OL>
|
|
</P>
|
|
<P>Once configured as non-PnP devices, they can't be configured by PnP
|
|
software or a PnP-BIOS (until you move jumpers and/or use the
|
|
Dos/Windows configuration software again).</P>
|
|
|
|
<H2><A NAME="isapnp_"></A> <A NAME="ss4.6">4.6</A> <A HREF="Plug-and-Play-HOWTO.html#toc4.6">ISA Bus: Isapnp (part of isapnptools) </A>
|
|
</H2>
|
|
|
|
<P> The <CODE>isapnp</CODE> standalone program is only for PnP devices on the
|
|
ISA bus (non-PCI). It was much needed prior to the 2.4 kernels.
|
|
After the 2.4 kernel, which provided functionality to allow drivers
|
|
deal with ISA PnP, the isapnp standalone program is less significant.
|
|
Also, the BIOS may configure ISA PnP satisfactory. But the isa-pnp
|
|
module (or the equivalent built into the kernel) is now very
|
|
significant since various ISA device drivers call on it to configure
|
|
bus-resources. Prior to kernel 2.6 it resulted a /proc/isapnp "file"
|
|
which may be used to manually configure (see isapnp.txt in the kernel
|
|
documentation).</P>
|
|
<P>In some cases Linux distributions have been set up to run isapnp
|
|
automatically at startup. It's still done in 2004 but it isn't really
|
|
needed if the device drivers work well. If you need to set it up
|
|
yourself much of the documentation for isapnp is difficult to
|
|
understand unless you know the basics of PnP. This HOWTO should help
|
|
you understand it as well the FAQ that comes with isapnp. Running the
|
|
Linux program "isapnp" at boot-time will configure such devices to the
|
|
resource values specified in /etc/isapnp.conf. Its possible to create
|
|
this configuration file automatically but you then should edit it
|
|
manually to choose between various options. Then to let the driver
|
|
know the resources, you often need to specify them as parameters to
|
|
the appropriate modules (drivers). This is done with configuration
|
|
files, often in the /etc directory. Look there for files named mod*,
|
|
etc. If the driver is built into the kernel, then they may sometimes be
|
|
given as a parameter to the kernel. See BootPrompt-HOWTO.</P>
|
|
<P>With isapnp there once was a problem where a device driver which is
|
|
built into the kernel may run too early before isapnp has set the
|
|
address, etc. in the hardware. This resulted in the device driver
|
|
not being able to find the device. The driver tries the right address
|
|
but the address hasn't been set yet in the hardware. Is this still a
|
|
problem ??</P>
|
|
<P>If your Linux distribution automatically installed isapnptools, isapnp
|
|
may already be running at startup. In this case, all you need to do
|
|
is to edit /etc/isapnp.conf per "<CODE>man isapnp.conf</CODE>". Note that
|
|
this is like manually configuring PnP since you make the decisions as
|
|
to how to configure as you edit the configuration file. </P>
|
|
<P>If the configuration file is wrong or doesn't exist, you can use the
|
|
program "pnpdump" to help create the configuration file. It almost
|
|
creates a configuration file for you but you must skillfully edit it a
|
|
little before using it. It contains some comments to help you edit
|
|
it. While the BIOS may also configure the ISA devices (if you've told
|
|
it that you don't have a PnP OS), isapnp will redo it.</P>
|
|
<P>The terminology used in the /etc/isapnp.conf file may seem odd at
|
|
first. For example for an IO address of 0x3e8 you might see "(IO 0
|
|
(BASE 0x3e8))" instead. The "IO 0" means this is the first (0th) IO
|
|
address-range that this device uses. Another way to express all this
|
|
would be: "IO[0] = 0x3e8" but isapnp doesn't do it this way. "IO 1"
|
|
would mean that this is the second IO address range used by this
|
|
device, etc. "INT 0" has a similar meaning but for IRQs (interrupts).
|
|
A single card may contain several physical devices but the above
|
|
explanation was for just one of these devices.</P>
|
|
|
|
<H2><A NAME="pciutils_"></A> <A NAME="ss4.7">4.7</A> <A HREF="Plug-and-Play-HOWTO.html#toc4.7">PCI Utilities </A>
|
|
</H2>
|
|
|
|
<P> The package PCI Utilities (= pciutils, sometimes called
|
|
"pcitools"), allows one to manually PnP-configure the PCI bus (with
|
|
difficulty). "lspci" or "scanpci" lists bus-resources while "setpci"
|
|
sets resource allocations (except IRQs) in the hardware devices. It
|
|
appears that setpci is mainly intended for use in scripts and one
|
|
needs to understand the details of the PCI configuration registers in
|
|
order to use it. That's a topic not explained here nor in the manual
|
|
page for setpci.</P>
|
|
<P>People have used this to configure PCI devices where the driver failed
|
|
to do it. An example is found in my Modem-HOWTO and Serial-HOWTO in
|
|
the subsection "PCI: Enabling a disabled port". However, enabling a
|
|
device is of no use unless you have a working driver for the device.</P>
|
|
|
|
<H2><A NAME="windows_conf"></A> <A NAME="ss4.8">4.8</A> <A HREF="Plug-and-Play-HOWTO.html#toc4.8">Windows Configures </A>
|
|
</H2>
|
|
|
|
<P> This method uses MS Windows to configure and should be used only
|
|
if all else fails. If you have Windows9x (or 2k) on the same PC, then
|
|
just start Windows and let it configure PnP. Then start Linux from
|
|
Windows (or DOS) using, for example, loadlin.exe. But there may be a
|
|
problem with IRQs for PCI devices. As Windows shuts down (without any
|
|
messages) to make way for Linux, it may erase (zero) the IRQ which is
|
|
stored in one of the PCI device's configuration registers. Linux will
|
|
complain that it has found an IRQ of zero.</P>
|
|
<P>The above is reported to happen if you start Linux using a shortcut
|
|
(PIF file). But a workaround is reported where you still use the
|
|
shortcut PIF. A shortcut is something like a symbolic link in Linux
|
|
but it's more than that since it may be "configured". To start Linux
|
|
from DOS you create a batch file (script) which starts Linux. (The
|
|
program that starts Linux is in the package called "loadlin"). Then
|
|
create a PIF shortcut to that batch file and get to the "Properties"
|
|
dialog box for the shortcut. Select "Advanced" and then check "MS-DOS
|
|
mode" to get it to start in genuine MS-DOS.</P>
|
|
<P>Now here's the trick to prevent zeroing the PCI IRQs. Click "Specify
|
|
a new MS-DOS configuration". Then either accept the default
|
|
configuration presented to you or click on "Configuration" to change
|
|
it. Now when you start Linux by clicking on the shortcut, new
|
|
configuration files (Config.sys and Autoexec.bat) will be created per
|
|
your new configuration.</P>
|
|
<P>The old files are stored as "Config.wos and Autoexec.wos". After you
|
|
are done using Linux and shut down your PC then you'll need these
|
|
files again so that you can run DOS the next time you start your PC.
|
|
You need to ensure that the names get restored to *.sys and *.bat.
|
|
When you leave Windows/DOS to enter Linux, Windows is expecting that
|
|
when you are done using Linux you will return to Windows so that
|
|
Windows can automatically restore these files to their original names.
|
|
But this doesn't happen since when you exit Linux you shut down your
|
|
PC and don't get back to Windows. So how do you get these files
|
|
renamed? It's easy, just put commands into your "start-Linux" batch
|
|
file to rename these files to their *.bat and *.sys names. Put these
|
|
renaming commands into your batch file just before the line that loads
|
|
Linux.</P>
|
|
<P>Also it's reported that you should click on the "General" tab (of the
|
|
"Properties" dialog of your shortcut) and check "Read-only".
|
|
Otherwise Windows may reset the "Advanced Settings" to "Use current
|
|
MS-DOS configuration" and PCI IRQs get zeroed. Thus Windows erases
|
|
the IRQs when you use the current MS-DOS configuration but doesn't
|
|
erase when you use a new configuration (which may actually configure
|
|
things identical to the old configuration). Windows does not seem to
|
|
be very consistent.</P>
|
|
|
|
<H2><A NAME="sw_and_docs"></A> <A NAME="ss4.9">4.9</A> <A HREF="Plug-and-Play-HOWTO.html#toc4.9">PnP Software/Documents </A>
|
|
</H2>
|
|
|
|
<P>
|
|
<UL>
|
|
<LI>
|
|
<A HREF="http://www.roestock.demon.co.uk/isapnptools/">Isapnptools homepage</A> </LI>
|
|
<LI>
|
|
<A HREF="http://www.astarte.free-online.co.uk">Proposal for a Configuration Manager for Linux</A> 1999 (Never got into
|
|
kernel but Linux is slowly "evolving" in this direction).</LI>
|
|
<LI>
|
|
<A HREF="http://www.microsoft.com/hwdev/tech/pnp/default.asp">PnP Specs. from Microsoft</A></LI>
|
|
<LI> Book: PCI System Architecture, 4th ed. by Tom Shanley +,
|
|
MindShare 1999. Covers PnP-like features on the PCI bus.</LI>
|
|
<LI>
|
|
<A NAME="pnp_book"></A> Book: Plug and Play System Architecture,
|
|
by Tom Shanley, Mind Share 1999. Details of PnP on the ISA bus. Only
|
|
a terse overview of PnP on the PCI bus.</LI>
|
|
<LI> Book: Programming Plug and Play, by James Kelsey, Sams 1995.
|
|
Details of programming to communicate with a PnP BIOS. Covers ISA,
|
|
PCI, and PCMCIA buses.</LI>
|
|
</UL>
|
|
</P>
|
|
|
|
<HR>
|
|
<A HREF="Plug-and-Play-HOWTO-5.html">Next</A>
|
|
<A HREF="Plug-and-Play-HOWTO-3.html">Previous</A>
|
|
<A HREF="Plug-and-Play-HOWTO.html#toc4">Contents</A>
|
|
</BODY>
|
|
</HTML>
|