Part Number:AM3352
Tool/software: Linux
Hello!
Our product uses the MCSPI to send data to an FPGA, but after hundreds of thousands of successful SPI transactions, the SPI2 process freezes within an "uninterruptible sleep" (according to the ps command, the process is in a D state - uninterruptible sleep). My Kernel Thread (custom network driver) then also locks up as it is waiting on the spi_async() call to return. From web searches, I believe that the only code that can place the SPI2 process in this state is the "wait_for_completion" calls in the Tx & Rx DMA handlers.
We are running Kernel 3.12 (but have manually updated to the MCSPI code from 3.14 due to the 64-byte SPI problem).
This issue sounds very similar to another (locked) thread: http://e2e.ti.com/support/processors/f/791/t/420294
Our MCSPI has the code changes mentioned in the first post of that thread, but the thread ends without listing a resolution.
We have also tried Kernel 4.9 with a similar lockup condition (not uninterruptible, but still locked up).
We are running the SPI at 8MHz using 16-bit word transactions, DMA is used for data packet transfers.