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

ID 683821
Date 10/29/2021
Public

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

Document Table of Contents

8.3.1. Architecture

Figure 40. MCDMA IP Kernel Mode Character Device Driver Architecture

The MCDMA device is exposed as a character device (mcdma_device_<bdf>) to the application. The application uses standard file operations on the character device to perform DMA operations.

MCDMA chardev driver has 3 components :
  • Example test application (testapp): It is the standalone multi-threaded application, which creates multiple threads, allocates threads to queues, and schedules DMA transactions.
  • Libmcmem: This library allocates, deallocates & manages hugepages that the application uses for DMA transfers. The library consists of 5 APIs.
  • MCDMA kernel module (ifc_mcdma_chardev.ko): MCDMA kernel module provides functionality for DMA operations to applications and performs the following operations.
    • Device Management
    • Channel Management
    • Completions Management