![Intel IXP45X Скачать руководство пользователя страница 465](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092465.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262--, Revision: 004US
465
USB 2.0 Host Controller—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
End if
End If
-- If the C-prog-mask already has a one in this bit position,
-- then an aliasing
-- error has occurred. It will probably get caught by the
-- FrameTag Test, but
-- at any rate it is an error condition that as detectable here
-- should not allow
-- a transaction to be executed.
If (cMicroFrameBit
bitAND
QH.C-prog-mask) then
rvalue = FALSE;
End if
return (rvalue)
End Algorithm
• Test D. Check to see if a start-split should be executed in this micro-frame. Note
this is the same test performed in the Do Start Split state (see
- Do Complete Split” on page 464
). Whenever it evaluates to TRUE and the
controller is NOT processing in the context of a Recovery Path mode, it means a
start-split should occur in this micro-frame. Test D and Test A evaluating to TRUE at
the same time is a system software error. Behavior is undefined.
If (A and B and C and not (D)), the host controller will execute a complete-split
transaction. When the host controller commits to executing the complete-split
transaction, it updates QH.C-prog-mask by bit-ORing with cMicroFrameBit. On
completion of the complete-split transaction, the host controller records the result of
the transaction in the queue head and sets QH.FrameTag to the expected H-Frame
number (see
“Managing QH.FrameTag Field” on page 467
). The effect to the state of
the queue head and thus the state of the transfer depends on the response by the
transaction translator to the complete-split transaction. The following responses have
the effects (note that any responses that result in decrementing of the CErr will result
in the queue head being halted by the host controller if the result of the decrement is
zero):
• NYET (and Last). On each NYET response, the host controller checks to determine
whether this is the last complete-split for this split transaction. Last is defined in
this context as the condition where all of the scheduled complete-splits have been
executed. If it is the last complete-split (with a NYET response), then the transfer
state of the queue head is not advanced (never received any data) and this state
exited. The transaction translator must have responded to all the complete-splits
with NYETs, meaning that the start-split issued by the host controller was not
received. The start-split should be retried at the next poll period.
The test for whether this is the Last complete split can be performed by XOR QH.C-
mask with QH.C-prog-mask. If the result is all zeros then all complete-splits have been
executed. When this condition occurs, the XactErr status bit is set to a one and the CErr
field is decremented.
• NYET (and not Last). See above description for testing for Last. The complete-split
transaction received a NYET response from the transaction translator. Do not