![Intel IXP45X Developer'S Manual Download Page 435](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092435.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262--, Revision: 004US
435
USB 2.0 Host Controller—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Software may re-use the memory associated with the removed queue heads after it
observes the Interrupt on Async Advance status bit is set to a one, following assertion
of the doorbell. Software should acknowledge the Interrupt on Async Advance status as
indicated in the USBSTS register, before using the doorbell handshake again.
9.14.8.3
Empty Asynchronous Schedule Detection
The Enhanced Host Controller Interface uses two bits to detect when the asynchronous
schedule is empty. The queue head data structure (see
) defines an H-bit in the queue head, which allows
software to mark a queue head as being the head of the reclaim list. The Enhanced
Host Controller Interface also keeps a 1-bit flag in the USBSTS register (Reclamation)
that is set to a zero when the Enhanced Interface Host Controller observes a queue
head with the H-bit set to a one. The reclamation flag in the status register is set to one
when any USB transaction from the asynchronous schedule is executed (or whenever
the asynchronous schedule starts, see
“Asynchronous Schedule Traversal: Start Event”
If the Enhanced Host Controller Interface ever encounters an H-bit of one and a
Reclamation bit of zero, the EHCI controller simply stops traversal of the asynchronous
schedule.
An example illustrating the H-bit in a schedule is illustrated in
.
Software must ensure there is at most one queue head with the H-bit set to a one, and
that it is always coherent with respect to the schedule.
9.14.8.4
Restarting Asynchronous Schedule Before EOF
There are many situations where the host controller will detect an empty list long
before the end of the micro-frame. It is important to remember that under many
circumstances the schedule traversal has stopped due to Nak/Nyet responses from all
endpoints.
An example of particular interest is when a start-split for a bulk endpoint occurs early in
the micro-frame. Given the EHCI simple traversal rules, the complete-split for that
transaction may Nak/Nyet out very quickly. If it is the only item in the schedule, then
the host controller will cease traversal of the Asynchronous schedule very early in the
micro-frame. In order to provide reasonable service to this endpoint, the host controller
should issue the complete-split before the end of the current micro-frame, instead of
waiting until the next micro-frame. When the reason for host controller idling
Figure 62.
Asynchronous Schedule List with Annotation to Mark Head of List
B4505-01
USBCMD
USBSTS
ASYNCHLISTADDR
Horizontal Ptr
Horizontal Ptr
Horizontal Ptr
01
0
0
0
Operational Area
H
1
Operational Area
0
Operational Area
0
Reclamation Flag
1: Transaction Executed
0: Head of List Screen
Asynchronous Schedule
Operational
Registers
List Head
Typ T
Typ T
Typ T
01
01
H
H