sdma

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

sdma

1,001 Views
satoshi_yamada
Contributor III

I'm working on MCIMX6ULL-EVK.
Now I'd like to know how to load script.
[detail]
As one of the process for boot loading,
I could load context from Arm platform memory buffer by using command C0_SET_DM.
But, I cannot load script from Arm platform memory buffer by using command C0-SET_PM.
Are there the special matter to load script?
In addition, I tried to use C0_SET_DM instead of C0_SET_DM even to load script.
As the result it seems script was loaded to SDMA data memory (RAM).
Does this method cause a problem?
Regards

Labels (1)
Tags (1)
0 Kudos
2 Replies

669 Views
igorpadykov
NXP Employee
NXP Employee

Hi Satoshi

one can look at sdma examples in MX6ULL FreeRTOS SDK

Welcome | MCUXpresso SDK Builder 

or i.MX6DQ baremetal SDK examples (its zip can be found on https://community.nxp.com/thread/432859 )

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

0 Kudos

670 Views
satoshi_yamada
Contributor III

Hi Igor,

Thank you for your helpful information.

I followed the procedure and made BD for channel 0, then I believe that channel 0 started and completed.

(But I'm not sure whether it was completed correctly or not.)

At that time, I set context and script for multiple channel (e.g. for DMA channel 1 and DMA channel 2)

After that, I started both DMA channel alternately.

However I saw the unexpected behavior on the way as like below.

1) SDMA_StartTransfer() for DMA Ch#1
        => SDMAARM_INTR for Ch#1 was set immediately after I set HSTART (expected result)
        => can work correctly with script for Ch#1 (expected result)
2) SDMA_StartTransfer() for DMA Ch#2
        => SDMAARM_INTR for Ch#2 was set immediately after I set HSTART (expected result)
        => can work correctly with script for Ch#2 (expected result)
3) SDMA_StartTransfer() for DMA Ch#1
        => SDMAARM_INTR for Ch#1 was set immediately after I set HSTART (expected result)
        => can work correctly with script for Ch#1 (expected result)
4) SDMA_StartTransfer() for DMA Ch#2
        => SDMAARM_STAT for Ch#2 was set after I set HSART
        => seems script was not executed
     Do you know why does this behavior occur as posibility?
     I'd like to understand the cause of this.

Regards,

0 Kudos