UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer edu30692
Observer
3,726 Views
Registered: ‎11-25-2016

DMA user space driver

Hi,

I'm trying to use AXI DMA to transfer data to a custom IP on the PL side. Firstly i'm tryng to test it with the transmit stream looped back. I have tried to test it following this  https://forums.xilinx.com/xlnx/attachments/xlnx/ELINUX/10693/1/Linux%20DMA%20from%20User%20Space-public.pdf, creating a DMA Proxy Device Driver to mapping a kernel space allocated memory buffer into user space but i'm having a lot of problems. Is there any simple example to do it?. I'm using a zcu102 board (Zynq UltraScale+) with a Linux Kernel. Any idea?

Tags (4)
1 Reply
Observer jwoeber
Observer
313 Views
Registered: ‎04-04-2019

Re: DMA user space driver

Hi, I am stuck on the same question. Was anyone successfull using the DMA Proxy driver for Ultrascale DMAs ( fpd, lpd)? Thanks.

 

fpd_dma_chan1: dma@fd500000 {
	#dma-cells = <1>;
	status = "okay";
	compatible = "xlnx,zynqmp-dma-1.0";
	reg = <0x0 0xfd500000 0x0 0x1000>;
	interrupt-parent = <0x4>;
	interrupts = <0x0 0x7c 0x4>;
	clock-names = "clk_main", "clk_apb";
	xlnx,bus-width = <0x80>;
	#stream-id-cells = <0x1>;
	iommus = <0x9 0x14e8>;
	power-domains = <0xa>;
	clocks = <0x3 0x13 0x3 0x1f>;
};

dma_proxy {
         compatible ="xlnx,dma_proxy";
	 dmas = <&fpd_dma_chan1 0
         &fpd_dma_chan1 1>;
         dma-names = "dma_proxy_tx", "dma_proxy_rx";
};

Which fails with

[ 1.899010] dma_proxy module initialized
[ 1.902760] (NULL device *): DMA channel request error
[ 1.907868] dma_proxy_driver: probe of amba:dma_proxy failed with error -1
[ 1.915244] xilinx-dpdma fd4c0000.dma: Xilinx DPDMA engine is probed
[ 1.921838] xilinx-zynqmp-dma fd500000.dma: ZynqMP DMA driver Probe success

Update:

When I add additional debug messages I see that it fails at:

of_dma_find_controller: can't find DMA controller /amba/dma@fd500000
0 Kudos