33.4.2 Device descriptor structuresDevice mode transfer request blocks (TRBs) are small 4 DWORDs and at the same timeprovide a rich set of features so that the software can efficiently manage the USB core,memory buffers, and MIPS requirements.The following is a list of device mode TRB characteristics:• TRBs provide support for scattered data structures. The scattered data buffers can bezero bytes to 16 MB in length.• TRBs must be placed in system memory aligned to a 16-byte boundary.• TRBs are kept in linear memory to enhance descriptor caching performance. If thedata buffers are small (as in an Ethernet application) the core can efficiently collectthe scattered data to build USB packets without wasting bus efficiency that collectingscattered descriptors requires.• Supports TRB linking. This allows software to set up a circular ring of TRBs withthe last TRB linking to the first one.• Supports system memory interface with 40-bit addressing capability• Supports byte-aligned buffers for each TRB of a transfer. This feature prevents theneed for buffer copying in cases where the USB device driver receives unaligneddata buffers from other applications (for example, Ethernet). Whenever theapplication controls buffer allocation, it must allocate SoC bus width and burst-aligned buffers to facilitate efficient bus and memory utilization. For transmitting,the core supports byte-aligned buffers on all TRBs.For example: To use 16 bursts in a 64-bit system, you must try to allocate buffersthat are 16 * 8 = 128 bytes aligned. This is the normal buffer structure becauseLinux-like OSs allocate 4 KB buffers. SDR/DDR memory controllers also providebetter performance when requests are burst aligned.• Supports software queueing of multiple USB transfers (LST bit for IN/OUT transfersand CSP bit for OUT transfers control this function).• Provides interrupt moderation capability, allowing software to selectively enableevents on TRB completion, as controlled by the IOC (Interrupt on completion) bit.The IOC event is also used by software to reallocate the released buffers, allowingsoftware to re-use just a few buffers in a circular fashion. This helps when thememory is limited but have enough MIPS to process interrupts. Larger buffers can beallocated to reduce the number of interrupts.• In USB 3.0 larger transfers are recommended because the raw transfer rate isalmost 10 times faster, unlike USB 2.0, where drivers set up only 64 KB or 128KB transfers. For example, a 64 KB transfer that takes 1.3 ms in USB 2.0Functional DescriptionQorIQ LS1012A Reference Manual, Rev. 1, 01/20182230 NXP Semiconductors