GTS AXI Multichannel DMA IP for PCI Express* User Guide

ID 847470
Date 8/25/2025
Public
Document Table of Contents

B.1.7. Request Structures

To request a DMA operation, the application needs to use a common structure called ifc_qdma_request.

It contains the following fields:

struct ifc_qdma_request {
      void *buf;              /* src/dst buffer */
      uint32_t len;           /* number of bytes */
      uint64_t pyld_cnt;
      uint32_t flags;        /* SOF and EOF */
      uint64_t metadata;
      void *ctx;              /* libqdma contexst, NOT for application */
};
  1. buf : DMA buffer. In the case of H2D, this buffer data is moved to the FPGA. In the case of D2H, the FPGA copies the contents to this buffer.
  2. len : Length of the data in this descriptor.
  3. pyld_cnt : D2H: Length of the valid data, in case the descriptor contains EOF. H2D: This field is not used.
  4. flags: This is the mask which contains the flags that describe the contents. Currently, these flags are being used to signal the SOF and EOF of the data.
  5. metadata: In case of H2D, you need to update the metadata in this field. In case of the D2H driver, updates back the metadata.

Note: For an AXI-S design, the SOF and EOF should be on the same descriptor or SOF can be at the start and EOF at the end descriptor of a single TID update.