Usb If Xhci Host Controller



Apr 19, 2016 Don't know if i can help but a couple things to check. List any Problem devices. Click the Start button, type msinfo32 in the search box. Hit Enter; Click the + sign next to Components to expand it. USB xHCI Compliant Host Controller: Unknown: 1/1/1900: Renesas USB 3.0 eXtensible Host Controller - 0100 (Microsoft) USB: 6.3.9600.19026: 4/28/2018: VIA USB 3.0 eXtensible Host Controller - 0100 (Microsoft) USB: 6.3.9600.19026. Extensible Host Controller Interface (xHCI) clarifies the host controller interface for the Universal Serial Bus drivers of version 2.0 and above.

General Test Tools

USB Power Delivery /USB Type-C Test Tools

USB4TM Test Tools

xHCI-based Test Tools

EHCI-based Test Tools

Electrical Test Tools and Fixtures

Products Used for Testing

Please review the USB-IF Compliance Updates webpage frequently for the latest information regarding the USB-IF Compliance Program. The updates may contain information on test requirements and/or test procedures. Subscribe to the USB-IF Compliance Update Mailing List by emailing [email protected]

General Test Tools

USB Vendor Info File Generator

USB Vendor Info File Generator Version 3.1.0.2 (Updated October 9, 2020 ) can be downloaded here.

USB Power Delivery/USB Type-C Test Tools

Host

QuadDraw and QuadraView

QuadDraw is the official software for the QuadraMAX hardware, and QuadraView is the official software for viewing the results generated by a QuadraMAX.

  • The Non-PPS Test Manual : QuadraMAX Manual
  • The PPS Test Manual: QuadraMAX PPS Test Manual

NOTE: The QuadDraw tool is supported on Windows 7 and above only.
NOTE: QuadDraw requires .NET 4.5

USB4TM Test Tools

USB4CV Tool

This tool is used to test the Logical Layer, Protocol Layer, and Tunneling functionality of a USB4 Router. This tool takes control over the USB4 Connection Manager and renders all products connected to it unusable. USB4CV should not be installed on an oscilloscope or any system that uses USB as its only form of input from the user.

Usb Xhci Compliant Host Controller Download


The USB4CV tool Ver. 0.9.1.2 (Updated October 22, 2020) is available below.

NOTE 1: In order to use USB4CV, User Account Control (UAC) must be turned off. After turning off UAC, the system must be rebooted.
NOTE 2: The USB4CV tool is supported on Windows 10 and above.

If you have questions please email tech[email protected]

For vendors seeking version numbers to be used at upcoming workshops please visit the compliance updates page found here.

USB4 Electrical Test Tool (ETT)

This tool kit contains the Window-based ETT utility used to initiate test modes on a USB4 Router.


The USB4 ETT tool Ver. 0.9.7 is available below in a zip file. This includes both GUI and CLI version. See included documentation for instructions on how to run the tool.

If you have any questions, please contact [email protected]

Wilder Controller

Visit www.wilder-tech.com for information about Wilder products.

USB4 Test Fixtures and Microcontroller

Contact [email protected] for sales information.

Contact [email protected] with any Wilder hardware or software support questions.

xHCI-based Test Tools

USB3CV Tool

USB3CV is used to test USB 2.0 devices and USB 3.2 devices. This tool is used to test a USB product's control messaging, descriptors and basic protocol when connected to an xHCI controller. This tool takes control over the USB host controller and renders all products connected to it unusable. USB3CV should not be installed on an oscilloscope or any system that uses USB as its only form of input from the user.

The USB3CV tool Ver. 2.1.16.0 (Updated July 27, 2020) is available below.

NOTE 1: In order to use USB3CV, User Account Control (UAC) must be turned off. After turning off UAC, the system must be rebooted.
NOTE 2: The USB3CV tool is supported on Windows 7 and above.

Follow these instructions to download a JSON version of the USB-IF Company List:

  1. Click on this link: https://cms.usb.org/usb/api/usbif.json. Please wait until it loads completely.
  2. Copy the full contents of the JSON USB-IF Company List.
  3. Paste the full contents into a text file named usbif.json.

View .pdf version of Company List here: https://www.usb.org/developers

If you have any questions, please contact [email protected]


For vendors seeking version numbers to be used at upcoming workshops please visit the compliance updates page found here.

XHCICV Tool

This tool is used to test an xHCI controller for compliance to the xHCI Specification. This tool takes control over the USB host controller and renders all products connected to it unusable. Testing requires use of compliance devices, a device that supports LPM-L1, and samples of all speeds of devices supported by the xHCI controller being tested.

The XHCICV tool Ver. 2.2.4.0 (Updated October 30, 2020) is available below.

