Multi Channel DMA Intel® FPGA IP for PCI Express* User Guide

ID 683821
Date 7/30/2024
Public
Document Table of Contents

8.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 FPGA. In the case of D2H, FPGA copies the content to this buffer.
  2. len: Length of the data in this descriptor
  3. pyld_cnt: D2H: Length of the valid date, in case if descriptor contains EOF. H2D: This field not used
  4. flags: This the mask which contains the flags which describe the content Currently, these flags are being used to notify the SOF and EOF of data.
  5. metadata: In case of H2D, you need to update the metadata in this field. In case of D2H driver, updates back the metadata
Note: For the Single Port AVST 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.