Re: [PATCH v2 00/15] add ecspi ERR009165 for i.mx6/7 soc family

From: Lucas Stach
Date: Fri Apr 26 2019 - 04:19:55 EST


Hi Robin,

Am Freitag, den 26.04.2019, 08:05 +0000 schrieb Robin Gong:
> Â There is ecspi ERR009165 on i.mx6/7 soc family, which cause FIFO
> transfer to be send twice in DMA mode. Please get more information from:
> https://www.nxp.com/docs/en/errata/IMX6DQCE.pdf. The workaround is adding
> new sdma ram script which works in XCHÂÂmode as PIO inside sdma instead
> of SMC mode, meanwhile, 'TX_THRESHOLD' should be 0.

I would like to have a more in-depth explanation about how this new RAM
script differs from the existing ROM script and the changes to the
state transitions.

> Â The issue should be exist on all legacy i.mx6/7 soc family before i.mx6ul,
> NXP fix this design issue from i.mx6ul, so newer chips such as i.mx6ull/
> i.mx8mq/i.mx8mm, don't need this workaroud anymore. This patch set
> add new 'fsl,imx6ul-ecspi' for ecspi driver and 'ecspi_fixed' in sdma
> driver to choose if need errata or not.
> Â The first two reverted patches should be the same issue, though, it
> seems 'fixed' by changing to other shp script. Hope Sean or Sascha could
> have the chance to test this patch set if could fix their issues.
> Â Besides, enable sdma support for i.mx8mm/8mq and fix ecspi1 not work
> on i.mx8mm because the event id is zero.
>
> PS:
> ÂPlease get sdma firmware from below linux-firmware and copy it to your
> local rootfs /lib/firmware/imx/sdma.
> https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/imx/sdma

This is not an option as long as the SDMA RAM firmware breaks the
mainline serial DMA support. Please provide a fixed SDMA RAM firmware
that doesn't replace the ROM serial script, as that one is totally
fine.

Regards,
Lucas

> v2:
> Â 1. add commit log for reverted patches.
> Â 2. add comment for 'ecspi_fixed' in sdma driver.
> Â 3. add 'fsl,imx6sll-ecspi' compatible instead of 'fsl,imx6ul-ecspi'
> ÂÂÂÂÂrather than remove.
>
>
> Robin Gong (15):
> Â Revert "ARM: dts: imx6q: Use correct SDMA script for SPI5 core"
> Â Revert "ARM: dts: imx6: Use correct SDMA script for SPI cores"
> Â Revert "dmaengine: imx-sdma: refine to load context only once"
> Â dmaengine: imx-sdma: remove dupilicated sdma_load_context
> Â dma: engine: imx-sdma: add mcu_2_ecspi script
> Â spi: imx: fix ERR009165
> Â spi: imx: remove ERR009165 workaround on i.mx6ul
> Â dt-bindings: spi: imx: add i.mx6ul to state errata fixed
> Â dmaengine: imx-sdma: remove ERR009165 on i.mx6ul
> Â dt-bindings: dma: imx-sdma: add i.mx6ul/6sx compatible name
> Â dmaengine: imx-sdma: fix ecspi1 rx dma not work on i.mx8mm
> Â ARM64: dts: freescale: imx8mm/8mq: update new compatible name for
> ÂÂÂÂecspi and sdma
> Â ARM: dts: imx6ul: add dma support on ecspi
> Â ARM: dts: imx6sll: correct ecspi/sdma compatible
> Â arm64: defconfig: Enable SDMA on i.mx8mq/8mm
>
> Â.../devicetree/bindings/dma/fsl-imx-sdma.txtÂÂÂÂÂÂÂ|ÂÂ2 +
> Â.../devicetree/bindings/spi/fsl-imx-cspi.txtÂÂÂÂÂÂÂ|ÂÂ2 +
> Âarch/arm/boot/dts/imx6q.dtsiÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ2 +-
> Âarch/arm/boot/dts/imx6qdl.dtsiÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ8 +--
> Âarch/arm/boot/dts/imx6sll.dtsiÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ| 10 ++--
> Âarch/arm/boot/dts/imx6ul.dtsiÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ8 +++
> Âarch/arm64/boot/dts/freescale/imx8mm.dtsiÂÂÂÂÂÂÂÂÂÂ| 14 ++---
> Âarch/arm64/boot/dts/freescale/imx8mq.dtsiÂÂÂÂÂÂÂÂÂÂ|ÂÂ6 +-
> Âarch/arm64/configs/defconfigÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ|ÂÂ3 +
> Âdrivers/dma/imx-sdma.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ| 67 ++++++++++++++++------
> Âdrivers/spi/spi-imx.cÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ| 46 ++++++++++++---
> Âinclude/linux/platform_data/dma-imx-sdma.hÂÂÂÂÂÂÂÂÂ|ÂÂ1 +
> Â12 files changed, 124 insertions(+), 45 deletions(-)
>
> --Â
> 2.7.4
>