User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 446
UG585 (v1.11) September 27, 2016
Chapter 15: USB Host, Device, and OTG Controller
15.11.3 EHCI Functional Changes for the TT
This section includes:
Port Reset Timer to off-load software
Port Speed detection
In a standard EHCI controller design, the Host controller driver (HCD) detects a full-speed or
low-speed device by noting if the port enable bit is set after the port reset operation. The port
enable is set after the port reset operation when the host and device negotiate a High-Speed
connection (i.e., chirp completes successfully).
Because the controller emulates a transaction translator (TT), the port enable is always set after the
port reset operation regardless of the result of the host device chirp result. The resulting port speed
is indicated by the usb.PORTSC1 [PSPD] bit field.
Therefore, a standard EHCI HCD requires alteration to handle direct connection to Full and Low
speed devices or hubs. The changes are fundamental and summarized in Table 15-21.
15.11.4 Port Reset Timer Enhancement
The port connect methods specified by EHCI require setting the port reset bit in the PORTSC register
for a duration of 10 ms. The controller has timers that can count the 10 ms reset pulse to alleviate the
requirement of the HCD to control this timing. The basic connection for the HCD software:
Example: Port Reset Timer for Discovery
This example show a simple attach event and the step that is made optional because of the Port
Reset Timer feature.
1. Wait for device to attach. Receive a port connect change [Port Change Interrupt].
Table 15-21: EHCI HCD Alteration
Function Standard EHCI Embedded Transaction Translator
Hub Speed After port enable bit is set following a
connection and reset sequence, the
device/hub is assumed to be HS.
After port enable bit is set following a connection and reset
sequence, the device (hub) speed is noted from PORTSC1.
FS/LS devices FS and LS devices are assumed to be
downstream from a HS hub thus, all
port-level control is performed through
the Hub Class to the nearest Hub.
FS/LS device can be either downstream from an HS hub or
directly attached. When its downstream, then port-level
control is done using the Hub Class through the nearest
Hub. When a FS/LS device is directly attached, then
port-level control is accomplished using PORTSC1.
Split Target FS and LS devices are assumed to be
downstream from a HS hub with
HubAddr=X; where HubAddr > 0 and
HubAddr is the address of the Hub
where the bus transitions from HS to
FS/LS (i.e. Split target hub).
FS/LS device can be either downstream from a HS hub with
HubAddr = X [HubAddr > 0] or directly attached; where
HubAddr = [TTHA]. [TTHA] is programmable and defaults
to 0. HubAddr is the address of the Root Hub where the bus
transitions from HS to FS/LS (i.e. Split target hub is the root
hub).