Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

5.1.6.2.2. Application Data Buffer Alignment

The TX and RX data buffers do not have any restrictions on start address alignment. For example, in systems with 128 bit memory, the start address for buffers can be aligned to any of the 16 bytes. However, the DMA always initiates write transfers with address aligned to the bus width and dummy data (old data) in the invalid byte lanes. This typically happens during the transfer of the beginning or end of an Ethernet packet. The software driver must discard the dummy bytes based on the start address of the buffer and size of the packet.

The following table is an example of application data buffer alignment:
Table 117.  Example Application Data Buffer Alignment
Transfer Type Description
Buffer read If the TX buffer address is 32’h00000FF2 (for 128 bit data bus), and 32 bytes need to be transferred, the DMA reads three full words from address 32’h00000FF0, but when transferring data to the MTL TX queue, the additional bytes (the first two bytes) are dropped or ignored. Similarly, the last 14 bytes of the last transfer are also ignored. The DMA always ensures that it transfers a full 32 bit data to the MTL TX queue, unless it is the end of packet.
Buffer write

If the RX buffer address is 32’h0000FF2 (for 64 bit data bus) and 16 bytes of a received packet need to be transferred, the DMA writes 3 full words from address 32’h00000FF0. However, the first 2 bytes of the first transfer and the last 6 bytes of the third transfer have dummy data. The DMA considers the offset address only if it is the first RX buffer of the packet. The DMA ignores the offset address and performs full word writes for the middle and the last RX buffer of the packet.