USB host supprot?

Chris Johns cjohns at
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 mailing list