USB host supprot?
cjohns at cybertec.com.au
Tue Oct 28 04:11:27 UTC 2003
Yanjun Luo wrote:
> Actually I'm study Linux's implementation now, and I found it's really
> complex :-(
RTEMS would benefit from you looking at a BSD variant. RTEMS cannot include Linux
code as it is GPL.
> Because I'm only want to support USB disk and doesn't include some features
> like usb hub support. I'll check if I can simply it and only support mass
> storage device.
Have you looked at the USB standard ?
USB layering means you will need to implement the default control endpoint and bulk
endpoints. This only leaves out the interrupt and iso endpoints. I do not know if you
can run a host controller in a mode that will not send sync frames etc, require power
setup and control, plus bandwidth control. My understanding is most host controllers
are a sort of hub. For example each port on your PC shares the USB bandwidth. This
means you may need hub support.
Linux support is based around callbacks for endpoint transfers. This leaves the stack
open to all sorts of race conditions and they do exist in the 2.4.x kernels. You
would need to sort out a threading model that would work.
Chris Johns, cjohns at cybertec . com . au
More information about the users