Figure 1. Linux DMA Software Architecture
The QDMA driver consists of the following three major components:
- Device control tool: Creates a netlink socket for PCIe device query, queue management, reading the context of a queue, etc.
- DMA tool: Is the user space application to initiate a DMA transaction. You can use standard Linux utility dd or fio, or use the example application in the driver package.
- Kernel space driver: Creates the descriptors and translates the user space function into low-level command to interact with the device .