Hi
I am trying to do a QDMA from EMIFB address to EMIFA address. I am trying to move more than 64k of data so I have to use more than one frame or a block move. The problem is it only move like 2 Frames of data below is my code snipet
EDMA_Config qEdmaXmtFpga =
{
EDMA_FMKS(OPT, PRI, HIGH) | // Priority
EDMA_FMKS(OPT, ESIZE, 16BIT) | // Element size
EDMA_FMKS(OPT, 2DS, YES) | // 2 dimensional source?
EDMA_FMKS(OPT, SUM, INC) | // Src increment by element size
EDMA_FMKS(OPT, 2DD, YES) | // 2 dimensional dest
EDMA_FMKS(OPT, DUM, INC) | // Dest is DDR fix address
EDMA_FMKS(OPT, TCINT, NO) | // Cause EDMA interrupt?
EDMA_FMKS(OPT, TCC, DEFAULT) | // Transfer complete code
EDMA_FMKS(OPT, LINK, NO) | // Enable link parameters?
EDMA_FMKS(OPT, FS, YES), // Use frame sync?
EDMA_FMKS(SRC, SRC, OF(0)), // Src address
EDMA_FMK (CNT, FRMCNT, NULL) | // Frame count
EDMA_FMK (CNT, ELECNT, ELEMENT_CNT), // Element count
EDMA_FMKS(DST, DST, OF(0)), // Dest address
EDMA_FMKS(IDX, FRMIDX, DEFAULT) | // Frame index value
EDMA_FMKS(IDX, ELEIDX, DEFAULT), // Element index value
EDMA_FMK (RLD, ELERLD, NULL) | // Reload element
EDMA_FMK (RLD, LINK, NULL) // Reload link
qEdmaXmtFpga.src = (unsigned int)(0x64000000);
qEdmaXmtFpga.cnt = 0XFFFF;
qEdmaXmtFpga.dst = (unsigned int)(0x80200000);;
qEdmaXmtFpga.idx = 0;
EDMA_qdmaConfig(&qEdmaXmtFpga);
wait(); //// wait for transfer to complete
looking at the data I see only 2 blocks of 64K moved. What did I do wrong with my config?
Dusty,
};