Hello,
I am using MCUXpresso Config Tools v7 and added an eDMA Peripheral driver in the peripheral tool and tried to set the minor and major loop to the maximum values. The Minor loop transfer [Byte] value can only be set to 2^30-1 and not to 2^32-1. This is correct because the called function EDMA_Init() is always setting the Enable Minor Loop Mapping Bit to 1 so there are only 30 Bits for NBYTE.
Now I understand from comparing with the generated code that the value Major loop transfer[Byte] divided by Minor loop transfer [Byte] equals to the major loop counts (CITER/BITER).
Here is the problem: MCUXpresso only allows a value of 2^16-1 which I think is incorrect. If we look at the TCD memory structure from the RT1020 reference manual

we can see that the CITER field is at maximum 15 Bits wide if we do not set the checkbox "Channel link initialization" which would equal to a value of 32765. Therefore there has to be some logic behind it (like for the Minor loop transfer [Byte] field which depends on the Minor loop offset initialization) if the E_LINK Bit is 1 or 0.
Furthermore the field Major Loop transfer [Byte] is NOT equal to the major loop count CITER. The calculation mentioned at the beginning of the post will result in the major loop count CITER.
I think the maximum allowed value for the field Major loop transfer[BYTE] should be the maximum allowed value for CITER (depends on the ELINK Bit) multiplied by the maximum allowed value for the field Minor loop transfer [Byte] (depends on the Minor loop offset initialization).
Am I correct or is there some additional setting for DMA which sets the maximum Major loop transfer [Byte] field to 65535?
Kind regards,
Stefan