Rev. 3.0, 03/01, page 281 of 390
h) Done Queue
Occasionally (as determined by the Done Queue Interrupt Counter = 0), when the Done
Queue contains one or more Transfer Descriptors, the Host Controller writes the current
value of HcDoneHead into the HccaDoneHead immediately following a frame boundary
and generates an interrupt. These actions are taken so that the Host Controller Driver can
complete the processing of retired Transfer Descriptors. After the HcDoneHead value is
written to the HCCA, the Host Controller resets the value of HcDoneHead to ‘0’ and sets
the WritebackDoneHead bit located in the HcInterruptStatus register to ‘1.’ While the
WritebackDoneHead bit is set, the Host Controller may not write HcDoneHead to the
HCCA. The WritebackDoneHead bit is cleared by the Host Controller Driver when it is
ready to receive another Done Queue from the Host Controller.
•
Done Queue Interrupt Counter
The Host Controller maintains a 3-bit counter which is used to determine how often the
HcDoneHead register value must be written to HccaDoneHead. The counter is
initialized with a value of 111b at software reset, hardware reset, and when the Host
Controller transitions to the U
SB
O
PERATIONAL
state. The counter functions when the
Host Controller is in the U
SB
O
PERATIONAL
state by decrementing at every frame
boundary simultaneous with the incrementing of the FrameNumber field in
HcFmNumber if the current value of the counter is other than 111b or 0. If the current
value of the counter is 111b or 0, the counter is effectively disabled and does not
decrement.
The Host Controller checks the value of the counter during the last bit time of every
frame when in the U
SB
O
PERATIONAL
state. If the value of the counter is 0 at that time,
the Host Controller checks the current value of the WritebackDoneHead bit in
HcInterruptStatus. If WritebackDoneHead is ‘0,’ immediately following the frame
boundary, the Host Controller writes the HcDoneHead register value to
HccaDoneHead, sets WritebackDoneHead to ‘1,’ and resets the counter to 111b. If
WritebackDoneHead is ‘1,’ the Host Controller takes no further action until the end of
the next frame when it performs the same checks again.
2) Operational Registers
HcDoneHead
This register contains the address of the first TD on the Done Queue. When the Host
Controller retires a TD, it will write the current value of HcDoneHead into that TD NextTD
field. The address of the TD being retired (obtained from a “CurrentED” register) is written
to HcDoneHead.
3) Description Registers
The TD Block maintains 5 32-bit registers to hold requested Transfer Descriptors. These
registers are used as temporary storage for Transfer Descriptors being serviced and are not
addressable by software. The same registers are used to hold both Isochronous and General
Transfer Descriptors. A brief description of these registers is given below.
Summary of Contents for HD64465
Page 25: ...Rev 3 0 03 01 page 6 of 390 ...
Page 59: ...Rev 3 0 03 01 page 40 of 390 ...
Page 97: ...Rev 3 0 03 01 page 78 of 390 ...
Page 147: ...Rev 3 0 03 01 page 128 of 390 ...
Page 199: ...Rev 3 0 03 01 page 180 of 390 ...
Page 247: ...Rev 3 0 03 01 page 228 of 390 ...
Page 385: ...Rev 3 0 03 01 page 366 of 390 ...
Page 389: ...Rev 3 0 03 01 page 370 of 390 ...
Page 409: ...Rev 3 0 03 01 page 390 of 390 ...