NOTE 1: In order to use XHCICV, User Account Control (UAC) must be turned off. After turning off UAC, the system must be rebooted.
NOTE 2: The XHCICV tool is supported on Windows 7 and above.

If you have questions please email [email protected]

HUB3CV Tool

This tool is used to test a USB Hubs control messaging, descriptors and basic protocol when connected to an xHCI controller. For the definition of a USB hub please refer to the USB base specifications. This tool takes control over the USB host controller and renders all products connected to the host controller unusable. USB3CV should not be installed an oscilloscope or any system that uses USB as its only form of input from the user.

The HUB3CV tool Ver. 1.3.15.0 (July 27, 2020) is available below.

NOTE 1: In order to use HUB3CV, User Account Control (UAC) must be turned off. After turning off UAC, the system must be rebooted.
NOTE 2 : The HUB3CV tool is supported on Windows 7 and above only.

Follow these instructions to download a JSON version of the USB-IF Company List:

  1. Click on this link: https://cms.usb.org/usb/api/usbif.json. Please wait until it loads completely.
  2. Copy the full contents of the JSON USB-IF Company List.
  3. Paste the full contents into a text file named usbif.json.

View .pdf version of Valid USB Vendor ID Numbers here: http://www.usb.org/developers

If you have any questions, please contact [email protected]

DualHostUSB3CV Tool

Some system architectures use 2 xHCI hosts for a single connector. One host provides the 3.2 port, the other host provides the 2.0 port. DualHostUSB3CV is designed to test this architecture and contains a subset of tests from USB3CV and DualHostUSB3CV that need to be aware of both 2.0 and 3.2 speeds.


The DualHostUSB3CV tool Ver. 0.7.3.0 (November 5, 2020) is available below.

NOTE 1: In order to use DualHostUSB3CV, User Account Control (UAC) must be turned off. After turning off UAC, the system must be rebooted.
NOTE 2 : The DualHostUSB3CV tool is supported on Windows 7 and above only.

Follow these instructions to download a JSON version of the USB-IF Company List:

  1. Click on this link: https://cms.usb.org/usb/api/usbif.json. Please wait until it loads completely.
  2. Copy the full contents of the JSON USB-IF Company List.
  3. Paste the full contents into a text file named usbif.json.

View .pdf version of Valid USB Vendor ID Numbers here: http://www.usb.org/developers

If you have any questions, please contact [email protected]

USB xHSETT

This tool kit contains the Window-based HSETT utility used to initiate test modes through an xHCI controller. xHSETT also enables electrical testing for Enhanced SuperSpeed products. Detailed test procedures for high-speed host, hub and device electrical testing, tailored to common test equipment, can be downloaded here.

The USBxHSETT tool Ver. 1.3.6.7 is available below

HSETT Documentation version 0.41 for EHCI and xHCI

NOTE 1: In order to use USBHSET, User Account Control (UAC) must be turned off. After turning off UAC, the system must be rebooted.
NOTE 2: The USBHSET tool works on Windows 7 and above only. Email [email protected] if you would like an old version of the tool that supports XP.

If you have any questions, please contact [email protected]

EHCI-based Test Tools

USB20CV

USB20CV is the compliance test tool which evaluates High, Full and Low-speed USB devices for conformance to the USB Device Framework (Chapter 9), Hub device class (Chapter 11), HID class, and OTG specifications. Also included are mass storage class and USB video class specification tests. All USB peripherals and hubs are required to pass the Device Framework tests in order to gain certification. The other tests are mandatory for certification when supported. This tool takes control over the USB host controller and renders all products connected to it unusable. USB2CV should not be installed an oscilloscope or any system that uses USB as its only form of input from the user.

The USB20CV tool Ver. 1.5.13.0 is available below

NOTES

  • If you have installed a previous version of the USB 2.0 Command Verifier, you must uninstall it before installing the new version
  • The USB20CV tool is supported on Windows 7 and above only.
  • Please download the Company List and save as usb.if in the same directory as USB20CV.
  • Please do not install this tool on a machine that already has previous versions of USB20CV installed. This tool requires an Enhanced Host Controller Interface, EHCI. If testing Full or Low-speed devices, an intervening Hi-Speed USB Hub is required. USB20CV uses a special purpose driver for the Hi-Speed USB Host Controller. USB20CV automatically replaces the standard Microsoft EHCI host driver with its own test stack driver. When USB20CV exits, the original standard Microsoft EHCI host driver is restored. Stack switching has been extensively tested with Microsoft EHCI drivers only. Stack switching has not been tested with USB 2.0 host controller drivers provided by other vendors. Please read the Release Notes for details

