Functional Description
16.3.9.3.2 Free Descriptor Queue (Receive Submit Queue)
Receive endpoints/channels use queues, referred to as free descriptor queues, or receive submit queues,
to forward completed receive packets to the host. The entries on the free descriptor queues have pre-
attached empty buffers whose size and location are described in the original buffer information fields in the
descriptor. The host is required to allocate both the descriptor and buffer and pre-link them prior to adding
(submitting) a descriptor to one of the available free descriptor queue. The first 32 queues (queue 0 up to
queue 31) are reserved for all 30 USB0/1 (endpoints 1 to 15 of each USB module) receive
endpoints/channels to handle incoming packets to the device.
16.3.9.3.3 Transmit Submit Queue
Transmit ports use packet queues, referred to as transmit submit queues, to store the packets that are
waiting to be transmitted. Each transmit endpoint has dedicated queues (2 queues per port) that are
reserved exclusively for a use by a single endpoint. Multiple queues per port/channel are allocated to
facilitate quality of service (QoS) for applications that require QoS. The first 30 queues, queue 32 up to
queue 61, are allocated for USB0 transmit endpoints 1 to 15 with two queues per endpoint.queues 62 up
to queue 91, are allocated for transmit USB1 endpoints 1 to 15.
16.3.9.3.4 Transmit Completion (Return) Queue
Transmit ports use packet queues, referred to as "transmit completion queues, to return packet
descriptors to the host after packets have been transmitted. A singe queue is reserved to be used by a
single transmit endpoint. Application s/w needs to insure that the right set of queues is used to return the
Descriptors after the completion of a packet transmission based on the endpoint number used. For USB0
transmit endpoints 1 to 15, queues 93–107 are reserved and assigned for use as a completion queue,
respectively. Similarly for USB1 transmit endpoints 1 to 15, queues 125–139 are used as completion
queues, respectively.
Transmit Completion Queues are also used to return packet Descriptors when performing a Transmit
channel teardown operation.
16.3.9.3.5 Receive Completion (Return) Queue
Receive ports use packet queues, referred to as receive completion queues, to return packet descriptors
to the port after packets have been received. A singe queue is reserved to be used by a single receive
endpoint. Application s/w needs to insure that the right set of queues is used to return the descriptors after
the completion of a packet reception based on the endpoint number used. For USB0 receive endpoints 1
to 15 queues 122–136 are reserved/assigned for use as a receive completion queue respectively.
Similarly for USB1 receive endpoints 1 to 15, queues 137–151 is used as completion queue respectively.
Receive channel teardown is not necessary for receive transactions and no channel teardown information
nor resource is available
16.3.9.3.6 Diverting Queue Packets from one Queue to Another
The host can move the entire contents of one queue to another queue by writing the source queue
number and the destination queue number to the Queue Diversion register. When diverting packets, the
descriptors are pushed onto the tail of the destination queue.
16.3.9.4 Memory Regions and Linking RAM
In addition to allocating buffer for raw data and memory for Descriptors, the host is responsible for
allocating additional memory for exclusive use of the CPPI DMA Queue Manager to be used as a scratch
PAD RAM. The queue manager uses this memory to manage states of descriptors submitted within the
submit queues. In other words, this memory needs not to be managed by the user software and firmware
responsibility lies only for allocation/reserving a chunk of memory for the use of the queue manager. The
allocated memory can be a single block of memory that is contiguous or two blocks of memory that are
not contiguous. These two blocks of memory are referred to as a Linking RAM Regions and should not be
confused with memory regions that are used to store descriptors. That is, the use of the term region
should be used in the context of its use.
1745
SPRUH73H – October 2011 – Revised April 2013
Universal Serial Bus (USB)
Copyright © 2011–2013, Texas Instruments Incorporated