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

John Baldwin jhb at
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