- Navigate to driver root directory
-
$> cd
<parent-path>/dma_ip_drivers/QDMA/linux-kernel
- Compile driver and applications
-
$> make TANDEM_BOOT_SUPPORTED=1
- Copy driver and application executables to standard destinations
-
$> make install
- Generate the qdma.conf file manually or using
the qdma_generate_conf_file.sh script and place
it in /etc/modprobe.d if this is the first time using the
driver on the host system. It is also recommended to blacklist the driver modules
for boot; refer to the README for instructions
- Insert the driver into the kernel
-
$> modprobe qdma-pf
- Set the maximum number of possible queues using sysfs
-
$> echo 1 >
/sys/bus/pcie/devices/0000:01:00.0/qdma/qmax
- Add the queue; must use memory mapped DMA and direction is host to
card
-
$> dma-ctl qdma01000 q add idx 0
mode mm dir h2c
- Start the queue; must set aperture size so DMA transfer acts on a
keyhole
-
$> dma-ctl qdma01000 q start idx
0 dir h2c aperture_sz 4096
- Perform the DMA transfer to SBI
-
$> dma-to-device -d
/dev/qdma01000-MM-0 -f <.pdi file> -s <size> -a
0x102100000
- For CPM4 QDMA, perform the following additional steps to reload the qdma driver:
-
rmmod qdma-pf
-
modprobe qdma-pf
-
echo 1 > /sys/bus/pcie/devices/0000:01:00.0/qdma/qmax
-
dma-ctl qdma01000 q add idx 0 mode mm dir h2c
-
dma-ctl qdma01000 q start idx 0 dir h2c