This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: USB MSD stack


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]