![Intel IXP45X Скачать руководство пользователя страница 479](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092479.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262--, Revision: 004US
479
USB 2.0 Host Controller—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
In order to access siTD
X-1
, the host controller reads on-chip the siTD referenced from
siTD
X
.Back Pointer.
The host controller must save the entire state from siTD
X
while processing siTD
X-1
. This
is to accommodate for case 2b processing. The host controller must not recursively
walk the list of siTD.Back Pointers.
If siTD
X-1
is active (Active bit is a one and SplitXStat is Do Complete Split), then both
Test A and Test B are applied as described above. If these criteria to execute a
complete-split are met, the host controller executes the complete split and evaluates
the results as described above. The transaction state (see
Split Transaction State” on page 478
) of siTD
X-1
is appropriately advanced based on the
results and written back to memory. If the resultant state of siTD
X-1
's Active bit is a
one, then the host controller returns to the context of siTD
X
, and follows its next
pointer to the next schedule item. No updates to siTD
X
are necessary.
If siTD
X-1
is active (Active bit is a one and SplitXStat is Do Start Split), then the host
controller must set Active bit to a zero and Missed Micro-Frame status bit to a one and
the resultant status written back to memory.
If siTD
X-1
's Active bit is a zero, (because it was zero when the host controller first
visited siTD
X-1
via siTD
X
's back pointer, it transitioned to zero as a result of a detected
error, or the results of siTD
X-1
's complete-split transaction transitioned it to zero), then
the host controller returns to the context of siTD
X
and transitions its SplitXState to Do
Start Split. The host controller then determines whether the case 2b start split
boundary condition exists (i.e. if cMicroframeBit is a 1b and siTD
X
.S-mask[0] is a 1b).
If this criterion is met the host controller immediately executes a start-split transaction
and appropriately advances the transaction state of siTD
X
, then follows siTD
X
.Next
Pointer to the next schedule item. If the criterion is not met, the host controller simply
follows siTD
X
.Next Pointer to the next schedule item. Note that in the case of a 2b
boundary case, the split-transaction of siTD
X-1
will have its Active bit set to zero when
the host controller returns to the context of siTD
X
. Also, note that software should not
initialize an siTD with C-mask bits 0 and 1 set to a one and an S-mask with bit zero set
to a one. This scheduling combination is not supported and the behavior of the host
controller is undefined.
9.14.12.3.4 Split Transaction for Isochronous — Processing Examples
There is an important difference between how the hardware/software manages the
isochronous split transaction state machine and how it manages the asynchronous and
interrupt split transaction state machines. The asynchronous and interrupt split
transaction state machines are encapsulated within a single queue head. The progress
of the data stream depends on the progress of each split transaction. In some respects,
the split-transaction state machine is sequenced via the Execute Transaction queue
head traversal state machine (see
Figure 65, “Host Controller Queue Head Traversal
Isochronous is a pure time-oriented transaction/data stream. The interface data
structures are optimized to efficiently describe transactions that need to occur at
specific times. The isochronous split-transaction state machine must be managed
across these time-oriented data structures. This means that system software must
correctly describe the scheduling of split-transactions across more than one data
structure.
Then the host controller must make the appropriate state transitions at the appropriate
times, in the correct data structures.
For example,
illustrates a couple of frames worth of scheduling required to
schedule a case 2a full-speed isochronous data stream.