![Intel IXP45X Скачать руководство пользователя страница 455](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092455.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262--, Revision: 004US
455
USB 2.0 Host Controller—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
executing from the Asynchronous schedule, it must begin executing from this
queue head. If another start-split (for some other endpoint) is sent to the
transaction translator before the complete-split is really completed, the transaction
translator could dump the results (which were never delivered to the host). This is
why the core specification states the retries must be immediate. A method to
accomplish this behavior is to not advance the asynchronous schedule. When the
host controller returns to the asynchronous schedule in the next micro-frame, the
first transaction from the schedule will be the retry for this endpoint. If Cerr went to
zero, the host controller must halt the queue.
• NAK. The target endpoint Nak'd the full- or low-speed transaction. The state of the
transfer is not advanced and the state is exited. If the PidCode is a SETUP, then the
Nak response is a protocol error. The XactErr status bit is set to a one and the CErr
field is decremented.
• STALL. The target endpoint responded with a STALL handshake. The host controller
sets the halt bit in the status byte, retires the qTD but does not attempt to advance
the queue.
If the PidCode indicates an IN, then any of following responses are expected:
• DATA0/1. On reception of data, the host controller ensures the PID matches the
expected data toggle and checks CRC. If the packet is good, the host controller will
advance the state of the transfer, e.g. move the data pointer by the number of
bytes received, decrement BytesToTransfer field by the number of bytes received,
and toggle the dt bit. The host controller will then exit this state. The response and
advancement of transfer may trigger other processing events, such as retirement
of the qTD and advancement of the queue.
If the data sequence PID does not match the expected, the data is ignored, the transfer
state is not advanced and this state is exited. If the PidCode indicates an OUT/SETUP,
then any of following responses are expected:
• ACK. The target endpoint accepted the data, so the host controller must advance
the state of the transfer. The Current Offset field is incremented by Maximum
Packet Length or Bytes to Transfer, whichever is less. The field Bytes To Transfer is
decremented by the same amount and the data toggle bit (dt) is toggled. The host
controller will then exit this state.
Advancing the transfer state may cause other processing events such as retirement of
the qTD and advancement of the queue (see
Section 9.14.10, “Managing Control/Bulk/
Interrupt Transfers via Queue Heads” on page 441
9.14.12.2 Split Transaction Interrupt
Split-transaction Interrupt-IN/OUT endpoints are managed via the same data
structures used for high-speed interrupt endpoints. They both co-exist in the periodic
schedule. Queue heads/qTDs offer the set of features required for reliable data
delivery, which is characteristic to interrupt transfer types. The split-transaction
protocol is managed completely within this defined functional transfer framework. For
example, for a high-speed endpoint, the host controller will visit a queue head, execute
a high-speed transaction (if criteria are met) and advance the transfer state (or not)
depending on the results of the entire transaction. For low- and full-speed endpoints,
the details of the execution phase are different (i.e. takes more than one bus
transaction to complete), but the remainder of the operational framework is intact. This
means that the transfer advancement, etc. occurs as defined in
“Managing Control/Bulk/Interrupt Transfers via Queue Heads” on page 441
occurs on the completion of a split transaction.