GTS AXI Multichannel DMA IP for PCI Express* User Guide

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

B.2.5. Software Flow

Figure 63. DPDK Poll Mode Driver Software Flow

Step 1

  • Based on the specified number of queues, the application sets up Tx and Rx queues.
  • The MCDMA Poll Mode driver (PMD) takes care of memory management and reserves a portion of the physical memory with the specified alignment and boundary.
  • PMD initializes the following registers in the QCSR associated with the queue, which includes the starting address of descriptors, queue size, write back address for Consumed Head, payload size in D2H descriptors and then enables the channels.
  • QCSR registers:
    • Q_RESET (offset 8’h48)
    • Q_TAIL_POINTER (offset 8’h14) Set to 0
    • Q_START_ADDR_L (Offset 8’h08)
    • Q_START_ADDR_H (Offset 8’h0C)
    • Q_SIZE (Offset 8’h10)
    • Q_CONSUMED_HEAD_ADDR_L (Offset 8’h20)
    • Q_CONSUMED_HEAD_ADDR_H (Offset 8’h24)
    • Q_BATCH_DELAY (Offset 8’h28)
    • Set q_en, q_wb/intr_en bits, Q_CTRL (Offset 8’h00)
    • (Q_PYLD_COUNT) (Offset 8'h44)
  • Once all the queues are configured, it then starts the device.
  • Q Application creates the thread based on the number of queues specified.

Step 2

Thread requests for a new descriptor to submit the request and updates the required field, i.e., descriptor index, SOF, EOF, Payload, MSI-X enable and writeback enable.

Step 3

After initializing the descriptor ring buffer, the MCDMA PMD writes the number of descriptor updates into the tail register of the QCSR region. On every descriptor update, the tail pointer is increased by 1. QCSR tail pointer register: Q_TAIL_POINTER (Offset 8’h14)

Step 4

  • Once the tail pointer write happens, the GTS AXI MCDMA IP fetches descriptors from the host memory starting from the programmed Q_START_ADDR_L/H address.
  • The GTS AXI MCDMA IP parses the descriptor content to find the sources, destination addresses and length of the data from the descriptor and starts the DMA operation.

Step 5

Once descriptor processing is completed, the IP notifies the completion status based on the following methods, which can be enabled in each descriptor.

  • Based on the MSI-X Interrupt: the GTS AXI MCDMA IP sends an MSI-X interrupt to the host if enabled in Q_CTRL.
  • Writeback: the GTS AXI MCDMA IP updates Q_CONSUMED_HEAD_ADDR_L/H, if writeback is enabled in Q_CTRL.