Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Jun 2000 22:00:42 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        msmith@FreeBSD.ORG (Mike Smith)
Cc:        tlambert@primenet.com (Terry Lambert), arch@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/pci pci.c pcisupport.c pcivar.h
Message-ID:  <200006152200.PAA12388@usr08.primenet.com>
In-Reply-To: <200006131734.KAA22492@mass.cdrom.com> from "Mike Smith" at Jun 13, 2000 10:34:28 AM

next in thread | previous in thread | raw e-mail | index | archive | help
> > The PCI issue is unique, in that PCI devices can be identified by
> > a generic routine.
> 
> This is nonsense, and it basically removes the justification for 
> everything else that you've said here. 8)
> 
> The real situation is, in fact, just the opposite; there are *very* few 
> devices for which it is not possible to obtain, in a generic fashion, a 
> uniquifying token.

PCI cards have a card identification register which is per slot
relative, and which can be read by a generic routine.  EISA and
MCA have similar capabilities.

ISA cards, you have to go grovelling in a per card way with a
passive probe for most cards; but the routine used to do this is
_not_ the same for all IS cards, and can not, therefore, be
written once per bus, but instead must be written once per card.

Some ISA devices require active probing, and can not be identified
passively under any circumstances (AMD LANCE ethernet is one such
device).

I think it's OK to statically compile in a generic PCI probe that
then does I/O against a file to identify the driver to load (the
ID as the left hand side, the driver module information as the
right hand side, in a data table).

I _don't_ think it's OK to statically link in all ISA devices, or
even to load the full driver for each device before deciding to
discard it because the probe failed to find a device.

I think instead that the driver module should be divided into a
probe section, an attach section, and a driver section; the
lattermost can be loaded and discarded with much less potential
for kernel memory fragmentation.  The latter two can be discarded
onces the driver is active.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006152200.PAA12388>