This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP35xx DVSDK 3.01 DMA documentation

I am looking for a document for the OMAP35x DVSDK 3.01 release that can help me to answer these questions about dsplink, edma, and the pool buffers

 

1. Is the Cortex A8's DMA controller used to move data to/from DDR memory when working with dsplink data buffer pools?

2. Is the DSP eDMA controller used to move data to/from DDR memory when working with dsplink data buffer pools?

3. Is the OMAP's system DMA (sDMA) used to move data to/from DDR memory when working with dsplink data buffer pools?

 

Basically, I'm trying to determine if and how the various HW DMA controllers are used by the ARM and DSP-side software delivered in the DVSDK for moving audio data between the ARM and DSP when running audio encode/decode.

 

thanks,

Peter

  • Peter,

    You may want to check the audio codecs datasheets to find out if the DMA is used by the codec. As far as I remember most C64x+ audio codecs do not use DMA resources.

    Thanks

    Cesar

  • Thanks Cesar,

     

    I found useful information in this document path after installing the DVSDK:

    ./cs1omap3530_1_01_00/packages/ti/sdo/codecs/aaclcenc/docs/AAC_LC_Encoder_C64XPLUS_UserGuide.pdf

    Specifically, this text seemed telling in regards to any use of the EDMA controller inside the DSP:

    "Note:
    Audio codecs do not use algActivate(), algDeactivate(), and
    DMAN3_init()APIs."

    Since DMAN3 package APIs are required to configure the EDMA controller, that would seem to imply that our Audio CODEC gets no data movement assistance from EDMA.

    I presume that in most cases, IDMA is not used because the typical use of an audio encoder or decoder is to read input data placed into a buffer by the ARM and then write-out data into a buffer read by the ARM.

     

     

    So what about ARM-side?

    What document tells me more about how the ARM obtains the data that the DSP has placed into DDR?

     

  • Peter,

    If the audio data is obtained from the driver, the driver user guide should provide more information about DMA usage

    Thanks

    Cesar

  • There is no specific User guide PDF for the kernel objects (drivers), but I do see doxygen data about the SDMA kernel driver here:

    ./linuxutils_2_25_02_08/docs/html/index.html

    Doxygen info about SDMA doesn't state whether or not it is in use by the ARM when making use of simple, so I am not sure what to conclude without further diving into all the code.

    Looks like SDMA_init() must be called in order for it to be used/configured.

    So, a very cursory search for SDMA_init in the *.c file produces some results.

    I find no hits in the c-code other than IRESMAN (which coordinates with DSP DMA), frame copy for video codecs, or examples, so I have to assume that this is something that isn't in use unless we explicitly.

    I then checked all the docs listed from the HTML index in dsplink/doc directory.

    None of the docs containing the word DMA in any case state whether or not the SDMA controller is used as a part of passing audio data from ARM (via USB or MCBSP, etc) is moved/handled at the kernel level using the sDMA controller...

     

    any other way to confirm that it is or isn't used with an AAC audio CODEC?

    thanks again,

    Peter