4 host controller responsibilities, 1 usb states, 2 frame management – Cirrus Logic EP93xx User Manual
Page 448: 3 list processing, 4 host controller responsibilities -8

11-8
DS785UM1
Copyright 2007 Cirrus Logic
Universal Serial Bus Host Controller
EP93xx User’s Guide
1
1
1
1
11
11.2.4 Host Controller Responsibilities
This section summarizes the Host Controller (HC) responsibilities.
11.2.4.1 USB States
There are four USB states defined in OpenHCI: UsbOperational, UsbReset, UsbSuspend, 
and UsbResume. The Host Controller puts the USB bus in the proper operating mode for 
each state. 
11.2.4.2 Frame Management
The Host Controller keeps track of the current frame counter and the frame period. At the 
beginning of each frame, the Host Controller generates the Start of Frame (SOF) packet on 
the USB bus and updates the frame count value in system memory. The Host Controller also 
determines if enough time remains in the frame to send the next data packet.
11.2.4.3 List Processing
The Host Controller operates on the Endpoint Descriptors and Transfer Descriptors 
enqueued by the Host Controller Driver.
For interrupt and isochronous transfers, the Host Controller begins at the Interrupt Endpoint 
Descriptor head pointer for the current frame. The list is traversed sequentially until one 
packet transfer from the first Transfer Descriptor of all interrupt and isochronous Endpoint 
Descriptors scheduled in the current frame is attempted.
For bulk and control transfers, the Host Controller begins in the respective list where it last left 
off. When the Host Controller reaches the end of a list, it loads the value from the head 
pointer and continues processing. The Host Controller processes n control transfers to 1 bulk 
transfer where the value of n is set by the Host Controller Driver.
When a Transfer Descriptor completes, either successfully or due to an error condition, the 
Host Controller moves it to the Done Queue. Enqueuing on the Done Queue occurs by 
placing the most recently completed Transfer Descriptor at the head of the queue. The Done 
Queue is transferred periodically from the Host Controller to the Host Controller Driver via the 
HCCA.
