Universal Serial Bus InterfaceMCF5253 Reference Manual, Rev. 124-102 Freescale Semiconductor24.9.12.2.8 Managing the QH[FrameTag] FieldThe QH[FrameTag] field in a queue head is completely managed by the host controller. The rules forsetting QH[FrameTag] are simple:• Rule 1: If transitioning from Do Start Split to Do Complete Split and the current value ofFRINDEX[2:0] is 6, QH[FrameTag] is set to FRINDEX[7:3] + 1. This accommodates splittransactions whose start-split and complete-splits are in different H-Frames (case 2a, seeFigure 24-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 24-53.• Rule 3: If transitioning from Do_Start Split to Do Complete Split and the current value ofFRINDEX[2:0] is not 6, or currently in Do Complete Split and the current value of(FRINDEX[2:0]) is not 7, FrameTag is set to FRINDEX[7:3]. This accommodates all other casesin Figure 24-53.Table 24-67. Interrupt IN/OUT Do Complete Split State Execution CriteriaCondition Action Descriptionnot(A)not(D)Ignore QHD Neither a start nor complete-split is scheduled for the current micro-frame.Hostcontroller should continue walking the schedule.Anot(C)If PIDCode = INHalt QHDIf PIDCode = OUTRetry start-splitProgress bit check failed. These means a complete-split has been missed. There isthe possibility of lost data. If PID Code is an IN, then the Queue head must behalted.If PID Code is an OUT, then the transfer state is not advanced and the stateexited (for example, start-split is retried). This is a host-induced error and does noteffect Cerr. In either case, set the Missed Micro-frame bit in the status field to a one.Anot(B)CIf PIDCode = INHalt QHDIf PIDCode = OUTRetry start-splitQH.FrameTag test failed. This means that exactly one or more H-Frames have beenskipped. This means complete-splits and have missed. There is the possibility of lostdata. If PID Code is an IN, then the Queue head must be halted.If PID Code is anOUT, 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 eithercase, set the Missed Micro-frame bit in the status field to a one.ABCnot(D)Execute complete-split This is the non-error case where the host controller executes a complete-splittransaction.D If PIDCode = INHalt QHDIf PIDCode = OUTRetry start-splitThis is a degenerate case where the start-split was issued, but all of thecomplete-splits were skipped and all possible intervening opportunities to detect themissed 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 effectCerr. In either case, set the Missed Micro-frame bit in the status field to a one.Note: When executing in the context of a Recovery Path mode, the host controlleris allowed to process the queue head and take the actions indicated above, orit 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 ofa executing in a Recovery Path mode.