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

ID 683517
Date 4/17/2023

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents MCDMA Queue Selection

When using the MCDMA Queue Selection algorithm, you can map multiple transmit queues to a core. Any application running on that particular core uses one of these mapped queues to transfer the data.

Multiple application instances can use multiple queues mapped to one core or different cores enabling parallel transmission streams of packets.


  • Enable the IFC_SELECT_QUEUE_ALGO flag in driver/kmod/mcdma-netdev-driver/Makefile.
  • Map transmit queues to cores:
    cd /sys/kernel/debug/ifc_mcdma0/
    echo start_chnl_no > start_chnl
    echo end_chnl_no > end_chnl
    echo core_no > core
    echo 1 > map_update
    echo 1 > map_show

    Map chnl 0 to chnl 7 to core5

    echo 0 > start_chnl
    echo 7 > end_chnl
    echo 5 > core
    echo 1 > map_update
  • If a core is not mapped to any queue, use the last queue.
  • By default, all transmit queues are mapped to core 0.