spi:failed to transfer one message from queue

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

spi:failed to transfer one message from queue

5,712 Views
yehuang
Contributor I

We need to download FW to a spi device when booting up. If we use command "reboot" to boot up the machine, we will got follow erro:

a. Transfer data without DMA
[   21.977433] fm1388_i2c 16-002c: <fm1388_dsp_load_fw> dsp load fw: FM1388_5FFC0000.dat
[   21.985411] fm1388_spi spi0.0: fm1388_spi_burst_write: begin...
[   23.003712] spi_master spi0: failed to transfer one message from queue
[   23.011692] fm1388_spi spi0.0: fm1388_spi_burst_write error -110

b. Transfer data with DMA

 [   26.318445] fm1388_i2c 19-002c: <fm1388_dsp_load_fw> dsp load fw: FM1388_5FFC0000.dat
 [   26.326325] fm1388_spi spi0.0: fm1388_spi_burst_write: begin...
 [   28.338617] fsl_lpspi 5a020000.lpspi: I/O Error in DMA TX
 [   28.344077] fm1388_spi spi0.0: SPI transfer failed: -110
 [   28.349446] spi_master spi0: failed to transfer one message from queue
 [   28.356000] fm1388_spi spi0.0: fm1388_spi_burst_write error -110

But, if we "power down--->power on" the machine, spi transfer is ok.

Note: current  Linux version is 4.14.98,  and version  4.14.62 have no this problem.

0 Kudos
3 Replies

5,112 Views
igorpadykov
NXP Employee
NXP Employee

Hi ye

to avoid such issues it is necessary to implement board reset with U507 WDOG_B --> PWRON

as on p.21 spf-27392 i.MX6Q Sabre SD schematic :

https://www.nxp.com/webapp/Download?colCode=iMX6Q-SABRE-SDB-DESIGNFILES&appType=license 

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

0 Kudos

5,112 Views
yehuang
Contributor I

Hi igor,

Following patch resolve this issue,

diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi
index fc1e1ccba1f8..4b3674d8c96f 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi
@@ -2764,7 +2764,7 @@
                         <&clk IMX8QXP_SPI0_IPG_CLK>;
                clock-names = "per", "ipg";
                assigned-clocks = <&clk IMX8QXP_SPI0_CLK>;
-               assigned-clock-rates = <20000000>;
+               assigned-clock-rates = <24000000>;
                power-domains = <&pd_dma2_chan1>;
                dma-names = "tx","rx";
                dmas = <&edma2 1 0 0>, <&edma2 0 0 1>;

0 Kudos

5,112 Views
yehuang
Contributor I

Hi igor,

It seems not hardware issue, because linux version version  4.14.62 have no this problem. Update to 4.14.98, and it comes.

0 Kudos