January 5, 2007

USB status update

I think it's the highest time to let you know what's happening with my USB classes. I hope you do not the faith :) I still need some time to make the USB work on AROS, but some temporary test&debug version should be available soon.

Let me tell you something about the class hierarhy of this system. Currently, there are four standard classes and corresponding interfaces:

The root USB class maintains all devices and drivers in the system. It may decide what class has to be used with particular USB device. This one may be used e.g. to enumerate all devices in the system, find specific device, add the driver and many more.

The USBDevice class is a root class for each USB device attached to any bus in the system. It may be used to "raw" talking with devices, to ask for their general properties and general control over any device.

The USBHub class inherits the USBDevice class and extends it by methods and properties typical for Hubs. Every Hub in the system is either an instance of this class, or implements its interface.

The USBDriver interface provides a common way of talking with USB drivers (UHCI or OHCI, the EHCI driver will come in the future). Every driver inherits the USBHub class (every physical USB interface provides a "root hub") and implements the USBDriver interface.

The UHCI driver is close to complete, it provides control, bulk and interrupt transfers. Control and bulk are realised through the pipes attached to specified endpoints of specified USB devices. The missing thing are isochronous transfers - they will come in the future.

The other USB classes are halfway done, which means that they are operating but still not implementing all desired features. They will be still incomplete in the test&debug release but will be usable. The HID class, which is required by the bounty, will be written soon.

I'm sorry for such a huge delay and I'm terribly sorry that the whole USB subsystem is still incomplete. I have only one excuse which I have used already - lack of time and real life.