Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jan 1996 20:15:44 -0500 (EST)
From:      Sujal Patel <smpatel@wam.umd.edu>
To:        Terry Lambert <terry@lambert.org>
Cc:        hasty@rah.star-gate.com, freebsd-hackers@FreeBSD.org
Subject:   Re: PnP Proposal, Ideas & Issues [Was: PnP problem...]
Message-ID:  <Pine.BSF.3.91.960110200018.9867B-100000@sl-015.sl.cybercomm.net>
In-Reply-To: <199601102135.OAA15484@phaeton.artisoft.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 10 Jan 1996, Terry Lambert wrote:

> This is probably a bad approach.  The idea of PnP is that the devices
> will fit into an unused space.  This is a difficult (and potentially
> insoluable without a hack job) problem for non-PnP ISA devices in a
> standard ISA bus, since if you can't probe them, you can't predict
> what the conflicts would be.

The main problem for me to implement PnP devices like they were 
"intended" is that there is no easy way that I can figure out, to get a 
reliable list of resources that are used at boot time.  The ISA device 
structure, for example, lists I/O base addresses but doesn't say how many 
ports the device is going to use.  Also, devices like uha0 and bt0 are EISA
devices on the isa0 controller--  These devices auto-probe their IRQ at 
boot time, so there is no easy way to find out their IRQ.

Now consider the more complicated case of a Installation Floppy.  The 
only way to implement "true" PnP is to:
	1- Probe PCI devices
	2- Probe EISA devices
	3- Probe PC-CARD devices
	4- Reset PnP devices so they don't get probed in the ISA probe
	5- Probe ISA devices
	6- Find all of the PnP devices, configure each one using
		a topological sort [Time to dig up that old Knuth book :)],
		Assign a driver to each card using the list of devices that
		Microsoft provides, and then re-run the ISA Probe...

Can you just run the ISA probe twice??  Or is this sequence even 
practical?  My feeling is that it isn't practical and manual 
configuration of PnP devices is the cleanest way to do it (for now).

Even Win95 (I hate to use it as an example, but it's the only 
PnP-capable OS that I can think of) seems to configure PnP cards before 
the boot sequence.  That's why when you add a PnP card you get "New 
Hardware added" or something like that.  In Win95, you get the choice of 
the configuring PnP cards before you reboot (similar to a kernel 
configuration file).

The only difference between my implementation and Win95's is that Win95 
will give you a "suggested" configuration for a PnP device (by using 
some kind of fitting scheme like a topological sort)...  This sort of 
thing would actually be pretty simple to implement since after the boot 
sequence is done, you have a fairly good idea of what resources are in 
use and which ones aren't (though it's still quite fuzzy).  

If FreeBSD were to turn all Win95-ish, you could implement a scheme to fit
all the PnP cards into your setup automatically and write out a kernel
configuration; and this is sort of how Win95 handles it now.  Why bloat 
the kernel up with topological sorts and auto-configuration code.  I'm 
trying to adhere to "Keep is simple!"--  A simple manual configuration in 
the kernel config (and adding PnP support to the boot-time kernel 
configurer), should be good enough (and really the only practical way I 
can see right now).


Sujal




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.91.960110200018.9867B-100000>