Most of Haiku’s long-standing XHCI (USB 3.0+) issues resolved

Last month, I sat down and decided to at the very least attempt to fix our XHCI (USB 3 host controller) bus driver. Issues with it have been the most significant problem users have been facing, as most hardware made post-2012 has an XHCI chip as the system’s primary USB chip, and most hardware made post-2014 (or so) has exclusively an XHCI chip and no EHCI (USB 2.0) or prior chipsets (which we do support very well.)

[…]

Well, just under a month (and ~40 commits) later, virtually all those issues have been resolved. There’s a good bit of work that remains to be done, but at least all (!) the kernel panics are resolved, devices (largely) don’t lock up without an explanation (there are a few exceptions, but not many), performance is greatly improved (40MB/s with random 1-2s-long stalls, to 120MB/s on some USB3 flash drives and XHCI chipsets), and XHCI-attached keyboards can even be used in KDL!

This is a major step forward for Haiku. Interesting, too, that Haiku’s developers note that they hope Haiku’s driver can serve as a more useful reference to other operating system developers than the driver of Linux, FreeBSD, and OpenBSD, which are, according to them, “so badly organized that it’s often hard to tell exactly what is going on vs. what the spec says should happen”.

One Response

  1. 2019-03-14 3:33 am