02-23-2017 08:07 AM
I'm trying to use the axi_dma xilinx driver in order to make transfer between PS and PL in both way. I'm trying several modules that I found on the web (i.e dma_proxy) but no one works, so I want to start form the begining, testing the module axidmatest from xilinx.
I'm using Vivado 2016.3 and petalinux 2016.4 with the kernel 4.6. I have created a basic design for axidma loopback, connection de mm2s_int and s2mm_int to the PS.I have configured my kernel (petalinux-config -c kernel) to enable the axi dma engine and the axidmatest module.
I followed the xilinx.wiki in order to use the axidma module but I see some difference and if I change some parameters I get different results. This is my device_tree in the pl.dtsi file:
Differences between my device tree and the xilinx wiki device tree are interruptions numbers and one aditional line. The wiki version has interruptions as follow:
On the top: interrupts = <0 29 4 0 30 4>;
MM2S: interrupts = <0 29 4>;
S2MM: interrupts = <0 30 4>;
The aditional line is "xlnx,include-dre ;" that is include after "xlnx,device-id = <0x0>;" in both channel, mm2s and s2mm.
When I boot my system I get the follow message:
xilinx-vdma 40400000.dma: Xilinx AXI VDMA Engine Driver Probed!!
But the axidmates doesn't work.
If I change my device tree in order to be exactly than wiki device tree, I get time out error:
dma1chan0-dma1c: #0: tx test timed out
dma1chan0-dma1c: #1: tx test timed out
dma1chan0-dma1c: #2: tx test timed out
dma1chan0-dma1c: #3: tx test timed out
dma1chan0-dma1c: #4: tx test timed out
If I don't change my device tree interruption mapping (only adding axidmatest block), I get many errors. Attached you can finde the log file.
Any idea?? I have looked for across the wev but I cannot be able to manage the axidma engine.
Thanks in advance
04-07-2017 02:42 AM
I had the same problem, i tried dma_proxy driver with axi_dma.
It doesn't work because of linux kernel sources, give a look to change history of https://github.com/Xilinx/linux-xlnx/commits/master/drivers/dma/xilinx/xilinx_dma.c.
Developers delete AXI DMA driver! So just don't use latest version of linux, try version xilinx-v2016.2 for example https://github.com/Xilinx/linux-xlnx/tree/xilinx-v2016.2