OpenBSD Journal

USB 3.0 support beginning to emerge for -current

Contributed by pitrh on from the superspeed me, puffy! dept.

USB 3.0 support is coming to OpenBSD-current. In a series of commits commit dated March 8 2014 ending with this one, Martin Pieuchot (mpi@) added the beginnings of USB 3.0 support:

Module name:	src
Changes by:	2014/03/08 07:34:12

Modified files:
	sys/conf       : files 
	sys/dev/pci    : files.pci 
Added files:
	sys/dev/usb    : xhci.c xhcireg.h xhcivar.h
	sys/dev/pci    : xhci_pci.c

Log message:
Dumb xhci(4) implementation.
This driver does not handle isochronous endpoint (yet) and has no logical
TD representation.  Each transfer is linked to the raw TRB of its related

Most of the transfer error completion codes are not handled, even with all the cheese provided by miod@ I couldn't find a proper way to reset an endpoint asynchronously when a device babbles. Or maybe it was the wine? Anyway this will come soon.

In general the endpoint configuration and reset code is really crude and requires some love, but our stack should be fixed to properly open only once the default pipe of every new USB device first.

This means this driver wont work as it is, our stack needs other changes first.

Suspend/resume works but ports are not suspended for the moment.

But even with these problems, interrupt devices: ukbd(4), ums(4) and sensors like ugold(4) work properly and USB 3.0 umass(4) devices give me a reasonnable read/write speed.

Timeouts to cancel USB transfers are not enabled *on purpose*, to be able to track down potential timing issues.

I'm committing now so that others can help fixing my bugs (8

All this work has been done on an ExpressCard with a NEC xHCI 0.96, other implementations/versions might trigger more bugs :)

You can help this effort by checking out USB 3.0 gear listed on the Hardware wanted page and see if you can't assist in getting some of those items into developers' hands. Of course, donations also help.

(Comments are closed)

  1. By Brad (brad) brad at comstyle dot com on

    IMO this posting style is kind of odd and don't think it focuses on the most important part enough and that is that Martin is looking for donations either in hardware form or funds to purchase the hardware mentioned to be able to finish the work he has started. The work that is there is still somewhat rough and is still a ways off; but having the relevant hardware will help to accelerate the development process.


Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]