DMA Control Application (dma-ctl)

QDMA driver comes with a command-line configuration utility called dma-ctl to manage the driver.

The Xilinx QDMA control tool, dma-ctl is a command Line utility which is installed in /usr/local/sbin/ and allows administration of the Xilinx QDMA queues. Make sure that the installation path /usr/local/sbin/ is added to the PATH variable.

Note:

The name of the application in previous releases before 2020.1 was dmactl. If user installed dmactl application aleady in /usr/local/sbin area, make sure to uninstall the old application(s). Using dmactl aginst latest driver would lead to undefined behaviour and errors may be observed.

dma-ctl application can perform the following functions:

  • Query the list of functions binded QDMA driver

  • Query control and configuration

    • List all the queues on a device
    • Add/configure a new queue on a device
    • Start an already added/configured queue, i.e., bring the queue to on line mode
    • Stop a started queue, i.e., bring the queue to off line mode
    • Delete an already configured queue
  • Register access

    • Read a register
    • Write a register
    • Dump the qdma configuration bar and user bar registers
  • Debug helper

    • Display a queue’s configuration parameters
    • Display a queue’s descriptor ring entries
    • Display a c2h queue’s completion ring entries
    • Display the interrupt ring entries

For dma-ctl help run dma-ctl –h

For more details on the dma-ctl tool commands and options for each command, refer to dma-ctl man page.

For dma-ctl man page, run man dma-ctl

Device Management Commands

List devices

command: dma-ctl dev list

This command lists all the physical and virtual functions available in the system along with the number of queues assigned to each function, queue base and queue max. Each qdma device name is listed as qdma<bbddf> where <bbddf> is bus number, device number and function number.

Initially when the system is started, the queues are not assigned to any of the available functions.

[xilinx@]# dma-ctl dev list

qdma01000       0000:01:00.0    max QP: 0, -~-
qdma01001       0000:01:00.1    max QP: 0, -~-
qdma01002       0000:01:00.2    max QP: 0, -~-
qdma01003       0000:01:00.3    max QP: 0, -~-


qdmavf01004     0000:01:00.4    max QP: 0, -~-


[xilinx@]# echo 100 > /sys/bus/pci/devices/0000\:01\:00.0/qdma/qmax
[xilinx@]# echo 100 > /sys/bus/pci/devices/0000\:01\:00.1/qdma/qmax
[xilinx@]# echo 100 > /sys/bus/pci/devices/0000\:01\:00.2/qdma/qmax
[xilinx@]# echo 100 > /sys/bus/pci/devices/0000\:01\:00.3/qdma/qmax
[xilinx@]# echo 100 > /sys/bus/pci/devices/0000\:01\:00.4/qdma/qmax
[xilinx@]# dma-ctl dev list

qdma01000       0000:01:00.0    max QP: 100, 0~99
qdma01001       0000:01:00.1    max QP: 100, 100~199
qdma01002       0000:01:00.2    max QP: 100, 200~299
qdma01003       0000:01:00.3    max QP: 100, 300~399


qdmavf01004     0000:01:00.4    max QP: 100, 400~499

Queue Management Commands

List Version

command: dma-ctl qdma<bbddf> cap

This command lists hardware and software version details and device capabilities.

[xilinx@]# dma-ctl qdma01000 cap
=============Hardware Version============

RTL Version         : RTL Patch
Vivado ReleaseID    : vivado 2020.2
QDMA Device Type    : Soft IP
QDMA IP Type        : QDMA Soft IP
============Software Version============

qdma driver version : 2020.2.0.0

=============Hardware Capabilities============

Number of PFs supported                : 4
Total number of queues supported       : 2048
MM channels                            : 1
FLR Present                            : yes
ST enabled                             : yes
MM enabled                             : yes
Mailbox enabled                        : yes
MM completion enabled                  : no
Debug Mode enabled                     : no
Desc Engine Mode                       : Internal and Bypass mode

List Device Statistics

command: dma-ctl qdma<bbddf> stat

This command lists the statistics accumulated for this device

[xilinx@]# dma-ctl qdma01000 stat

qdma01000:statistics
Total MM H2C packets processed = 0
Total MM C2H packets processed = 0
Total ST H2C packets processed = 0
Total ST C2H packets processed = 0
Min Ping Pong Latency = 0
Max Ping Pong Latency = 0
Avg Ping Pong Latency = 0

Use dma-ctl qdma01000 stat clear to clear the statistics collected

Add a Queue

command: dma-ctl qdma<bbddf> q add idx <N> [mode <st|mm>] [dir <h2c|c2h|bi>]

This command allows the user to add a queue.

Parameters

  • <N> : Queue number
  • mode : mode of the queue, streaming(st) or memory mapped(mm). Mode defaults to mm.
  • dir : Direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi). Direction defaults to h2c.
[xilinx@]# dma-ctl qdma01000 q add idx 4 mode mm dir h2c

qdma01000-MM-4 H2C added.
Added 1 Queues.

Add a List of Queues

command: dma-ctl qdma<bbddf> q add list <start_idx> <N>  [ mode <st|mm> ] [ dir <h2c|c2h|bi> ]

This command allows the user to add a list of queues.

Parameters

  • <start_idx> : Starting queue number
  • <N> :Number of queues to add
  • mode : mode of the queue, streaming(st) or memory mapped(mm)
  • dir : Direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi)
[xilinx@]# dma-ctl qdma01000 q add list 1 4 mode mm dir h2c

qdma01000-MM-1 H2C added.
qdma01000-MM-2 H2C added.
qdma01000-MM-3 H2C added.
qdma01000-MM-4 H2C added.
Added 4 Queues.

Start a Queue

This command allows the user to start a queue.

command:

dma-ctl qdma<bbddf> q start idx <N> [dir <h2c|c2h|bi>] [idx_ringsz <0:15>] [idx_bufsz <0:15>] [idx_tmr <0:15>] [idx_cntr <0:15>] [trigmode <every|usr_cnt|usr|usr_tmr|dis>] [cmptsz <0|1|2|3>] [desc_bypass_en] [pfetch_en] [pfetch_bypass_en] [dis_cmpl_status] [dis_cmpl_status_acc] [dis_cmpl_status_pend_chk] [c2h_udd_en] [fetch_credit <h2c|c2h|bi|none>] [c2h_cmpl_intr_en] [cmpl_ovf_dis] [mm_chn <0:1>] [aperture_sz <Power of 2 aperture size>]

Parameters

  • <N> : Queue number
  • dir : Direction of the queue, host-to-card (h2c), card-to-host (c2h) or both (bi). Directions defaults to h2c.
  • idx_ringsz: CSR register ring size index ( 0 - 15 )
  • idx_bufsz : CSR register buffer size index ( 0 - 15 )
  • idx_tmr : CSR register timer index ( 0 - 15 )
  • idx_cntr: CSR register counter index ( 0 - 15 )
  • trigmode: Timer trigger mode (every, usr_cnt, usr, usr_tmr, dis)
  • cmptsz : Completion size ( 0: 8 bytes, 1: 16 bytes, 2:32 bytes, 3:64 bytes)
  • sw_desc_sz : Descriptor size ( 3: 64 bytes)
  • desc_bypass_en : Enable descriptor bypass
  • pfetch_en : Enable prefetch ( 0: Disable, 1: Enable )
  • pfetch_bypass_en : Enable prefetch bypass ( 0: Disable, 1: Enable )
  • dis_cmpl_status : Disable completion status update ( 1: Disable, 0: Enable )
  • dis_cmpl_status_acc : Disable completion status accumulation ( 1: Disable, 0: Enable )
  • dis_cmpl_status_pend_chk : Disable completion status pending check ( 1: Disable, 0: Enable )
  • c2h_udd_en : Enable immediate data(User Defined Data) ( 0: Disable, 1: Enable )
  • fetch_credit : Enable fetch credit (host-to-card (h2c), card-to-host (c2h), both (bi), disable (none))
  • c2h_cmpl_intr_en : Enable c2h completion interval ( 0: Disable, 1: Enable )
  • cmpl_ovf_dis : Disable completion over flow check ( 1: Disable, 0: Enable )
  • mm_chn : MM Channel to be used(0/1)
  • aperture_sz : aperture size power of 2 for keyhole feature
Note on keyhole feature
Provides support of programming over PCIe. QDMA SW provides a capability to program a .pdi file to a specific aperture within a Versal device. This enables the DMA to write data to a fixed size FPGA aperture. When the end of the user specified aperture size is reached, transactions continue to transfer data by looping back to the start of the aperture window. This is repeated until all data has been programmed into the user specified aperture window. dma-to-device can be used to write to a specific offset in the RAM with the aperture specified at the time when the Q is started.
[xilinx@]# dma-ctl qdma01000 q start idx 4 dir h2c
dma-ctl: Info: Default ring size set to 2048

