USB Stack

From ReactOS Wiki
Revision as of 08:37, 11 January 2010 by Lone Rifle (talk | contribs) (Status)
Jump to: navigation, search

The USB stack is the component which provides the communication between USB devices and their respective drivers and applications. It consists of multiple files, each with a distinct function. The USB stack in ReactOS is currently extremely limited. This page documents the development of the new USB stack. Development work on a USB 3 stack is not planned until around 2010 as hardware won't be available for it in sufficient quantities until then.


Overview

The goal is to develop a USB stack which:

  • is USB 1.1 - 2.0 compliant
  • uses WDM (NT 5) API
  • is compatible with all USB devices and drivers (which adhere to the standard)

The entire stack will be fully documented and the implementation progress detailed on this page.


Goals

  • Primary Goal: USB HID (human input devices) and storage functionality working (Alpha).
  • Secondary Goal: Audio and other support added.
  • Beyond: testing and debugging.

Release dates will be provided at some point in the near future.

Status

2008-12-03 - The ROS USB stack specification is being written. The first draft will be ready in a few weeks.

2009-01-26 - Due to lack of time and the diffuse nature of the available information on the Windows USB stack, progress has been slow. A delay of a month has been introduced. For those who would like to see faster progress, I can only say that for around 500 Euro a month, work on the USB stack could be full-time (5 days/week).

2009-03-22 - Goals updated. The new deadline is 'When it's done'. As a part reaches usability stage, this will be announced. The CFI wiki page now reflects 1,000 Euro & 8 weeks required, which may be somewhat accurate. We'll see.

2009-10-29 - Ranma is working on porting the Cromwell drivers to NT5 drivers. His plan is to start with the EHCI controller driver and work up the stack. The first order of business is to document the various structures in the drivers and how they interact with each other.

2010-01-08 - Michael Martin has started re-implementation. Progress can be found here.

Outdated information

See here.

References