<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: IMX7 SPI DMA request in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838032#M128632</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;Unfortunately I could not get&amp;nbsp; good performance .I only got&amp;nbsp; 5 fps and glitchy display. I decided to use parallel RGB interface instead of SPI.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 24 Jun 2019 06:47:24 GMT</pubDate>
    <dc:creator>caglarabidin</dc:creator>
    <dc:date>2019-06-24T06:47:24Z</dc:date>
    <item>
      <title>IMX7 SPI DMA request</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838027#M128627</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;we have an SPI tft display connected to ECSPI3. We're using fbtft for the display driver.&lt;/P&gt;&lt;P&gt;To avoid a gap after every 8bit transfer on SPI, i've backported changes to spi-imx.c from a vanilla 4.14 kernel to the 4.9.88_2.0.0_ga.&lt;/P&gt;&lt;P&gt;When dma is enabled on ecspi3 i get "spi_imx 30840000.ecspi: I/O Error in DMA TX" errors when loading the fbtft driver.&lt;/P&gt;&lt;P&gt;fbtft first sends short transfers to spi which are&amp;nbsp;sent in PIO mode by the SPI driver, then it sends bigger blocks of data&amp;nbsp;sent&amp;nbsp;in DMA mode.&lt;/P&gt;&lt;P&gt;To check what's wrong i mad a script that prints the DMA requests register (SDMAARM_EVT_MIRROR) in a loop when modprobing the driver. The register is either&amp;nbsp;0x00000000 or&amp;nbsp;0x00000020.&lt;/P&gt;&lt;P&gt;It seems it's only generating eCSPI3 Rx requests, no Tx requests.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've found out if i modify the driver to only set ECSPIx_DMAREG for DMA transfer, and clear it for PIO transfers. I don't see have the problem. And&amp;nbsp;polling the DMA request register sometimes shows&amp;nbsp;0x00000030, meaning&amp;nbsp;eCSPI3 Tx request bit is set.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is it possible the eCSPI3 Tx DMA request hasn't been set, on Tx empty? Or SDMA has cleared this DMA request before a SDMA transfer was programmed?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below is the change that solves the problem&lt;/P&gt;&lt;P&gt;from this:&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="token function"&gt;writel&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;MX51_ECSPI_DMA_RX_WML&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;spi_imx&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;wml&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;MX51_ECSPI_DMA_TX_WML&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;tx_wml&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;MX51_ECSPI_DMA_RXT_WML&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;spi_imx&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;wml&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX51_ECSPI_DMA_TEDEN &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; MX51_ECSPI_DMA_RXDEN &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX51_ECSPI_DMA_RXTDEN&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; spi_imx&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;base &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; MX51_ECSPI_DMA&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;to this:&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="token function"&gt;writel&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;spi_imx&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;usedma &lt;SPAN class="operator token"&gt;?&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;MX51_ECSPI_DMA_RX_WML&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;spi_imx&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;wml&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;MX51_ECSPI_DMA_TX_WML&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;tx_wml&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;MX51_ECSPI_DMA_RXT_WML&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;spi_imx&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;wml&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX51_ECSPI_DMA_TEDEN &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; MX51_ECSPI_DMA_RXDEN &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX51_ECSPI_DMA_RXTDEN &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; spi_imx&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;base &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; MX51_ECSPI_DMA&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks for the help,&lt;/P&gt;&lt;P&gt;Cedric&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Aug 2018 13:28:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838027#M128627</guid>
      <dc:creator>cedricjehasse</dc:creator>
      <dc:date>2018-08-09T13:28:47Z</dc:date>
    </item>
    <item>
      <title>Re: IMX7 SPI DMA request</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838028#M128628</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Cedric,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;I'm assuming you're referring to the &lt;SPAN&gt;&lt;STRONG&gt;eCSPI3&lt;/STRONG&gt;&lt;/SPAN&gt; on i.MX51, while on the i.MX51 reference manual, I can't see the &lt;SPAN&gt;&lt;STRONG&gt;eCSPI3&lt;/STRONG&gt;&lt;/SPAN&gt; module.&lt;BR /&gt; &lt;BR /&gt; (To support SDMA transfer on one peripheral, there should be HW connection between the peripheral and the SDMA controller.&lt;BR /&gt; &amp;nbsp; 1. &lt;SPAN&gt;&lt;STRONG&gt;DMA&lt;/STRONG&gt;&lt;/SPAN&gt; event should be mapped&lt;BR /&gt; &amp;nbsp; 2. Peripheral FIFO should be accessible for the SDMA controller&lt;BR /&gt; &amp;nbsp;For chip like i.MX6QD, the eCSPI1-5 all support the SDMA transfer.)&lt;BR /&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;Regards&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Aug 2018 15:07:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838028#M128628</guid>
      <dc:creator>Bio_TICFSL</dc:creator>
      <dc:date>2018-08-14T15:07:29Z</dc:date>
    </item>
    <item>
      <title>Re: IMX7 SPI DMA request</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838029#M128629</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it's eCSPI3 on a i.MX7.&lt;/P&gt;&lt;P&gt;The datasheet says the scheduler detects the rising edge of DMA requests.&lt;/P&gt;&lt;P&gt;What happens if the DMA channel is disabled&amp;nbsp;at the time the DMA request is set, and&amp;nbsp;the DMA channel gets enabled when the DMA request signal is already active? Will the scheduler set the channel pending flag, or is this only set after a new edge detection on the DMA request signal?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Cedric&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Aug 2018 08:35:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838029#M128629</guid>
      <dc:creator>cedricjehasse</dc:creator>
      <dc:date>2018-08-16T08:35:55Z</dc:date>
    </item>
    <item>
      <title>Re: IMX7 SPI DMA request</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838030#M128630</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp; Cedric,&lt;/P&gt;&lt;P&gt;&amp;nbsp;I am trying to interface spi-tft screen by using fbtft on imx6 with yocto 4.9.88 kernel. Driver is loaded and worked without giving an error, but i could not get enough data rate for video display even at&amp;nbsp; 30MHz-60MHz spi clock speeds.when i inspect data from scope, i saw there is a&amp;nbsp; ~50us gap between bursts.&amp;nbsp; I wonder have you encountered with such a problem? Do you have any suggestion ?&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Feb 2019 12:24:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838030#M128630</guid>
      <dc:creator>caglarabidin</dc:creator>
      <dc:date>2019-02-28T12:24:58Z</dc:date>
    </item>
    <item>
      <title>Re: IMX7 SPI DMA request</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838031#M128631</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/caglarabidin"&gt;caglarabidin&lt;/A&gt;‌,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Did you get any resolution for the ~50us gap in framebuffer bursts? I am also facing similar issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Darshak&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Jun 2019 08:01:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838031#M128631</guid>
      <dc:creator>darsh_dev</dc:creator>
      <dc:date>2019-06-18T08:01:54Z</dc:date>
    </item>
    <item>
      <title>Re: IMX7 SPI DMA request</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838032#M128632</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;Unfortunately I could not get&amp;nbsp; good performance .I only got&amp;nbsp; 5 fps and glitchy display. I decided to use parallel RGB interface instead of SPI.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Jun 2019 06:47:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX7-SPI-DMA-request/m-p/838032#M128632</guid>
      <dc:creator>caglarabidin</dc:creator>
      <dc:date>2019-06-24T06:47:24Z</dc:date>
    </item>
  </channel>
</rss>

