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!

Showing results for 
Search instead for 
Did you mean: 
Observer edu30692
Registered: ‎11-25-2016

DMA user space driver


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
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


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