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.
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!
-----------------------------------------------------------------------------------------------------------------------
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>;
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.