cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
1,150 Views
Registered: ‎06-19-2015

Data transfer using ZynqMP LPD DMA to PL in Linux

Hi,

 

I have custom IP with AXI_Memory Mappesd and AXI_Lite Interfaces connected to ZynqMP on AXI_HPM0_LPD bus through a interconnect. Find the BD design in the attachments. 

 

I am able to do the read and write transactions on AXI_lite interface both in baremetal and linux user app.

 

Using baremetal application i can do DMA burst transfers to my custom IP through AXI_Memory Mapped Bus using zdma driver (Both write and reads). Its sure that, there is no problem with my Custom IP's AXI Memory Map interface.

 

How do I achieve the same in linux user application? 

 

While linux booting am able to see the ZynqMP LPD DMAs are probed, as below

 

[    0.000000]   DMA zone: 7168 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 524288 pages, LIFO batch:31
[    0.222435] DMA: preallocated 256 KiB pool for atomic allocations
[    1.366046] xilinx-zynqmp-dma fd500000.dma: ZynqMP DMA driver Probe success
[    1.366178] xilinx-zynqmp-dma fd510000.dma: ZynqMP DMA driver Probe success
[    1.366306] xilinx-zynqmp-dma fd520000.dma: ZynqMP DMA driver Probe success
[    1.366435] xilinx-zynqmp-dma fd530000.dma: ZynqMP DMA driver Probe success
[    1.366561] xilinx-zynqmp-dma fd540000.dma: ZynqMP DMA driver Probe success
[    1.366685] xilinx-zynqmp-dma fd550000.dma: ZynqMP DMA driver Probe success
[    1.366809] xilinx-zynqmp-dma fd560000.dma: ZynqMP DMA driver Probe success
[    1.366934] xilinx-zynqmp-dma fd570000.dma: ZynqMP DMA driver Probe success
[    1.367133] xilinx-zynqmp-dma ffa80000.dma: ZynqMP DMA driver Probe success
[    1.367258] xilinx-zynqmp-dma ffa90000.dma: ZynqMP DMA driver Probe success
[    1.367400] xilinx-zynqmp-dma ffaa0000.dma: ZynqMP DMA driver Probe success
[    1.367531] xilinx-zynqmp-dma ffab0000.dma: ZynqMP DMA driver Probe success
[    1.367659] xilinx-zynqmp-dma ffac0000.dma: ZynqMP DMA driver Probe success
[    1.367784] xilinx-zynqmp-dma ffad0000.dma: ZynqMP DMA driver Probe success
[    1.367910] xilinx-zynqmp-dma ffae0000.dma: ZynqMP DMA driver Probe success
[    1.368035] xilinx-zynqmp-dma ffaf0000.dma: ZynqMP DMA driver Probe success

I am able to see the dma channels in /sys/class/dma as shown below:

 

root@linaro-installer:/sys/class/dma# ls
dma0chan0   dma12chan0  dma15chan0  dma3chan0  dma6chan0  dma9chan0
dma10chan0  dma13chan0  dma1chan0   dma4chan0  dma7chan0
dma11chan0  dma14chan0  dma2chan0   dma5chan0  dma8chan0

Is there any why to do the transfers using these DMA channels?

I found all examples linux dma examples with AXI_DMA IP in PL only. But how do i use ZynqMP LPD DMA in my linux application?

 

Please help me out of this. I was struggling since two weeks.

 

Thanks

Madhu

Madhu

Zynq_DMA.png
0 Kudos
2 Replies
Highlighted
Explorer
Explorer
1,089 Views
Registered: ‎06-19-2015

Hi @shabbirk@aravindb@stephenm@nupurs

 

Pls help me.

 

Regards

Madhu

0 Kudos
Highlighted
Contributor
Contributor
458 Views
Registered: ‎12-05-2017

Hi,

Did you find an answer ? I have the same issue and I have just found this : https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842528/Zynqmp+DMA to help me. The example provided is only performing DMA transfert from DDR MM to DDR MM internally (kalloc is internal). It has not inferface for providing externals MM pointers...

0 Kudos