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: 
Visitor digicloud
Visitor
7,867 Views
Registered: ‎05-31-2015

Configuring Linux VDMA Driver

Hi all,

I have been working on a custom design in Vivado 2014.4 which uses the VDMA IP core. I want to access the data stored in the VDMA in Linux userspace and am using embedded Linux (a Ubuntu distribution). I have generated a device tree for the design and have verified that Linux recognizes the VDMA as a device (it is listed in /sys/bus/platform/devices).

My question now is how to actually use the VDMA? I've been reading around on the forums and online and see that you must either use the Xilinx VDMA driver for Linux or use mmap, but many people reccomend using the driver instead of mmap.

There does not seem to be a lot of documentation on the VDMA driver, so I was wondering if anyone could help me out with how to install/configure the VDMA driver and use it? I found this http://www.wiki.xilinx.com/DMA+Drivers+-+Soft+IPs#AXI%20VDMA but it is very brief. It mentions it can be configured through menuconfig but it does not explain how to do that. I am very new to Linux and have no experience with menuconfig but from what I've read I can mess up a lot of things if I don't know what I am doing with menuconfig.

Can anyone show me how or point me towards a good guide or tutorial for configuring and using the VDMA driver?

Thank you,
Chris

0 Kudos
2 Replies
Visitor xzdfun
Visitor
1,267 Views
Registered: ‎11-30-2017

Re: Configuring Linux VDMA Driver

Hello, I'm meeting the same problem as you! Can you tell me how you figure out it ? Is there any file to refer to? Thank a lot!

0 Kudos
Adventurer
Adventurer
1,254 Views
Registered: ‎10-04-2017

Re: Configuring Linux VDMA Driver

You need to write a proxy driver.  This driver create a userspace device and then talks to the VDMA driver via the Linux DMA API.  There are a few post around that discuss this, they are a bit old and you will have to make some effort to get them fully functional but it's a good start.

 

https://forums.xilinx.com/t5/Embedded-Linux/DMA-user-space-driver/m-p/741443/highlight/true#M18011

https://forums.xilinx.com/t5/Embedded-Linux/Using-a-DMA-Proxy-Driver/m-p/644562#M13623

0 Kudos