cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
691 Views
Registered: ‎06-20-2013

Programming CMDA engine/addressing virtual/physical mapping

I've implemented an AXI CMDA engine in Vivado 2016.2 that I want to use to transfer a large amount of data from program space to a FIFO in PL in physical space. I'm using Xilinx SDK 2016.2 and running petaLinux.

 

From what I read, I need to use a function called: dma_alloc_coherent() to make sure I get a continuous block of memory in physical space and I need to use io_remap() to get the physical address from the virtual address. Is this correct or is there an easier/better way?

 

If this is so, where can I find these functions? I don't seem to be able to find them in the include directories.

 

Thanks!

0 Kudos
3 Replies
Highlighted
Scholar
Scholar
656 Views
Registered: ‎03-22-2016

Re: Programming CMDA engine/addressing virtual/physical mapping

@doug.rhodes Are you sure? AXI CDMA is mm-master to mm-slave. You mean AXI DMA?

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
0 Kudos
Highlighted
Visitor
Visitor
650 Views
Registered: ‎06-20-2013

Re: Programming CMDA engine/addressing virtual/physical mapping

It is an AXI Central Direct Memory Access block from the Vivado IP.

0 Kudos
Highlighted
Scholar
Scholar
645 Views
Registered: ‎03-22-2016

Re: Programming CMDA engine/addressing virtual/physical mapping

@doug.rhodes AXI CDMA does not have stream interfaces. It cannot connect to a FIFO.

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
0 Kudos