imx6q:SDMA from EIM(FPGA) to DDR

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6q:SDMA from EIM(FPGA) to DDR

1,184 Views
jieh朱
Contributor III

 MCU : imx6 

 Kernel : L3.0.35_4.1.0
    - When I use memcopy from ddr to eim(using ioremap), memcopy function is good.
    - So, I think there is no problem with eim settings.
 SDMA test sample : unitest - mxc_sdma_memcopy_test.c sample source
    - mem to mem test is good using sample source. (from DDR to DDR) 
  SDMA firmware version is .1(imx6q)

My plan is data transmission from DDR to EIM(FPGA) using SDMA.
 I changed the address of wbuf or rbuf to EIM address(using  ioremap_nocache to change to virtual memory), but chip select not responding.
 Simply, I just modified the memory address(rbuf->eim virtual address or wbuf->eim virtual address) in the sample source.

But did not succeed

0 Kudos
3 Replies

712 Views
igorpadykov
NXP Employee
NXP Employee

Hi jieh

one can look at example mxc_sdma_memcopy_test.c in imx-test-3.0.35 package
Index of /buildsources/i/imx-test/imx-test-3.0.35-4.0.0 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

712 Views
jieh朱
Contributor III

Hi igorpadykov
thank you for your reply
I am now reference mxc_sdma_memcopy_test.c
DDR replication to DDR has succeeded, but when I changed my target address to an EIM virtual address (iimmap physical address via ioremap_nocache into a virtual address), the test DMA failed

0 Kudos

712 Views
rclongyunteng
Contributor I

Hi jieh,

       I have the same question with you.

        board: i.MX6Q, Android version:4.4.2, Kernel version:3.0.35. 
        I need transfer data from EIM to mx6q internal memory. 
        I have mapped EIM address like below: 
                s_armaddr = ioremap_nocache(WEIM_ARB_BASE_ADDR, SDMA_BUF_SIZE ); 
        And then i set the source buf like below: 
               sg_set_buf(&sg[0], s_armaddr + 0x16, SDMA_BUF_SIZE ); 

        But the data i read form eim is not what i want. 

        Have you resolved the question? And could you give me some suggestions please?

        Thank you.

        Best Regards

0 Kudos