English
Language : 

EP80579 Datasheet, PDF (965/1916 Pages) Intel Corporation – Intel® EP80579 Integrated Processor Product Line
Intel® EP80579 Integrated Processor
25.5.1
25.5.2
Executing the Schedule
Software programs the starting address of the Frame List and the Frame List index,
then causes CMI to execute the schedule by setting the Run/Stop bit in the Control
register to Run. The CMI processes the schedule one entry at a time: the next element
in the frame list is not fetched until the current element in the frame list is retired.
Schedule execution proceeds in the following fashion:
• The CMI first fetches an entry from the Frame List. This entry has three fields. Bit 0
indicates whether the address pointer field is valid. Bit 1 indicates whether the
address points to a Transfer Descriptor or to a queue head. The third field is the
pointer itself.
• If the Frame List entry indicates that it points to a Transfer Descriptor, the CMI
fetches the entry and begins the operations necessary to initiate a transaction on
USB. Each TD contains a link field that points to the next entry, as well as indicating
whether it is a TD or a QH.
• If the Frame List entry contains a pointer to a QH, the CMI processes the
information from the QH to determine the address of the next data object that it
must process.
• The TD/QH process continues until the millisecond allotted to the current frame
expires. At this point, the CMI fetches the next entry from the Frame List. If the
CMI is not able to process all of the transfer descriptors during a given frame, those
descriptors are retired by software without having been executed.
Processing Transfer Descriptors
The CMI executes a TD using the following, generalized algorithm. These basic steps
are common across all modes of TDs. Subsequent sections present processing steps
unique to each TD mode.
1. The CMI Fetches TD or QH from the current Link Pointer.
2. If a QH, go to 1 to fetch from the Queue Element Link Pointer. If inactive, go to 12
3. Build Token, actual bits are in TD Token.
4. If (Host-to-Function) then
[Memory Access] issue request for data, (referenced through TD.BufferPointer)
wait for first chunk data arrival
end if
5. [Begin USB Transaction] Issue Token (from token built in 2, above) and begin data
transfer.
if (Host-to-Function) then Go to 6
else Go to 7
end if
6. Fetch data from memory (via TD BufferPointer) and transfer over USB until TD
Maximum-Length bytes have been read and transferred. [Concurrent system
memory and USB Accesses]. Go to 8.
7. Wait for data to arrive (from USB). Write incoming bytes into memory beginning at
TD BufferPointer. Internal HC buffer must signal end of data packet. Number of
bytes received must be ≤ TD Maximum-Length; The length of the memory area
referenced by TD BufferPointer must be ≥ TD Maximum-Length. [Concurrent
system memory and USB Accesses].
8. Issue handshake based on status of data received (Ack or Time-out). Go to 10.
9. Wait for handshake, if required [End of USB Transaction].
10. Update Status [Memory Access] (TD.Status and TD.ActualLength).
If the TD completed successfully, mark the TD inactive. Go to 11.
August 2009
Order Number: 320066-003US
Intel® EP80579 Integrated Processor Product Line Datasheet
965