1 Queues started, idx 4 ~ 4.

Start a List of Queues

command:

dma-ctl qdma<bbddf> q start list <start_idx> <N> [dir <h2c|c2h|bi>] [idx_ringsz <0:15>] [idx_bufsz <0:15>] [idx_tmr <0:15>] [idx_cntr <0:15>] [trigmode <every|usr_cnt|usr|usr_tmr|dis>] [cmptsz <0|1|2|3>] [desc_bypass_en] [pfetch_en] [pfetch_bypass_en] [dis_cmpl_status] [dis_cmpl_status_acc] [dis_cmpl_status_pend_chk] [c2h_udd_en] [fetch_credit <h2c|c2h|bi|none>] [c2h_cmpl_intr_en] [cmpl_ovf_dis] [mm_chn <0:1>] [aperture_sz <Power of 2 aperture size>]

This command allows the user to start a list of queues.

Parameters

  • <start_idx> : Starting queue number
  • <N> : Number of queues to start
  • dir : direction of the queue, host-to-card (h2c), card-to-host (c2h) or both (bi). Directions defaults to h2c.
  • idx_ringsz: CSR register ring size index ( 0 - 15 )
  • idx_bufsz : CSR register buffer size index ( 0 - 15 )
  • idx_tmr : CSR register timer index ( 0 - 15 )
  • idx_cntr: CSR register counter index ( 0 - 15 )
  • trigmode: Timer trigger mode (every, usr_cnt, usr, usr_tmr, dis)
  • cmptsz : Completion size ( 0: 8 bytes, 1: 16 bytes, 2:32 bytes, 3:64 bytes)
  • desc_bypass_en : Enable descriptor bypass ( 0: Disable, 1: Enable )
  • pfetch_en : Enable prefetch ( 0: Disable, 1: Enable )
  • pfetch_bypass_en : Enable prefetch bypass ( 0: Disable, 1: Enable )
  • dis_cmpl_status : Disable completion status update
  • dis_cmpl_status_pend_chk : Disable completion status pending check
  • c2h_udd_en : Enable immdeiate data(User Defined Data)
  • fetch_credit : Enable fetch credit (host-to-card (h2c), card-to-host (c2h), both (bi), disable (none))
  • c2h_cmpl_intr_en : Enable c2h completion interval ( 0: Disable, 1: Enable )
  • cmpl_ovf_dis : Disable completion over flow check ( 1: Disable, 0: Enable )
  • mm_chn : MM Channel to be used(0/1))
  • aperture_sz : aperture size power of 2
[xilinx@]# dma-ctl qdma01000 q start list 1 4 dir h2c

Started Queues 1 -> 4.

List of Queues added

command: dma-ctl qdma<bbddf> q list <start_idx> <num_Qs>

This command allows user to list queues added/configured.

Parameter

  • <start_idx> : Starting queue number
  • <num_Qs> : Number of queues to list
[xilinx@]# dma-ctl qdma01000 q list 1 4
H2C Q: 4, C2H Q: 0, CMPT Q 0.
qdma06000-MM-1 H2C online
        hw_ID 1, thp ?, desc 0x0000000050bf1609/0xfffc0000, 2048
qdma06000-MM-2 H2C online
        hw_ID 2, thp ?, desc 0x00000000e4e32bca/0xfffa0000, 2048
qdma06000-MM-3 H2C online
        hw_ID 3, thp ?, desc 0x00000000a84d8d83/0xfff80000, 2048
qdma06000-MM-4 H2C online
        hw_ID 4, thp ?, desc 0x00000000ddf89665/0xfff60000, 2048

Stop a Queue

command: dma-ctl qdma<bbddf> q stop idx <N> [dir <h2c|c2h|bi>]

This command allows the user to stop a queue.

Parameters

  • <N> : Queue number
  • dir : direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi). Directions defaults to h2c.
[xilinx@]# dma-ctl qdma01000 q stop idx 4 dir h2c
dma-ctl: Info: Default ring size set to 2048

Stopped Queues 4 -> 4.

Stop a List of Queues

command: dma-ctl qdma<bbddf> q stop list <start_idx> <N> [dir <h2c|c2h|bi>]

This command allows the user to stop a list of queues.

Parameters

  • <start_idx> : Starting queue number
  • <N> : Number of queues to delete
  • dir : Direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi). Directions defaults to h2c.
[xilinx@]# dma-ctl qdma01000 q stop list 1 4 dir h2c

Stopped Queues 1 -> 4.

Delete a Queue

command: dma-ctl qdma<bbddf> q del idx <N> [dir <h2c|c2h|bi>]

This command allows the user to delete a queue.

Parameters

  • <N> : Queue number
  • dir : direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi). Directions defaults to h2c.
[xilinx@]# dma-ctl qdma01000 q del idx 4 dir h2c

Deleted Queues 4 -> 4.

Delete a List of Queues

command: dma-ctl <bbddf> q del list <start_idx> <N> [ dir <h2c|c2h|bi> ]

This command allows the user to delete a list of queues.

Parameters

  • <start_idx> : Starting queue number
  • <N> : Number of queues to delete
  • dir : Direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi)
[xilinx@]# dma-ctl qdma01000 q del list 1 4 dir h2c

Deleted Queues 1 -> 4.

Dump Queue Information

command: dma-ctl qdma<bbddf> q dump idx <N> [dir <h2c|c2h|bi>]

Dump the queue information

Parameters

  • <N> : Queue number
  • dir : Direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi)

Sample output is given below:

[xilinx@]# dma-ctl qdma01000 q dump idx 1 dir bi

qdma01000-ST-0 H2C online
        hw_ID 0, thp ?, desc 0x000000002faff247/0x2a878000, 1536

        cmpl status: 0x00000000377ea451, 00000000 00000000
        SOFTWARE CTXT:
                Interrupt Aggregation                           0x1        1
                Ring Index                                      0x0        0
                Descriptor Ring Base Addr (High)                0x0        0
                Descriptor Ring Base Addr (Low)                 0x2a878000 713523200
                Is Memory Mapped                                0x0        0
                Marker Disable                                  0x1        1
                IRQ Request                                     0x0        0
                Writeback Error Sent                            0x0        0
                Error                                           0x0        0
                Interrupt No Last                               0x0        0
                Port Id                                         0x0        0
                Interrupt Enable                                0x1        1
                Writeback Enable                                0x1        1
                MM Channel                                      0x0        0
                Bypass Enable                                   0x0        0
                Descriptor Size                                 0x1        1
                Ring Size                                       0x9        9
                Fetch Max                                       0x0        0
                Address Translation                             0x0        0
                Write back/Intr Interval                        0x1        1
                Write back/Intr Check                           0x1        1
                Fetch Credit Enable                             0x0        0
                Queue Enable                                    0x1        1
                Function Id                                     0x0        0
                IRQ Arm                                         0x1        1
                PIDX                                            0x0        0

        HARDWARE CTXT:
                Fetch Pending                                   0x0        0
                Eviction Pending                                0x0        0
                Queue Invalid No Desc Pending                   0x1        1
                Descriptors Pending                             0x0        0
                Credits Consumed                                0x0        0
                CIDX                                            0x0        0

        CREDIT CTXT:
                Credit                                          0x0        0

        INTR CTXT:
                at                                              0x0        0
                pidx                                            0x0        0
                page_size                                       0x0        0
                baddr_4k (High)                                 0x0        0
                baddr_4k (Low)                                  0x2a801000 713035776
                color                                           0x1        1
                int_st                                          0x0        0
                vec                                             0x3        3
                valid                                           0x1        1

        total descriptor processed:    0
