14 protocols - usb support, 1 usb host controller protocol, 1 usb host controller protocol overview – Intel Extensible Firmware Interface User Manual

Page 541

Advertising
background image

Version 1.10

12/01/02

14-1

14

Protocols - USB Support

14.1 USB Host Controller Protocol

These sections (Sections 14.1 and below) describe the USB Host Controller Protocol. This protocol
provides an I/O abstraction for a USB Host Controller. A USB Host Controller is a hardware
component that interfaces to a Universal Serial Bus (USB). It moves data between system memory
and devices on the USB by processing data structures and generating transactions on the USB.
This protocol is used by a USB Bus Driver to perform all data transaction over the Universal Serial
Bus. It also provides services to manage the USB root hub that is integrated into the USB Host
Controller. USB device drivers do not use this protocol directly. Instead, they use the I/O
abstraction produced by the USB Bus Driver. This protocol should only be used by drivers that
require direct access to the USB bus.

14.1.1 USB Host Controller Protocol Overview

The USB Host Controller Protocol is used by code, typically USB bus drivers, running in the EFI
boot services environment, to perform data transactions over a USB bus. In addition, it provides an
abstraction for the root hub of the USB bus.

The interfaces provided in the

EFI_USB_HC_PROTOCOL

are used to manage data transactions on

a USB bus. It also provides control methods for the USB root hub. The

EFI_USB_HC_PROTOCOL

is designed to support USB 1.1–compliant host controllers.

The

EFI_USB_HC_PROTOCOL

abstracts basic functionality that is designed to operate with both

the UHCI and OHCI standards. By using this protocol, a single USB bus driver can be
implemented without knowing if the underlying USB host controller conforms to the OHCI or the
UHCI standards.

Each instance of the

EFI_USB_HC_PROTOCOL

corresponds to a USB host controller in a

platform. The protocol is attached to the device handle of a USB host controller that is created by a
device driver for the USB host controller’s parent bus type. For example, a USB host controller
that is implemented as a PCI device would require a PCI device driver to produce an instance of the

EFI_USB_HC_PROTOCOL

.

Advertising