Re: Issues with i.MX SPI DMA transfers

From: Igor Plyatov
Date: Thu Mar 28 2019 - 07:06:07 EST


Dear Robin,

I have applied patches 0001-dma-engine-imx-sdma-add-mcu_2_ecspi-script.patch, 0002-spi-spi-imx-fix-ERR009165.patch and made testing.

Results are following:

root@cr7:~# spidev_test -D /dev/spidev0.0 -s 12000000 -b 8 -S 512 -I 10000000000 -l
spi mode: 0x20
bits per word: 8
max speed: 12000000 Hz (12000 KHz)
[Â 133.987798] spi_imx 2008000.spi: I/O Error in DMA TX
[Â 133.992810] spidev spi0.0: SPI transfer failed: -110
[Â 133.997860] spi_master spi0: failed to transfer one message from queue
can't send spi message: Connection timed out
Aborted (core dumped)

root@cr7:~# spidev_test -D /dev/spidev1.0 -s 12000000 -b 8 -S 512 -I 10000000000 -l
spi mode: 0x20
bits per word: 8
max speed: 12000000 Hz (12000 KHz)
[Â 483.530815] spi_imx 200c000.spi: I/O Error in DMA TX
[Â 483.535825] spidev spi1.0: SPI transfer failed: -110
[Â 483.540873] spi_master spi1: failed to transfer one message from queue
can't send spi message: Connection timed out
Aborted (core dumped)

root@cr7:~# spidev_test -D /dev/spidev4.0 -s 12000000 -b 8 -S 512 -I 10000000000 -l
spi mode: 0x20
bits per word: 8
max speed: 12000000 Hz (12000 KHz)
[ÂÂ 94.228774] spi_imx 2018000.spi: I/O Error in DMA TX
[ÂÂ 94.233788] spidev spi4.0: SPI transfer failed: -110
[ÂÂ 94.238837] spi_master spi4: failed to transfer one message from queue
can't send spi message: Connection timed out
Aborted (core dumped)

Best wishes.

--

Igor Plyatov


Hi Igor,
Please have a try with the attached patch, assume you have already used the sdma firmware
From https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/imx/sdma/sdma-imx6q.bin
-----Original Message-----
From: Igor Plyatov <plyatov@xxxxxxxxx>
Sent: 2019å3æ28æ 15:04
To: Uwe Kleine-KÃnig <u.kleine-koenig@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
linux-spi@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>; Fabio Estevam
<festevam@xxxxxxxxx>; Pengutronix Kernel Team <kernel@xxxxxxxxxxxxxx>;
Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>; Shawn Guo
<shawnguo@xxxxxxxxxx>; Mark Brown <broonie@xxxxxxxxxx>;
dmaengine@xxxxxxxxxxxxxxx; Vinod Koul <vkoul@xxxxxxxxxx>; Dan Williams
<dan.j.williams@xxxxxxxxx>; Andy Duan <fugang.duan@xxxxxxx>; Han Xu
<han.xu@xxxxxxx>; Robin Gong <yibin.gong@xxxxxxx>; Clark Wang
<xiaoning.wang@xxxxxxx>
Subject: Re: Issues with i.MX SPI DMA transfers

Dear Uwe,


Hello Igor,

On Wed, Mar 27, 2019 at 08:40:00PM +0300, Igor Plyatov wrote:
please, help to resolve two issues with SPI DMA transfers at i.MX6Q
platform.

First issue is
Â[ 4465.008003] spi_master spi0: I/O Error in DMA RX

Second issue is duplication for one of received bytes.

Probably, these issues related to each one.
This is probably the same problem I hit some time ago. Check ERR009165
in the errata. You either need to disable DMA or need a fixed
sdma-Script.
disabling of DMA is not an option, because high throughput required for SPI bus
to communicate with DSPs.

I'm aware of ERR009165, but as I write some minutes earlier to list,
spi0 (alias for ecspi1) and spi1 (alias for ecspi2) work flawless, while
spi4 (alias for ecspi5) fails very fast.

Does same SDMA script used for all SPI interfaces or scripts are different?

Best wishes.

--

Igor Plyatov