DMA data transfer from PCIe using JetsonOrinNX

Hello.
I am connecting Jetson Orin NX and FPGA via PCIe, and I would like to write stream data from the FPGA to the memory of Jetson.

I would like to use DMA because I do not want to use the CPU while writing stream data.

The data from the FPGA is a stream, and since it is continuous, we plan to implement the memory area for DMA on the Jetson side as a ring buffer.

At this time, how can the CPU know the starting point of the data (the pointer where the oldest data is written) when retrieving the data?

I think one way is to manage the amount of data transferred by the FPGA, but I wonder if it is possible to read the amount of data transferred from the DMA engine on the Jetson?

For example, in section 3.4.3.1 of the Orin Series Technical Reference Manual (DP-10508-002), it says, “The number of words remaining to be transferred are in the GPCDMA_CHANNEL_CH_DMA_WORD_TRA register”
Would it be useful to read out this register?

It is similar to the existing topic in the following link, but that one did not have an answer.

Thank you.

Hi,

If you are designing a custom base board, then it means some adaptation configurations are needed.
Otherwise, your board may not work fine.

For Orin AGX series, you could refer to below document

(please be aware that above link is for rel-36.3/jetpack6.0)

This document includes below configuration

  1. pinmux change & GPIO configuration
  2. EEPROM change as most custom boards do not have an EEPROM on it.
  3. Kernel porting
  4. PCIe configuration
  5. USB configuration
  6. MGBE configuration
  7. RGMII configuration

Thanks!

Hello, thank you for your reply.

I forgot to write it, sorry. I am planning to use the Jetson Orin NX developer kit made by Yahboom, not the custom baseboard.

Do I need to check the configuration you mentioned when using a developer board?

Thank you.