A9 and SDMA Core Mutual Exclusion

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

A9 and SDMA Core Mutual Exclusion

922 Views
paul_katarzis
Contributor III

I am looking at section 55.7 of the document IMX6DQRM and noticed that the CCBs and BDs are located in the A9 memory space. The language in the document seems to imply that both processes in the A9 and the ROM scripts in the SDMA core both read and write to these structures. How does the A9 and SDMA core coordinate their access to these data structures?

I do not see any software mutual exclusion implemented in the SDMA Linux drivers and I cannot determine what the ROM scripts are doing since they are not open source.

Labels (1)
0 Kudos
5 Replies

809 Views
igorpadykov
NXP Employee
NXP Employee

Hi Paul

some examples and descriptions of sdma programming can be found in

baremetal sdk document iMX6_Firmware_Guide.pdf Chapter 29 Configuring
the SDMA Driver (zip can be found on )

MX25 SDMA CSPI example 
Freescale i.MX SDMA tutorial (part I) 

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

0 Kudos

809 Views
paul_katarzis
Contributor III

Hello Igor,

I don't feel this addresses the question that I asked. I am interested in how the AP and SDMA core ensure only one of them has exclusive access to the CCBs and DBs. Looking at the Linux SDMA driver, it seems that no mechanism is being used to ensure that the SDMA core is not accessing the CCBs and DBs while the driver is accessing them. None of the documents provided demonstrate how the ROM scripts might be doing this.

I am currently investigating an issue where the SDMA core seems to randomly stop issuing interrupts to the AP. The likely explanation at the moment is that there is a race condition caused by the Linux SDMA interrupt handler and ROM scripts modifying the D flag of the DBs.

0 Kudos

809 Views
igorpadykov
NXP Employee
NXP Employee

Hi Paul

unfortunately nxp does not support sdma programming, that is no documentation, app notes

or programming guides are available. If you have special task for developing application with sdma

suggest to proceed with NXP Professional Services | NXP 

Best regards
igor

0 Kudos

809 Views
paul_katarzis
Contributor III

Hello Igor,

I am not asking for help with SDMA programming. I have asked twice what mechanism is being used to prevent the A9 and SDMA core from accessing the CCBs and DBs at the same time in firmware and software distributed by Freescale/NXP.

0 Kudos

809 Views
igorpadykov
NXP Employee
NXP Employee

Hello Paul

general approach is that A9 should prepare all sdma structures and then

start sdma, then it should not change CCBs and DB. One can read Chapter 29

Configuring the SDMA Driver iMX6_Firmware_Guide.pdf.

Best regards
igor