How to improve ecspi performance

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

How to improve ecspi performance

跳至解决方案
1,036 次查看
gaoyuan
Contributor II

My platform is imx6ul. spi clk is 40M

I changed SPI dma dst_maxburst to spi_imx_get_fifosize(spi_imx) and sent about 1KB to measure timing.

Bellow is one burst (64 bytes) timing and with some delay and then is the next burst(64 bytes).

64bytesburstcost.png

2burstdelay.png

the whole wave is:

wave.png

My question is: what cause the delay between every burst?

I notice there is risc processor to deal with sdma and fsl provide firmware.

So I guest that once the driver attach one dma request, then the firmware write data out and then read received data, that is, the delay between burst write operation is the time that read operation cost. Is it right?

And a another question is: how to reduce the delay between burst?

Thank you for your suggesion.

标签 (1)
标记 (2)
0 项奖励
回复
1 解答
694 次查看
art
NXP Employee
NXP Employee

> My question is: what cause the delay between every burst?

The delay between the bursts is caused by the SDMA deal with the SPI FIFOs.

> I notice there is risc processor to deal with sdma and fsl provide firmware.

Yes, there is the dedicated RISC core that controls the SDMA operation.

> So I guest that once the driver attach one dma request, then the firmware write data out and then read received data, that is, the delay between burst write operation is the time that read operation cost. Is it right?

Yes, this is right.

> And a another question is: how to reduce the delay between burst?

Unfortunately, there seems to be no way to reduce this delay since SDMA always operates at its max. possible speed.


Have a great day,
Artur

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

在原帖中查看解决方案

0 项奖励
回复
1 回复
695 次查看
art
NXP Employee
NXP Employee

> My question is: what cause the delay between every burst?

The delay between the bursts is caused by the SDMA deal with the SPI FIFOs.

> I notice there is risc processor to deal with sdma and fsl provide firmware.

Yes, there is the dedicated RISC core that controls the SDMA operation.

> So I guest that once the driver attach one dma request, then the firmware write data out and then read received data, that is, the delay between burst write operation is the time that read operation cost. Is it right?

Yes, this is right.

> And a another question is: how to reduce the delay between burst?

Unfortunately, there seems to be no way to reduce this delay since SDMA always operates at its max. possible speed.


Have a great day,
Artur

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

0 项奖励
回复