![Intel IXP45X Developer'S Manual Download Page 446](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092446.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors—USB 2.0 Host Controller
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Developer’s Manual
August 2006
446
Order Number: 306262-004US
After the transaction has finished and the host controller has completed the post
processing of the results (advancing the transfer state and possibly NakCnt, the host
controller writes back the results of the transaction to the queue head’s overlay area in
main memory.
The number of bytes moved during an IN transaction depends on how much data the
device endpoint delivers. The maximum number of bytes a device can send is
Maximum Packet Size. The number of bytes moved during an OUT transaction is either
Maximum Packet Length bytes or Total Bytes to Transfer, whichever is less.
If there was a transaction error during the transaction, the transfer state (as defined
above) is not advanced by the host controller. The CErr field is decremented by one and
the status field is updated to reflect the type of error observed. Transaction errors are
summarized in
“Transaction Error” on page 483
.
The following events will cause the host controller to clear the Active bit in the queue
head’s overlay status field. When the Active bit transitions from a one to a zero, the
transfer in the overlay is considered complete. The reason for the transfer completion
(clearing the Active bit) determines the next state.
• CErr field decrements to zero. When this occurs the Halted bit is set to a one and
Active is set to a zero. This results in the hardware not advancing the queue and
the pipe halts. Software must intercede to recover.
• The device responds to the transaction with a STALL PID. When this occurs, the
Halted bit is set to a one and the Active bit is set to a zero. This results in the
hardware not advancing the queue and the pipe halts. Software must intercede to
recover.
• The Total Bytes to Transfer field is zero after the transaction completes. Note that
for a zero length transaction, it was zero before the transaction was started. When
this condition occurs, the Active bit is set to zero.
• The PID code is an IN, and the number of bytes moved during the transaction is
less than the Maximum Packet Length. When this occurs, the Active bit is set to
zero and a short packet condition exists. The short-packet condition is detected
during the Advance Queue state. Refer to
Section 9.14.12, “Split Transactions” on
for additional rules for managing low- and full-speed transactions.
• The PID Code field indicates an IN and the device sends more than the expected
number of bytes (e.g. Maximum Packet Length or Total Bytes to Transfer bytes,
whichever is less) (e.g. a packet babble). This results in the host controller setting
the Halted bit to a one.
With the exception of a NAK response (when RL field is zero), the host controller always
writes the results of the transaction back to the overlay area in main memory. This
includes when the transfer completes. For a high-speed endpoint, the queue head
information written back includes minimally the following fields:
• NakCnt, dt, Total Bytes to Transfer, C_Page, Status, CERR, and Current Offset
For a low- or full-speed device the queue head information written back also includes
the fields:
• C-prog-mask, FrameTag and S-bytes.
The duration of this state depends on the time it takes to complete the transaction(s)
and the status write to the overlay is committed.