<?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>i.MX ProcessorsのトピックRe: imx28 SPI Slave DMA</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/imx28-SPI-Slave-DMA/m-p/251859#M23200</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thomas&lt;/P&gt;&lt;P&gt;This discussion is closed since no activity. If you still need help, please feel free to reply with an update to this discussion, or create another discussion.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Yixing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 14 Apr 2014 06:36:20 GMT</pubDate>
    <dc:creator>YixingKong</dc:creator>
    <dc:date>2014-04-14T06:36:20Z</dc:date>
    <item>
      <title>imx28 SPI Slave DMA</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx28-SPI-Slave-DMA/m-p/251856#M23197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;after a long time working with SPI Slave experiments and many help from Freescale and DENX people i got a spi slave running with DMA but if i got an commuication error between SPI host and Slave the DMA transfer times out and i can not reset the spi or dma channel can anyone help me about this.&lt;/P&gt;&lt;P&gt;I have tried reset dma , reset spi block.. but nothing helps &lt;/P&gt;&lt;P&gt;code snipped from mxs_spi.c:&lt;/P&gt;&lt;P&gt;ss-&amp;gt;pdesc-&amp;gt;cmd.cmd.bits.bytes = len;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ss-&amp;gt;pdesc-&amp;gt;cmd.cmd.bits.pio_words = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ss-&amp;gt;pdesc-&amp;gt;cmd.cmd.bits.wait4end = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ss-&amp;gt;pdesc-&amp;gt;cmd.cmd.bits.dec_sem = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ss-&amp;gt;pdesc-&amp;gt;cmd.cmd.bits.irq = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //ss-&amp;gt;pdesc-&amp;gt;cmd.cmd.bits.chain = 1; // hello TF&lt;/P&gt;&lt;P&gt;&amp;nbsp; ss-&amp;gt;pdesc-&amp;gt;cmd.cmd.bits.command = write ? DMA_READ : DMA_WRITE;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ss-&amp;gt;pdesc-&amp;gt;cmd.address = spi_buf_dma;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ss-&amp;gt;pdesc-&amp;gt;cmd.pio_words[0] = c0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mxs_dma_desc_append(ss-&amp;gt;dma, ss-&amp;gt;pdesc);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mxs_dma_reset(ss-&amp;gt;dma);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mxs_dma_ack_irq(ss-&amp;gt;dma);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mxs_dma_enable_irq(ss-&amp;gt;dma, 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; init_completion(&amp;amp;ss-&amp;gt;done);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mxs_dma_enable(ss-&amp;gt;dma);&lt;/P&gt;&lt;P&gt;&amp;nbsp; //wait_for_completion(&amp;amp;ss-&amp;gt;done);&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; retw = wait_for_completion_timeout(&amp;amp;ss-&amp;gt;done,500); // hello TF 5s&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; printk(" retw = %x\n",retw);&lt;/P&gt;&lt;P&gt;// fixme after a timeout we have to reset kernel dont know why&lt;/P&gt;&lt;P&gt;&amp;nbsp; if(retw != 0){ // hello TF we have got a value&lt;/P&gt;&lt;P&gt;&amp;nbsp; count = 10000;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while ((__raw_readl(ss-&amp;gt;regs + HW_SSP_CTRL0) &amp;amp; BM_SSP_CTRL0_RUN)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;amp;&amp;amp; count--)&lt;/P&gt;&lt;P&gt;&amp;nbsp; continue;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (count &amp;lt;= 0) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; printk(KERN_ERR "%c: timeout on line %s:%d\n",&lt;/P&gt;&lt;P&gt;&amp;nbsp; write ? 'W' : 'C', __func__, __LINE__);&lt;/P&gt;&lt;P&gt;&amp;nbsp; status = -ETIMEDOUT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (!dma_buf)&lt;/P&gt;&lt;P&gt;&amp;nbsp; dma_unmap_single(ss-&amp;gt;master_dev, spi_buf_dma, len, dir);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printk("Status on ok = %x\n",__raw_readl(ss-&amp;gt;regs + HW_SSP_STATUS));&lt;/P&gt;&lt;P&gt;&amp;nbsp; }else{&lt;/P&gt;&lt;P&gt;&amp;nbsp; printk(KERN_ERR "%c: tom timeout on line %s:%d\n",&lt;/P&gt;&lt;P&gt;&amp;nbsp; write ? 'W' : 'C', __func__, __LINE__);&lt;/P&gt;&lt;P&gt;&amp;nbsp; status = -ETIMEDOUT;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tryed out some of this but without any success&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; printk("Status = %x\n",__raw_readl(ss-&amp;gt;regs + HW_SSP_STATUS));&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; mxs_dma_disable(ss-&amp;gt;dma);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; mxs_dma_reset(ss-&amp;gt;dma);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; //mxs_dma_ack_irq(ss-&amp;gt;dma);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; //mxs_dma_enable_irq(ss-&amp;gt;dma, 1);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; //mxs_reset_block((void __iomem *)ss-&amp;gt;regs + HW_SSP_CTRL0, 0);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; printk("Status = %x\n",__raw_readl(ss-&amp;gt;regs + HW_SSP_STATUS));&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; __raw_writel(BM_SSP_CTRL1_DMA_ENABLE, ss-&amp;gt;regs + HW_SSP_CTRL1_CLR);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; printk("Status = %x\n",__raw_readl(ss-&amp;gt;regs + HW_SSP_STATUS));&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the SSP_Status Register returns 0xE0200020 maybe anyone can interpret it dont know how bit 21 can be resetet (DMASENSE) i think this is the problem &lt;/P&gt;&lt;P&gt;during a normal operation without a timeout SSP Status returns 0xE0040020 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks for help&lt;/P&gt;&lt;P&gt;Thomas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2014 20:36:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx28-SPI-Slave-DMA/m-p/251856#M23197</guid>
      <dc:creator>tomi</dc:creator>
      <dc:date>2014-02-21T20:36:59Z</dc:date>
    </item>
    <item>
      <title>Re: imx28 SPI Slave DMA</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx28-SPI-Slave-DMA/m-p/251857#M23198</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thomas&lt;/P&gt;&lt;P&gt;We are sorry for getting back to you so late. Are you still stuck with the issue? If you have somehow to resolved the issue, can we close the discussion? If you still need help, please feel free to reply with an update to this discussion.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Yixing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Apr 2014 07:09:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx28-SPI-Slave-DMA/m-p/251857#M23198</guid>
      <dc:creator>YixingKong</dc:creator>
      <dc:date>2014-04-04T07:09:53Z</dc:date>
    </item>
    <item>
      <title>Re: imx28 SPI Slave DMA</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx28-SPI-Slave-DMA/m-p/251858#M23199</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thomas&lt;/P&gt;&lt;P&gt;Had your issue got resolved? If yes, we are going to close the discussion in 3 days. If you still need help, please feel free to reply with an update to this discussion.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Yixing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Apr 2014 06:54:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx28-SPI-Slave-DMA/m-p/251858#M23199</guid>
      <dc:creator>YixingKong</dc:creator>
      <dc:date>2014-04-10T06:54:13Z</dc:date>
    </item>
    <item>
      <title>Re: imx28 SPI Slave DMA</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx28-SPI-Slave-DMA/m-p/251859#M23200</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thomas&lt;/P&gt;&lt;P&gt;This discussion is closed since no activity. If you still need help, please feel free to reply with an update to this discussion, or create another discussion.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Yixing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Apr 2014 06:36:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx28-SPI-Slave-DMA/m-p/251859#M23200</guid>
      <dc:creator>YixingKong</dc:creator>
      <dc:date>2014-04-14T06:36:20Z</dc:date>
    </item>
  </channel>
</rss>

