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.

About 6678 EDMA PaRAM set



Hi,

I am going to use the link transfer to perform some memory rearrangement. Which the parameter sets are configured as some loop operation like below:

Param[A] -> Param[B] -> Param[C] -> Param[D] -> Param[E] -> Param[B]

The aim of doing this is to group some discontinuous memory and send out using SRIO.

During the looping, I want to re-program the content of the parameters (e.g. source address (SRC), destination address (DST), data length (ACNT) ). I read the EDMA documents and found out this:

"Note—If the STATIC bit in OPT is set for a PaRAM set, then link updates are not performed. The link updates performed internally by the EDMA3CC are atomic. This implies that when the EDMA3CC is updating a PaRAM set, accesses to PaRAM by other EDMA3 programmer's (for example, DSP configuration accesses) are not allowed. Also for QDMA, for example, if the first word of the PaRAM entry is defined as a trigger word, EDMA3CC logic assures that all 8 PaRAM words are updated before the new QDMA event can trigger the transfer for that PaRAM entry."

I would like to know what's the behavior when doing so. So that I can detect and if possible, handle it.

  • Hi Chan,

    I assume that you have all the parameters for the Param[A] to Param[B], if so than consider using chaining and not linking, you will use more EDMA channels but you will not need the trigger,

    Why do you want to use the STATIC bit for?

    Thanks,

    HR

  • Hi, thanks for the reply.

    My example is a simple case. In the real application we will implement a memory rearrangement feature that allows any 32bits of data in LL2 to be repeatedly copied to another memory location and then perform some SRIO transfer. The amount may be large (a few hundred of discrete 32bits data) and is set up during run-time. I suppose using chaining may be limited to the number of available channels of that channel controller(please correct me if not correct).

    For using linking we may still consider of running out of parameter set and that's why we are seeking the possibility of changing the set parameter during the transfer loop.

    For the STATIC bit, we will clear it for using link.

    Many thanks.

  • Hi Chan,

    For EDMA3CC0 you have 16 DMA channels and 128 PARAMS entries for EDMA3CC1 & EDMA3CC2 you have for each one of them 64 DMA channels and 512 PARAMS entries, 

    You are correct that for the chaining you are limited with the amount of DMA channels but for both the linking and the chaining you will need the same amount of PARAMS entries,

    Thanks,

    HR

  • Hi HR,

    Yes the EDMA3CC2 will have 512 PARAMS entries that I am going to use them. So I would like to know if those PARAMS entries are linked and copied to the TC repeatedly (operating), what is the behavior  when DSP core tries to modify them?

    Many thanks.

  • Hi Chan,

    Yes, the EDMA take the PARAMS when it starts or when it linked to a specific place in the PARAMS, the PARAMS is a memory so you can change the parameters whenever you want but please don't change it when the DMA is using it, usually you will have the working PARAMS where the linked PARAMS will be copied to,

    Thanks,

    HR