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.

Using LLD and DIO (with DSP/BIOS 5.x)

With a C6474, I am using DIO which uses EDMA for LSU streaming transfers. Unless I'm mistaken, DIO does the following with regard to EDMA:

- DIO_edmaInit() (cslUtils.c) is called to create an EDMA handle.

- The edma handle is passed to RIO_Init()

- RIO_Init() calls RIO_configIntDstAndDma(srioHandle,hEdma); which sets up the EDMA used for LSU streaming transfers (>4kB) using CSL: CSL_edma3HwChannelSetupParam(), CSL_edma3ParamSetup() etc.

 

I would like to use LLD in my program to perform memory copies and to service peripherals, but I also want to be able to use the streaming LSU feature in DIO.

Do I have to rewrite the EDMA portion in DIO to use LLD instaed of the CSLs?

- Dirk

 

 

 

  • Hi Dirk,

    Could you please specify the BIOS PSP version and the EDMA version which you are pointing to?

    Thanks and Regards,

    Sandeep K

  • Thank you for your reply, I am using the latest DIO lib (EDMA3_LLD_01_10_00_01 ) with LLD "EDMA3_LLD_01_10_00_01" and the C6474 CSL from August 2008.

    I looked a bit more since and it seems to me I'd have to change the DIO release a bit to build on top of LLD instead of CSL for the EDMA3 portion. Otherwise the Resource manager LLD instantiates and uses to keep track of used peripherals won't know about the EDMA3 resources used by DIO. What do you think?

    Regards,

    -Dirk

  • The better option is probably not to change the DIOlib but to configure the LLD to not allow usage of the channels related to SRIO. The LLD has configuration to allow you to achieve desired isolation.

  • It's been some time, but I wanted to let you know it works. I did as you suggested and modified the global structures "sampleEdma3GblCfgParams" and "sampleInstInitConfig" from the C6474 sample files which are supplied with LLD. LLD and DIO are left in their original state and the changes made to the DIO user file (cslUtils.c) were minimal. However, this is tricky stuff and it took me a long time to figure out which EDMA resources DIO uses (and how). There are many references to EDMA from the DIO lib.... What would really be great is if the next DIO release has a conditional switch which tells it to build with LLD instead of CSL its EDMA implementation. 

    Something else worth mentioning is that the DIO data segment ".far:directIO_dat" should be placed in L2 memory. This is necessary for the IDMA to be able to copy data from "lsuRegsToIdma" to the LSU registers.

    Regards,

    Dirk