xHCI for USB


Let MindShare Bring xHCI to Life for You

The xHCI (eXtensible Host Controller Interface) for USB 3.0 consolidates support for all generations of USB Low Speed, Full Speed, High Speed, and SuperSpeed peripherals and hubs. While a standard USB controller and software interface is defined, a wide range of xHC hardware implementations and programming options are permitted to accommodate requirements of platforms ranging from embedded devices to PCs, workstations, and servers. When compared with earlier host controller models, xHCI also brings significant enhancements in the areas of platform power management, USB transaction scheduling, bandwidth management, and diagnostics/debug.

MindShare's Current Offerings for xHCI:

Course Name

Virtual Classroom

Comprehensive xHCI
2 days

2-3 days
Notify Me When Available
Comprehensive xHCI + Fundamentals of USB 3.0
3 days

3-4 days
Fundamentals of xHCI
1 day

Notify Me When Available

All of MindShare's classroom and virtual classroom courses can be customized to fit the needs of your group.

Comprehensive xHCI + Fundamentals of USB 3.0 Course Info

 Who Should Attend?

MindShare offers three standard xHCI training options. This comprehensive three-day course targets software, hardware, validation engineers and other technical people with a need to understand the details of xHCI protocol as well as the fundamentals of the USB 3.0/2.0 topologies it supports. Course content includes USB 2.0/3.0 protocol review, xHC hardware, programmer's register and memory interface, and the xHCI operational model: controller initialization, device attachment and removal, transaction management, error handling, host controller interrupts, etc.

The other two standard MindShare xHCI course options include a one-day xHCI for USB 3.0 Overview or two-day Comprehensive xHCI For USB 3.0 course without the review of USB 2.0/3.0 fundamentals. All MindShare courses may be customized to suit specific customer requirements.

Course Length: 3 Days

Course Outline:

  • xHCI Specification Motivation and Goals
    • Limitations of USB 2.0/3.0 and UHCI/OHCI/EHCI models
    • xHCI Feature Summary
  • USB 2.0 and 3.0 Protocol Overview
    • USB 2.0 Features
      • USB Topology and LS, FS, HS devices
      • Transaction Scheduling
      • IN/OUT Packet and Transaction Basics
      • FS and HS Hub Responsibilities
      • Error Handling
      • Power Conservation
    • USB 3.0 Features
      • USB 3.0 SuperSpeed and USB 2.0 Compatibility
      • End-To-End and Port-To-Port SS Protocols
      • IN/OUT Transaction Examples
      • USB 3.0 Hubs
      • SS Link Reset and Initialization
      • USB Enumeration and Configuration
      • SS Power Conservation Enhancements
  • USB Software-Hardware Layers And Role Of xHCI
    • Application Layer
    • Class Drivers
    • USB Driver (USBD)
    • xHC Driver (xHCD)
    • xHC Hardware
    • USB 2.0/3.0 Topology
  • xHCI Operational Model
    • General Host Controller Responsibilities
      • Manage attachment/removal, initialization, and transfer protocols for all speeds
      • Hardware based USB transaction scheduling
      • Bandwidth management
      • Interrupt based event reporting to the host system
      • Power management: USB interfaces, PCI Express interface
      • Optional IO virtualization and Debug Capability roles
    • xHC Implementation Options
      • Integrated vs. Stand-Alone Host Controller
      • Bus Instances
      • Integrated USB 2.0 Hubs
      • Topology Examples
    • Host Controller Initialization
      • PCI Configuration Registers
      • Memory Mapped IO Registers
    • Device Attachment/Removal and Slot Management
      • Detecting and Reporting
      • USB and Memory Resource Allocation
    • Use and Format of Primary Memory Data Structures
      • Device Context
      • Introduction To Rings And TRBs
      • Doorbell Request Scheme
      • Transfer Rings
      • Command Ring
      • Event Rings and Interrupters
      • Transaction Examples
    • Other Memory Data Structures
  • xHCI Extended Capabilities (Optional)
    • Background
    • Defined Extended Capability Types
  • Debug Capability (DbC)
    • Debug Extended Capability Registers
    • MMIO Registers
    • DbC Operational Model
  • xHCI-defined Virtualization Assists
    • Background
    • SR-IOV Extended Capability Registers
    • MMIO Registers
    • Physical And Virtual Functions (PF/VF)
    • Virtual Function Setup And Resource Assignment

Recommended Prerequisites:

While background in USB 2.0/3.0 is very helpful, this course includes an overview of USB protocol topics critical to understanding xHCI.

Training Materials:

Students will be provided with an electronic (PDF) version of the presentation used in class.

USB 3.0 Technology