Follow these instructions to download a JSON version of the USB-IF Company List:

  1. Click on this link: https://cms.usb.org/usb/api/usbif.json. Please wait until it loads completely.
  2. Copy the full contents of the JSON USB-IF Company List.
  3. Paste the full contents into a text file named usbif.json.

View .pdf version of Company List here: https://www.usb.org/developers

USBHSETT

This tool kit contains the Window-based HSETT utility used to initiate test modes on an EHCI host controller. Detailed test procedures for high-speed host, hub and device electrical testing, tailored to common test equipment, can be downloaded here. A USB Electrical Analysis Tool is available separately for download (see USBET above). The procedures for legacy testing can be found in the USB-IF Compliance Program area. This software provided courtesy of Intel Corporation.

The USBHSET tool Ver. 1.3.5.6 is available below.

HSET Documentation version 0.41 for EHCI and xHCI


NOTE: The USBHSET tool works on Windows 7 and above only. Email [email protected] if you would like an old version of the tool that supports XP.

Electrical Test Tools and Fixtures

SigTest Tool

SigTest is the official tool for SuperSpeed USB transmitter voltage, LFPS, and Signal Quality electrical compliance testing as well as for calibrating SuperSpeed receiver test solutions. SigTest is designed to be used with the SuperSpeed electrical test fixture available in the USB-IF eStore.

  • SigTest version 4.0.23.2 (January 3, 2018) is available at https://www.intel.com/content/www/us/en/design/technology/high-speed-io/tools.html and should be used for USB 3.1 Gen 2 products.
  • The SigTest tool Ver. 3.2.11.3 (April 6, 2017) is available at https://www.intel.com/content/www/us/en/design/technology/high-speed-io/tools.html and should be used for USB 3.1 Gen 1 and older. SigTest 3.2.11.3 has been updated to remove the pass/fail criteria for Rj on the 5G transmitter electrical test.

USB Electrical Analysis Tool 20

USBET20 is a stand-alone electrical signal analysis tool for USB Compliance testing. USBET20 is the official compliance electrical analysis tool that performs pass/fail assessments on signal quality and inrush current data captured from an oscilloscope.

The USBET20 tool Ver. 1.32.02 (8MB, November 2019) is available below.
• USBET20 32-bit Windows

USBET20 accepts .tsv and .csv data files generated by USB-IF approved digital oscilloscopes and produces the familiar .html results files of the analysis.

NOTE 1: The only official analysis tool for certifying signal quality and inrush current is USBET20 published by the USB-IF. Some of the approved oscilloscope test solutions use proprietary software to assess signal quality and inrush current events. Please be sure to run captured signal quality and inrush current test data through USBET20 for an official assessment of the measurement.
NOTE 2: The USBHSET tool works on Windows 7 and above only.

USB HS Host SQ Test Fixture

Fixtures can be purchased directly from Allion at https://www.allion.com/fixture-usb-type-a-b/.

Fixtures can be purchased directly from Eurofins at http://testusb.com/shop.htm

USB2.0 Type-C™ Electrical Test Fixtures

USB USB 2.0 Type-C™ Electrical Test Fixtures
Fixtures for testing the USB2.0 electrical compliance parameters for USB Type-C™ devices, hosts and hubs are available and exists of two fixtures:

1. USB2.0 Type-C™ plug test fixture (FS-HUCP)
2. USB2.0 Type-C™ receptacle test fixture (FS-HUCR)

Technical and purchase details can be found at http://testusb.com/TypeC20.html

-->

Purpose

This section describes support in the Windows operating system, for developing a Universal Serial Bus (USB) host controller driver that communicates with the Microsoft-provided USB host controller extension (UCX).

If you are developing an xHCI host controller that is not compliant with the specification or developing a custom non-xHCI hardware (such as a virtual host controller), you can write a host controller driver that communicates with UCX. For example, consider a wireless dock that supports USB devices. The PC communicates with USB devices through the wireless dock by using USB over TCP as a transport.

USB host controller extension (UCX)

The USB host controller extension is a system-supplied driver (Ucx01000.sys). This driver is implemented as a framework class extension by using the Windows Driver Framework programming interfaces. The host controller driver serves as the client driver to that class extension. While a host controller driver handles hardware operations and events, power management, and PnP events, UCX serves as an abstracted interface that queues requests to the host controller driver, and performs other tasks.

UCX is one of the USB host-side drivers in Windows. It is loaded as the FDO in the host controller device stack.

USB host controller driver

UCX is extensible and is designed to support various host controller drivers. Windows provides an xHCI driver (Usbxhci.sys) that targets USB xHCI host controllers.

The host controller driver is a client of UCX, written as Kernel-Mode Driver Framework (KMDF) driver.

