USB Host Controller Compliance

This automated test checks for one or more valid UHCI/OHCI, EHCI or xHCI host controllers in the system. It performs basic register checks on the host controllers to determine the versions of the associated host controller specifications.

Test details

Associated requirements

Device.BusController.UsbController.SpecificationCompliance Device.BusController.UsbController.XhciVersionCompliant

See the device hardware requirements.

Platforms

Windows 7 (x64) Windows 7 (x86) Windows 8 (x64) Windows 8 (x86) Windows Server 2012 (x64) Windows Server 2008 R2 (x64) Windows 8.1 x64 Windows 8.1 x86 Windows Server 2012 R2

Expected run time

~7 minutes

Categories

Certification Functional

Type

Automated

 

Running the test

Before you run the test, complete the test setup as described in the test requirements: USB Bus Controller Testing Prerequisites.

Troubleshooting

For troubleshooting information, see Troubleshooting Bus Controller Testing.

The test fails if:

  • This automated test checks for one or more valid UHCI/OHCI, EHCI or xHCI host controllers in the system. It performs basic register checks on the host controllers to determine the versions of the associated host controller specifications.

  • An UHCI/OHCI host controller does not meet version 1.10 or later versions of the UHCI Specification.

  • An EHCI host controller does not meet version .95 or later versions of the EHCI Specification.

  • An xHCI host controller does not meet version 1.0 or later version of the xHCI Specification.

More information

Details for this test are divided into two groups:

  • PCI Bus Enumeration

  • Minimum OHCI/UHCI/EHCI/xHCI Version Compliance

PCI Bus Enumeration

The PCI bus is also enumerated to search for the USB OHCI/UHCI/EHCI/xHCI host controllers. The test scans a list of PCI devices and examines the class code PCI configuration register of each to determine if it is an OHCI/UHCI/EHCI/xHCI USB controller. The PCI Class Code register has the values shown in the following table for USB controllers.

Field Bits Read/Write Description

PI

7-0

R

PROGRAMMING INTERFACE

A constant value of '20h' Identifies the device being an EnhancedHCI Host Controller

A constant value of '10h' Identifies the device being an OpenHCI Host Controller

A constant value of '00h' Identifies the device as having no specific register level programming interface defined (UHCI)

SC

15-8

R

SUB CLASS

A constant value of '03h' Identifies the device being a universal serial bus

BC

23-16

R

BASE CLASS

A constant value of '0Ch' Identifies the device being a Serial Bus Controller

 

If the base class is 0Ch and the sub class is 03h, the PCI device is a universal serial bus controller. In this case, the programming interface is examined to determine the type of universal serial bus controller.

Minimum OHCI/UHCI/EHCI/xHCI version compliance

Each OHCI/UHCI/EHCI/xHCI controller must meet a minimum version of the corresponding host controller specification. The version of the specification that each host controller supports is determined as follows:

  • EHCI - The HCIVERSION register at Offset 0x02 of the EHCI capability registers is read. This register contains a 16-bit BCD encoded version of the EHCI Specification to which the host controller conforms. It must be at least 0x0095 or the test fails

  • OHCI - The test should check the HcRevision value in the operational registers on OCHI controllers for compliance with Open Host Controller Interface Specification v1.0a.

  • UHCI - The UHCI Specification does not define a version register for the version of the UHCI Specification that the host controller implements. Instead the PCI Serial Bus Release Number register at offset 0x60 in configuration space is read. This 8-bit register must be version 1.1 or the test fails (0x10 indicates version 1.1 of the UHCI Specification).

  • xHCI - The HCIVERSION register at Offset 0x02 of the xHCI capability registers is read. This register contains a 16-bit BCD encoded version of the xHCI Specification to which the host controller conforms. It must be at least 0x0100 or the test fails.

If any of the UHCI, OHCI, EHCI or xHCI controllers in the system do not meet the versions documented above, the host controller compliance test fails.

 

 

Send comments about this topic to Microsoft