Hello, I am working with a DV6446 EVM. I am attempting to perform an EDMA transfer inside of u-boot but am having trouble. I have been basing my code on the block move example on page 66 of document sprue23d.pdf. At this point when I initiate the transfer the processor restarts. My PaRAM block is configured as follows:

    PaRAM->OPT = 0x00100008;
    PaRAM->SRC = src;
    PaRAM->A_B_CNT = 0x00133D48;
    PaRAM->DST = dest;
    PaRAM->SRC_DST_BIDX = 0x3D483D48;
    PaRAM->LINK_BCNTRLD = 0x0013FFFF;
    PaRAM->SRC_DST_CIDX = 0x3D483D48;
    PaRAM->CCNT = 0x00000002;

  I am attempting to copy 0x918B0 bytes from src to dest. To do this I am trying to use an A-syncronized transfer with the A dimension as 0x3D48 bytes, the B dimension as 0x13 and the C dimension as 0x2. The sourceand destination indexes for B and C are both set to the size of the A-dimension, 0x3D48. B count reload is set to 0x13, the B dimension value I am using.

These parameters are set in PaRAM set zero. I am initiating the transfer by setting bit 0 of the ESR register. It seems as soon as I initiate the transfer this way the processor resets.

I have not used DMA in the past and am not sure what is going wrong. Any help is much appreciated.

Is there a code example of a DMA transfer available anywhere?

 

-Steve