This page covers the Linux driver for the Xilinx Soft DMA IPs, including AXI DMA, AXI CDMA, AXI MCMDA and AXI VDMA for Zynq, Zynq Ultrascale+ MPSoC, Versal and Microblaze.
Table of Contents
...
...
The test client can be configured as loadable or in-built kernel module.
Device-tree Node for the test client
Code Block | ||
---|---|---|
| ||
vdmatest_1: vdmatest@1 { compatible ="xlnx,axi-vdma-test-1.00.a"; xlnx,num-fstores = <0x3>; dmas = <&axi_vdma_0 0 &axi_vdma_0 1>; dma-names = "vdma0", "vdma1"; } ; |
Running the test client will display the message when the test is successful,
Code Block | ||
---|---|---|
| ||
vdmatest: Started 1 threads using dma0chan0 dma0chan1 dma0chan0-dma0c: terminating after 1 tests, 0 failures (status 0) |
Mainline Status
The current driver available in the Xilinx Linux git is in sync with the open source 5.4 kernel driver except for the following- DMA Client driver (axidmatest and vdmatest - these are xilinx specific dma client driver and not streamable)
Change Log
2020.2
- MCDMA fixes (SG capability, usage of xilinx_aximcdma_tx_segment)
- Add missing check for empty list in xilinx_dma_tx_status
- use readl_poll_timeout_atomic variant
7a34a475cf62 dmaengine: xilinx_dma: Fix SG capability check for MCDMA
a44799713f85 dmaengine: xilinx_dma: Fix usage of xilinx_aximcdma_tx_segment
2aefe65f2861 dmaengine: xilinx_dma: Add missing check for empty list
d2798ec3512e dmaengine: xilinx_dma: use readl_poll_timeout_atomic variant
2020.1
- Fix dma channel node order dependency.
- MCDMA IP support.
- 5.4 kernel upgrade (Merge tag 'dmaengine-5.3-rc1' of slave tree + xilinx tree rebase patches)
Commits:
b6848e6 dmaengine: xilinx_dma: In dma channel probe fix node order dependency
87e34b2 dmaengine: xilinx_dma: Extend dma_config structure to store max channel count
9fef941 dmaengine: xilinx_dma: Add Xilinx AXI MCDMA Engine driver support
<snip>
47ebe00 Merge tag 'dmaengine-5.3-rc1' of slave tree
2019.2
- Fix SG internal error in cdma prep_dma_sg mode.
- Clear desc_pendingcount in xilinx_dma_reset.
- Check for both idle and halted state in axidma stop.
- Residue calculation and reporting.
- Remove cdmatest client. Now onwards we have to use generic dmatest client for cdma validation.
Commits:
552d3f1 dmaengine: xilinx_dma: Fix SG internal error in cdma prep_dma_sg mode
e4a9ef8 dmaengine: xilinx: Clear desc_pendingcount in xilinx_dma_reset
136cd70 dmaengine: xilinx: Check for both idle and halted state in axidma stop_transfer
478500b dmaengine: xilinx: Print debug message when no free tx segments
8eab5a1 dmaengine: xilinx: Remove residue from channel data
0f7b82f dmaengine: xilinx: Add callback_result support
bc6a6ab dmaengine: xilinx: Introduce xilinx_dma_get_residue
41176b9 dmaengine: xilinx: Merge get_callback and _invoke
976bab6 dmaengine: xilinx_dma: Remove desc_callback_valid check
2019.1
- Remove axidma multi-channel mode support
- Fix 64-bit simple AXIDMA transfer
- Fix control reg update in vdma_channel_set_config
Commits:
8c8e3b1 dmaengine: xilinx_dma: Remove axidma multi-channel mode support
c3b6c45 dmaengine: xilinx_dma: Fix 64-bit simple AXIDMA transfer
965442b dmaengine: xilinx_dma: Introduce helper macro for preparing dma address
fbde9af dmaengine: xilinx_dma: Fix control reg update in vdma_channel_set_config
2018.3
- Reset DMA channel in dma_terminate_all.
- Fix 64-bit simple CDMA transfer.
- Code refactoring.
Commits:
1c8b3af dmaengine: xilinx_dma: Reset DMA channel in dma_terminate_all
cf9dfe6 dmaengine: xilinx_dma: Minor refactoring
44b796e dmaengine: xilinx_dma: Fix 64-bit simple CDMA transfer
113e03d dmaengine: xilinx_dma: Move enum xdma_ip_type to driver file
55ea663 dmaengine: xilinx_dma: Fix typos
...