DSPRelated.com
Forums

Re: HPI and EDMA contention

Started by Jeff Brower December 19, 2005
Nir-

> The destination address is 0xbf1e8. I tried "more aligned" addresses,
> like 0x70000, but I had the same problem. I even tried address in
> external memory. same there.
>
> The load I'm talikng about is low (5Mbit/sec in and out).
>
> We use cached external memory space, so this use EDMA.
> We use 2 EDMA channels to copy data in and out the DSP (from FPGA).
> We use 6 QDMA channels for transferring data from external to
> internal memory, internal to internal, and internal to external.
>
> We just saw in spraa02 that to copy data from internal to internal
> memory, we better use memcpy instead of QDMA, so we will try this and
> release one QDMA channel.
>
> Do you think that making the EDMA copies smaller (fragment one large
> copy to many small copies) can solve this? (We saw someone asking
> about HPI and EDMA contention at TI site, but no answer).

Assuming that for sure you've made the HPI DMA channel highest priority, then yes
that would be one thing to try, and another is to give some 'pause' between the
smaller copies.

Your DSP code use of DMA during normal operation is extensive. If it really turns
out that you have DMA core consuming internal memory bus bandwidth and holding off
HPI transfers, then you may need to replace a couple of those DMA channels with an
interrupt-driven function that makes the transfer. You could could control the
pacing, and this "pseudo-DMA" would be from the CPU core.

-Jeff