12-26 Intel® PXA255 Processor Developer’s Manual
USB Device Controller
When software enables the status stage for Vendor/Class commands and control data commands
such as GET_DESCRIPTOR, GET_CONFIGURATION, GET_INTERFACE, GET_STATUS, and
SET_DECSCRIPTOR, software must also set IPR. The data in the Transmit FIFO must be
transmitted and the interrupt must be processed before the IPR is set for the status stage.
The status stage for all other USB Standard Commands that do not have a data stage, such as
SET_ADDRESS, SET_CONFIGURATION, SET_INTERFACE, SET_FEATURE, and
CLEAR_FEATURE, is handled by the UDC and the software must not set IPR.
12.6.3.3 Flush Tx FIFO (FTF)
The Flush Tx FIFO bit triggers the reset of the endpoint 0 transmit FIFO. It is set when software
writing a one or when the UDC receives an OUT packet from the host on endpoint 0. This bit
always reads back a zero value.
12.6.3.4 Device Remote Wakeup Feature (DRWF)
The host indicates the state of the device remote wakeup feature by sending a Set Feature
command or a Clear Function command. The UDC decodes the command sent by the host and sets
this bit to a 1 if the feature is enabled and a 0 if the feature is disabled. This bit is read-only.
12.6.3.5 Sent Stall (SST)
The sent stall bit is set by the UDC when FST successfully forces a software-induced STALL on
the USB bus. This bit is not set if the UDC detects a protocol violation from the host when a
STALL handshake is returned automatically. In this event, there is no intervention by the core and
the UDC clears the STALL status before the host sends the next SETUP command. When the UDC
sets this bit, the transmit FIFO is flushed. The core writes a one to this bit to clear it.
12.6.3.6 Force Stall (FST)
The force stall bit can be set by the core to force the UDC to issue a STALL handshake. The UDC
issues a STALL handshake for the current setup control transfer and the bit is cleared by the UDC
because endpoint zero can not remain in a stalled condition.
12.6.3.7 Receive FIFO Not Empty (RNE)
The receive FIFO not empty bit indicates that the receive FIFO contains unread data. To determine
if the FIFO has data in it, this bit must be read when the UDCCS0[OPR] bit is set. The receive
FIFO must continue to be read until this bit clears or the data will be lost.
If UDCCS0[RNE] is not set when an interrupt generated by UDCCS0[OPR] is initially serviced, it
indicates that a zero-length OUT packet was received.
12.6.3.8 Setup Active (SA)
The Setup Active bit indicates that the current packet in the FIFO is part of a USB setup command.
This bit generates an interrupt and becomes active at the same time as UDCCS0[OPR]. Software
must clear this bit by writing a 1 to it. Both UDCS0[OPR] and UDCCS0[SA] must be cleared.