02-25-2020 02:05 AM - edited 02-26-2020 12:12 AM
Hi all,
I started to use QDMA with its example design and got stuck in creating QDMA queue with "dmatl".
When trying to create queue, I got below message:
vux@server:~$ dmactl dev list qdma01000 0000:01:00.0 max QP: 0, -~- vux@server:~$ dmactl qdma01000 q add idx 0 mode mm dir h2c Zero Qs vux@server:~$ lspci | grep Xilinx 01:00.0 Memory controller: Xilinx Corporation Device 903f
It seems that dmactl can not create a queue.
Does anyone have idea on this issue?
02-25-2020 02:13 AM
qdma driver probing log:
[ 1127.189096] qdma:xnl_q_add: 0 sized Qs [ 1142.005051] qdma:xnl_q_add: 0 sized Qs [ 1759.320914] qdma:remove_one: 0000:01:00.0 pdev 0x000000006056e13b, xdev 0x0000000057e3b6aa, hndl 0xffff9398d3758800, qdma01000. [ 1763.188916] qdma:qdma_mod_init: Xilinx QDMA PF Reference Driver v2019.1.125.211. [ 1763.278640] qdma:probe_one: 0000:01:00.0: func 0x0/0x4, p/v 0/0,0x (null). [ 1763.278641] qdma:probe_one: Current device is in 0 mode [ 1763.278642] qdma:probe_one: Configuring '01:00:0' as master pf [ 1763.278643] qdma:probe_one: Driver is loaded in auto mode [ 1763.278644] qdma:qdma_device_open: qdma_pf, 01:00.00, pdev 0x000000006056e13b, 0x10ee:0x903f. [ 1763.278748] qdma:xdev_identify_bars: QDMA Config BAR passed by the user is correct [ 1763.278750] qdma:xdev_identify_bars: User BAR 2. [ 1763.278754] qdma:qdma_device_attributes_get: qdma01000-p0000:01:00.0: num_pfs:1, num_qs:2048, flr_present:0, st_en:1, mm_en:1, mm_cmpt_en:0, mailbox_en:0, mm_channel_max:1 [ 1763.304067] qdma:qdma_device_open: 0000:01:00.0, 01000, pdev 0x000000006056e13b, xdev 0x00000000f1200446, ch 1, q 0, vf 0.
02-25-2020 02:23 AM
QDMA Core default configuration
02-25-2020 08:48 PM
Does anyone have idea on this issue? :(
03-02-2020 09:01 AM
It looks that you have not defined the maximum number of queues allocated to your device
vux@server:~$ dmactl dev list qdma01000 0000:01:00.0 max QP: 0, -~-
You should edit the file
/sys/bus/pci/devices/0000:01:00.0/qdma/qmax
with the max number of queues, e.g.
echo 1024 > /sys/bus/pci/devices/0000:01:00.0/qdma/qmax
sets the max number of queues to 1024 (may be you need to change the protection of the file qmax in order to write it)
Once the max number of queues is set the answer to the dmactl dev list command should look like this
qdma01000 0000:01:00.0 max QP: 1024, 0~1023
Which shows that queues numbers from 0 to 1023 can be created for the device