Re: spi: imx: Increase imx51 ecspi burst length fails on imx6dl and imx8mm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Stefan

I added my printing 
@@ -655,12 +658,25 @@ static int mx51_ecspi_prepare_transfer(struct spi_imx_data *spi_imx,
 
        /* Clear BL field and set the right value */
        ctrl &= ~MX51_ECSPI_CTRL_BL_MASK;
+       dev_info(spi_imx->dev, "%s: count=%d, bits_per_word=%d\n",
+            __FUNCTION__, spi_imx->count, spi_imx->bits_per_word);
+
        if (spi_imx->target_mode && is_imx53_ecspi(spi_imx))
                ctrl |= (spi_imx->target_burst * 8 - 1)
                        << MX51_ECSPI_CTRL_BL_OFFSET;

and run the test with the burst enabled 
/var/volatile/tmp# spidev_test --device /dev/spidev1.0 --speed 20000000 --bpw 8 -i 127bytes-spi-test-data.bin -o 127bytes-spi-test-result.bin
[  802.729824] spi_imx 30830000.spi: mx51_ecspi_prepare_transfer: count=127, bits_per_word=8
-> transmitted 504 Bytes on the line

then I run it with burst disabled
spidev_test --device /dev/spidev1.0 --speed 20000000 --bpw 8 -i 127bytes-spi-test-data.bin -o 127bytes-spi-test-result.bin
[  316.683807] spi_imx 30830000.spi: mx51_ecspi_prepare_transfer: count=0, bits_per_word=8
-> transmitted 127 Bytes on the line

The count is different 
- for burst-enabled  127
- for burst-disable 0

concerning the sdma-firmware I checked on 
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/imx/sdma
but the latest I found was 4.5

Regards
Stefan


Am 2023-11-20T16:30:15.000+01:00 hat Stefan Moring <stefan.moring@xxxxxxxxxxxxxxx> geschrieben:
>  Hi Stefan,
> 
> I have been trying to reproduce your error on my iMX8M, scoping the SPI
> lines, but everything works as expected. I don't have the exact same board,
> but I don't think that should be a problem. One difference I noticed is
> that my imx-sdma firmware is version 4.6.
> 
> Can you verify the values used for the transfer,  spi_imx->count and
> spi_imx->bits_per_word inside the mx51_ecpsi_prepare_transfer() method?
> Those are the only two things that changed in the commits. Maybe compare
> them to the working version?
> 
> Kind regards,
> 
> Stefan Moring
> 
> Op ma 20 nov 2023 om 11:18 schreef Francesco Dolcini <francesco@xxxxxxxxxx>:
> 
> 
> >    On Mon, Nov 20, 2023 at 10:33:38AM +0100, linux@xxxxxxxxx wrote:
> > 
> > >     I run the test and it worked fine. The transmitted data matches with
> > >   the recived data, no diff.
> >   ok, thanks for confirming. At least we are on the same page.
> > 
> > 
> > >     BUT!!! on the MDIO it is completly different !!!
> > >   When I request to send 4kB Data I measure on the line 16384Byte.
> > >  
> > >   The data is again   3Dummy Bytes followed by the databyte.
> > >   So the error symetic on send and recive
> >  
> >  ok, that's annoying. I wonder if the loopback test could be improved to
> >  spot such kind of issues, maybe we could verify if the execution time
> >  is reasonable given the SPI clock frequency and the payload size ...
> > 
> >  Francesco
> > 
> 
> 
>




[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux