Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Jul 1997 23:01:13 +0200
From:      Stefan Esser <se@FreeBSD.ORG>
To:        Michael Smith <msmith@atrad.adelaide.edu.au>
Cc:        Terry Lambert <terry@lambert.org>, Shimon@i-connect.net, freebsd-hackers@FreeBSD.ORG
Subject:   Re: pcireg.h lost children... ?
Message-ID:  <19970721230113.24412@mi.uni-koeln.de>
In-Reply-To: <199707210113.KAA19725@genesis.atrad.adelaide.edu.au>; from Michael Smith on Mon, Jul 21, 1997 at 10:43:58AM %2B0930
References:  <199707202320.QAA09987@phaeton.artisoft.com> <199707210113.KAA19725@genesis.atrad.adelaide.edu.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Jul 21, Michael Smith <msmith@atrad.adelaide.edu.au> wrote:
> Terry Lambert stands accused of saying:
> > How does a PCI driver for, for instance, a DEC chip based ethernet
> > board find boards for which a vendor/driver assignment has not yet
> > been made?
> 
> The same way it does now.

Right!

> You should read the probe code I think.  To save your fingers the effort,
> here it is :
> 
> static char*
> tulip_pci_probe(
>     pcici_t config_id,
>     pcidi_t device_id)
> {
>     if (PCI_VENDORID(device_id) != DEC_VENDORID)
>         return NULL;
>     if (PCI_CHIPID(device_id) == CHIPID_21040)
>         return "Digital 21040 Ethernet";

> Now, if we remove this information from the driver and put it
> somewhere in a Big Central Localtion, like, oh say W95 does (seeing as
> you respect their design decisions), the central localtion can be
> updated rapidly without having to rebuild and reinstall the driver.

That's my goal, indeed :)

> > One big problem I can see this causing (though I admit it cures
> > one of my loudest complaints: destructive probing) is that the
> > vendor/device/driver association list could quicly get too large
> > to fit on the same floppy as the BSD kernel.  8-(.
> 
> You split it into two parts; the ones needed to boot with, and a
> second set for "frivolous" devices. 8)

Well, and you forgot the third case: You can add the 
information in the user configuration step. If there
is a device ID that is not (yet) in the kernel, you
can ask for it, and will just have to supply an eight
digit hex number and the driver name (typically three
characters) to assign the device. In visual config
you might even be able to just select one device with
an unknown ID, and then choose the driver to assign 
from a menu of compiled in PCI drivers :)

Regards, STefan



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