09-11-2018 04:50 AM
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
09-17-2018 10:26 PM
09-12-2019 01:31 AM
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...