From owner-freebsd-arch@FreeBSD.ORG Wed Jan 21 17:08:41 2009 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1E8B910656DB for ; Wed, 21 Jan 2009 17:08:41 +0000 (UTC) (envelope-from Andre.Albsmeier@siemens.com) Received: from david.siemens.de (david.siemens.de [192.35.17.14]) by mx1.freebsd.org (Postfix) with ESMTP id A16558FC19 for ; Wed, 21 Jan 2009 17:08:40 +0000 (UTC) (envelope-from Andre.Albsmeier@siemens.com) Received: from mail1.siemens.de (localhost [127.0.0.1]) by david.siemens.de (8.12.11.20060308/8.12.11) with ESMTP id n0LH8daM011764; Wed, 21 Jan 2009 18:08:39 +0100 Received: from curry.mchp.siemens.de (curry.mchp.siemens.de [139.25.40.130]) by mail1.siemens.de (8.12.11.20060308/8.12.11) with ESMTP id n0LH8dsd032066; Wed, 21 Jan 2009 18:08:39 +0100 Received: (from localhost) by curry.mchp.siemens.de (8.14.3/8.14.3) id n0LH8cmR011218; Date: Wed, 21 Jan 2009 18:08:38 +0100 From: Andre Albsmeier To: John Baldwin Message-ID: <20090121170838.GB94880@curry.mchp.siemens.de> References: <20081229212020.GA1809@curry.mchp.siemens.de> <20081229143221.X1076@desktop> <200901210847.05858.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200901210847.05858.jhb@freebsd.org> X-Echelon: X-Advice: Drop that crappy M$-Outlook, I'm tired of your viruses! User-Agent: Mutt/1.5.18 (2008-05-17) Cc: Andre Albsmeier , freebsd-arch@freebsd.org Subject: Re: Two drivers, one physical device: How to deal with that? X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jan 2009 17:08:42 -0000 On Wed, 21-Jan-2009 at 08:47:05 -0500, John Baldwin wrote: > 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. Thanks for the hint. I will try this as soon as I got my first 7.x system running. -Andre -- Es ist den Untertanen untersagt, den Massstab ihrer beschraenkten Einsicht an die Handlungen der Obrigkeit anzulegen. (Friedrich Wilhelm, Kurfuerst von Brandenburg, 1620 - 1688)