qdma01000-ST-0 C2H online
        hw_ID 0, thp ?, desc 0x00000000219f976e/0x2a85c000, 1536
        cmpt desc 0x0000000086ae1f7a/0x2a870000, 2048

        cmpl status: 0x00000000a17113db, 00000000 00000000
        CMPT CMPL STATUS: 0x00000000973734af, 00000000 00000000
        SOFTWARE CTXT:
                Interrupt Aggregation                           0x1        1
                Ring Index                                      0x0        0
                Descriptor Ring Base Addr (High)                0x0        0
                Descriptor Ring Base Addr (Low)                 0x2a85c000 713408512
                Is Memory Mapped                                0x0        0
                Marker Disable                                  0x0        0
                IRQ Request                                     0x0        0
                Writeback Error Sent                            0x0        0
                Error                                           0x0        0
                Interrupt No Last                               0x0        0
                Port Id                                         0x0        0
                Interrupt Enable                                0x0        0
                Writeback Enable                                0x0        0
                MM Channel                                      0x0        0
                Bypass Enable                                   0x0        0
                Descriptor Size                                 0x0        0
                Ring Size                                       0x9        9
                Fetch Max                                       0x0        0
                Address Translation                             0x0        0
                Write back/Intr Interval                        0x1        1
                Write back/Intr Check                           0x0        0
                Fetch Credit Enable                             0x1        1
                Queue Enable                                    0x1        1
                Function Id                                     0x0        0
                IRQ Arm                                         0x0        0
                PIDX                                            0x5ff      1535

        HARDWARE CTXT:
                Fetch Pending                                   0x0        0
                Eviction Pending                                0x0        0
                Queue Invalid No Desc Pending                   0x1        1
                Descriptors Pending                             0x0        0
                Credits Consumed                                0x0        0
                CIDX                                            0x0        0

        CREDIT CTXT:
                Credit                                          0x0        0

        CMPT CTXT:
                Interrupt Aggregation                           0x1        1
                Ring Index                                      0x0        0
                Address Translation                             0x0        0
                Over Flow Check Disable                         0x0        0
                Full Update                                     0x0        0
                Timer Running                                   0x0        0
                Trigger Pending                                 0x0        0
                Error                                           0x0        0
                Valid                                           0x1        1
                CIDX                                            0x0        0
                PIDX                                            0x0        0
                Descriptor Size                                 0x0        0
                Base Address (High)                             0x0        0
                Base Address (Low)                              0x2a870000 713490432
                Ring Size                                       0x0        0
                Color                                           0x1        1
                Interrupt State                                 0x1        1
                Timer Index                                     0x0        0
                Counter Index                                   0x0        0
                Function Id                                     0x0        0
                Trigger Mode                                    0x1        1
                Enable Interrupt                                0x1        1
                Enable Status Desc Update                       0x1        1

        PREFETCH CTXT:
                Valid                                           0x1        1
                Software Credit                                 0x5ff      1535
                In Prefetch                                     0x0        0
                Prefetch Enable                                 0x0        0
                Error                                           0x0        0
                Port Id                                         0x0        0
                Buffer Size Index                               0x0        0
                Bypass                                          0x0        0

        INTR CTXT:
                at                                              0x0        0
                pidx                                            0x0        0
                page_size                                       0x0        0
                baddr_4k (High)                                 0x0        0
                baddr_4k (Low)                                  0x2a801000 713035776
                color                                           0x1        1
                int_st                                          0x0        0
                vec                                             0x3        3
                valid                                           0x1        1

        total descriptor processed:    0
Dumped Queues 0 -> 0.

Dump Multiple Queue Information

command: dma-ctl qdma<bbddf> q dump idx <N> [dir <h2c|c2h|bi>]

Dumps the information for multiple queues

Parameters

  • <start_idx> : Starting queue number
  • <N> : Number of queues to dump
  • dir : Direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi)
[xilinx@]# dma-ctl qdma01000 q dump list 1 2 dir bi

qdma01000-ST-1 H2C online
        hw_ID 1, thp ?, desc 0x000000006c71b76a/0x2a890000, 1536

        cmpl status: 0x00000000ad836574, 00000000 00000000
        SOFTWARE CTXT:
                Interrupt Aggregation                           0x1        1
                Ring Index                                      0x0        0
                Descriptor Ring Base Addr (High)                0x0        0
                Descriptor Ring Base Addr (Low)                 0x2a890000 713621504
                Is Memory Mapped                                0x0        0
                Marker Disable                                  0x1        1
                IRQ Request                                     0x0        0
                Writeback Error Sent                            0x0        0
                Error                                           0x0        0
                Interrupt No Last                               0x0        0
                Port Id                                         0x0        0
                Interrupt Enable                                0x1        1
                Writeback Enable                                0x1        1
                MM Channel                                      0x0        0
                Bypass Enable                                   0x0        0
                Descriptor Size                                 0x1        1
                Ring Size                                       0x9        9
                Fetch Max                                       0x0        0
                Address Translation                             0x0        0
                Write back/Intr Interval                        0x1        1
                Write back/Intr Check                           0x1        1
                Fetch Credit Enable                             0x0        0
                Queue Enable                                    0x1        1
                Function Id                                     0x0        0
                IRQ Arm                                         0x1        1
                PIDX                                            0x0        0

        HARDWARE CTXT:
                Fetch Pending                                   0x0        0
                Eviction Pending                                0x0        0
                Queue Invalid No Desc Pending                   0x1        1
                Descriptors Pending                             0x0        0
                Credits Consumed                                0x0        0
                CIDX                                            0x0        0

        CREDIT CTXT:
                Credit                                          0x0        0

        INTR CTXT:
                at                                              0x0        0
                pidx                                            0x0        0
                page_size                                       0x0        0
                baddr_4k (High)                                 0x0        0
                baddr_4k (Low)                                  0x2a801000 713035776
                color                                           0x1        1
                int_st                                          0x0        0
                vec                                             0x3        3
                valid                                           0x1        1

        total descriptor processed:    0
qdma01000-ST-1 C2H online
        hw_ID 1, thp ?, desc 0x000000007d2ed7f0/0x2a880000, 1536
        cmpt desc 0x000000005e745eb2/0x2a888000, 2048

        cmpl status: 0x000000008a822731, 00000000 00000000
        CMPT CMPL STATUS: 0x00000000b4ec91f7, 00000000 00000000
        SOFTWARE CTXT:
                Interrupt Aggregation                           0x1        1
                Ring Index                                      0x0        0
                Descriptor Ring Base Addr (High)                0x0        0
                Descriptor Ring Base Addr (Low)                 0x2a880000 713555968
                Is Memory Mapped                                0x0        0
                Marker Disable                                  0x0        0
                IRQ Request                                     0x0        0
                Writeback Error Sent                            0x0        0
                Error                                           0x0        0
                Interrupt No Last                               0x0        0
                Port Id                                         0x0        0
                Interrupt Enable                                0x0        0
                Writeback Enable                                0x0        0
                MM Channel                                      0x0        0
                Bypass Enable                                   0x0        0
                Descriptor Size                                 0x0        0
                Ring Size                                       0x9        9
                Fetch Max                                       0x0        0
                Address Translation                             0x0        0
                Write back/Intr Interval                        0x1        1
                Write back/Intr Check                           0x0        0
                Fetch Credit Enable                             0x1        1
                Queue Enable                                    0x1        1
                Function Id                                     0x0        0
                IRQ Arm                                         0x0        0
                PIDX                                            0x5ff      1535

        HARDWARE CTXT:
                Fetch Pending                                   0x0        0
                Eviction Pending                                0x0        0
                Queue Invalid No Desc Pending                   0x1        1
                Descriptors Pending                             0x0        0
                Credits Consumed                                0x0        0
                CIDX                                            0x0        0

        CREDIT CTXT:
                Credit                                          0x0        0

        CMPT CTXT:
                Interrupt Aggregation                           0x1        1
                Ring Index                                      0x0        0
                Address Translation                             0x0        0
                Over Flow Check Disable                         0x0        0
                Full Update                                     0x0        0
                Timer Running                                   0x0        0
                Trigger Pending                                 0x0        0
                Error                                           0x0        0
                Valid                                           0x1        1
                CIDX                                            0x0        0
                PIDX                                            0x0        0
                Descriptor Size                                 0x0        0
                Base Address (High)                             0x0        0
                Base Address (Low)                              0x2a888000 713588736
                Ring Size                                       0x0        0
                Color                                           0x1        1
                Interrupt State                                 0x1        1
                Timer Index                                     0x0        0
                Counter Index                                   0x0        0
                Function Id                                     0x0        0
                Trigger Mode                                    0x1        1
                Enable Interrupt                                0x1        1
                Enable Status Desc Update                       0x1        1

        PREFETCH CTXT:
                Valid                                           0x1        1
                Software Credit                                 0x5ff      1535
                In Prefetch                                     0x0        0
                Prefetch Enable                                 0x0        0
                Error                                           0x0        0
                Port Id                                         0x0        0
                Buffer Size Index                               0x0        0
                Bypass                                          0x0        0

        INTR CTXT:
                at                                              0x0        0
                pidx                                            0x0        0
                page_size                                       0x0        0
                baddr_4k (High)                                 0x0        0
                baddr_4k (Low)                                  0x2a801000 713035776
                color                                           0x1        1
                int_st                                          0x0        0
                vec                                             0x3        3
                valid                                           0x1        1

        total descriptor processed:    0
