[ros-dev] Fwd: [ros-priv] Status of the usb-bringup Branch

Colin Finck colin at reactos.org
Sun Jan 8 11:22:05 UTC 2012

Forwarding this with Johannes' consent:

-------- Original Message --------
Subject: [ros-priv] Status of the usb-bringup Branch
Date: Sat, 07 Jan 2012 16:21:24 +0100
From: Johannes Anderwald <janderwald at reactos.org>
To: ReactOS developers private list <ros-priv at reactos.org>

Hi Folks!

For those who are interested in the status of the usb-bringup branch,
here is a short summary of the current state, implemented features and
required work to have it working in ReactOS.

=== USB Core Status ===

1. There are 2 USB specifications for the USB 1.1 standard. Devices
which are used in this standard are mice / keyboards etc
     OHCI (Open Host Controller Interface Standard) - All transfers
types are implemented (bulk, iso, control, interrupt)
     UHCI (Universal Host Controller Interface Standard) - Totaly
missing. Though it should be do-able to use ohci driver as a base and
use Haiku driver[2]

2. EHCI (Enhanced Host Controller Interface) - Implemented transfer
types: bulk & control. Interrupt & Isochronous transfers are not
implemented. Due to the missing transfer types, devices who utilize
those transfer types will not be available

3.) USBHUB - driver for managing port and hubs - Implementation state is
unknown - michel martin has more information on that

=== USB Mass Storage Support Status ===
USB Mass Storage is implemented in usbstor driver and is fully working.
Tested in WinXP + USBEHCI + USBSTOR. Mass storage support requires bulk
and control transfers, which are implemented in USBEHCI

=== HID Status ===

The HID framework is built on 5 drivers

1. HIDUSB - this is the interface driver for the USB bus. Currently
supported devices are mice. Basic keyboard support should also work
2. HIDCLASS - this is the class driver for HIDUSB and others.
Functionality for mice & keyboard is implemented, though support for
sending output reports is not implemented
3. MOUHID - mouse function driver for usb hid standard - Fully
implemented and working
4. KBDHID - keyboard function driver for the hid standard - 90 %
implemented, needs KbdHid_InsertScanCodes implemented for keyboard scan
code dispatching to kbdclass and led status indicator support (which
requires sending output reports)
5. HIDPARSE - driver for parsing report descriptors - functionality
implemented for mice, keyboard support needs HidParser_TranslateUsage
fully implemented for modifier state (caps lock, num lock, scroll lock)

=== What works and not ===

1. Mouse support has been tested in WinXP with ReactOS USBOHCI + HIDUSB
+ HIDCLASS + MOUHID + HIDPARSE and is working. The USB + HID stack does
not work in ReactOS at the moment, appears to be a problem with win32k,
which only opens the first mice (\\Device\\PointerClass0) [...]

2. Basic Keyboard support need a 2/3 functions but probably suffer from
the same bugs which affect HID mice support

3. Usb Mass storage support - Needs mountmgr / partmgr driver
implemented. Will also need mountvol and other missing PnP stuff


As I will be working on my master thesis the next few months, I`ll have
no time to focus on the usb or any ReactOS related development. If
anybody wants to work on the usb branch, I`m very happy with it. Feel
free to change anything, or rewrite evrything :) I`ll available via my
reactos email address if any questions come up.

kind regards,


[1] svn://svn.reactos.org/reactos/branches/usb-bringup

Ros-priv mailing list
Ros-priv at reactos.org

More information about the Ros-dev mailing list