Information

Universal Serial Bus Interface
MPC8308 PowerQUICC II Pro Processor Reference Manual, Rev. 1
Freescale Semiconductor 13-103
The queue is halted (an exit condition of the Execute Transaction state). The status field bits:
Active bit is cleared and the Halted bit is set and the qTD is retired. Responses which are not
enumerated in the list or which are received out of sequence are illegal and may result in undefined
host controller behavior. The other possible combinations of tests A, B, C, and D may indicate that
data or response was lost. Table 13-68 lists the possible combinations and the appropriate action.
13.6.12.2.8 Managing the QH[FrameTag] Field
The QH[FrameTag] field in a queue head is completely managed by the host controller. The rules for
setting QH[FrameTag] are simple:
Rule 1: If transitioning from Do Start Split to Do Complete Split and the current value of
FRINDEX[2–0] is 6, QH[FrameTag] is set to FRINDEX[7–3] + 1. This accommodates split
transactions whose start-split and complete-splits are in different H-Frames (case 2a, see
Figure 13-53).
Rule 2: If the current value of FRINDEX[2–0] is 7, QH[FrameTag] is set to FRINDEX[7–3] + 1.
This accommodates staying in Do Complete Split for cases 2a, 2b, and 2c in Figure 13-53.
Table 13-68. Interrupt IN/OUT Do Complete Split State Execution Criteria
Condition Action Description
not(A)
not(D)
Ignore QHD Neither a start nor complete-split is scheduled for the current microframe.Host
controller should continue walking the schedule.
A
not(C)
If PIDCode = IN
Halt QHDIf PIDCode = OUT
Retry start-split
Progress bit check failed. These means a complete-split has been missed. There is
the possibility of lost data. If PID Code is an IN, then the Queue head must be
halted.If PID Code is an OUT, then the transfer state is not advanced and the state
exited (for example, start-split is retried). This is a host-induced error and does not
effect Cerr. In either case, set the Missed Microframe bit in the status field to a one.
A
not(B)
C
If PIDCode = IN
Halt QHD
If PIDCode = OUT
Retry start-split
QH.FrameTag test failed. This means that exactly one or more H-Frames have been
skipped. This means complete-splits and have missed. There is the possibility of lost
data. If PID Code is an IN, then the Queue head must be halted.If PID Code is an
OUT, then the transfer state is not advanced and the state exited (for example,
start-split is retried). This is a host-induced error and does not effect Cerr. In either
case, set the Missed Microframe bit in the status field to a one.
A
B
C
not(D)
Execute complete-split This is the non-error case where the host controller executes a complete-split
transaction.
D If PIDCode = IN
Halt QHDIf PIDCode = OUT
Retry start-split
This is a degenerate case where the start-split was issued, but all of the
complete-splits were skipped and all possible intervening opportunities to detect the
missed data failed to fire. If PID Code is an IN, then the Queue head must be halted.
If PID Code is an OUT, then the transfer state is not advanced and the state exited
(for example, start-split is retried). This is a host-induced error and does not effect
Cerr. In either case, set the Missed Microframe bit in the status field to a one. Note
that when executing in the context of a Recovery Path mode, the host controller is
allowed to process the queue head and take the actions indicated above, or it may
wait until the queue head is visited in the normal processing mode. Regardless, the
host controller must not execute a start-split in the context of a executing in a
Recovery Path mode.