cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Mathieeo
Observer
Observer
589 Views
Registered: ‎05-12-2020

xilinx_dma and MCDMA

Jump to solution

Hello folks,

Petalinux 2020.1 the xilinx_dma.c does support the AXI Multi-Channel DMA, and I was wondering if there are any examples on how to configure/utilize this driver from the user-space? I've looked into the DMA_Proxy, but all the examples provided are not using MCDMA.

The MCDMA test examples provided by Xilinx here are for standalone applications only; correct me if I am wrong? 

Anything that can help is much appreciated. 

Thank you so much for your attention and participation.

-Matthew
0 Kudos
1 Solution

Accepted Solutions
ksloatdesignlinx
Explorer
Explorer
522 Views
Registered: ‎02-24-2020

The multi-channel features of the AXI DMA IP was deprecated:

https://github.com/Xilinx/linux-xlnx/commit/3b54a53d1b8f6eed263f8db5051ccdaba69a4a8d#diff-e87f28248ac66c92fcfa85ed4ed2ee32

However, Xilinx added a dedicated MCDMA IP, but it is indeed supported in 2020.1 (Kernel 5.4), see links below:

https://github.com/Xilinx/linux-xlnx/commit/fc34f832a5edeb2aecfb93529d2cfc56aa26b4c9#diff-e87f28248ac66c92fcfa85ed4ed2ee32

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842337/Linux+Soft+DMA+Driver

Keep in mind, that just like the other Linux DMA drivers, this would be used via the kernel API, there is no Linux userspace DMA API. If you want a userspace interface you will need to create one. Xilinx has another kernel module testing and demonstrating use of the various DMA IPs:

https://github.com/Xilinx/linux-xlnx/blob/master/drivers/dma/xilinx/axidmatest.c

Ken Sloat - Embedded Software Engineer
https://www.designlinxhs.com

View solution in original post

1 Reply
ksloatdesignlinx
Explorer
Explorer
523 Views
Registered: ‎02-24-2020

The multi-channel features of the AXI DMA IP was deprecated:

https://github.com/Xilinx/linux-xlnx/commit/3b54a53d1b8f6eed263f8db5051ccdaba69a4a8d#diff-e87f28248ac66c92fcfa85ed4ed2ee32

However, Xilinx added a dedicated MCDMA IP, but it is indeed supported in 2020.1 (Kernel 5.4), see links below:

https://github.com/Xilinx/linux-xlnx/commit/fc34f832a5edeb2aecfb93529d2cfc56aa26b4c9#diff-e87f28248ac66c92fcfa85ed4ed2ee32

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842337/Linux+Soft+DMA+Driver

Keep in mind, that just like the other Linux DMA drivers, this would be used via the kernel API, there is no Linux userspace DMA API. If you want a userspace interface you will need to create one. Xilinx has another kernel module testing and demonstrating use of the various DMA IPs:

https://github.com/Xilinx/linux-xlnx/blob/master/drivers/dma/xilinx/axidmatest.c

Ken Sloat - Embedded Software Engineer
https://www.designlinxhs.com

View solution in original post