STM32 USB support

Chris Holgate <[email protected]>
Newsgroups gmane.os.ecos.devel
Message-ID <[email protected]>
Simon Kallweit wrote:
> Chris Holgate schrieb:
>>
>> It's stable in my application using my own Linux kernel driver (several
>> million bulk and interrupt transactions and counting!).
>>   
> That sound's pretty stable to me :)

OK - I've now done a bit of tidying up which I hope won't have broken
it!  The latest version of the package is here:

http://www.zynaptic.com/ecos/packages/stm32-usb-20090519.epk

There are a couple of minor TODO's which I need to revisit before a
proper release, but nothing significant.

>> However, I've not had much luck getting it working with the standard
>> eCos test framework - although I now suspect thats a Linux usbfs issue
>> rather than my driver.  I also need to sort out some proper
>> documentation!
> 
> Well, I could do some testing too and see where I get.

That would be very helpful, although I think that the standard host-side
tests have only ever been run on a pretty old version of Linux.  I'd
have more confidence in testing against some standard drivers like a
virtual serial port or a 'memory stick' device.

>> There is a significant difference from the other USB drivers which I
>> should probably flag up (and document).  The endpoint configuration is
>> generated dynamically from the USB descriptors.  This gives a lot of
>> flexibility and potentially allows support for multiple configurations
>> (untested!).  However, the downside is that I had to leave out devtab
>> support since the devtab entries need to be set statically.
>>   
> Don't you think it's possible to have both options? I haven't looked at
> the USB subsystem or any drivers, but I think a public driver should
> behave as the subsystem intends. Maybe the subsystem could be extended
> for more dynamic usage though.

The official docs say "To support this the device driver can provide a
devtab entry for each endpoint".  I took that to mean that devtab
support was optional - and the dynamic endpoint configuration is a much
more useful feature IMHO.

Previously supported hardware has had fixed endpoint configurations
which makes the static devtab entries easy to implement.  However, with
dynamic endpoint configuration, the low-level driver doesn't know
a-priori what endpoints to generate devtab entries for - and nor should it!

Copied to the list, since I'm sure there are other people who would like
to comment...

Chris.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.