qdma01000-ST-2 H2C online
        hw_ID 2, thp ?, desc 0x000000007167a03d/0x2a8a0000, 1536

        cmpl status: 0x000000000d8c788d, 00000000 00000000
        SOFTWARE CTXT:
                Interrupt Aggregation                           0x1        1
                Ring Index                                      0x0        0
                Descriptor Ring Base Addr (High)                0x0        0
                Descriptor Ring Base Addr (Low)                 0x2a8a0000 713687040
                Is Memory Mapped                                0x0        0
                Marker Disable                                  0x1        1
                IRQ Request                                     0x0        0
                Writeback Error Sent                            0x0        0
                Error                                           0x0        0
                Interrupt No Last                               0x0        0
                Port Id                                         0x0        0
                Interrupt Enable                                0x1        1
                Writeback Enable                                0x1        1
                MM Channel                                      0x0        0
                Bypass Enable                                   0x0        0
                Descriptor Size                                 0x1        1
                Ring Size                                       0x9        9
                Fetch Max                                       0x0        0
                Address Translation                             0x0        0
                Write back/Intr Interval                        0x1        1
                Write back/Intr Check                           0x1        1
                Fetch Credit Enable                             0x0        0
                Queue Enable                                    0x1        1
                Function Id                                     0x0        0
                IRQ Arm                                         0x1        1
                PIDX                                            0x0        0

        HARDWARE CTXT:
                Fetch Pending                                   0x0        0
                Eviction Pending                                0x0        0
                Queue Invalid No Desc Pending                   0x1        1
                Descriptors Pending                             0x0        0
                Credits Consumed                                0x0        0
                CIDX                                            0x0        0

        CREDIT CTXT:
                Credit                                          0x0        0

        INTR CTXT:
                at                                              0x0        0
                pidx                                            0x0        0
                page_size                                       0x0        0
                baddr_4k (High)                                 0x0        0
                baddr_4k (Low)                                  0x2a801000 713035776
                color                                           0x1        1
                int_st                                          0x0        0
                vec                                             0x3        3
                valid                                           0x1        1

        total descriptor processed:    0
qdma01000-ST-2 C2H online
        hw_ID 2, thp ?, desc 0x000000009c562437/0x2a884000, 1536
        cmpt desc 0x000000006c25b118/0x2a898000, 2048

        cmpl status: 0x0000000099bd702f, 00000000 00000000
        CMPT CMPL STATUS: 0x000000000e1bd43c, 00000000 00000000
        SOFTWARE CTXT:
                Interrupt Aggregation                           0x1        1
                Ring Index                                      0x0        0
                Descriptor Ring Base Addr (High)                0x0        0
                Descriptor Ring Base Addr (Low)                 0x2a884000 713572352
                Is Memory Mapped                                0x0        0
                Marker Disable                                  0x0        0
                IRQ Request                                     0x0        0
                Writeback Error Sent                            0x0        0
                Error                                           0x0        0
                Interrupt No Last                               0x0        0
                Port Id                                         0x0        0
                Interrupt Enable                                0x0        0
                Writeback Enable                                0x0        0
                MM Channel                                      0x0        0
                Bypass Enable                                   0x0        0
                Descriptor Size                                 0x0        0
                Ring Size                                       0x9        9
                Fetch Max                                       0x0        0
                Address Translation                             0x0        0
                Write back/Intr Interval                        0x1        1
                Write back/Intr Check                           0x0        0
                Fetch Credit Enable                             0x1        1
                Queue Enable                                    0x1        1
                Function Id                                     0x0        0
                IRQ Arm                                         0x0        0
                PIDX                                            0x5ff      1535

        HARDWARE CTXT:
                Fetch Pending                                   0x0        0
                Eviction Pending                                0x0        0
                Queue Invalid No Desc Pending                   0x1        1
                Descriptors Pending                             0x0        0
                Credits Consumed                                0x0        0
                CIDX                                            0x0        0

        CREDIT CTXT:
                Credit                                          0x0        0

        CMPT CTXT:
                Interrupt Aggregation                           0x1        1
                Ring Index                                      0x0        0
                Address Translation                             0x0        0
                Over Flow Check Disable                         0x0        0
                Full Update                                     0x0        0
                Timer Running                                   0x0        0
                Trigger Pending                                 0x0        0
                Error                                           0x0        0
                Valid                                           0x1        1
                CIDX                                            0x0        0
                PIDX                                            0x0        0
                Descriptor Size                                 0x0        0
                Base Address (High)                             0x0        0
                Base Address (Low)                              0x2a898000 713654272
                Ring Size                                       0x0        0
                Color                                           0x1        1
                Interrupt State                                 0x1        1
                Timer Index                                     0x0        0
                Counter Index                                   0x0        0
                Function Id                                     0x0        0
                Trigger Mode                                    0x1        1
                Enable Interrupt                                0x1        1
                Enable Status Desc Update                       0x1        1

        PREFETCH CTXT:
                Valid                                           0x1        1
                Software Credit                                 0x5ff      1535
                In Prefetch                                     0x0        0
                Prefetch Enable                                 0x0        0
                Error                                           0x0        0
                Port Id                                         0x0        0
                Buffer Size Index                               0x0        0
                Bypass                                          0x0        0

        INTR CTXT:
                at                                              0x0        0
                pidx                                            0x0        0
                page_size                                       0x0        0
                baddr_4k (High)                                 0x0        0
                baddr_4k (Low)                                  0x2a801000 713035776
                color                                           0x1        1
                int_st                                          0x0        0
                vec                                             0x3        3
                valid                                           0x1        1

        total descriptor processed:    0
Dumped Queues 1 -> 2.

Dump Queue Descriptor Information

command: dma-ctl qdma<bbddf> q dump idx <N> [dir <h2c|c2h|bi>] [desc <x> <y>]

Dump the queue descriptor information

Parameters

  • <N> : Queue number
  • dir : Direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi)
  • <x> : Range start index
  • <y> : Range end index
[xilinx@]# dma-ctl qdma17000 q dump idx 0 dir h2c desc 1 10

        qdma17000-ST-0 H2C online
1: 0x00000000cd4d039c 00000000 00000000 00000000 00000000
2: 0x000000009c6eaedf 00000000 00000000 00000000 00000000
3: 0x00000000389a56a7 00000000 00000000 00000000 00000000
4: 0x00000000b26186e9 00000000 00000000 00000000 00000000
5: 0x0000000005f26fbf 00000000 00000000 00000000 00000000
6: 0x00000000f887365d 00000000 00000000 00000000 00000000
7: 0x000000003dbbdb52 00000000 00000000 00000000 00000000
8: 0x000000007a05453d 00000000 00000000 00000000 00000000
9: 0x00000000cc734198 00000000 00000000 00000000 00000000
CMPL STATUS: 0x00000000377ea451 00000000 00000000
Dumped descs of queues 0 -> 0.

Dump Multiple Queue Descriptor Information

command: dma-ctl qdma<bbddf> q dump list idx <N> [dir <h2c|c2h|bi>] [desc <x> <y>]

Dumps the descriptor information for multiple queues

Parameters

  • <start_idx> : Starting queue number
  • <N> : Number of queues to dump
  • dir : Direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi)
  • <x> : Range start index
  • <y> : Range end index
[xilinx@]# dma-ctl qdma17000 q dump list 1 2 dir h2c desc 1 10

qdma17000-ST-1 H2C online
1: 0x00000000c8f9ad60 00000000 00000000 00000000 00000000
2: 0x000000007c3c25fb 00000000 00000000 00000000 00000000
3: 0x000000000cc9e006 00000000 00000000 00000000 00000000
4: 0x00000000087702c3 00000000 00000000 00000000 00000000
5: 0x000000007619d32f 00000000 00000000 00000000 00000000
6: 0x000000002bb74438 00000000 00000000 00000000 00000000
7: 0x000000004f88c3b3 00000000 00000000 00000000 00000000
8: 0x0000000047737864 00000000 00000000 00000000 00000000
9: 0x000000004155d087 00000000 00000000 00000000 00000000
CMPL STATUS: 0x00000000ad836574 00000000 00000000
qdma17000-ST-2 H2C online
1: 0x0000000045751dc6 00000000 00000000 00000000 00000000
2: 0x00000000dd627761 00000000 00000000 00000000 00000000
3: 0x000000007f1bccd8 00000000 00000000 00000000 00000000
4: 0x0000000056d14ea0 00000000 00000000 00000000 00000000
5: 0x0000000038a8a630 00000000 00000000 00000000 00000000
6: 0x000000003c0b0083 00000000 00000000 00000000 00000000
7: 0x000000004a9bfbca 00000000 00000000 00000000 00000000
8: 0x000000003d056cdd 00000000 00000000 00000000 00000000
9: 0x00000000108760bc 00000000 00000000 00000000 00000000
CMPL STATUS: 0x000000000d8c788d 00000000 00000000
Dumped descs of queues 1 -> 2.

Dump Queue Completion Information

command: dma-ctl qdma<bbddf> q dump idx <N> [dir <h2c|c2h|bi>] [cmpt <x> <y>]

Dump the queue completion information. This command is valid only for streaming c2h.

Parameters

  • <N> : Queue number
  • dir : Direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi)
  • <x> : Range start index
  • <y> : Range end index
[xilinx@]# dma-ctl qdma17000 q dump idx 0 dir c2h cmpt 0 10

