ID 683821
Date 10/29/2021
Public

8.1.7. Request Structures

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

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 */
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.