Authored by Andrea Keating [MSFT]
If you have upgraded a system with USB 3.0 controllers from Windows 7 to Windows 8 and notice that the connected USB 3.0 devices are not operating at SuperSpeed (see How to determine if a USB device is operating at SuperSpeed) then this article will help you troubleshoot and fix the issue.
Microsoft provides a new USB driver stack for USB 3.0 in Windows 8. The new stack includes an in-box host controller driver that works with all available controllers. We recommend that you do not load a 3rd party driver for your USB 3.0 controller (or XHCI controller) on Windows 8 because of compatibility issues. Different USB 3.0 controllers vary slightly in speed, however all USB 3.0 controllers are significantly faster than 2.0 controllers.
Read the troubleshooting section in How to determine if a USB device is operating at SuperSpeed to identify the most common issues. That section describes common issues related to setup or improper hardware configuration.
This post describes issues related to the BIOS.
Check that your BIOS setting enables the xHCI controller. Some older systems that have been upgraded to Windows 8 allow for SuperSpeed port to be routed to an EHCI controller in the BIOS. That option disables the USB 3.0 ports of an xHCI controller and exposes only the USB 2.0 ports. Those USB 2.0 ports appear under an EHCI controller. In this image, notice that the Legacy USB Support (EHCI) option is enabled through the Auto option and XHCI handoff is Enabled.
BIOS example -xHCI controller is enabled
Depending on your system, the option to enable an xHCI controller may or may not appear in the BIOS. If there is such an option, it might not be in the same location as shown in the image. To check your BIOS option, follow instructions from the boot screen about how to enter setup. For many systems you can do so by pressing F2, however that can be different.
On some systems with Intel xHCI controllers, SuperSpeed devices can operate at a lower speed. The issue is system-related and only seen in systems that have been upgraded from Windows 7 to Windows 8. It does not apply to all systems with Intel xHCI controllers. Typically, we see the issue in a system that have an older BIOS version. Specifically, when the BIOS enables the legacy (EHCI) controller but does not display an option to disable it. That causes the port to be always routed to the EHCI controller until the BIOS is updated.
To identify if your system has an Intel xHCI controller, locate the controller in Device Manager. The controller named Intel USB 3.0 eXtensible Host Controller - 0100 (Microsoft) in this image experiences the issue discussed.
Contact your system vendor and get a BIOS update, if required. Those updates are usually available on the vendor’s Web site. If the newer BIOS does not fix the issue, ask your system vendor to identify a BIOS version that is compatible with Windows 8.