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!