![Intel IXP45X Developer'S Manual Download Page 401](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092401.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262--, Revision: 004US
401
USB 2.0 Host Controller—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Table 158.
qTD Token (DWord 2) (Sheet 1 of 2)
Bit
Description
31
Data Toggle. This is the data toggle sequence bit. The use of this bit depends on the setting of
the Data Toggle Control bit in the queue head.
30:16
Total Bytes to Transfer. This field specifies the total number of bytes to be moved with this
transfer descriptor. This field is decremented by the number of bytes actually moved during the
transaction, only on the successful completion of the transaction. The maximum value software
may store in this field is 5 * 4K (5000H). This is the maximum number of bytes 5 page pointers
can access. If the value of this field is zero when the host controller fetches this transfer
descriptor (and the active bit is set), the host controller executes a zero-length transaction and
retires the transfer descriptor. It is not a requirement for OUT transfers that Total Bytes To
Transfer be an even multiple of QHD.Maximum Packet Length. If software builds such a transfer
descriptor for an OUT transfer, the last transaction will always be less than QHD.Maximum Packet
Length.
Although it is possible to create a transfer up to 20K this assumes the 1
st
offset into the first page
is 0. When the offset cannot be predetermined, crossing past the 5th page can be guaranteed by
limiting the total bytes to 16K**. Therefore, the maximum recommended transfer is
16K(4000H).
15
Interrupt On Complete (IOC). If this bit is set to a one, it specifies that when this qTD is
completed, the Host Controller should issue an interrupt at the next interrupt threshold.
14:12
Current Page (C_Page). This field is used as an index into the qTD buffer pointer list. Valid
values are in the range 0H to 4H. The host controller is not required to write this field back when
the qTD is retired.
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. If this field is programmed with a non-zero
value during set-up, the Host Controller decrements the count and writes it back to the qTD if the
transaction fails. If the counter counts from one to zero, the Host Controller marks the qTD
inactive, sets the Halted bit to a one, and error status bit for the error that caused CERR to
decrement to zero. An interrupt will be generated if the USB Error Interrupt Enable bit in the
USBINTR register is set to a one. If HCD programs this field to zero during set-up, the Host
Controller will not count errors for this qTD and there will be no limit on the retries of this qTD.
Note that write-backs of intermediate execution state are to the queue head overlay area, not the
qTD.
Error
Decrement Counter
Transaction Error
Yes
Data Buffer Error
No
3
Stalled
No
1
Babble Detected
No
1
No Error
No
2
1
Detection of Babble or Stall automatically halts the queue head. Thus, count is not
decremented
2
If the EPS field indicates a HS device or the queue head is in the Asynchronous
Schedule (and PIDCode 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.
See
“Split Transaction Execution State Machine for Interrupt” on page 461
adjustment rules when the EPS field indicates a FS or LS device and the queue head is
in the Periodic Schedule. See
“Asynchronous — Do Complete Split” on page 454
for
CERR adjustment rules when the EPS field indicates a FS or LS device, the queue head
is in the Asynchronous schedule and the PIDCode indicates a SETUP.
3
Data buffer errors are host problems. They don't count against the device's retries.
Note: Software must not program CERR to a value of zero when the EPS field is programmed with
a value indicating a Full- or Low-speed device. This combination could result in undefined
behavior.
9:8
PID Code. This field is an encoding of the token, which should be used for transactions
associated with this transfer descriptor. Encodings are:
00b
OUT Token generates token (E1H)
01b
IN Token generates token (69H)