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.