![Texas Instruments AM1808 Technical Reference Manual Download Page 1650](http://html.mh-extra.com/html/texas-instruments/am1808/am1808_technical-reference-manual_10945581650.webp)
Architecture
1650
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Universal Serial Bus 2.0 (USB) Controller
Host Packet Descriptor—
A packet descriptor is another name for the first buffer descriptor within a
packet. Some fields within a data buffer descriptor are only valid when it is a packet descriptor
including the tags, packet length, packet type, and flags. This type of descriptor is always used to
define a packet since it provides packet level information that is useful to both the ports and the
Host in order to properly process the packet. It is the only descriptor used when single descriptor
solely defines a packet. When multiple descriptors are needed to define a packet, the packet
descriptor is the first descriptor used to define a packet.
Free Descriptor/Buffer Queue—
A free descriptor/buffer queue is a hardware managed list of available
descriptors with pre-linked empty buffers that are to be used by the receive ports for host type
descriptors. Free Descriptor/Buffer Queues are implemented by the Queue Manager.
Teardown Descriptor—
Teardown Descriptor is a special structure which is not used to describe either a
packet or a buffer but is instead used to describe the completion of a channel halt and teardown
event. Channel teardown is an important function because it ensures that when a connection is no
longer needed that the hardware can be reliably halted and any remaining packets which had not
yet been transmitted can be reclaimed by the Host without the possibility of losing buffer or
descriptor references (which results in a memory leak).
Packet Queue—
A packet queue is hardware managed list of valid (i.e. populated) packet descriptors
that is used for forwarding a packet from one entity to another for any number of purposes.
Queue Manager—
The queue manager is a hardware module that is responsible for accelerating
management of the packet queues. Packets are added to a packet queue by writing the 32-bit
descriptor address to a particular memory mapped location in the Queue Manager module. Packets
are de-queued by reading the same location for that particular queue. A single Queue Manager is
used for a USB application.
NOTE:
All descriptors (regardless of type) must be allocated at addresses that are naturally aligned
to the smallest power of 2 that is equal to or greater than the descriptor size.
34.2.8.2 Host Packet Descriptor (SOP Descriptor)
Host Packet Descriptors are designed to be used when USB like application requires support for true,
unlimited fragment count scatter/gather type operations. The Host Packet Descriptor is the first descriptor
on multiple descriptors setup or the only descriptor in a single descriptors setup. The Host Packet
Descriptor contains the following information:
•
Indicator which identifies the descriptor as a Host Packet Descriptor (always 10h)
•
Source and Destination Tags (Reserved)
•
Packet Type
•
Packet Length
•
Protocol Specific Region Size
•
Protocol Specific Control/Status Bits
•
Pointer to the first valid byte in the SOP data buffer
•
Length of the SOP data buffer
•
Pointer to the next buffer descriptor in the packet
Host Packet Descriptors can vary in size of their defined fields from 32 bytes up to 104 bytes. Within this
range, Host Packet Descriptors always contain 32 bytes of required information and may also contain 8
bytes of software specific tagging information and up to 64 bytes (indicated in 4 byte increments) of
protocol specific information. How much protocol specific information (and therefore the allocated size of
the descriptors) is application dependent.
The Host Packet Descriptor layout is shown in
and described in
to