NO:
W90P710 Programming Guide
VERSION:
2.1
PAGE:
82
The above information is the exclusive intellectual property of Winbond Electronics and shall not be disclosed,
distributed or reproduced without permission from Winbond.
Table No.: 1200-0003-07-A
would result in canceling the
TD
s, which has been created for the
IRP
. To canceling
TD
s,
HCD
must
ensure that the
TD
s are not being processed by HC. To achieve this,
HCD
can set the
skip
bit of the
Endpoint Descriptor
and wait for the next SOF by enabling SOF interrupt. If
HCD
can ensure the
target endpoint is temporary skipped by HC, it can safely remove any
TD
s of the endpoint. After
removing the
TD
s,
HCD
can clear the
sKip
bit and enable processing on the endpoint again.
In some other situation, transfer errors or endpoint stall may make an endpoint being halted, then
HCD
must remove the residual
TD
s. Under these situations,
Host Controller
will stop processing on
this endpoint, because the
Halted
bit has been set. Thus,
HCD
can safely remove the
TD
s. After
removing the
TD
s and overcoming the error conditions,
HCD
can clear
Halted
bit and enable
processing on the endpoint again.
6.5.5 IRP Processing
The data structure of
IRP
is operation system dependent.
Host Controller driver
should be able to
interpret the content of any
IRP
. The processing on
IRP
s are different for each transfer type.
6.5.5.1
Control Transfer
For Control Transfer,
HCD
may create two or three
TD
s for a Control Transfer, depend on
specific request command. For a request command without DATA stage,
HCD
will create two
TD
s for
it. The first
TD
is created for SETUP stage, which has DATA0 toggle setting. It must have an eight
bytes data buffer to accommodate the request command. The second
TD
is created for STATUS
stage, which has DATA1 toggle setting. It must contain a zero bytes buffer.
For a request command with DATA stage,
HCD
will create three
TD
s for it. The first
TD
is created
for SETUP stage, which has DATA0 toggle setting and has an eight bytes buffer to accommodate the
request command. The second
TD
is created for DATA stage, which has DATA1 toggle setting and
has a data buffer to accommodate the transferred data for this command. The third
TD
is created for
STATUS stage, which has DATA1 toggle setting. It must contain a zero bytes buffer.
The following is an example code of Control Transfer :