From owner-freebsd-hackers@FreeBSD.ORG Tue Mar 30 01:08:40 2004 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EEA3016A4CE for ; Tue, 30 Mar 2004 01:08:39 -0800 (PST) Received: from srv1.cosmo-project.de (srv1.cosmo-project.de [213.83.6.106]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4806743D39 for ; Tue, 30 Mar 2004 01:08:39 -0800 (PST) (envelope-from ticso@cicely12.cicely.de) Received: from cicely5.cicely.de (cicely5.cicely.de [IPv6:3ffe:400:8d0:301:200:92ff:fe9b:20e7]) (authenticated bits=0) i2U97BUS080919 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=OK); Tue, 30 Mar 2004 11:07:14 +0200 (CEST) (envelope-from ticso@cicely12.cicely.de) Received: from cicely12.cicely.de (cicely12.cicely.de [IPv6:3ffe:400:8d0:301::12]) by cicely5.cicely.de (8.12.10/8.12.10) with ESMTP id i2U963hn036292 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 30 Mar 2004 11:06:03 +0200 (CEST) (envelope-from ticso@cicely12.cicely.de) Received: from cicely12.cicely.de (localhost [127.0.0.1]) by cicely12.cicely.de (8.12.11/8.12.11) with ESMTP id i2U96258035831; Tue, 30 Mar 2004 11:06:02 +0200 (CEST) (envelope-from ticso@cicely12.cicely.de) Received: (from ticso@localhost) by cicely12.cicely.de (8.12.11/8.12.11/Submit) id i2U962J9035830; Tue, 30 Mar 2004 11:06:02 +0200 (CEST) (envelope-from ticso) Date: Tue, 30 Mar 2004 11:06:02 +0200 From: Bernd Walter To: "M. Warner Losh" Message-ID: <20040330090601.GE32646@cicely12.cicely.de> References: <1080613926.1125.6.camel@dirk> <20040329.194434.48530053.imp@bsdimp.com> <20040330083607.GC32646@cicely12.cicely.de> <20040330.014632.132641792.imp@bsdimp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040330.014632.132641792.imp@bsdimp.com> X-Operating-System: FreeBSD cicely12.cicely.de 5.2-CURRENT alpha User-Agent: Mutt/1.5.6i X-Spam-Status: No, hits=-4.9 required=3.0 tests=BAYES_00 autolearn=ham version=2.61 X-Spam-Report: * -4.9 BAYES_00 BODY: Bayesian spam probability is 0 to 1% * [score: 0.0000] X-Spam-Checker-Version: SpamAssassin 2.61 (1.212.2.1-2003-12-09-exp) on cicely5.cicely.de cc: ticso@cicely12.cicely.de cc: samuel.lawrance@studentmail.newcastle.edu.au cc: ticso@cicely.de cc: freebsd-hackers@freebsd.org Subject: Re: usbd config file parse behaviour X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: ticso@cicely.de List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 09:08:40 -0000 On Tue, Mar 30, 2004 at 01:46:32AM -0700, M. Warner Losh wrote: > In message: <20040330083607.GC32646@cicely12.cicely.de> > Bernd Walter writes: > : On Mon, Mar 29, 2004 at 07:44:34PM -0700, M. Warner Losh wrote: > : > In message: <1080613926.1125.6.camel@dirk> > : > Sam Lawrance writes: > : > : On Sun, 2004-03-28 at 20:47, Bernd Walter wrote: > : > : > On Sun, Mar 28, 2004 at 01:31:03AM -0700, M. Warner Losh wrote: > : > : > > Btw, any interest in making it possible to kldload a usb module and > : > : > > having device attach to it? Right now the usb code assumes that you > : > : > > can unplug the device and replug it back in. I have at least two > : > : > > devices on my laptop that can't be removed (bluetooth and memory stick > : > : > > reader), so I can't dynamically load drivers for them... > : > : > > : > : > I'll think about it. > : > : > Reprobing is not so much an issue as selecting an interface for it. > : > : > : > : would this done by filling in uhub_driver_added() to find a better > : > : driver match for a device and reattaching? > : > > : > Yes. Actually, it also requires some changes to newbus as well to > : > allow for rebidding of devices. And there's some minor resetting of > : > the device that likely needs to happen, but that's lower priority. > : > : Don't forget that we already have a driver for every USB device: ugen(4) > : We need a better trigger to reprobe drivers - thats the real problem. > > No. That's not the real problem here. The real problem here is that > uhub doesn't implement the driver_added callback correctly. The ugen > issue, while interesting, can be overcome by not having ugen in the > kernel. Not having ugen in the kernel is not an option. I can't say that I really like the problems introduced by ugen, but since I have no better idea and ugen is widely used - even by me. > When ugen is in the kernel, we do need to do the rebid thing in > newbus, which we don't do, but there's little point in fixing one w/o > fixing the other. You can't kldload a new driver and reshuffeling all ugen instances. They are possibly used and probing for USB devices requires exclusive access in many cases. I'm more thinking about some kind of userland tool that allows retriggering an USB device in a controlled way. Such a feature is required for some types of firmware downloaders too. Intelligent USB chips requireing firmware download could disconneect and reconnect themself from the bus e.g. the TI-TUSB* family, but there are still others in the wild. I've seen firmware downloaders to do evil things as reseting an USB ports on their own, which is quite dangerously as it introduces a race for having multiple devices with address 0 (the default for freshly attached ones). -- B.Walter BWCT http://www.bwct.de ticso@bwct.de info@bwct.de