How to set imx7d dma single transmission size unit?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to set imx7d dma single transmission size unit?

824 Views
864535720
Contributor II

Hello everyone
my development board is IMX7DSABRE. Linux kernel version is 4.9.88
I use dma on imx7d to transmit the data on the eim bus. Now my data can be transmitted normally, but I found that dma unpacked and transmitted my data during the transmission process. My code is set to transmit 2KByte of data every time DMA, but I measured the waveform of EIM_OE / EIM_RW, and found that DMA split the 2KByte data into 64 packets for transmission, each packet of 32 bytes. Why does DMA split 2KByte data into 64 packets for transmission?
The waveform I measured is shown below:

eim_dma_1.jpgeim_dma_2.jpgeim_dma_3.jpg

Labels (4)
0 Kudos
3 Replies

764 Views
igorpadykov
NXP Employee
NXP Employee

Hi  其东 刘

for explanation of such behaviour (valid for i.MX7 too) one can look at

https://community.nxp.com/docs/DOC-106467 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

764 Views
864535720
Contributor II

Hi,igorpadykov

Based on your return, I went to the corresponding manual and understood the reason why dma splits the data.
Since data splitting is inevitable, is there any way to shorten the transmission interval between packets (640ns interval)? How to shorten the interval between two dma triggers (37us interval)?

0 Kudos

764 Views
igorpadykov
NXP Employee
NXP Employee

unfortunately this is not possible.

Best regards
igor

0 Kudos