AnsweredAssumed Answered

SPI freezes on iMX6SL after short write and long read

Question asked by Samuel Beaussier on Mar 9, 2016
Latest reply on Mar 17, 2016 by Samuel Beaussier

Hi all,

 

Our custom platform based on iMX6SL meets troubles with SPI transactions. Actually it freezes in special scenario whereas it works very well otherwise.

 

Our environment is :

- Custom board with iMX6SL

- Linux based on FSL BSP 3.14.28

- Dev based on spidev

 

Our SPI is working with following scenarii, at any frequencies from 4 to 12MHz, on multiple endurance tests:

- Loop of transactions consisting in writing 1 Byte then reading 14 Bytes

- Loop of transactions consisting in reading 20x14 Bytes

 

Our SPI driver freezes after few transactions when :

- Loop of transactions consisting in writing 1 Byte then reading 20x14 Bytes

 

We observed that :

- Setting SPI bus frequency @ 12MHz seems to make it work, but it still freezes @ 10MHz / 8MHz / 6MHz / 4MHz

- Reducing the datasize to 15x14 makes it freeze in less than 1 minute

 

When it freezes, application cannot be killed manually, only way to get hand on SPI again is to reboot the board.

 

Is there any known issue on SPI driver with the couple iMX6SL <--> BSP 3.14.28?

Is there any maximum size for packet transactions?

Why writing 1 Byte before reading 20x14 Bytes makes SPI freeze whereas only reading 20x14 Bytes works perfectly?

 

Any help is welcome!

 

Thank you,

 

Samuel

Outcomes