guest - flak

USB 3 back compat

Newest laptop has some USB 3 ports, and one USB 2, which I’m thankful still exists. USB 3 isn’t quite fully backwards compatible. Sure, all the old USB devices work when plugged into a working USB 3 port, but the key point there is it has to be a working USB 3 port.

USB 3 controllers (xhci) differ from USB 2 controllers (ehci) from the host computer’s viewpoint. Drivers for ehci won’t work with xhci. At all. No driver, no port, no back compat.

Where does one find ehci drivers, but no xhci drivers? In my BIOS. External keyboard doesn’t work at the truecrypt boot prompt unless it’s plugged into a USB 2 port. In VMWare. USB passthru only works for devices plugged into the USB 2 port. Anything plugged into the USB 3 ports is simply invisible to VMWare, at least until they update their own USB driver to handle xhci as well. (Update: The recently released Workstation 9 and Player 5 are supposed to support USB 3. I haven’t upgraded yet.) In OpenBSD or any other operating system not yet updated to include xhci.

The situation is somewhat analogous to gigabit ethernet. It, too, had back compat with fast ethernet, in that you could plug it into a fast ethernet switch and everything worked. But you can’t generally use whatever fast ethernet driver you had with a new gigabit adapter. It’s a little simpler with USB, since the controller interface is fixed and doesn’t vary by manufacturer.

There are some completely logical reasons why xhci controllers shouldn’t provide ehci interfaces, but at least for now, it’s important that hardware continue to include some USB 2 ports. Something to consider when looking at hardware that includes only USB 3 ports, like the newest Macbook Air. My BIOS appears to have an option to turn the USB 3 port into a USB 2 port, which may be an effective workaround, but then I’d lose the ability to get super speeds from USB 3 devices. Untested.

Posted 2012-08-20 19:27:47 by tedu Updated: 2013-03-09 18:16:05
Tagged: computers thoughts