
CHAPTER 14 USBU (UNIVERSAL SERIAL BUS UNIT)
User’s Manual U14579EJ2V0UM
331
The list service flow is executed after the HC determines the kind of list that must be serviced. A list is periodically
disabled by the HCD to switch the ED. Therefore, when processing lists, the HC first checks whether or not the target
list is enabled according to the BLE, CLE, and PLE bits of the HcControl register.
If the list is enabled, the HC services the list. If it is disabled, the HC skips that list and proceeds to the next list.
When a list is enabled, the HC confirms the position of the first ED for which service is requested. If the head
pointer is 0 during periodic list processing, no ED exists in the list, and the HC proceeds to the next list. However
during asynchronous list processing, if the CurrentED of a list is 0, the HC checks the BLF and CLF bits of the
HcCommandStatus register. If these bits had been set to 1, at least one ED for which service is required exists in the
target list. Therefore, the HC copies the HeadED to the CurrentED, clears the BLF and CLF bits to 0, and processes
the ED that is indicated by the CurrentED. If the BLF and CLF bits are 0 when the HC checks them, the HC proceeds
to the next list.
After ED service, for a periodic list, the HC checks the NextED area of the ED for which the service was just
completed and continues processing the next ED. If the NextED area is 0x000 0000 at this time, the HC proceeds to
an asynchronous list. For a bulk list, the HC only advances to the next list. For a control list, the next action differs
according to whether or not the number of ControlEDs indicated by the control/bulk service ratio have been serviced.
Figure 14-15 shows the ED service flow.
Figure 14-15. ED Service Flow
Start
H = 1 or
K = 1 ?
HeadP =
TailP ?
Periodic list?
TD service
(see Figure 14-16)
CLF
← 0
End
yes
no
First, the HC reads the ED to be processed from system memory via the PCI bus. Next, the HC determines
whether or not this ED should be processed. If either the K bit or the H bit of the ED is 1, the ED is skipped and the
HC proceeds to the next list. When the HC determines that the ED should be processed, it determines whether or not
any TDs that can be processed are in the queue. The HC compares the TailP area and HeadP area of the ED. When
the values of these areas are equal, no enabled TD exists in the list, and the HC proceeds to the next ED or the next
list. If the two values differ, the HC services that TD.