Qdma Pdf

0 views
Skip to first unread message

Lacy Tortelli

unread,
Aug 5, 2024, 6:04:19 AM8/5/24
to specimdume
Duringthe PCIe DMA IP customization in Vivado you can specify a PCIe Device ID.This Device ID must be recognized by the driver in order to properly identify the PCIe QDMA device.The current driver is designed to recognize the default PCIe Device IDs that get generated with the PCIe example design.If the PCIe Device ID is modified during IP customization, one needs to modify QDMA driver to recognize this new ID.

To modify the PCIe Device ID in the driver, open the driver/src/pci_ids.h file from the driver source and search for the pci_device_id struct.This struct defines the PCIe Device IDs that are recognized by the driver in the following format:


Add, remove, or modify the PCIe Device IDs in this struct.The PCIe DMA driver will only recognize device IDs identified in this struct as PCIe QDMA devices.Once modified, the driver must be un-installed and recompiled.


In order to compile the Xilinx QDMA software, configured and compiled Linux kernel source tree is required.Linux QDMA driver is dependent on libaio. Hence, make sure to install libaio before compiling the QDMA driver.Example command is provided on Ubuntu. Follow the similar procedure for other OS flavors.


Upon executing make, A sub-directory bin is created with the list of executable listed in below tables.Individual executables can also be built with commands listed against each component in below tables.


An auxillary script, qdma_generate_conf_file.sh has been added to the scripts folder which helps create the qdma.confconfig file and copies it to the /etc/modprobe.d location. The script can be used as shown below -


Please note that having the qdma-pf.ko and qdma-vf.ko files in the /lib/modules//qdma/ will causeautomatic loading of the driver modules at boot time. To avoid this, it is recommended to have the driversblacklisted. This can be done by adding the below 2 lines in the /etc/modprobe.d/blacklist.conf file -


In the Linux kernel, the following vulnerability has been resolved: dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read There is chip (ls1028a) errata: The SoC may hang on 16 byte unaligned read transactions by QDMA. Unaligned read transactions initiated by QDMA may stall in the NOC (Network On-Chip), causing a deadlock condition. Stalled transactions will trigger completion timeouts in PCIe controller. Workaround: Enable prefetch by setting the source descriptor prefetchable bit ( SD[PF] = 1 ). Implement this workaround.

3a8082e126
Reply all
Reply to author
Forward
0 new messages