Any leads on where to start for DMA?

Hey everyone!
Recently I started to work on a pet project that includes a Jetson TX2. I will try a system that has an FPGA attached at pcie and want to try to use DMA for mostly curiosity reasons. What is the way to setup a DMA channel and how to use it?
From my readings, I learned that a device on pcie port can access TX2’s memory via DMA. However, I’m afraid that this will lead into a BSP issue.
What do I need to do in order to use DMA, and also is this possible from the user space? Or will I need to build a kernel module for it? Are there any project that includes TX2 for a beginner that you can point out?
Thanks for your time.

1 Like

to utilize DMA you need to write driver module of your PCIe device (FPGA) and you need to know your PCIe device DMA controller specification to program it.

You can refer any linux Ethernet PCIe driver (kernel/drivers/net/ethernet) almost all PCIe devices usage DMA for data transfer.