SPI I/O Error in DMA TX on i.MX8 Nano

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

SPI I/O Error in DMA TX on i.MX8 Nano

107 Views
jpsk
Contributor II

Hello all,

I have a question related to SPI transfer errors caused by DMA TX timeouts.

Our custom board has an i.MX8 Nano SOM which we ran our application on Kirkstone kernel (Linux 5.15.71). Our board (SPI Master) communicates with another device (SPI Slave) over ecspi2 and receives periodic SPI message of ~4KB length.  We use SPI native CS and utilize DMA to improve data transfer efficiency. 

Recently we switched to Mickledore kernel (Linux 6.1.86) and SPI comm doesn't work anymore. I'm consistently getting the following errors.   

[  282.393044] spi_imx 30830000.spi: I/O Error in DMA TX
[  282.393094] spidev spi1.0: SPI transfer failed: -110
[  282.393116] spi_master spi1: failed to transfer one message from queue
[  282.393122] spi_master spi1: noqueue transfer failed


If I disable DMA in the device tree and just use PIO transfer, the errors go away and SPI comm does work, but we need DMA transfer to support our high data throughput. Otherwise overall system performance is impacted.

Are there recent updates in spi-imx and imx-sdma drivers that might have affected SPI DMA tranfers?  Is there a solution or workaround to resolve the issue?  Any help is much appreciated!

- jpsk

 

 

 

Labels (1)
0 Kudos
1 Reply

63 Views
jimmychan
NXP TechSupport
NXP TechSupport

Hello,

 

Could you share more logs including the information of spi and dma initialization? it would be better if you could share the complete log.

 

Thanks.

 

Best regards,

Jimmy

0 Kudos