RE: Issues with i.MX SPI DMA transfers

From: Robin Gong
Date: Mon Apr 01 2019 - 03:35:22 EST


> -----Original Message-----
> From: Igor Plyatov <plyatov@xxxxxxxxx>
> Sent: 2019å3æ28æ 19:06
> To: Robin Gong <yibin.gong@xxxxxxx>; 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>; Clark Wang <xiaoning.wang@xxxxxxx>
> Subject: Re: Issues with i.MX SPI DMA transfers
>
> 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,
Sorry...below another sdma patch(ad0d92d7ba6a) need to be reverted, because
spi driver may dynamically change burst length.
> > Please have a try with the attached patch, assume you have already
> > used the sdma firmware From
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.
> >
> kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Ffirmware%2Flinux-firm
> w
> >
> are.git%2Ftree%2Fimx%2Fsdma%2Fsdma-imx6q.bin&amp;data=02%7C01%7C
> yibin.
> >
> gong%40nxp.com%7Cc0da8a1121f5498ae6b808d6b36d5e70%7C686ea1d3bc2
> b4c6fa9
> >
> 2cd99c5c301635%7C0%7C1%7C636893679644630034&amp;sdata=jgZV1tj3M
> hFXj3XN
> > N7MBQzqwpEPEoZcq6P5eBqEBUlw%3D&amp;reserved=0
> >> -----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