Microsoft-provided binaries

To write a host controller driver, you need UCX (Ucx01000.sys) and the stub library (Ucx01000.lib). The stub library is in the Windows Driver Kit (WDK). The library performs two main functions.

  • Translate calls made by the host controller driver and pass them up to UCX.
  • Provides support for versioning. A host controller driver will work with UCX, only if UCX has the same Major version number as the host controller driver, and the same or higher Minor version number as the host controller driver.

Development tools

The WDK contains resources that are required for driver development, such as headers, libraries, tools, and samples.

Get started...

Read the official specification that describes the expected behavior of different components (device, host controller, and hub) of the architecture.

xHCI for Universal Serial Bus: SpecificationOfficial Universal Serial Bus Documents

Understand the architecture of UCX

Familiarize yourself with the Microsoft-provided USB driver stack:

USB host-side drivers in WindowsArchitecture: USB host controller extension (UCX)

Familiarize yourself with UCX objects and handles

UCX extends the WDF object functionality to define its own USB-specific UCX objects. For more details on WDF objects, see Introduction to Framework Objects.

For queuing requests to any underlying host controller driver, UCX uses these objects. For more information, see UCX objects and handles used by a host controller driver.

Host controller object (UCXCONTROLLER)

Represents the host controller that is created by the host controller driver. The driver must create only one host controller object per host controller instance. Typically created within the EVT_WDF_DRIVER_DEVICE_ADDcallback by calling the UcxControllerCreate](/previous-versions/windows/hardware/drivers/mt188033(v=vs.85))'>UcxControllerCreate method.

Root hub object (UCXROOTHUB)

Gets and controls the status of the root ports of the host controller. Created by the host controller driver typically within the EVT_WDF_DRIVER_DEVICE_ADD callback by calling the UcxRootHubCreate](/previous-versions/windows/hardware/drivers/mt188048(v=vs.85))'>UcxRootHubCreate method.

USB device object (UCXUSBDEVICE)

Represents a physical USB device connected to the bus. Created by the host controller driver typically within the EVT_UCX_CONTROLLER_USBDEVICE_ADD](/windows-hardware/drivers/ddi/ucxcontroller/nc-ucxcontroller-evt_ucx_controller_usbdevice_add)'>EVT_UCX_CONTROLLER_USBDEVICE_ADD callback by calling the UcxUsbDeviceCreate](/windows-hardware/drivers/ddi/ucxusbdevice/nf-ucxusbdevice-ucxusbdevicecreate)'>UcxUsbDeviceCreate method.

Endpoint object (UCXENDPOINT)

Represents an endpoint on a USB device object. Created by the host controller driver typically within the EVT_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD](/windows-hardware/drivers/ddi/ucxusbdevice/nc-ucxusbdevice-evt_ucx_usbdevice_default_endpoint_add)'>EVT_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD or EVT_UCX_USBDEVICE_ENDPOINT_ADD](/windows-hardware/drivers/ddi/ucxusbdevice/nc-ucxusbdevice-evt_ucx_usbdevice_endpoint_add)'>EVT_UCX_USBDEVICE_ENDPOINT_ADD callback by calling the UcxEndpointCreate](/windows-hardware/drivers/ddi/ucxendpoint/nf-ucxendpoint-ucxendpointcreate)'>UcxEndpointCreate method.

Stream object (UCXSTREAMS)

Represents a number of pipes to the device across a single bulk endpoint. Created by the host controller driver typically within the EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD](/windows-hardware/drivers/ddi/ucxendpoint/nc-ucxendpoint-evt_ucx_endpoint_static_streams_add)'>EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD callback by calling the UcxStaticStreamsCreate](/windows-hardware/drivers/ddi/ucxsstreams/nf-ucxsstreams-ucxstaticstreamscreate)'>UcxStaticStreamsCreate method.

Documentation sections

Root hub callback functions of a host controller driver

UCX handles most operations related to the root hub. This allows the USB hub driver to interact with the root hub in the same way that it interacts with a regular hub. The host controller driver can register its callback functions.

Handle I/O requests in a USB host controller driver

UCX triages incoming USB request blocks (URBs), and then forwards them to the correct endpoint queue.

Configure USB endpoints in a host controller driver

The host controller driver plays a role in UCX’s management of the queues that are associated with its endpoints, and in the programming of endpoints into controller hardware.

USB host controller extension (UCX) reference

Gives specifications for I/O requests, support routines, structures, and interfaces used by the client driver. Those routines and related data structures are defined in the WDK headers.

UCX is referred to as the framework class extension.

The host controller driver is referred to as the client driver.

Via Usb Host Controller Driver

Related topics