Two drivers, one physical device: How to deal with that?

John Baldwin jhb at freebsd.org
Wed Jan 21 06:19:09 PST 2009


On Monday 29 December 2008 7:35:21 pm Jeff Roberson wrote:
> On Mon, 29 Dec 2008, Andre Albsmeier wrote:
> 
> > Hello,
> >
> > I have written a driver which attaches to the host bridge in
> > order to periodically read the appropriate registers and
> > inform the user about ECC errors (ECC-Monitor). No I have
> > run across a mainboard where the host bridge is already
> > taken by the agp driver. Of course, I can detach the agp
> > driver and attach myself and everything is working but
> > what is if someone does not want to loose the agp
> > functionality?
> >
> > How does one deal with the case when two separate drivers
> > have to access the same device (the host bridge in my case)?
> >
> > I assume, the correct way would be to join the AGP and
> > ECC functionality in one driver but maybe there are other
> > tricks I am not aware of?
> 
> Well I don't think it would be correct to merge two conceptually seperate 
> drivers into one just to share the same device.  It sounds like the right 
> solution is to make a generic layer the attaches to the host bridge and 
> arbitrates access to it.  Then allow other device to find and communicate 
> with this generic layer.  For the host bridge this doesn't have to be 
> particularly fancy.

This is already the case in 7.0 and later where hostb(4) always attaches to 
host bridges and agp(4) attaches to the hostb(4) devices.

-- 
John Baldwin


More information about the freebsd-arch mailing list