Jump to content
  • 0

Help Setting Up a Simple DMA Transfer in Linux Zynq7000



Hello everyone,

I am having a great deal of trouble figuring out how to setup drivers for the Xilinx DMA IP core in Linux/Petalinux Project. I have a bare-metal application setup currently that work well at 400MB/s from the PL to PS and streams data from AXI stream generator I made to simulate a video stream. That works well, but I need to be able to transfer data from the PS side to a PC via Ethernet and I was hoping to use Linux to handle that interaction. I essentially want a proxy driver that I can control from user-space to initiate the transfer upon interrupt from the DMA engine. I was doing direct register programming before and reprogramming upon interrupt in the bare-metal application. Is there some way to do this from user-space with provided drivers somewhere, or does it take a different approach? If there are some provided drivers that take a different approach that is fine, I just need the data in the PS from the PL. Is there anything someone can point me to for the right direction?

I am even considering doing a direct register programming mode of the AXI DMA IP core handled entirely in the PL portion along with the interrupts. This would allow me to poll some arbitrary AXI lite interface to see if I received an entire image frame or not yet. And read the data most like likely out of an MMAP portioned of memory, which maybe I could define in the device-tree although I've had problems setting that up as well. I would want to avoid this however as it seems like its just a work around and it seems better to do things the right way.

How/where do I find/setup the Xilinx DMA kernel drivers and tie them to the Linux DMA framework? I then Imagine I would need to create my own proxy module to tie the syscalls together at that point. I'm still not sure how it would allow me to program a destination address and transfer length to the AXI DMA IP core or handle the interrupts to reset the interrupt and reprogram the engine. Can anyone help weigh in on this?

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...