From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7482 invoked by alias); 4 May 2006 14:38:23 -0000 Received: (qmail 7472 invoked by uid 22791); 4 May 2006 14:38:22 -0000 X-Spam-Check-By: sourceware.org Received: from londo.lunn.ch (HELO londo.lunn.ch) (80.238.139.98) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 04 May 2006 14:38:20 +0000 Received: from lunn by londo.lunn.ch with local (Exim 3.36 #1 (Debian)) id 1Fbey8-0005gJ-00; Thu, 04 May 2006 16:38:16 +0200 Date: Thu, 04 May 2006 14:38:00 -0000 To: "Doyle, Patrick" Cc: "'ecos-discuss@ecos.sourceware.org'" Message-ID: <20060504143816.GO3797@lunn.ch> Mail-Followup-To: "Doyle, Patrick" , "'ecos-discuss@ecos.sourceware.org'" References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.11+cvs20060403 From: Andrew Lunn X-IsSubscribed: yes Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Subject: Re: [ECOS] USB MSD stack X-SW-Source: 2006-05/txt/msg00030.txt.bz2 On Thu, May 04, 2006 at 10:25:10AM -0400, Doyle, Patrick wrote: > > From: Andrew Lunn [mailto:andrew@lunn.ch] > > > > My USB book is at home.... > > > > I thought you had to select an interface to be in use. So having a HID > > interface and a MSD interface is not a problem. However i think you > > can only have one interface selected at once. > > > > But i could be wrong.... > > > > Andrew > > > OK, I see what you're getting at... I have a couple of USB books here (and > an overload of information), but I've definitely seen a "select this > interface for use" message somewhere in one of those. So, I would agree to > your assertion that I can have only one interface selected at a time. > > Hmmm... I wonder what I should expect a Windows host to do when I plug in a > device that says it has two interfaces, one an HID and one an MSD? I'll > find out soon enough by experimentation, but I suppose it's possible that it > could select interface 1 when it needed to access the disk and interface 2 > when it needed to access the mouse... hmmm that doesn't feel right -- does > that mean I can't move my mouse/disk while I'm listing files? > > Ahh... the adventure continues :) What you might be able to do is not set a device class. You then need to tell M$ windows that when it sees vendor XYZ it should load both the HID driver and the MSD driver. The HID driver will grab the interupt end point and the MSD driver will grab the bulk in and out endpoints. A lot will depend on what level M$ does its resource allocations. If it does the allocation at interface level, it will not work, the first loaded driver will win. If it does it at endpoint level you have a chance. Handling control transfers is going to be interesting. Or you could just write a HID and MSD driver for M$. Well, you don't need full drivers, just an intermediate driver which has two interfaces on top and one on the bottom. Does M$ have USB intermediate drivers? I know they exist for the networking stack.... Andrew -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss