Hi:
问题描述: Imx6ul单板在使用两条SPI同时传输时,内核打印如下错误: [09:42:02][ 684.646483] spi_imx 2010000.ecspi: I/O Error in DMA TX
[09:42:02][ 684.654434] spidev spi2.0: SPI transfer failed: -110
[09:42:02][ 684.660489] spi_master spi2: failed to transfer one message from queue
测试指令: ./spidev_test -D /dev/spidev2.0 -s 30000000 -b 32 -S 1000 & ./spidev_test -D /dev/spidev3.0 -s 30000000 -b 32 -S 1000 & 内核版本:4.14.93+;
SPI配置30M时钟,32bit; DTS配置: ecspi2: ecspi@0200c000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
reg = <0x0200c000 0x4000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX6UL_CLK_ECSPI2>,
<&clks IMX6UL_CLK_ECSPI2>;
clock-names = "ipg", "per";
dmas = <&sdma 5 7 1>, <&sdma 6 7 2>;
dma-names = "rx", "tx";
status = "disabled";
}; ecspi3: ecspi@02010000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
reg = <0x02010000 0x4000>;
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX6UL_CLK_ECSPI3>,
<&clks IMX6UL_CLK_ECSPI3>;
clock-names = "ipg", "per";
dmas = <&sdma 7 7 1>, <&sdma 8 7 2>;
dma-names = "rx", "tx";
status = "disabled";
};
|