![Intel IXP45X Developer'S Manual Download Page 475](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092475.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262--, Revision: 004US
475
USB 2.0 Host Controller—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
T-Count is always initialized to the number of start-splits for the current frame. TP is
always initialized to the first required transaction position identifier. The scheduling
Figure 73, “siTD Scheduling Boundary Examples” on page 471
) is
used to determine the initial value of TP. The initial cases are summarized in
.
After each start-split transaction is complete, the host controller updates T-Count and
TP appropriately so that the next start-split is correctly annotated.
illustrates
all of the TP and T-count transitions, which must be accomplished by the host
controller.
The start-split transactions do not receive a handshake from the transaction translator,
so the host controller always advances the transfer state in the siTD after the bus
transaction is complete. To advance the transfer state the following operations take
place:
• The siTD.Total Bytes To Transfer and the siTD.Current Offset fields are adjusted to
reflect the number of bytes transferred.
• The siTD.P (page selector) bit is updated appropriately.
• The siTD.TP and siTD.T-count fields are updated appropriately as defined in
.
These fields are then written back to the memory based siTD. The S-mask is fixed for
the life of the current budget. As mentioned above, TP and T-count are set specifically
in each siTD to reflect the data to be sent from this siTD. Therefore, regardless of the
value of S-mask, the actual number of start-split transactions depends on T-count (or
equivalently, Total Bytes to Transfer). The host controller must set the Active bit to a
zero when it detects that all of the schedule data has been sent to the bus. The
preferred method is to detect when T-Count decrements to zero as a result of a start-
split bus transaction. Equivalently, the host controller can detect when Total Bytes to
Transfer decrements to zero. Either implementation must ensure that if the initial
condition is Total Bytes to Transfer equal to zero and T-count is equal to a one, then
the host controller will issue a single start-split, with a zero-length data payload.
Software must ensure that TP, T-count and Total Bytes to Transfer are set to deliver the
appropriate number of bus transactions from each siTD. An inconsistent combination
will yield undefined behavior.
Table 181.
Initial Conditions for OUT siTD's TP and T-count Fields
Case
T-count
TP
Description
1, 2a
=1
ALL
When the OUT data payload is less than (or equal to) 188 bytes, only one
start-split is required to move the data. The one start-split must be
marked with an ALL.
1, 2a
!=1
BEGIN
When the OUT data payload is greater than 188 bytes more than one
start-split must be used to move the data. The initial start-split must be
marked with a BEGIN.
Table 182.
Transaction Position (TP)/Transaction Count (T-Count) Transition Table
TP
T-count
Next
TP
Next
Description
ALL
0
N/A
Transition from ALL, to done.
BEGIN
1
END
Transition from BEGIN to END. Occurs when T-count starts at 2.
BEGIN
!=1
MID
Transition from BEGIN to MID. Occurs when T-count starts at greater than 2.
MID !=1
MID
TP stays at MID while T-count is not equal to 1 (e.g. greater than 1). This case
can occur for any of the scheduling boundary cases where the T-count starts
greater than 3.
MID 1 END
Transition from MID to END. This case can occur for any of the scheduling
boundary cases where the T-count starts greater than 2.