Functional Description
5-106
Intel
82801BA ICH2 Datasheet
Note that, if a NAK or STALL response is received from a SETUP transaction, a Time Out Error
will be 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.16.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 ICH2 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-16
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-16
(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 (ICH2 does 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 ICH2 assumes there is no more work to complete for the current Frame.
Figure 5-16. Example Queue Conditions
T
T
Q
T
T
T
E
Q
d
Q
2
31
1
0
Frame List Pointer
Link Pointer (Horiz)
T
Q T
Q
Link Pointer (Vert)
2
31
1
0
Link Pointer (Horiz)
Q T
Q
Link Pointer (Vert)
2
31
1
0
Link Pointer (Horiz)
Q T
T
Link Pointer (Vert)
2
31
1
0
Link Pointer (Horiz)
Q T
Q T
Link Pointer (Vert)
2
31
1
0
Link Pointer (Horiz)
Q
Q
Link Pointer (Vert)
2
31
1
0
Link Pointer
Q T
TD
Link Pointer
Q
TD
QH
QH
T
Indicates "Nil" Next Pointer
Q
TD
T
Link Pointer
Q
TD
T
Link Pointer
Q
TD
Indicates "Nil" Next Pointer
QH
QH
Indicates "Null" Queue Head
1. Link Pointer (Horiz) = Queue Head Link Pointer
field in QH DWord 0
2. Link Pointer (Vert) = Queue Element Link Pointer
field in QH DWord 1
Notes:
QH
Link Pointer
Powered by ICminer.com Electronic-Library Service CopyRight 2003