USB Host Controller Compliance

Note  This content applies to the Windows Logo Kit (WLK). For the latest information using the new Windows Hardware Certification Kit (HCK), see Windows HCK User's Guide on the Windows Hardware Dev Center.

Type: Automated Test

Overview

This test checks for one or more valid UHCI, OpenHCI, or EHCI host controllers in the system. It performs basic register checks on the host controllers to determine the versions of the associated host controller specifications with which the host controllers are compliant.

Details

PCI Bus Enumeration

The PCI bus is also enumerated to search for the USB OpenHCI/UHCI/EHCI host controllers. The test scans a list of PCI devices and looks at the class code PCI configuration register of each to determine if it is an OpenHCI/UHCI/EHCI 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 OpenHCI/UHCI/EHCI Version Compliance

Each OpenHCI/UHCI/EHCI 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.

OpenHCI - 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).

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

Results Interpretation

The test transcribes all results to a text based log file.

The test fails if:

  • The number of UHCI, OHCI, and EHCI USB host controllers found by enumerating the PCI bus does not match the operating system information.

  • An EHCI host controller does not meet at least version .95 of the EHCI Specification.

  • An UHCI host controller does not meet at least version 1.10 of the UHCI Specification.

Run Time: 5 minutes

Log File:

System Restart Required: No

Test Category:

Supported operating systems for Logo or Signature testing:

  • Windows 7

  • Windows Server 2008 R2

  • Windows Vista

  • Windows Server 2008

  • Windows Server 2003

  • Windows XP

Program:

Requirements

Software Requirements

The test tool requires the following software:

  • Supported operating system (see list above).
  • Software components included with the device that is being tested.

Hardware Requirements

  • Device to be tested
  • One USB 2.0 controller PCI adapter, if system does not contain a USB 2.0 controller.

Processor

  • x86
  • x64
  • Itanium

Troubleshooting

  • 9.1.7 USB host controller meets either OpenHCI Specification or UHCI Specification.

    Reference documents: WLP# - B2.6.2; PC 99 System Design Guide - 7.6

  • 9.1.B1 USB host controllers must meet the OpenHCI Specification, or the UHCI Specification, or the EHCI Specification.

    Reference documents: WLP# - B2.6.2

  • 9.1.B2 EHCI USB host controllers must meet version .95 of the EHCI Specification.

    Reference documents: WLP# - B2.6.2; Enhanced Host Controller Interface Specification, Revision .95

  • 9.1.B4 UHCI USB host controllers must meet version 1.1 of the UHCI Specification.

    Reference documents: WLP# - B2.6.2; PC 99 System Design Guide - 7.6. Universal Host Controller Interface Specification, Revision 1.1

 

 

Build date: 9/14/2012