
82801AA and 82801AB Datasheet
5-83
Functional Description
Note:
If a NAK or STALL response is received from a SETUP transaction, a Time Out Error is reported.
This causes the Error counter to decrement and the CRC/Time-out Error status bit to be set within
the TD Control and Status DWord during write back. If the Error counter changes from 1 to 0, the
Active bit is reset to 0 and Stalled bit to 1 as normal.
5.15.2.4
Transfer Queuing
Transfer Queues are used to implement a guaranteed data delivery stream to a USB Endpoint.
Transfer Queues are composed of two parts: a Queue Header (QH) and a linked list. The linked list
of TDs and QHs has an indeterminate length (0 to n).
The QH contains two link pointers and is organized as two contiguous DWords. The first DWord is
a horizontal pointer (Queue Head Link Pointer), used to link a single transfer queue with either
another transfer queue, or a TD (target data structure depends on Q bit). If the T bit is set, this QH
represents the last data structure in the current Frame. The T bit informs the ICH that no further
processing is required until the beginning of the next frame. The second DWord is a vertical pointer
(Queue Element Link Pointer) to the first data structure (TD or QH) being managed by this QH. If
the T bit is set, the queue is empty. This pointer may reference a TD or another QH.
Figure 5-14
illustrates four example queue conditions. The first QH (on far left) is an example of
an “empty” queue; the termination bit (T Bit), in the vertical link pointer field, is set to 1. The
horizontal link pointer references another QH. The next queue is the expected typical
configuration. The horizontal link pointer references another QH, and the vertical link pointer
references a valid TD.
Typically, the vertical pointer in a QH points to a TD. However, as shown in
Figure 5-14
(third
example from left side of figure) the vertical pointer could point to another QH. When this occurs,
a new Q Context is entered and the Q Context just exited is NULL (ICH will not update the vertical
pointer field).
The far right QH is an example of a frame ‘termination’ node. Since its horizontal link pointer has
its termination bit set, the ICH assumes there is no more work to complete for the current Frame.
Figure 5-14. Example Queue Conditions
Frame List Pointer
Q T
0
1
2
31
Link Pointer (Horiz) Q T
Link Pointer (Vert)
0
1
2
31
Q T
Indicates 'NULL' Queue Head
Link Pointer
Q T
TD
QH
Link Pointer
Q T
TD
Link Pointer
Q T
TD
Indicates 'Nil' Next Pointer
Indicates 'Nil' Next Pointer
QH
Link Pointer (Horiz) Q T
Link Pointer (Vert)
0
1
2
31
Q T
QH
Link Pointer (Horiz) Q T
Link Pointer (Vert)
0
1
2
31
Q T
QH
Link Pointer (Horiz) Q T
Link Pointer (Vert)
0
1
2
31
Q T
QH
Link Pointer (Horiz) Q T
Link Pointer (Vert)
0
1
2
31
Q T
Link Pointer
Q T
TD
Link Pointer
Q T
TD
Link Pointer (Horz)=Queue Head Link Pointer
field in QH DWord 0
Link Pointer (Vert)=Queue Element Link Pointer
field in QH DWord 1