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.