qdma17000-ST-0 C2H online
0: 0x0000000086ae1f7a 00000000 00000000
1: 0x0000000012caf472 00000000 00000000
2: 0x00000000ce16f6c6 00000000 00000000
3: 0x0000000030ac515a 00000000 00000000
4: 0x0000000008a11d76 00000000 00000000
5: 0x0000000006a465d9 00000000 00000000
6: 0x00000000cb70afc1 00000000 00000000
7: 0x00000000ccfe9e7c 00000000 00000000
8: 0x00000000757eff01 00000000 00000000
9: 0x000000007ad4593a 00000000 00000000
CMPL STATUS: 0x00000000973734af 00000000 00000000
Dumped descs of queues 0 -> 0.

Dump Multiple Queue Completion Information

command: dma-ctl qdma<bbddf> q dump list idx <N> [dir <h2c|c2h|bi>] [cmpt <x> <y>]

Dumps the completion information for multiple queues. This command is valid only for streaming c2h.

Parameters

  • <start_idx> : Starting queue number
  • <N> : Number of queues to list
  • dir : Direction of the queue, host-to-card(h2c), card-to-host (c2h) or both (bi)
  • <x> : Range start index
  • <y> : Range end index
[xilinx@]# dma-ctl qdma17000 q dump list 1 2 dir c2h cmpt 0 10

qdma17000-ST-1 C2H online
0: 0x000000005e745eb2 00000000 00000000
1: 0x00000000c10487fb 00000000 00000000
2: 0x000000002c76c0b0 00000000 00000000
3: 0x000000005539c512 00000000 00000000
4: 0x00000000bf8aeb9c 00000000 00000000
5: 0x000000005ae055c9 00000000 00000000
6: 0x00000000c8ec4586 00000000 00000000
7: 0x000000009b833fb5 00000000 00000000
8: 0x000000001e812b8c 00000000 00000000
9: 0x0000000036bd937c 00000000 00000000
CMPL STATUS: 0x00000000b4ec91f7 00000000 00000000
qdma17000-ST-2 C2H online
0: 0x000000006c25b118 00000000 00000000
1: 0x000000004c4292df 00000000 00000000
2: 0x00000000dd0e4974 00000000 00000000
3: 0x00000000bf7da6cb 00000000 00000000
4: 0x000000004e38eef2 00000000 00000000
5: 0x00000000b5d7a04d 00000000 00000000
6: 0x000000002758e395 00000000 00000000
7: 0x00000000701f7830 00000000 00000000
8: 0x000000000e71a726 00000000 00000000
9: 0x00000000d45254b5 00000000 00000000
CMPL STATUS: 0x000000000e1bd43c 00000000 00000000
Dumped descs of queues 1 -> 2.

Dump the Interrupt Ring Information

command: dma-ctl qdma<bbddf> intring dump vector <N> <start_idx> <end_idx>

Dump the interrupt ring information

Parameters

  • <N> : Vector number
  • <start_idx> : Range start index
  • <end_idx> : Range end index
[xilinx@]# dma-ctl qdma17000 intring dump vector 3 0 10

intr_ring_entry = 0: 0x00000000 0x00000000
intr_ring_entry = 1: 0x00000000 0x00000000
intr_ring_entry = 2: 0x00000000 0x00000000
intr_ring_entry = 3: 0x00000000 0x00000000
intr_ring_entry = 4: 0x00000000 0x00000000
intr_ring_entry = 5: 0x00000000 0x00000000
intr_ring_entry = 6: 0x00000000 0x00000000
intr_ring_entry = 7: 0x00000000 0x00000000
intr_ring_entry = 8: 0x00000000 0x00000000
intr_ring_entry = 9: 0x00000000 0x00000000
intr_ring_entry = 10: 0x00000000 0x00000000

Register Commands

Read a Register

command: dma-ctl qdma<bbddf> reg read bar <N> <addr>

Read a register value.

Parameters

  • <N> : Bar number
  • <addr> : Register address
[xilinx@]# dma-ctl qdma17000 reg read bar 2 0x0
qdma17000, 17:00.00, bar#2, 0x0 = 0x0.

Write a Register

command: dma-ctl qdma<bbddf> reg write bar <N> <addr>

Write a value to into the given register.

Parameters

  • <N> : Bar number
  • <addr> : Register address
[xilinx@]# dma-ctl qdma17000 reg write bar 2 0x0 0
qdma17000, 17:00.00, bar#2, reg 0x0 -> 0x0, read back 0x0.

Dump the function registers

command: dma-ctl qdma<bbddf> reg dump

This command allows the user to dump the DMA BAR and User BAR registers.

[xilinx@]# dma-ctl qdma17000 reg dump
################################################################################
###             qdma17000, pci 17:00.00, reg dump
################################################################################
USER BAR #2
[      0] ST_C2H_QID                                      0x1        1
[    0x4] ST_C2H_PKTLEN                                   0x80       128
[    0x8] ST_C2H_CONTROL                                  0          0
[    0xc] ST_H2C_CONTROL                                  0          0
[   0x10] ST_H2C_STATUS                                   0          0
[   0x14] ST_H2C_XFER_CNT                                 0          0
[   0x20] ST_C2H_PKT_CNT                                  0x1        1
[   0x30] ST_C2H_CMPT_DATA_0                              0          0
[   0x34] ST_C2H_CMPT_DATA_1                              0          0
[   0x38] ST_C2H_CMPT_DATA_2                              0          0
[   0x3c] ST_C2H_CMPT_DATA_3                              0          0
[   0x40] ST_C2H_CMPT_DATA_4                              0          0
[   0x44] ST_C2H_CMPT_DATA_5                              0          0
[   0x48] ST_C2H_CMPT_DATA_6                              0          0
[   0x4c] ST_C2H_CMPT_DATA_7                              0          0
[   0x50] ST_C2H_CMPT_SIZE                                0          0
[   0x60] ST_SCRATCH_REG_0                                0          0
[   0x64] ST_SCRATCH_REG_1                                0          0
[   0x88] ST_C2H_PKT_DROP                                 0          0
[   0x8c] ST_C2H_PKT_ACCEPT                               0          0
[   0x90] DSC_BYPASS_LOOP                                 0          0
[   0x94] USER_INTERRUPT                                  0          0
[   0x98] USER_INTERRUPT_MASK                             0          0
[   0x9c] USER_INTERRUPT_VEC                              0          0
[   0xa0] DMA_CONTROL                                     0          0
[   0xa4] VDM_MSG_READ                                    0          0

