<?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: imx6sx sdma m2m test issue</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605428#M91259</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The result using the dmatest inside the Linux source tree.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Untitled.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/11274i5D047C4C2C5074FC/image-size/large?v=v2&amp;amp;px=999" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 21 Dec 2016 05:04:09 GMT</pubDate>
    <dc:creator>BiyongSUN</dc:creator>
    <dc:date>2016-12-21T05:04:09Z</dc:date>
    <item>
      <title>imx6sx sdma m2m test issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605422#M91253</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Frankly speaking, we failed to move data between memory using sdma, our kernel branch is 'imx_4.1.15_2.0.0_ga', the steps of our dma test is below,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1)&amp;nbsp;dma_request_channel() to get the available sdma channel&lt;/P&gt;&lt;P&gt;2) dma alloc the source buffer and dest buffer&lt;/P&gt;&lt;P&gt;3)&amp;nbsp;dmaengine_slave_config() to config the dma direction to be DMA_MEM_TO_MEM&lt;/P&gt;&lt;P&gt;4)&amp;nbsp;dma_map_sg() to map the source and desc buffer into scatterlist&lt;/P&gt;&lt;P&gt;5)&amp;nbsp;device_prep_dma_sg() to process the scatterlist&lt;/P&gt;&lt;P&gt;6)&amp;nbsp;dmaengine_submit() and&amp;nbsp;wait_for_completion()&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We found that the sdma will not work once we pend the request to such dma channel, it is blocked in waiting for completion, such a weird thing! By the way, imx's uart can employ the sdma in&amp;nbsp;DMA_MEM_TO_DEV way that the sdma will be gererated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there anybody who tested&amp;nbsp;&lt;SPAN&gt;DMA_MEM_TO_MEM over imx6sx board of the kernel 'imx_4.1.15_2.0.0_ga'?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Dec 2016 11:01:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605422#M91253</guid>
      <dc:creator>袁增兴</dc:creator>
      <dc:date>2016-12-13T11:01:49Z</dc:date>
    </item>
    <item>
      <title>Re: imx6sx sdma m2m test issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605423#M91254</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you, I have submitted A professional service request to the official.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Dec 2016 01:23:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605423#M91254</guid>
      <dc:creator>袁增兴</dc:creator>
      <dc:date>2016-12-20T01:23:03Z</dc:date>
    </item>
    <item>
      <title>Re: imx6sx sdma m2m test issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605424#M91255</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We have&amp;nbsp;&amp;nbsp; &amp;nbsp;module_test\mxc_sdma_memcopy_test.c in the uni_test&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;test\mxc_sdma_test\mxc_sdma_test.c &amp;nbsp;in the uni_test is the user space application to do the test.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you read the code carefully, the driver is written by Linux DMA API and the BSP just mapping the Linux DMA API to sdma of the i.MX6.&lt;/P&gt;&lt;P&gt;If you check the Linux header file, the DMA_BIDIRECTIONAL, DMA_TO_DEVICE, DMA_FROM_DEVICE, DMA_NONE&amp;nbsp; is listed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;include\linux\dma-direction.h&lt;/P&gt;&lt;P&gt;#define _LINUX_DMA_DIRECTION_H&lt;BR /&gt;/*&lt;BR /&gt;&amp;nbsp;* These definitions mirror those in pci.h, so they can be used&lt;BR /&gt;&amp;nbsp;* interchangeably with their PCI_ counterparts.&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;enum dma_data_direction {&lt;BR /&gt;&amp;nbsp;DMA_BIDIRECTIONAL = 0,&lt;BR /&gt;&amp;nbsp;DMA_TO_DEVICE = 1,&lt;BR /&gt;&amp;nbsp;DMA_FROM_DEVICE = 2,&lt;BR /&gt;&amp;nbsp;DMA_NONE = 3,&lt;BR /&gt;};&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please note the following line in the driver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #ff0000;"&gt;dma_m2m_desc = dma_m2m_chan-&amp;gt;device-&amp;gt;device_prep_dma_memcpy(dma_m2m_chan, dma_dst, dma_src, SDMA_BUF_SIZE,0);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ssize_t sdma_write(struct file * filp, const char __user * buf, size_t count,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;loff_t * offset)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;u32 *index1, *index2, *index3, i, ret;&lt;BR /&gt;&amp;nbsp;struct dma_slave_config dma_m2m_config = {0};&lt;BR /&gt;&amp;nbsp;struct dma_async_tx_descriptor *dma_m2m_desc;&lt;BR /&gt;&amp;nbsp;u32 *index4 = wbuf4;&lt;BR /&gt;&amp;nbsp;dma_addr_t dma_src, dma_dst;&lt;/P&gt;&lt;P&gt;&amp;nbsp;index1 = wbuf;&lt;BR /&gt;&amp;nbsp;index2 = wbuf2;&lt;BR /&gt;&amp;nbsp;index3 = wbuf3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;for (i=0; i&amp;lt;SDMA_BUF_SIZE/4; i++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;*(index1 + i) = 0x12121212;&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;for (i=0; i&amp;lt;SDMA_BUF_SIZE/2/4; i++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;*(index2 + i) = 0x34343434;&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;for (i=0; i&amp;lt;SDMA_BUF_SIZE/4; i++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;*(index3 + i) = 0x56565656;&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;for (i=0; i&amp;lt;SDMA_BUF_SIZE/4; i++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;*(index4 + i) = 0x56565656;&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;#if 0&lt;BR /&gt;&amp;nbsp;for (i=0; i&amp;lt;SDMA_BUF_SIZE/4; i++) {&lt;BR /&gt;&amp;nbsp;printk("input data_%d : %x\n", i, *(wbuf+i));&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;for (i=0; i&amp;lt;SDMA_BUF_SIZE/2/4; i++) {&lt;BR /&gt;&amp;nbsp;printk("input data2_%d : %x\n", i, *(wbuf2+i));&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;for (i=0; i&amp;lt;SDMA_BUF_SIZE/4; i++) {&lt;BR /&gt;&amp;nbsp;printk("input data3_%d : %x\n", i, *(wbuf3+i));&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;#endif&lt;BR /&gt;&amp;nbsp;dma_m2m_config.direction = DMA_MEM_TO_MEM;&lt;BR /&gt;&amp;nbsp;dma_m2m_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;&lt;BR /&gt;&amp;nbsp;dmaengine_slave_config(dma_m2m_chan, &amp;amp;dma_m2m_config);&lt;/P&gt;&lt;P&gt;&amp;nbsp;sg_init_table(sg, 3);&lt;BR /&gt;&amp;nbsp;sg_set_buf(&amp;amp;sg[0], wbuf, SDMA_BUF_SIZE);&lt;BR /&gt;&amp;nbsp;sg_set_buf(&amp;amp;sg[1], wbuf2, SDMA_BUF_SIZE/2);&lt;BR /&gt;&amp;nbsp;sg_set_buf(&amp;amp;sg[2], wbuf3, SDMA_BUF_SIZE);&lt;BR /&gt;&amp;nbsp;ret = dma_map_sg(NULL, sg, 3, dma_m2m_config.direction);&lt;/P&gt;&lt;P&gt;#if (LINUX_VERSION_CODE &amp;lt;= KERNEL_VERSION(3,0,35))&lt;BR /&gt;&amp;nbsp;dma_m2m_desc = dma_m2m_chan-&amp;gt;device-&amp;gt;device_prep_slave_sg(dma_m2m_chan,sg, 3, dma_m2m_config.direction, 1);&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;sg_init_table(sg2, 3);&lt;BR /&gt;&amp;nbsp;sg_set_buf(&amp;amp;sg2[0], rbuf, SDMA_BUF_SIZE);&lt;BR /&gt;&amp;nbsp;sg_set_buf(&amp;amp;sg2[1], rbuf2, SDMA_BUF_SIZE/2);&lt;BR /&gt;&amp;nbsp;sg_set_buf(&amp;amp;sg2[2], rbuf3, SDMA_BUF_SIZE);&lt;BR /&gt;&amp;nbsp;ret = dma_map_sg(NULL, sg2, 3, dma_m2m_config.direction);&lt;/P&gt;&lt;P&gt;#if (LINUX_VERSION_CODE &amp;lt;= KERNEL_VERSION(3,0,35))&lt;BR /&gt;&amp;nbsp;dma_m2m_desc = dma_m2m_chan-&amp;gt;device-&amp;gt;device_prep_slave_sg(dma_m2m_chan,sg2, 3, dma_m2m_config.direction, 0);&lt;BR /&gt;#else&lt;BR /&gt;&amp;nbsp;dma_m2m_desc = dma_m2m_chan-&amp;gt;device-&amp;gt;device_prep_dma_sg(dma_m2m_chan,sg2, 3, sg, 3, 0);&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;dma_m2m_desc-&amp;gt;callback = dma_m2m_callback;&lt;BR /&gt;&amp;nbsp;dmaengine_submit(dma_m2m_desc);&lt;BR /&gt;#if (LINUX_VERSION_CODE &amp;gt;= KERNEL_VERSION(3,0,35))&lt;BR /&gt;&amp;nbsp;dma_async_issue_pending(dma_m2m_chan);&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;wait_for_completion(&amp;amp;dma_m2m_ok);&lt;BR /&gt;&amp;nbsp;dma_unmap_sg(NULL, sg, 3, dma_m2m_config.direction);&lt;BR /&gt;&amp;nbsp;dma_unmap_sg(NULL, sg2, 3, dma_m2m_config.direction);&lt;BR /&gt;#if (LINUX_VERSION_CODE &amp;gt;= KERNEL_VERSION(3,0,35))&lt;BR /&gt;&amp;nbsp;dma_src = dma_map_single(NULL, wbuf4, SDMA_BUF_SIZE, DMA_TO_DEVICE);&lt;BR /&gt;&amp;nbsp;dma_dst = dma_map_single(NULL, rbuf4, SDMA_BUF_SIZE, DMA_FROM_DEVICE);&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;&amp;nbsp;dma_m2m_desc = dma_m2m_chan-&amp;gt;device-&amp;gt;device_prep_dma_memcpy(dma_m2m_chan, dma_dst, dma_src, SDMA_BUF_SIZE,0);&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;if (!dma_m2m_desc)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;printk("prep error!!\n");&lt;BR /&gt;&amp;nbsp;dma_m2m_desc-&amp;gt;callback = dma_m2m_callback;&lt;BR /&gt;&amp;nbsp;dmaengine_submit(dma_m2m_desc);&lt;BR /&gt;&amp;nbsp;dma_async_issue_pending(dma_m2m_chan);&lt;BR /&gt;&amp;nbsp;wait_for_completion(&amp;amp;dma_m2m_ok);&lt;BR /&gt;&amp;nbsp;dma_unmap_single(NULL, dma_src, SDMA_BUF_SIZE, DMA_TO_DEVICE);&lt;BR /&gt;&amp;nbsp;dma_unmap_single(NULL, dma_dst, SDMA_BUF_SIZE, DMA_FROM_DEVICE);&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;struct file_operations dma_fops = {&lt;BR /&gt;&amp;nbsp;open:&amp;nbsp;&amp;nbsp;sdma_open,&lt;BR /&gt;&amp;nbsp;release:&amp;nbsp;sdma_release,&lt;BR /&gt;&amp;nbsp;read:&amp;nbsp;&amp;nbsp;sdma_read,&lt;BR /&gt;&amp;nbsp;write:&amp;nbsp;&amp;nbsp;sdma_write,&lt;BR /&gt;};&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Dec 2016 08:27:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605424#M91255</guid>
      <dc:creator>BiyongSUN</dc:creator>
      <dc:date>2016-12-20T08:27:01Z</dc:date>
    </item>
    <item>
      <title>Re: imx6sx sdma m2m test issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605425#M91256</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi biyong sun,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use your sdma_write code in the kernel instead of mine, it is still blocked. My sdma_open() function is below,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define SDMA_BUF_SIZE 1024*60&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static bool dma_m2m_filter(struct dma_chan *chan, void *param)&lt;BR /&gt;{&lt;BR /&gt; if (!imx_dma_is_general_purpose(chan))&lt;BR /&gt; return false;&lt;BR /&gt; chan-&amp;gt;private = param;&lt;BR /&gt; return true;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;int sdma_open(struct inode *inode, struct file *filp)&lt;BR /&gt;{&lt;BR /&gt; dma_cap_mask_t dma_m2m_mask;&lt;BR /&gt; struct imx_dma_data m2m_dma_data;&lt;/P&gt;&lt;P&gt;init_completion(&amp;amp;dma_m2m_ok);&lt;/P&gt;&lt;P&gt;dma_cap_zero(dma_m2m_mask);&lt;BR /&gt; dma_cap_set(DMA_SLAVE, dma_m2m_mask);&lt;BR /&gt; m2m_dma_data.peripheral_type = IMX_DMATYPE_MEMORY;&lt;BR /&gt; m2m_dma_data.priority = DMA_PRIO_HIGH;&lt;BR /&gt; dma_m2m_chan = dma_request_channel(dma_m2m_mask, dma_m2m_filter,&lt;BR /&gt; &amp;amp;m2m_dma_data);&lt;BR /&gt; if (!dma_m2m_chan) {&lt;BR /&gt; printk("Error opening the SDMA memory to memory channel\n");&lt;BR /&gt; return -EINVAL;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;wbuf = kzalloc(SDMA_BUF_SIZE, GFP_DMA);&lt;BR /&gt; if(!wbuf) {&lt;BR /&gt; printk("error wbuf !!!!!!!!!!!\n");&lt;BR /&gt; return -1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;wbuf2 = kzalloc(SDMA_BUF_SIZE, GFP_DMA);&lt;BR /&gt; if(!wbuf2) {&lt;BR /&gt; printk("error wbuf2 !!!!!!!!!!!\n");&lt;BR /&gt; return -1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;wbuf3 = kzalloc(SDMA_BUF_SIZE, GFP_DMA);&lt;BR /&gt; if(!wbuf3) {&lt;BR /&gt; printk("error wbuf3 !!!!!!!!!!!\n");&lt;BR /&gt; return -1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;wbuf4 = kzalloc(SDMA_BUF_SIZE, GFP_DMA);&lt;BR /&gt; if(!wbuf4) {&lt;BR /&gt; printk("error wbuf4 !!!!!!!!!!!\n");&lt;BR /&gt; return -1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;rbuf = kzalloc(SDMA_BUF_SIZE, GFP_DMA);&lt;BR /&gt; if(!rbuf) {&lt;BR /&gt; printk("error rbuf !!!!!!!!!!!\n");&lt;BR /&gt; return -1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;rbuf2 = kzalloc(SDMA_BUF_SIZE, GFP_DMA);&lt;BR /&gt; if(!rbuf2) {&lt;BR /&gt; printk("error rbuf2 !!!!!!!!!!!\n");&lt;BR /&gt; return -1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;rbuf3 = kzalloc(SDMA_BUF_SIZE, GFP_DMA);&lt;BR /&gt; if(!rbuf3) {&lt;BR /&gt; printk("error rbuf3 !!!!!!!!!!!\n");&lt;BR /&gt; return -1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;rbuf4 = kzalloc(SDMA_BUF_SIZE, GFP_DMA);&lt;BR /&gt; if(!rbuf4) {&lt;BR /&gt; printk("error rbuf4 !!!!!!!!!!!\n");&lt;BR /&gt; return -1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Dec 2016 10:39:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605425#M91256</guid>
      <dc:creator>袁增兴</dc:creator>
      <dc:date>2016-12-20T10:39:05Z</dc:date>
    </item>
    <item>
      <title>Re: imx6sx sdma m2m test issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605426#M91257</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tested your code, found that dma engine will be blocked using sg list mode, but succeed in&amp;nbsp;&lt;STRONG style="color: #ff0000; background-color: #ffffff; border: 0px; font-weight: bold;"&gt;device_prep_dma_memcpy.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regard&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Dec 2016 11:05:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605426#M91257</guid>
      <dc:creator>袁增兴</dc:creator>
      <dc:date>2016-12-20T11:05:28Z</dc:date>
    </item>
    <item>
      <title>Re: imx6sx sdma m2m test issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605427#M91258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The code is not complete and please check the code in uni_test. &lt;/P&gt;&lt;P&gt;And another simple code is mxc_sdma_mem_test.c&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Dec 2016 03:24:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605427#M91258</guid>
      <dc:creator>BiyongSUN</dc:creator>
      <dc:date>2016-12-21T03:24:40Z</dc:date>
    </item>
    <item>
      <title>Re: imx6sx sdma m2m test issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605428#M91259</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The result using the dmatest inside the Linux source tree.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Untitled.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/11274i5D047C4C2C5074FC/image-size/large?v=v2&amp;amp;px=999" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Dec 2016 05:04:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605428#M91259</guid>
      <dc:creator>BiyongSUN</dc:creator>
      <dc:date>2016-12-21T05:04:09Z</dc:date>
    </item>
    <item>
      <title>Re: imx6sx sdma m2m test issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605429#M91260</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;complete unit tests codes can be found on &lt;/P&gt;&lt;P&gt;&lt;A href="http://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-test-5.7.tar.gz"&gt;www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-test-5.7.tar.gz&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Dec 2016 06:21:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605429#M91260</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2016-12-21T06:21:06Z</dc:date>
    </item>
    <item>
      <title>Re: imx6sx sdma m2m test issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605430#M91261</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;Thanks for the support, I am trying to code the multi-thread in user space instead of the dmatest to use the multi-dma-channel concurently, which I found that the dma performance is bad, it is about&amp;nbsp;&amp;nbsp;42MB/s~44MB/s, which is lower than the cpu memcpy. Can u provide the limit details of the sdma controller?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Dec 2016 11:33:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605430#M91261</guid>
      <dc:creator>袁增兴</dc:creator>
      <dc:date>2016-12-22T11:33:12Z</dc:date>
    </item>
    <item>
      <title>Re: imx6sx sdma m2m test issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605431#M91262</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;igor, thanks, this helps me a lot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Dec 2016 11:34:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/605431#M91262</guid>
      <dc:creator>袁增兴</dc:creator>
      <dc:date>2016-12-22T11:34:23Z</dc:date>
    </item>
    <item>
      <title>Re: imx6sx sdma m2m test issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/1212411#M167825</link>
      <description>&lt;P&gt;I was facing a memory mapping issue running this test module for imx8mm. Mapping functions were always returning NULL addresses.&lt;/P&gt;&lt;P&gt;It finally worked for me when replacing dma_map_ fuctions NULL device parameter by dma_m2m_chan-&amp;gt;device-&amp;gt;dev !&lt;/P&gt;&lt;P&gt;ex:&lt;/P&gt;&lt;P&gt;ret = dma_map_sg(&lt;STRONG&gt;dma_m2m_chan-&amp;gt;device-&amp;gt;dev&lt;/STRONG&gt;, sg, 3, dma_m2m_config.direction);&lt;/P&gt;&lt;P&gt;instead of dma_map_sg(&lt;STRONG&gt;NULL&lt;/STRONG&gt;, sg, 3, dma_m2m_config.direction);&lt;/P&gt;&lt;P&gt;Thanks for your help !&lt;/P&gt;</description>
      <pubDate>Fri, 15 Jan 2021 14:16:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx6sx-sdma-m2m-test-issue/m-p/1212411#M167825</guid>
      <dc:creator>antho</dc:creator>
      <dc:date>2021-01-15T14:16:30Z</dc:date>
    </item>
  </channel>
</rss>

