Intel IXP45X Developer's Manual page 476

Network processors
Table of Contents

Advertisement

Intel
If the host experiences hold-offs that cause the host controller to skip start-split
transactions for an OUT transfer, the state of the transfer will not progress
appropriately. The transaction translator will observe protocol violations in the arrival of
the start-splits for the OUT endpoint (i.e. the transaction position annotation will be
incorrect as received by the transaction translator).
Example scenarios are described in
Examples" on page
A host controller implementation can optionally track the progress of an OUT split
transaction by setting appropriate bits in the siTD.C-prog-mask as it executes each
scheduled start-split. The checkPreviousBit() algorithm defined in
- Do Complete Split" on page 476
determine whether start-splits were skipped. The host controller can use this
mechanism to detect missed micro-frames. It can then set the siTD's Active bit to zero
and stop execution of this siTD. This saves on both memory and high-speed bus
bandwidth.
Periodic Isochronous - Do Complete Split
This state is only used by a split-transaction isochronous IN endpoint. This state is
entered unconditionally from the Do Start State after a start-split transaction is
executed for an IN endpoint. Each time the host controller visits an siTD in this state, it
conducts a number of tests to determine whether it should execute a complete-split
transaction. The individual tests are listed below. The sequence they are applied
depends on which micro-frame the host controller is currently executing which means
that the tests might not be applied until after the siTD referenced from the back pointer
has been fetched.
• Test A. cMicroFrameBit is bit-wise anded with siTD.C-mask field. A non-zero result
indicates that software scheduled a complete-split for this endpoint, during this
micro-frame. This test is always applied to a newly fetched siTD that is in this state.
• Test B. The siTD.C-prog-mask bit vector is checked to determine whether the
previous complete splits have been executed. An example algorithm is below (this
is slightly different than the algorithm used in
Split" on page
current value of FRINDEX[2:0]. If FRINDEX[2:0] is 0 or 1, it is not applied until the
back pointer has been used. Otherwise it is applied immediately.
Algorithm Boolean CheckPreviousBit (siTD.C-prog-mask, siTD.C-mask, cMicroFrameBit)
Begin
Boolean rvalue = TRUE;
previousBit = cMicroFrameBit rotate-right(1)
-- Bit-wise anding previousBit with C-mask indicates whether
there was an intent
-- to send a complete split in the previous micro-frame. So, if
'previous bit' is set in C-mask, check C-prog-mask to make
if previousBit bitAND siTD.C-mask then
if not (previousBit bitAND siTD.C-prog-mask) then
rvalue = FALSE
End if
End if
®
®
Intel
IXP45X and Intel
IXP46X Product Line of Network Processors
Developer's Manual
476
®
®
IXP45X and Intel
IXP46X Product Line of Network Processors—USB 2.0 Host Controller
479.
464). The sequence in which this test is applied depends on the
"Split Transaction for Isochronous — Processing
can be used prior to executing each start-split to
"Periodic Interrupt - Do Complete
"Periodic Isochronous
the
sure it happened.
August 2006
Order Number: 306262-004US

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the IXP45X and is the answer not in the manual?

This manual is also suitable for:

Ixp46x

Table of Contents