![Intel IXP45X Developer'S Manual Download Page 388](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092388.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
388
Order Number: 306262-004US
The periodic frame list is the root of all periodic (isochronous and interrupt transfer
type) support for the host controller interface. The asynchronous list is the root for all
the bulk and control transfer type support. Isochronous data streams are managed
using Isochronous Transaction Descriptors. Isochronous split-transaction data streams
are managed with Split-transaction Isochronous Transfer Descriptors. All Interrupt,
Control, and Bulk data streams are managed via queue heads and Queue Element
Transfer Descriptors
1
. These data structures are optimized to reduce the total memory
footprint of the schedule and to reduce (on average) the number of memory accesses
needed to execute a USB transaction.
Note that software must ensure that no interface data structure reachable by the EHCI
host controller spans a 4K-page boundary.
The data structures defined in this section are (from the host controller’s perspective) a
mix of read-only and read/writable fields. The host controller must preserve the read-
only fields on all data structure writes.
9.13.1
Periodic Frame List
This schedule is for all periodic transfers (isochronous and interrupt). The periodic
schedule is referenced from the operational registers space using the
PERIODICLISTBASE address register and the FRINDEX register. The periodic schedule
is based on an array of pointers called the Periodic Frame List. The PERIODICLISTBASE
address register is combined with the FRINDEX register to produce a memory pointer
into the frame list. The Periodic Frame List implements a sliding window of work over
time as shown in
. (This figure is identical to
; it is
duplicated here for convenience.)
The periodic frame list is a 4K page aligned array of Frame List Link pointers. The
length of the frame list may be programmable. The programmability of the periodic
frame list is exported to system software via the HCCPARAMS register. If non-
programmable, the length is 1024 elements. If programmable, the length can be
selected by system software as one of 256, 512, or 1024 elements. An implementation
must support all three sizes. Programming the size (i.e. the number of elements) is
accomplished by system software writing the appropriate value into Frame List Size
field in the USBCMD register.
Frame List Link pointers direct the host controller to the first work item in the frame’s
periodic schedule for the current micro-frame. The link pointers are aligned on DWord
boundaries within the Frame List.
Frame List Link pointers always reference memory objects that are 32-byte aligned.
The referenced object may be an isochronous transfer descriptor for high-speed
devices, a split-transaction isochronous transfer descriptor (for full-speed isochronous
endpoints), or a queue head (used to support high-, full- and low-speed interrupt).
System software should not place non-periodic schedule items into the periodic
schedule. The least significant bits in a frame list pointer are used to key the host
controller as to the type of object the pointer is referencing.
1.
Split transaction Interrupt, Bulk and Control are also managed using queue heads and queue
element transfer descriptors.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
8
7
6
5
4
3
2
1
0
Fame List Link Pointer
0
Typ
03-
00H