Multi Channel DMA IP for PCI Express* Design Example User Guide
ID
683517
Date
8/04/2025
Public
3.5.1. Hardware Requirements
3.5.2. Software Requirements
3.5.3. Set Up the Hardware and Program the FPGA
3.5.4. Configuration Changes from BIOS
3.5.5. Installing the Required Kernel Version for Ubuntu v24.04
3.5.6. Set the Boot Parameters
3.5.7. MCDMA Custom Driver
3.5.8. MCDMA DPDK Poll Mode Driver
3.5.9. MCDMA Kernel Mode Network Device Driver
3.5.7.3.3. Avalon-ST Packet Generate/Check (Packet Generate/Check)
- Update the static channel mapping in p0_software/user/cli/perfq_app/perfq_app.h by modifying the following parameters:
/* Number of PFs */
#define IFC_QDMA_PFS <number of PFs>
/* Channels available per PF */
#define IFC_QDMA_PER_PF_CHNLS <number of channels per PF>
/* Channels available per VF */
#define IFC_QDMA_PER_VF_CHNLS <number of channels per VF>
/* Number of VFs per PF */
#define IFC_QDMA_PER_PF_VFS <number of VFs per PF>
- Complete the instructions outlined in Prerequisites and run the perfq_app application command:
$ sudo ./perfq_app -b 0000:98:00.0 -p 32768 -d 2 -c 1 -a 2 -l 5 -z -–pf=<pf number> --vf=<vfnumber>
Figure 33. Testing Results for PF1Figure 34. Testing Results for VF2 of PF2
Note: If you run DMA on a PF only, then "--vf " might not be required. However, if you run DMA on a VF, then "--pf" and "--vf" both might be needed as you need to know from which PF the VF was spawned. The PF number and VF number start with 1 in the command line parameters. For example, --pf=1 is pointing to PF0 and --pf=2 is pointing to PF1. The same applies for VFs.
Configuration:
- bdf (-b 0000:01:00.0)
- 1 channel (-c 1)
- Bidirectional (-z)
- Payload length of 32,768 bytes in each descriptor (-p 32768)
- Time Limit (-l 5)
- Dump every 2 seconds (-d 2)
- One thread per queue (-a 2)