CONFIG BAR #0
[    0x0] CFG_BLOCK_ID_0                                  0x1fd30000 533921792
[    0x4] CFG_BUSDEV_0                                    0x0        0
[    0x8] CFG_PCIE_MAX_PL_SZ_0                            0x51       81
[    0xc] CFG_PCIE_MAX_RDRQ_SZ_0                          0x52       82
[   0x10] CFG_SYS_ID_0                                    0x1234     4660
[   0x14] CFG_MSI_EN_0                                    0x2020202  33686018
[   0x18] CFG_PCIE_DATA_WIDTH_0                           0x3        3
[   0x1c] CFG_PCIE_CTRL_0                                 0x1        1
[   0x40] CFG_AXI_USR_MAX_PL_SZ_0                         0x55       85
[   0x44] CFG_AXI_USR_MAX_RDRQ_SZ_0                       0x55       85
[   0x4c] CFG_MISC_CTRL_0                                 0x10009    65545
[   0x80] CFG_SCRATCH_REG_0                               0x0        0
[   0x84] CFG_SCRATCH_REG_1                               0x0        0
[   0x88] CFG_SCRATCH_REG_2                               0x0        0
[   0x8c] CFG_SCRATCH_REG_3                               0x0        0
[   0x90] CFG_SCRATCH_REG_4                               0x0        0
[   0x94] CFG_SCRATCH_REG_5                               0x0        0
[   0x98] CFG_SCRATCH_REG_6                               0x0        0
[   0x9c] CFG_SCRATCH_REG_7                               0x0        0
[   0xf0] QDMA_RAM_SBE_MSK_A_0                            0xffffff11 4294967057
[   0xf4] QDMA_RAM_SBE_STS_A_0                            0x0        0
[   0xf8] QDMA_RAM_DBE_MSK_A_0                            0xffffff11 4294967057
[   0xfc] QDMA_RAM_DBE_STS_A_0                            0x0        0
[  0x100] GLBL2_ID_0                                      0x1fd70000 534183936
[  0x104] GLBL2_PF_BL_INT_0                               0x41041    266305
[  0x108] GLBL2_PF_VF_BL_INT_0                            0x41041    266305
[  0x10c] GLBL2_PF_BL_EXT_0                               0x104104   1065220
[  0x110] GLBL2_PF_VF_BL_EXT_0                            0x104104   1065220
[  0x114] GLBL2_CHNL_INST_0                               0x30101    196865
[  0x118] GLBL2_CHNL_QDMA_0                               0x30f0f    200463
[  0x11c] GLBL2_CHNL_STRM_0                               0x30000    196608
[  0x120] GLBL2_QDMA_CAP_0                                0x800      2048
[  0x128] GLBL2_PASID_CAP_0                               0x0        0
[  0x12c] GLBL2_FUNC_RET_0                                0x0        0
[  0x130] GLBL2_SYS_ID_0                                  0x0        0
[  0x134] GLBL2_MISC_CAP_0                                0x1000003  16777219
[  0x1b8] GLBL2_DBG_PCIE_RQ_0                             0x7f50003  133496835
[  0x1bc] GLBL2_DBG_PCIE_RQ_1                             0x6024     24612
[  0x1c0] GLBL2_DBG_AXIMM_WR_0                            0x600021   6291489
[  0x1c4] GLBL2_DBG_AXIMM_WR_1                            0x0        0
[  0x1c8] GLBL2_DBG_AXIMM_RD_0                            0x1        1
[  0x1cc] GLBL2_DBG_AXIMM_RD_1                            0x0        0
[  0x204] GLBL_RNGSZ_0                                    0x801      2049
[  0x208] GLBL_RNGSZ_1                                    0x41       65
[  0x20c] GLBL_RNGSZ_2                                    0x81       129
[  0x210] GLBL_RNGSZ_3                                    0xc1       193
[  0x214] GLBL_RNGSZ_4                                    0x101      257
[  0x218] GLBL_RNGSZ_5                                    0x181      385
[  0x21c] GLBL_RNGSZ_6                                    0x201      513
[  0x220] GLBL_RNGSZ_7                                    0x301      769
[  0x224] GLBL_RNGSZ_8                                    0x401      1025
[  0x228] GLBL_RNGSZ_9                                    0x601      1537
[  0x22c] GLBL_RNGSZ_10                                   0xc01      3073
[  0x230] GLBL_RNGSZ_11                                   0x1001     4097
[  0x234] GLBL_RNGSZ_12                                   0x1801     6145
[  0x238] GLBL_RNGSZ_13                                   0x2001     8193
[  0x23c] GLBL_RNGSZ_14                                   0x3001     12289
[  0x240] GLBL_RNGSZ_15                                   0x4001     16385
[  0x248] GLBL_ERR_STAT_0                                 0x0        0
[  0x24c] GLBL_ERR_MASK_0                                 0x90f      2319
[  0x250] GLBL_DSC_CFG_0                                  0x35       53
[  0x254] GLBL_DSC_ERR_STS_0                              0x0        0
[  0x258] GLBL_DSC_ERR_MSK_0                              0x1f9023f  33096255
[  0x25c] GLBL_DSC_ERR_LOG_0                              0x0        0
[  0x260] GLBL_DSC_ERR_LOG_1                              0x0        0
[  0x264] GLBL_TRQ_ERR_STS_0                              0x0        0
[  0x268] GLBL_TRQ_ERR_MSK_0                              0xf        15
[  0x26c] GLBL_TRQ_ERR_LOG_0                              0x0        0
[  0x270] GLBL_DSC_DBG_DAT_0                              0x0        0
[  0x274] GLBL_DSC_DBG_DAT_1                              0x8080     32896
[  0x27c] GLBL_DSC_ERR_LOG2_0                             0x0        0
[  0x288] GLBL_INTERRUPT_CFG_0                            0x0        0
[  0x400] TRQ_SEL_FMAP_0                                  0x0        0
[  0x404] TRQ_SEL_FMAP_1                                  0x0        0
[  0x408] TRQ_SEL_FMAP_2                                  0x0        0
[  0x40c] TRQ_SEL_FMAP_3                                  0x0        0
[  0x804] IND_CTXT_DATA_0                                 0x0        0
[  0x808] IND_CTXT_DATA_1                                 0x0        0
[  0x80c] IND_CTXT_DATA_2                                 0x0        0
[  0x810] IND_CTXT_DATA_3                                 0x0        0
[  0x814] IND_CTXT_DATA_4                                 0x0        0
[  0x818] IND_CTXT_DATA_5                                 0x0        0
[  0x81c] IND_CTXT_DATA_6                                 0x0        0
[  0x820] IND_CTXT_DATA_7                                 0x0        0
[  0x824] IND_CTXT_MASK_0                                 0xffffffff 4294967295
[  0x828] IND_CTXT_MASK_1                                 0xffffffff 4294967295
[  0x82c] IND_CTXT_MASK_2                                 0xffffffff 4294967295
[  0x830] IND_CTXT_MASK_3                                 0xffffffff 4294967295
[  0x834] IND_CTXT_MASK_4                                 0xffffffff 4294967295
[  0x838] IND_CTXT_MASK_5                                 0xffffffff 4294967295
[  0x83c] IND_CTXT_MASK_6                                 0xffffffff 4294967295
[  0x840] IND_CTXT_MASK_7                                 0xffffffff 4294967295
[  0x844] IND_CTXT_CMD_0                                  0x238      568
[  0xa00] C2H_TIMER_CNT_0                                 0x1        1
[  0xa04] C2H_TIMER_CNT_1                                 0x2        2
[  0xa08] C2H_TIMER_CNT_2                                 0x4        4
[  0xa0c] C2H_TIMER_CNT_3                                 0x5        5
[  0xa10] C2H_TIMER_CNT_4                                 0x8        8
[  0xa14] C2H_TIMER_CNT_5                                 0xa        10
[  0xa18] C2H_TIMER_CNT_6                                 0xf        15
[  0xa1c] C2H_TIMER_CNT_7                                 0x14       20
[  0xa20] C2H_TIMER_CNT_8                                 0x19       25
[  0xa24] C2H_TIMER_CNT_9                                 0x1e       30
[  0xa28] C2H_TIMER_CNT_10                                0x32       50
[  0xa2c] C2H_TIMER_CNT_11                                0x4b       75
[  0xa30] C2H_TIMER_CNT_12                                0x64       100
[  0xa34] C2H_TIMER_CNT_13                                0x7d       125
[  0xa38] C2H_TIMER_CNT_14                                0x96       150
[  0xa3c] C2H_TIMER_CNT_15                                0xc8       200
[  0xa40] C2H_CNT_THRESH_0                                0x40       64
[  0xa44] C2H_CNT_THRESH_1                                0x2        2
[  0xa48] C2H_CNT_THRESH_2                                0x4        4
[  0xa4c] C2H_CNT_THRESH_3                                0x8        8
[  0xa50] C2H_CNT_THRESH_4                                0x10       16
[  0xa54] C2H_CNT_THRESH_5                                0x18       24
[  0xa58] C2H_CNT_THRESH_6                                0x20       32
[  0xa5c] C2H_CNT_THRESH_7                                0x30       48
[  0xa60] C2H_CNT_THRESH_8                                0x50       80
[  0xa64] C2H_CNT_THRESH_9                                0x60       96
[  0xa68] C2H_CNT_THRESH_10                               0x70       112
[  0xa6c] C2H_CNT_THRESH_11                               0x80       128
[  0xa70] C2H_CNT_THRESH_12                               0x90       144
[  0xa74] C2H_CNT_THRESH_13                               0xa0       160
[  0xa78] C2H_CNT_THRESH_14                               0xb0       176
[  0xa7c] C2H_CNT_THRESH_15                               0xc0       192
[  0xa88] C2H_STAT_S_AXIS_C2H_ACCEPTED_0                  0x0        0
[  0xa8c] C2H_STAT_S_AXIS_CMPT_ACCEPTED_0                 0x0        0
[  0xa90] C2H_STAT_DESC_RSP_PKT_ACCEPTED_0                0x0        0
[  0xa94] C2H_STAT_AXIS_PKG_CMP_0                         0x0        0
[  0xa98] C2H_STAT_DESC_RSP_ACCEPTED_0                    0x0        0
[  0xa9c] C2H_STAT_DESC_RSP_CMP_0                         0x0        0
[  0xaa0] C2H_STAT_WRQ_OUT_0                              0x0        0
[  0xaa4] C2H_STAT_WPL_REN_ACCEPTED_0                     0x0        0
[  0xaa8] C2H_STAT_TOTAL_WRQ_LEN_0                        0x0        0
[  0xaac] C2H_STAT_TOTAL_WPL_LEN_0                        0x0        0
[  0xab0] C2H_BUF_SZ_0                                    0x1000     4096
[  0xab4] C2H_BUF_SZ_1                                    0x100      256
[  0xab8] C2H_BUF_SZ_2                                    0x200      512
[  0xabc] C2H_BUF_SZ_3                                    0x400      1024
[  0xac0] C2H_BUF_SZ_4                                    0x800      2048
[  0xac4] C2H_BUF_SZ_5                                    0xf80      3968
[  0xac8] C2H_BUF_SZ_6                                    0x1000     4096
[  0xacc] C2H_BUF_SZ_7                                    0x1000     4096
[  0xad0] C2H_BUF_SZ_8                                    0x1000     4096
[  0xad4] C2H_BUF_SZ_9                                    0x1000     4096
[  0xad8] C2H_BUF_SZ_10                                   0x1000     4096
[  0xadc] C2H_BUF_SZ_11                                   0x1000     4096
[  0xae0] C2H_BUF_SZ_12                                   0x1000     4096
[  0xae4] C2H_BUF_SZ_13                                   0x2000     8192
[  0xae8] C2H_BUF_SZ_14                                   0x233a     9018
[  0xaec] C2H_BUF_SZ_15                                   0x4000     16384
[  0xaf0] C2H_ERR_STAT_0                                  0x0        0
[  0xaf4] C2H_ERR_MASK_0                                  0xfedb     65243
[  0xaf8] C2H_FATAL_ERR_STAT_0                            0x0        0
[  0xafc] C2H_FATAL_ERR_MASK_0                            0x7df1b    515867
[  0xb00] C2H_FATAL_ERR_ENABLE_0                          0x0        0
[  0xb04] GLBL_ERR_INT_0                                  0x1002000  16785408
[  0xb08] C2H_PFCH_CFG_0                                  0xc201100  203428096
[  0xb0c] C2H_INT_TIMER_TICK_0                            0x19       25
[  0xb10] C2H_STAT_DESC_RSP_DROP_ACCEPTED_0               0x0        0
[  0xb14] C2H_STAT_DESC_RSP_ERR_ACCEPTED_0                0x0        0
[  0xb18] C2H_STAT_DESC_REQ_0                             0x0        0
[  0xb1c] C2H_STAT_DEBUG_DMA_ENG_0                        0x0        0
[  0xb20] C2H_STAT_DEBUG_DMA_ENG_1                        0x80000000 2147483648
[  0xb24] C2H_STAT_DEBUG_DMA_ENG_2                        0xc0000000 3221225472
[  0xb28] C2H_STAT_DEBUG_DMA_ENG_3                        0x100000   1048576
[  0xb2c] C2H_DBG_PFCH_ERR_CTXT_0                         0x0        0
[  0xb30] C2H_FIRST_ERR_QID_0                             0x0        0
[  0xb34] STAT_NUM_CMPT_IN_0                              0x0        0
[  0xb38] STAT_NUM_CMPT_OUT_0                             0x0        0
[  0xb3c] STAT_NUM_CMPT_DRP_0                             0x0        0
[  0xb40] STAT_NUM_STAT_DESC_OUT_0                        0x0        0
[  0xb44] STAT_NUM_DSC_CRDT_SENT_0                        0x0        0
[  0xb48] STAT_NUM_FCH_DSC_RCVD_0                         0x0        0
[  0xb4c] STAT_NUM_BYP_DSC_RCVD_0                         0x0        0
[  0xb50] C2H_CMPT_COAL_CFG_0                             0x40064014 1074151444
[  0xb54] C2H_INTR_H2C_REQ_0                              0x0        0
[  0xb58] C2H_INTR_C2H_MM_REQ_0                           0x0        0
[  0xb5c] C2H_INTR_ERR_INT_REQ_0                          0x0        0
[  0xb60] C2H_INTR_C2H_ST_REQ_0                           0x0        0
[  0xb64] C2H_INTR_H2C_ERR_MM_MSIX_ACK_0                  0x0        0
[  0xb68] C2H_INTR_H2C_ERR_MM_MSIX_FAIL_0                 0x0        0
[  0xb6c] C2H_INTR_H2C_ERR_MM_NO_MSIX_0                   0x0        0
[  0xb70] C2H_INTR_H2C_ERR_MM_CTXT_INVAL_0                0x0        0
[  0xb74] C2H_INTR_C2H_ST_MSIX_ACK_0                      0x0        0
[  0xb78] C2H_INTR_C2H_ST_MSIX_FAIL_0                     0x0        0
[  0xb7c] C2H_INTR_C2H_ST_NO_MSIX_0                       0x0        0
[  0xb80] C2H_INTR_C2H_ST_CTXT_INVAL_0                    0x0        0
[  0xb84] C2H_STAT_WR_CMP_0                               0x0        0
[  0xb88] C2H_STAT_DEBUG_DMA_ENG_4_0                      0x40000000 1073741824
[  0xb8c] C2H_STAT_DEBUG_DMA_ENG_5_0                      0x0        0
[  0xb90] C2H_DBG_PFCH_QID_0                              0x0        0
[  0xb94] C2H_DBG_PFCH_0                                  0x0        0
[  0xb98] C2H_INT_DEBUG_0                                 0x0        0
[  0xb9c] C2H_STAT_IMM_ACCEPTED_0                         0x0        0
[  0xba0] C2H_STAT_MARKER_ACCEPTED_0                      0x0        0
[  0xba4] C2H_STAT_DISABLE_CMP_ACCEPTED_0                 0x0        0
[  0xba8] C2H_C2H_PAYLOAD_FIFO_CRDT_CNT_0                 0x0        0
[  0xbac] C2H_INTR_DYN_REQ_0                              0x0        0
[  0xbb0] C2H_INTR_DYN_MSIX_0                             0x0        0
[  0xbb4] C2H_DROP_LEN_MISMATCH_0                         0x0        0
[  0xbb8] C2H_DROP_DESC_RSP_LEN_0                         0x0        0
[  0xbbc] C2H_DROP_QID_FIFO_LEN_0                         0x0        0
[  0xbc0] C2H_DROP_PAYLOAD_CNT_0                          0x0        0
[  0xbc4] QDMA_C2H_CMPT_FORMAT_0                          0x20001    131073
[  0xbc8] QDMA_C2H_CMPT_FORMAT_1                          0x0        0
[  0xbcc] QDMA_C2H_CMPT_FORMAT_2                          0x0        0
[  0xbd0] QDMA_C2H_CMPT_FORMAT_3                          0x0        0
[  0xbd4] QDMA_C2H_CMPT_FORMAT_4                          0x0        0
[  0xbd8] QDMA_C2H_CMPT_FORMAT_5                          0x0        0
[  0xbdc] QDMA_C2H_CMPT_FORMAT_6                          0x0        0
[  0xbe0] C2H_PFCH_CACHE_DEPTH_0                          0x10       16
[  0xbe4] C2H_CMPT_COAL_BUF_DEPTH_0                       0x10       16
[  0xbe8] C2H_PFCH_CRDT_0                                 0x0        0
[  0xe00] H2C_ERR_STAT_0                                  0x0        0
[  0xe04] H2C_ERR_MASK_0                                  0x1f       31
[  0xe08] H2C_FIRST_ERR_QID_0                             0x0        0
[  0xe0c] H2C_DBG_REG_0                                   0x0        0
[  0xe10] H2C_DBG_REG_1                                   0x0        0
[  0xe14] H2C_DBG_REG_2                                   0x0        0
[  0xe18] H2C_DBG_REG_3                                   0x44008025 1140883493
[  0xe1c] H2C_DBG_REG_4                                   0x0        0
[  0xe20] H2C_FATAL_ERR_EN_0                              0x0        0
[  0xe24] H2C_REQ_THROT_0                                 0xc14000   12664832
[  0xe28] H2C_ALN_DBG_REG0_0                              0x0        0
[ 0x1004] C2H_MM_CONTROL_0                                0x1        1
[ 0x1008] C2H_MM_CONTROL_1                                0x1        1
[ 0x100c] C2H_MM_CONTROL_2                                0x1        1
[ 0x1040] C2H_MM_STATUS_0                                 0x1        1
[ 0x1044] C2H_MM_STATUS_1                                 0x1        1
[ 0x1048] C2H_MM_CMPL_DSC_CNT_0                           0x0        0
[ 0x1054] C2H_MM_ERR_CODE_EN_MASK_0                       0x0        0
[ 0x1058] C2H_MM_ERR_CODE_0                               0x0        0
[ 0x105c] C2H_MM_ERR_INFO_0                               0x0        0
[ 0x10c0] C2H_MM_PERF_MON_CTRL_0                          0x0        0
[ 0x10c4] C2H_MM_PERF_MON_CY_CNT_0                        0x0        0
[ 0x10c8] C2H_MM_PERF_MON_CY_CNT_1                        0x0        0
[ 0x10cc] C2H_MM_PERF_MON_DATA_CNT_0                      0x0        0
[ 0x10d0] C2H_MM_PERF_MON_DATA_CNT_1                      0x0        0
[ 0x10e8] C2H_MM_DBG_INFO_0                               0x10002    65538
[ 0x10ec] C2H_MM_DBG_INFO_1                               0x0        0
[ 0x1204] H2C_MM_CONTROL_0                                0x1        1
[ 0x1208] H2C_MM_CONTROL_1                                0x1        1
[ 0x120c] H2C_MM_CONTROL_2                                0x1        1
[ 0x1240] H2C_MM_STATUS_0                                 0x1        1
[ 0x1248] H2C_MM_CMPL_DSC_CNT_0                           0x0        0
[ 0x1254] H2C_MM_ERR_CODE_EN_MASK_0                       0x0        0
[ 0x1258] H2C_MM_ERR_CODE_0                               0x0        0
[ 0x125c] H2C_MM_ERR_INFO_0                               0x0        0
[ 0x12c0] H2C_MM_PERF_MON_CTRL_0                          0x0        0
[ 0x12c4] H2C_MM_PERF_MON_CY_CNT_0                        0x0        0
[ 0x12c8] H2C_MM_PERF_MON_CY_CNT_1                        0x0        0
[ 0x12cc] H2C_MM_PERF_MON_DATA_CNT_0                      0x0        0
[ 0x12d0] H2C_MM_PERF_MON_DATA_CNT_1                      0x0        0
[ 0x12e8] H2C_MM_DBG_INFO_0                               0x10002    65538
[ 0x12ec] H2C_MM_REQ_THROT_0                              0x8000     32768
[ 0x2400] FUNC_STATUS_0                                   0x44       68
[ 0x2404] FUNC_CMD_0                                      0xffffffff 4294967295
[ 0x2408] FUNC_INTR_VEC_0                                 0x0        0
[ 0x240c] TARGET_FUNC_0                                   0x4        4
[ 0x2410] INTR_CTRL_0                                     0x1        1
[ 0x2420] PF_ACK_0                                        0x10       16
[ 0x2424] PF_ACK_1                                        0x0        0
[ 0x2428] PF_ACK_2                                        0x0        0
[ 0x242c] PF_ACK_3                                        0x0        0
[ 0x2430] PF_ACK_4                                        0x0        0
[ 0x2434] PF_ACK_5                                        0x0        0
[ 0x2438] PF_ACK_6                                        0x0        0
[ 0x243c] PF_ACK_7                                        0x0        0
[ 0x2500] FLR_CTRL_STATUS_0                               0x0        0
[ 0x2800] MSG_IN_0                                        0xffffffff 4294967295
[ 0x2804] MSG_IN_1                                        0xffffffff 4294967295
[ 0x2808] MSG_IN_2                                        0xffffffff 4294967295
[ 0x280c] MSG_IN_3                                        0xffffffff 4294967295
[ 0x2810] MSG_IN_4                                        0xffffffff 4294967295
[ 0x2814] MSG_IN_5                                        0xffffffff 4294967295
[ 0x2818] MSG_IN_6                                        0xffffffff 4294967295
[ 0x281c] MSG_IN_7                                        0xffffffff 4294967295
[ 0x2820] MSG_IN_8                                        0xffffffff 4294967295
[ 0x2824] MSG_IN_9                                        0xffffffff 4294967295
[ 0x2828] MSG_IN_10                                       0xffffffff 4294967295
[ 0x282c] MSG_IN_11                                       0xffffffff 4294967295
[ 0x2830] MSG_IN_12                                       0xffffffff 4294967295
[ 0x2834] MSG_IN_13                                       0xffffffff 4294967295
[ 0x2838] MSG_IN_14                                       0xffffffff 4294967295
[ 0x283c] MSG_IN_15                                       0xffffffff 4294967295
[ 0x2840] MSG_IN_16                                       0xffffffff 4294967295
[ 0x2844] MSG_IN_17                                       0xffffffff 4294967295
[ 0x2848] MSG_IN_18                                       0xffffffff 4294967295
[ 0x284c] MSG_IN_19                                       0xffffffff 4294967295
[ 0x2850] MSG_IN_20                                       0xffffffff 4294967295
[ 0x2854] MSG_IN_21                                       0xffffffff 4294967295
[ 0x2858] MSG_IN_22                                       0xffffffff 4294967295
[ 0x285c] MSG_IN_23                                       0xffffffff 4294967295
[ 0x2860] MSG_IN_24                                       0xffffffff 4294967295
[ 0x2864] MSG_IN_25                                       0xffffffff 4294967295
[ 0x2868] MSG_IN_26                                       0xffffffff 4294967295
[ 0x286c] MSG_IN_27                                       0xffffffff 4294967295
[ 0x2870] MSG_IN_28                                       0xffffffff 4294967295
[ 0x2874] MSG_IN_29                                       0xffffffff 4294967295
[ 0x2878] MSG_IN_30                                       0xffffffff 4294967295
[ 0x287c] MSG_IN_31                                       0xffffffff 4294967295
[ 0x2c00] MSG_OUT_0                                       0x0        0
[ 0x2c04] MSG_OUT_1                                       0x0        0
[ 0x2c08] MSG_OUT_2                                       0x0        0
[ 0x2c0c] MSG_OUT_3                                       0x0        0
[ 0x2c10] MSG_OUT_4                                       0x0        0
[ 0x2c14] MSG_OUT_5                                       0x0        0
[ 0x2c18] MSG_OUT_6                                       0x0        0
[ 0x2c1c] MSG_OUT_7                                       0x0        0
[ 0x2c20] MSG_OUT_8                                       0x0        0
[ 0x2c24] MSG_OUT_9                                       0x0        0
[ 0x2c28] MSG_OUT_10                                      0x0        0
[ 0x2c2c] MSG_OUT_11                                      0x0        0
[ 0x2c30] MSG_OUT_12                                      0x0        0
[ 0x2c34] MSG_OUT_13                                      0x0        0
[ 0x2c38] MSG_OUT_14                                      0x0        0
[ 0x2c3c] MSG_OUT_15                                      0x0        0
[ 0x2c40] MSG_OUT_16                                      0x0        0
[ 0x2c44] MSG_OUT_17                                      0x0        0
[ 0x2c48] MSG_OUT_18                                      0x0        0
[ 0x2c4c] MSG_OUT_19                                      0x0        0
[ 0x2c50] MSG_OUT_20                                      0x0        0
[ 0x2c54] MSG_OUT_21                                      0x0        0
[ 0x2c58] MSG_OUT_22                                      0x0        0
[ 0x2c5c] MSG_OUT_23                                      0x0        0
[ 0x2c60] MSG_OUT_24                                      0x0        0
[ 0x2c64] MSG_OUT_25                                      0x0        0
[ 0x2c68] MSG_OUT_26                                      0x0        0
[ 0x2c6c] MSG_OUT_27                                      0x0        0
[ 0x2c70] MSG_OUT_28                                      0x0        0
[ 0x2c74] MSG_OUT_29                                      0x0        0
[ 0x2c78] MSG_OUT_30                                      0x0        0
[ 0x2c7c] MSG_OUT_31                                      0x0        0

