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.

DMA between DDR and the internal memory of the C6a8168 DSP

I received this in the Bios forum:

Are you sure DMA is enabled for your device ? I remember running into an issue because my gel file hadn't enabled the DMA.

Also, in general we do NOT intend to support the DMAN3/ACPY3 libraries on these new devices. We have a new interface called the IRES EDMA3CHAN and the ECPY library, which will be recommended for use for these devices.

Please look at some examples on how to use those and use those instead.

EZSDK 5.01.00.77 came with Framework, and I was told in the Embedded Linux Workshop that DMAN3/ACPY3 was the best thing to use for  program driven transfers, say bringing a row of an image into L1 memory to be processed and back out again to DDR.  What is TI's recommended way to implement such DMA transfers to/from the DSP on the C6a8168 device?  I haven't looked at EZSDK 5.01.01.80 yet, is this new DMA library going to be supported?

Lee Holeva

 

  • I also was told acpy3/dman3 is the way to go with codec engine and that IRES EDMA3CHAN is for writing drivers (which we don't need to in ARM+DSP platform). We will be only using QDMA. 

     

     Is the usage guidelines below from http://processors.wiki.ti.com/index.php/Dma_overview still valid for 816x devices ?

     

    Usage Suggestions

    • If your codecs do NOT use EDMA channels (only QDMA channels) or if they use the ACPY3 library, you can continue to implement only the IDMA3 interface and configure DMAN3 for resource management.1
    • If your codecs require EDMA channels as well as QDMA channels, then your codec needs to implement the IRES interface to describe the kind of resources it needs. It would also need to have its own functional library to actually perform the transfers. That library would need to interpret the IRES_EDMA3CHAN_Handle to discover what resources it has been granted. You would configure the ti.sdo.fc.edma3.Settings module to indicate what EDMA3 resources would be managed by RMAN/IRES.
    • If your codecs have a requirement for both the old IDMA3 interface (to be able to use the ACPY3 library) and the IRES_EDMA3CHAN interface (to be able to use some EDMA channels with a custom library), you would need to take care of both the above points. Also make sure that ti.sdo.fc.dman3.DMAN3 modules and ti.sdo.fc.edma3.Settings module are configured to manage non-overlapping EDMA3 resources. (Note, this restriction will be removed in future releases, where only the ti.sdo.fc.edma3.Settings module will need to be configured for both DMAN3 and IRES_EDMA3CHAN.)

     

    Please clarify

    RV

    1  Our use case