Message ID | 1591485677-20533-1-git-send-email-yibin.gong@nxp.com (mailing list archive) |
---|---|
Headers | show |
Series | add ecspi ERR009165 for i.mx6/7 soc family | expand |
On Sun, 2020-06-07 at 07:21 +0800, Robin Gong wrote: > 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. 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 including > i.mx6ul/ > 6ull/6sll do not need this workaroud anymore. All other i.mx6/7/8 > chips > still need this workaroud. 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. Tested-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com> > > 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 > > 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. > v3: > 1.Confirm with design team make sure ERR009165 fixed on > i.mx6ul/i.mx6ull > /i.mx6sll, not fixed on i.mx8m/8mm and other i.mx6/7 legacy > chips. > Correct dts related dts patch in v2. > 2.Clean eratta information in binding doc and new 'tx_glitch_fixed' > flag > in spi-imx driver to state ERR009165 fixed or not. > 3.Enlarge burst size to fifo size for tx since tx_wml set to 0 in > the > errata workaroud, thus improve performance as possible. > v4: > 1.Add Ack tag from Mark and Vinod > 2.Remove checking 'event_id1' zero as 'event_id0'. > v5: > 1.Add the last patch for compatible with the current uart driver > which > using rom script, so both uart ram script and rom script > supported > in latest firmware, by default uart rom script used. UART driver > will be broken without this patch. > v6: > 1.Resend after rebase the latest next branch. > 2.Remove below No.13~No.15 patches of v5 because they were > mergered. > ARM: dts: imx6ul: add dma support on ecspi > ARM: dts: imx6sll: correct sdma compatible > arm64: defconfig: Enable SDMA on i.mx8mq/8mm > 3.Revert "dmaengine: imx-sdma: fix context cache" since > 'context_loaded' removed. > v7: > 1.Put the last patch 13/13 'Revert "dmaengine: imx-sdma: fix > context > cache"' to the ahead of 03/13 'Revert "dmaengine: imx-sdma: > refine > to load context only once" so that no building waring during > comes out > during bisect. > 2.Address Sascha's comments, including eliminating any i.mx6sx in > this > series, adding new 'is_imx6ul_ecspi()' instead imx in imx51 and > taking > care SMC bit for PIO. > 3.Add back missing 'Reviewed-by' tag on 08/15(v5):09/13(v7) > 'spi: imx: add new i.mx6ul compatible name in binding doc' > v8: > 1.remove 0003-Revert-dmaengine-imx-sdma-fix-context-cache.patch and > merge > it into 04/13 of v7 > 2.add 0005-spi-imx-fallback-to-PIO-if-dma-setup-failure.patch for > no any > ecspi function broken even if sdma firmware not updated. > 3.merge 'tx.dst_maxburst' changes in the two continous patches into > one > patch to avoid confusion. > 4.fix typo 'duplicated'. > v9: > 1. add "spi: imx: add dma_sync_sg_for_device after fallback from > dma" > to fix the potential issue brought by commit bcd8e7761ec9("spi: > imx: > fallback to PIO if dma setup failure") which is the only one > patch > of v8 merged. Thanks Matthias for reporting: > > https://lore.kernel.org/linux-arm-kernel/5d246dd81607bb6e5cb9af86ad4e53f7a7a99c50.camel@ew.tq-group.com/ > 2. remove 05/13 of v8 "spi: imx:fallback to PIO if dma setup > failure" > since it's been merged. > > Robin Gong (13): > spi: imx: add dma_sync_sg_for_device after fallback from dma > 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 duplicated sdma_load_context > dmaengine: imx-sdma: add mcu_2_ecspi script > spi: imx: fix ERR009165 > spi: imx: remove ERR009165 workaround on i.mx6ul > spi: imx: add new i.mx6ul compatible name in binding doc > dmaengine: imx-sdma: remove ERR009165 on i.mx6ul > dma: imx-sdma: add i.mx6ul compatible name > dmaengine: imx-sdma: fix ecspi1 rx dma not work on i.mx8mm > dmaengine: imx-sdma: add uart rom script > > .../devicetree/bindings/dma/fsl-imx-sdma.txt | 1 + > .../devicetree/bindings/spi/fsl-imx-cspi.txt | 1 + > arch/arm/boot/dts/imx6q.dtsi | 2 +- > arch/arm/boot/dts/imx6qdl.dtsi | 8 +-- > drivers/dma/imx-sdma.c | 67 > ++++++++++++-------- > drivers/spi/spi-imx.c | 73 > +++++++++++++++++++--- > include/linux/platform_data/dma-imx-sdma.h | 8 ++- > 7 files changed, 120 insertions(+), 40 deletions(-) >