Dump detailed register info

command: dma-ctl qdma<BDF> reg info bar <N> <addr> [num_regs <M>]

For QDMA4.0 designs there is an additional option to print detailed breakdown of individual registers

[xilinx@]# dma-ctl qdma06000 reg info bar 0 0x00 num_regs 5
CFG_BLK_IDENTIFIER                       0x0       0x1fd30001 533921793
CFG_BLK_IDENTIFIER                       [31,20]   0x1fd
CFG_BLK_IDENTIFIER_1                     [19,16]   0x3
CFG_BLK_IDENTIFIER_RSVD_1                [15, 8]   0x0
CFG_BLK_IDENTIFIER_VERSION               [ 7, 0]   0x1

CFG_BLK_PCIE_MAX_PLD_SIZE                0x8       0x51       81
CFG_BLK_IDENTIFIER                       [31, 7]   0x0
CFG_BLK_IDENTIFIER_1                     [ 6, 4]   0x5
CFG_BLK_IDENTIFIER_RSVD_1                [    3]   0x0
CFG_BLK_IDENTIFIER_VERSION               [ 2, 0]   0x1

CFG_BLK_PCIE_MAX_READ_REQ_SIZE           0xc       0x52       82
CFG_BLK_IDENTIFIER                       [31, 7]   0x0
CFG_BLK_IDENTIFIER_1                     [ 6, 4]   0x5
CFG_BLK_IDENTIFIER_RSVD_1                [    3]   0x0
CFG_BLK_IDENTIFIER_VERSION               [ 2, 0]   0x2

CFG_BLK_SYSTEM_ID                        0x10      0xff01     65281
CFG_BLK_IDENTIFIER                       [31,17]   0x0
CFG_BLK_IDENTIFIER_1                     [   16]   0x0
CFG_BLK_IDENTIFIER_RSVD_1                [15, 0]   0xff01

CFG_BLK_MSIX_ENABLE                      0x14      0xf        15
CFG_BLK_IDENTIFIER                       [31, 0]   0xf