Subject: Re: multi function PCI devices with shared registers
To: Roger Brooks <R.S.Brooks@liverpool.ac.uk>
From: Chris G. Demetriou <cgd@netbsd.org>
List: tech-kern
Date: 03/03/1999 12:06:46
Roger Brooks <R.S.Brooks@liverpool.ac.uk> writes:
> Could one deal with this by constructing a "bus" on the card?  E.g.
> 
> sillycard* at pci? dev ? function ?
> sillycardbus* at sillycard?
> 
> device_a* at sillycardbus?  <some config data probably required>
> device_b* at sillycardbus?  <some config data probably required>

you could probably do that iff:

* sillycard matched/attached _all_ functions of the device, and knew
what to do (or not to do) with all of them), or

* you were willing to attach only to the first function, and have the
rest printed as unmatched, _and_ nothing else thought they were
matchable.


What you really want is the ability to say:

normalcard* at pci? dev ?
foo* at normalcard? function ?

for normal cards/devices, and:

sillycard* at pci? dev ?

where 'sillycard' can do whatever it wants: attach its own subdevices,
treat the entire card as one monolitic device, etc.



cgd
-- 
Chris Demetriou - cgd@netbsd.org - http://www.netbsd.org/People/Pages/cgd.html
Disclaimer: Not speaking for NetBSD, just expressing my own opinion.