<?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: i.MX6Q UART SDMA issue on ARM2 -blog archive in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185535#M8654</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Cheng,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My customer is encountering this error, while communicating to a bluetooth module.&lt;/P&gt;&lt;P&gt;Is it supporting the UART SDMA issue in L3.14.28_1.0.0?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Keita&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 12 Nov 2015 05:40:12 GMT</pubDate>
    <dc:creator>keitanagashima</dc:creator>
    <dc:date>2015-11-12T05:40:12Z</dc:date>
    <item>
      <title>i.MX6Q UART SDMA issue on ARM2 -blog archive</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185526#M8645</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are two uart which are ttymxc1 and ttymxc3 on ARM2, and usually ttymcx3 is used for console.&lt;BR /&gt;If we use ttymxc1 to transmit data from PC to ARM2, it will get an error message "We cannot prepare for the RX slave dma!" and the transmission will be stopped randomly.&lt;BR /&gt;The root cause of this issue is software process of SDMA could be mistaken when an unexpected hardware interrupt was happened.&lt;BR /&gt;Let have a look about SDMA source code.&lt;/P&gt;&lt;P&gt;static int sdma_run_channel(struct sdma_channel *sdmac)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;struct sdma_engine *sdma = sdmac-&amp;gt;sdma;&lt;BR /&gt;&amp;nbsp;int channel = sdmac-&amp;gt;channel;&lt;BR /&gt;&amp;nbsp;int ret;&lt;/P&gt;&lt;P&gt;&amp;nbsp;init_completion(&amp;amp;sdmac-&amp;gt;done);&lt;/P&gt;&lt;P&gt;&amp;nbsp;wmb();&lt;BR /&gt;&amp;nbsp;&lt;SPAN style="color: #000080;"&gt;__raw_writel(1 &amp;lt;&amp;lt; channel, sdma-&amp;gt;regs + SDMA_H_START);&amp;nbsp; // (1) Start SDMA channel to load script.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000080;"&gt;&amp;nbsp;ret = wait_for_completion_timeout(&amp;amp;sdmac-&amp;gt;done, HZ);&amp;nbsp; // (2) Wait for SDMA interrupt to indicate script loading is completed.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;return ret ? 0 : -ETIMEDOUT;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;static void mxc_sdma_handle_channel(struct sdma_channel *sdmac)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&lt;SPAN style="color: #000080;"&gt;complete(&amp;amp;sdmac-&amp;gt;done);&amp;nbsp; // (3) Inform script loading is completed.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;/* not interested in channel 0 interrupts */&lt;BR /&gt;&amp;nbsp;if (sdmac-&amp;gt;channel == 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;if (sdmac-&amp;gt;flags &amp;amp; IMX_DMA_SG_LOOP)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sdma_handle_channel_loop(sdmac);&lt;BR /&gt;&amp;nbsp;else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;mxc_sdma_handle_channel_normal(sdmac);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;The correct process we expected is (1) -&amp;gt; (2) -&amp;gt; (3).&lt;BR /&gt;But, a bug exists in this software design when an unexcepted hardware interrupt was happened between (1) and (2).&lt;/P&gt;&lt;P&gt;Please think about the below scenario.&lt;BR /&gt;&lt;SPAN style="color: #000080;"&gt;&amp;nbsp;__raw_writel(1 &amp;lt;&amp;lt; channel, sdma-&amp;gt;regs + SDMA_H_START);&amp;nbsp; // (1) Start SDMA channel to load script&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;other hardware interrupt ISR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp;SDMA hardware interrupt ISR;&amp;nbsp; // (3) will be executed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #000080;"&gt;&amp;nbsp;ret = wait_for_completion_timeout(&amp;amp;sdmac-&amp;gt;done, HZ);&amp;nbsp; // (2) Wait for SDMA interrupt to indicate script loading is completed.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;The process flow will be (1) -&amp;gt; (3) -&amp;gt; (2) and it causes (2) to get timeout and return an error code.&lt;BR /&gt;Solution A:&lt;BR /&gt;Use a work queque to execute "complete" function in SDMA interrupt handler.&lt;BR /&gt;The drawback is the performance of SDMA will be affected.&lt;/P&gt;&lt;P&gt;Solution B:&lt;BR /&gt;Re-load the script/context when receiving (2) timeout error code.&lt;BR /&gt;Because this bug as the above described is happened seldom, this solution should be acceptable.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2012 09:04:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185526#M8645</guid>
      <dc:creator>ethan_cheng</dc:creator>
      <dc:date>2012-09-03T09:04:11Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q UART SDMA issue on ARM2 -blog archive</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185527#M8646</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Very good sharing, thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Sep 2012 07:23:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185527#M8646</guid>
      <dc:creator>speer</dc:creator>
      <dc:date>2012-09-06T07:23:10Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q UART SDMA issue on ARM2 -blog archive</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185528#M8647</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Cheng&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;does UART SDMA must work with hardware flow control?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2012 04:59:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185528#M8647</guid>
      <dc:creator>jiadawang</dc:creator>
      <dc:date>2012-09-24T04:59:54Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q UART SDMA issue on ARM2 -blog archive</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185529#M8648</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes.  UART DMA need hardware flow control.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;Frank Li&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2012 05:01:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185529#M8648</guid>
      <dc:creator>FrankLi1z</dc:creator>
      <dc:date>2012-09-24T05:01:51Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q UART SDMA issue on ARM2 -blog archive</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185530#M8649</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Zhi, li thank you for your confirm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found in the UART DMA support patch&lt;/P&gt;&lt;P&gt;it also mentions DTE mode, does it mean UART SDMA also have to work in DTE mode?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2012 05:06:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185530#M8649</guid>
      <dc:creator>jiadawang</dc:creator>
      <dc:date>2012-09-24T05:06:09Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q UART SDMA issue on ARM2 -blog archive</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185531#M8650</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;BLOCKQUOTE&gt;
