1<!-- 2Author: Xianjun Jiao 3SPDX-FileCopyrightText: 2021 UGent 4SPDX-License-Identifier: AGPL-3.0-or-later 5--> 6We don't maintain our own (modified) xilinx dma driver anymore! The original xilinx dma driver in the Linux kernel tree can be used. 7 8===============Following are obsolete content================= 9 10Currently used driver xilinx_dma-orig.c is based on 552d3f11e374ca0d435aa93a571507819eabdda2 of https://github.com/Xilinx/linux-xlnx ) 11 12instruction to generate our customized xilinx dma driver: 13 14./make_xilinx_dma.sh 15 16instruction to generate our customized xilinx dma test program: 17 18./make_xilinx_dma_test.sh 19 20test dma driver on board: login to zc706, then: 21 22 rm axidmatest.ko 23 wget ftp://192.168.10.1/driver/xilinx_dma/axidmatest.ko 24 rm ddc.ko 25 wget ftp://192.168.10.1/driver/ddc/ddc.ko 26 rm xilinx_dma.ko 27 wget ftp://192.168.10.1/driver/xilinx_dma/xilinx_dma.ko 28 rmmod axidmatest 29 rmmod ddc 30 rmmod xilinx_dma 31 insmod xilinx_dma.ko 32 insmod ddc.ko 33 insmod axidmatest.ko 34 dmesg -c 35 36dmesg will show test result printed by "insmod axidmatest.ko". Like this: 37 38 root@analog:~# dmesg -c 39 xilinx_dmatest: dropped channel dma5chan0 40 xilinx_dmatest: dropped channel dma5chan1 41 42 sdr,ddc dev_remove base_addr 0xf14e0000 43 sdr,ddc dev_remove ddc_driver_api_inst 0xbf032284 44 sdr,ddc dev_remove ddc_api 0xbf032284 45 sdr,ddc dev_remove succeed! 46 xilinx-vdma 43000000.axivdma: Xilinx AXI VDMA Engine Driver Probed!! 47 xilinx-vdma 80400000.dma: Xilinx AXI DMA Engine Driver Probed!! 48 xilinx-vdma 80410000.dma: Xilinx AXI DMA Engine Driver Probed!! 49 50 sdr,ddc dev_probe match! 51 sdr,ddc dev_probe io start 0x83c20000 end 0x83c2ffff name /fpga-axi@0/rx_intf@83c20000 flags 0x00000200 desc 0x00000000 52 sdr,ddc dev_probe base_addr 0xf18e0000 53 sdr,ddc dev_probe ddc_driver_api_inst 0xbf0e1284 54 sdr,ddc dev_probe ddc_api 0xbf0e1284 55 sdr,ddc dev_probe reset tsf timer 56 sdr,ddc dev_probe tsf timer runtime read 1 33007 100015us 57 sdr,ddc dev_probe succeed! 58 sdr,ddc hw_init mode 0 59 sdr,ddc hw_init mode DDC_AXIS_LOOP_BACK 60 sdr,ddc hw_init err 0 61 dmatest: Started 1 threads using dma5chan0 dma5chan1 62 align 3 63 sdr,ddc hw_init mode 0 64 sdr,ddc hw_init mode DDC_AXIS_LOOP_BACK 65 sdr,ddc hw_init err 0 66 tx_tmo 99 status 0 len 6448 DMA_COMPLETE 0 67 dma5chan0-dma5c: verifying source buffer... 68 dma5chan0-dma5c: verifying dest buffer... 69 dma5chan0-dma5c: #0: No errors with 70 src_off=0x448 dst_off=0x568 len=0x1930 71 align 3 72 sdr,ddc hw_init mode 0 73 sdr,ddc hw_init mode DDC_AXIS_LOOP_BACK 74 sdr,ddc hw_init err 0 75 tx_tmo 100 status 0 len 3248 DMA_COMPLETE 0 76 dma5chan0-dma5c: verifying source buffer... 77 dma5chan0-dma5c: verifying dest buffer... 78 dma5chan0-dma5c: #1: No errors with 79 src_off=0x458 dst_off=0xf08 len=0xcb0 80 align 3 81 sdr,ddc hw_init mode 0 82 sdr,ddc hw_init mode DDC_AXIS_LOOP_BACK 83 sdr,ddc hw_init err 0 84 tx_tmo 100 status 0 len 8112 DMA_COMPLETE 0 85 dma5chan0-dma5c: verifying source buffer... 86 dma5chan0-dma5c: verifying dest buffer... 87 dma5chan0-dma5c: #2: No errors with 88 src_off=0x10 dst_off=0x20 len=0x1fb0 89 align 3 90 sdr,ddc hw_init mode 0 91 sdr,ddc hw_init mode DDC_AXIS_LOOP_BACK 92 sdr,ddc hw_init err 0 93 tx_tmo 100 status 0 len 840 DMA_COMPLETE 0 94 dma5chan0-dma5c: verifying source buffer... 95 dma5chan0-dma5c: verifying dest buffer... 96 dma5chan0-dma5c: #3: No errors with 97 src_off=0x1890 dst_off=0x1268 len=0x348 98 align 3 99 sdr,ddc hw_init mode 0 100 sdr,ddc hw_init mode DDC_AXIS_LOOP_BACK 101 sdr,ddc hw_init err 0 102 tx_tmo 100 status 0 len 7816 DMA_COMPLETE 0 103 dma5chan0-dma5c: verifying source buffer... 104 dma5chan0-dma5c: verifying dest buffer... 105 dma5chan0-dma5c: #4: No errors with 106 src_off=0x80 dst_off=0x168 len=0x1e88 107 dma5chan0-dma5c: terminating after 5 tests, 0 failures (status 0) 108 109