![Intel IXP45X Скачать руководство пользователя страница 427](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092427.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262--, Revision: 004US
427
USB 2.0 Host Controller—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
When the indexed active bit is a one the host controller continues to parse the iTD. It
stores the indexed transaction description and the general endpoint information (device
address, endpoint number, maximum packet size, etc.). It also uses the Page Select
(PG) field to index the buffer pointer array, storing the selected buffer pointer and the
next sequential buffer pointer. For example, if PG field is a 0, then the host controller
will store Page 0 and Page 1.
The host controller constructs a physical data buffer address by concatenating the
current buffer pointer (as selected using the current transaction description's PG field)
and the transaction description's Transaction Offset field. The host controller uses the
endpoint addressing information and I/O-bit to execute a transaction to the appropriate
endpoint. When the transaction is complete, the host controller clears the active bit and
writes back any additional status information to the Status field in the currently
selected transaction description.
The data buffer associated with the iTD must be virtually contiguous memory. Seven
page pointers are provided to support eight high-bandwidth transactions regardless of
the starting packet’s offset alignment into the first page. A starting buffer pointer
(physical memory address) is constructed by concatenating the page pointer (example:
page 0 pointer) selected by the active transaction descriptions’ PG (example value:
00B) field with the transaction offset field. As the transaction moves data, the host
controller must detect when an increment of the current buffer pointer will cross a page
boundary. When this occurs the host controller simply replaces the current buffer
pointer’s page portion with the next page pointer (example: page 1 pointer) and
continues to move data. The size of each bus transaction is determined by the value in
the Maximum Packet Size field. An iTD supports high-bandwidth pipes via the Mult
(multiplier) field. When the Mult field is 1, 2, or 3, the host controller executes the
specified number of Maximum Packet sized bus transactions for the endpoint in the
current micro-frame. In other words, the Mult field represents a transaction count for
the endpoint in the current micro-frame. If the Mult field is zero, the operation of the
host controller is undefined. The transfer description is used to service all transactions
indicated by the Mult field.
For OUT transfers, the value of the Transaction X Length field represents the total bytes
to be sent during the micro-frame. The Mult field must be set by software to be
consistent with Transaction X Length and Maximum Packet Sixe. The host controller will
send the bytes in Maximum Packet Size'd portions. After each transaction, the host
controller decrements it's local copy of Transaction X Length by Maximum Packet Size.
The number of bytes the host controller sends is always Maximum Packet Size or
Transaction X Length, whichever is less. The host controller advances the transfer state
in the transfer description, updates the appropriate record in the iTD and moves to the
next schedule data structure. The maximum sized transaction supported is 3 x 1024
bytes.
For IN transfers, the host controller issues Mult transactions. It is assumed that
software has properly initialized the iTD to accommodate all of the possible data.
During each IN transaction, the host controller must use Maximum Packet Size to
detect packet babble errors. The host controller keeps the sum of bytes received in the
Transaction X Length field. After all transactions for the endpoint have completed for
the micro-frame, Transaction X Length contains the total bytes received. If the final
value of Transaction X Length is less than the value of Maximum Packet Size, then less
data than was allowed for was received from the associated endpoint. This short packet
condition does not set the USBINT bit in the USBSTS register to a one. The host
controller will not detect this condition. If the device sends more than Transaction X
Length or Maximum Packet Size bytes (whichever is less), then the host controller will
set the Babble Detected bit to a one and set the Active bit to a zero. Note, that the host
controller is not required to update the iTD field Transaction X Length in this error
scenario. If the Mult field is greater than one, then the host controller will automatically
execute the value of Mult transactions. The host controller will not execute all Mult
transactions if: