USB 2.0 Host Controller—Intel
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
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
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
August 2006
Order Number: 306262--, Revision: 004US
®
®
IXP45X and Intel
IXP46X Product Line of Network Processors
End if
464). Whenever it evaluates to TRUE and the
"Managing QH.FrameTag Field" on page
Intel
467). The effect to the state of
®
®
IXP45X and Intel
IXP46X Product Line of Network Processors
"Periodic Interrupt
Developer's Manual
465
Need help?
Do you have a question about the IXP45X and is the answer not in the manual?