User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 461
UG585 (v1.11) September 27, 2016
Chapter 15: USB Host, Device, and OTG Controller
11:10 Error Counter, Cerr. This field is a 2-bit down counter that keeps track of the number of consecutive
Errors detected while executing this qTD.
HCD write:
00: the controller will not count errors for this qTD and there will be no limit on the retries of this
qTD.
01 to 11: the controller decrements this field for each consecutive USB transaction error [UEI] that
occurs while processing this qTD. If the counter counts from 01 to 00, the controller marks the
qTD inactive, sets the Halted bit = 1, and sets the usb.USBINTR [CERR] error status bit.
Transaction Error Yes
Stall No, see note 1 below.
Babble Detected No, see note 1 below.
No Error No, see note 2 below.
Data Buffer Error No, see note 3 below.
Notes:
1. Detection of Babble or Stall automatically halts the queue head. Thus, count is not decremented
2. If the QH.EPS field indicates a HS device or the queue head is in the Asynchronous Schedule (and PID
code indicates an IN or OUT) and a bus transaction completes and the host controller does not detect
a transaction error, then the host controller should reset Cerr to extend the total number of errors for
this transaction. For example, Cerr should be reset with maximum value (3) on each successful
completion of a transaction. The host controller must never reset this field if the value at the start of
the transaction is 00b.
3. Data buffer errors are host problems. They don't count against the device's retries.
Note: The HCD must not program Cerr to a value of 0 when the QH.EPS field is programmed with
a value indicating a FS or LS device. This combination could result in undefined behavior.
9:8 PID Code, PID. This field is an encoding of the token, which should be used for transactions
associated with this transfer descriptor. Encodings are:
00: DUT. Token generates token (E1h)
01: IN. Token generates token (69h)
10: Setup. Token generates token (2Dh) (undefined if end-point is an Interrupt transfer type,
e.g. microFrame S-mask field in the queue head is non-zero.)
11: Reserved.
7 Active Status. Set to 1 by the HCD to enable the execution of transactions by the host controller.
6
Halted Status. Set to a 1 by the host controller during status updates to indicate that a serious error
has occurred at the device/endpoint addressed by this qTD. This can be caused by babble, the error
counter counting down to 0, or reception of the STALL handshake from the device during a
transaction. Any time that a transaction results in the Halted bit being set to a 1, the Active bit is
also set to 0.
5 Data Buffer Error Status. Set to a 1 by the Host Controller during status update to indicate that
the Host Controller is unable to keep up with the reception of incoming data (overrun) or is unable
to supply data fast enough during transmission (under run). If an overrun condition occurs, the Host
Controller will force a timeout condition on the USB, invalidating the transaction at the source. If
the host controller sets this bit to a 1, then it remains a 1 for the duration of the transfer.
4 Babble Detected Status. Set to a 1 by the host controller during status update when “babble” is
detected during the transaction. In addition to setting this bit, the host controller also sets the
Halted bit to a 1. Since “babble” is considered a fatal error for the transfer, setting the Halted bit to
a 1 insures that no more transactions occur because of this descriptor.
Table 15-38: USB Host qTD DWord 2: DT, Total Bytes (Contd)
Bits Description