Murat, a thousand thank yous to you!
Your first point was the one at issue. I had something like this in my EDMA "get resources" function
IRES_EDMA3CHAN_SETPROTOCOLREVISION_2_0_0(&(alg->edmaRev));
desc[0].resourceName = IRES_EDMA3CHAN_PROTOCOLNAME;
desc[0].revision = &(alg->edmaRev);
desc[0].protocolArgs = (IRES_ProtocolArgs *)&(alg->edmaArgs[0]);
(alg->edmaArgs[0]).size = sizeof(IRES_EDMA3CHAN_ProtocolArgs);
(alg->edmaArgs[0]).mode = IRES_SCRATCH;
(alg->edmaArgs[0]).numPaRams = 3;
(alg->edmaArgs[0]).paRamIndex = IRES_EDMA3CHAN_PARAM_ANY;
(alg->edmaArgs[0]).tccIndex = IRES_EDMA3CHAN_TCC_ANY;
(alg->edmaArgs[0]).numTccs = 1;
(alg->edmaArgs[0]).qdmaChan = IRES_EDMA3CHAN_CHAN_NONE;
(alg->edmaArgs[0]).edmaChan = IRES_EDMA3CHAN_EDMACHAN_ANY;
(alg->edmaArgs[0]).contiguousAllocation = FALSE;
(alg->edmaArgs[0]).shadowPaRamsAllocation = FALSE;
desc[0].handle = (IRES_Handle)alg->edmaHandle[0];
changed the 3 in the highlighted line to a 5 and it now works correctly. This makes sense as previously I was only able to queue a maximum of 3 transfers at once. Would you like to confirm that this is correct?
Thanks,
Ralph