&lt;P&gt;jiadawang wrote:&lt;/P&gt;
I found in the UART DMA support patch&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I am encountering this error, while communicating to a bluetooth module.Can you post the link to that patch?&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Balaji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:36:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185531#M8650</guid>
      <dc:creator>Balaji_ng</dc:creator>
      <dc:date>2020-10-29T09:36:15Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q UART SDMA issue on ARM2 -blog archive</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185532#M8651</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;here it is:&lt;/P&gt;&lt;P&gt;&lt;A href="https://git.linaro.org/gitweb?p=landing-teams/working/freescale/kernel.git;a=commit;h=c12d5a54cdde01117988325bb1a9227abbfde9ba"&gt;https://git.linaro.org/gitweb?p=landing-teams/working/freescale/kernel.git;a=commit;h=c12d5a54cdde01117988325bb1a9227abbfde9ba&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Jun 2013 14:25:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185532#M8651</guid>
      <dc:creator>jiadawang</dc:creator>
      <dc:date>2013-06-24T14:25:38Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q UART SDMA issue on ARM2 -blog archive</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185533#M8652</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Cheng,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We use Freescale i.MX6Q with Linux 3.0.35_4.0.0&lt;/P&gt;&lt;P&gt;We use ttymxc2 @ 115k2 without RTS/CTS&lt;/P&gt;&lt;P&gt;We use ttymxc0 for @ 115k2 without RTS/CTS for communication with our machine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When i do put a linux console on ttymxc2 sometimes suddenly it stops working and then i get:&lt;/P&gt;&lt;P&gt;"We cannot prepare for the RX slave dma!"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So it looks that the issue you described is not fixed in 3.0.35_4.0.0 yet?&lt;/P&gt;&lt;P&gt;Is it fixed in 3.0.35_4.1.0?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Looking forward to your reply.&lt;/P&gt;&lt;P&gt;Sake&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Oct 2013 14:27:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185533#M8652</guid>
      <dc:creator>sbergsma</dc:creator>
      <dc:date>2013-10-10T14:27:37Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q UART SDMA issue on ARM2 -blog archive</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185534#M8653</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am also interested in fix for this issue, and I can tell that this is not fixed in the latest BSP releases.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;I have a board that has bluetooth connected to UART with RTS/CTS which works okay &lt;/SPAN&gt;&lt;STRONG&gt;*only&lt;/STRONG&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;STRONG&gt; if SDMA is disabled*&lt;/STRONG&gt;. More info here &lt;/SPAN&gt;&lt;A href="https://groups.google.com/d/msg/wandboard/kw31WukrGdU/uP-YpWJWK4QJ" style="font-size: 10pt; line-height: 1.5em;" title="https://groups.google.com/d/msg/wandboard/kw31WukrGdU/uP-YpWJWK4QJ"&gt;Google Groups&lt;/A&gt; (last part of the post).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope to see answer from Freescale guys.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Dmitriy Beykun&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Oct 2013 19:19:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185534#M8653</guid>
      <dc:creator>dmitriybeykun</dc:creator>
      <dc:date>2013-10-10T19:19:05Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q UART SDMA issue on ARM2 -blog archive</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185535#M8654</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Cheng,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My customer is encountering this error, while communicating to a bluetooth module.&lt;/P&gt;&lt;P&gt;Is it supporting the UART SDMA issue in L3.14.28_1.0.0?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Keita&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Nov 2015 05:40:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-UART-SDMA-issue-on-ARM2-blog-archive/m-p/185535#M8654</guid>
      <dc:creator>keitanagashima</dc:creator>
      <dc:date>2015-11-12T05:40:12Z</dc:date>
    </item>
  </channel>
</rss>

