Hi,
We have some question with OMAP L138's EDMA3, particular on the mapping between events, PaRAM sets, and controllers.
By looking at TRM SPRUH77 Table 18-23. EDMA3 Channel Controller (EDMA3CC) Registers, the ending line showing that the length for PaRAM is 0x1000 = 4096 bytes. Because each PaRAM takes 32 bytes, this 4096 bytes area equals to 128 PaRAM sets.
In 18.1.2 Features, both CC0 and CC1 are described as having 128 PaRAM sets. How should we understand this with the fact above that 128 PaRAM sets already occupy the total register memory space reserved for them? If CC0 and CC1 each have non-overlapping 128 PaRAM sets, then where does the total 256 PaRAM sets reside in memory?
In addition, we also read in 18.2.1.1 EDMA3 Channel Controller (EDMA3CC),
18.2.1.1 EDMA3 Channel Controller (EDMA3CC) said:
Each channel is associated with a given event queue/transfer controller and with a given PaRAM set.
and in 18.2.6 Event, Channel, and PaRAM Mapping,
18.2.6 Event, Channel, and PaRAM Mapping said:
The association of an event to a channel is fixed. Each of the DMA channels has one specific event associated with it.
As well as seeing the table
Table 18-5. EDMA3 DMA Channel to PaRAM Mapping said:
Table 18-5. EDMA3 DMA Channel to PaRAM Mapping
PaRAM Set Number Mapping
PaRAM Set 0 DMA Channel 0/Reload/QDMA
PaRAM Set 1 DMA Channel 1/Reload/QDMA
... ...
PaRAM Set 30 DMA Channel 30/Reload/QDMA
PaRAM Set 31 DMA Channel 31/Reload/QDMA
PaRAM Set 32 Reload/QDMA
PaRAM Set 33 Reload/QDMA
... ...
PaRAM Set n - 2 Reload/QDMA
PaRAM Set n - 1 Reload/QDMA
PaRAM Set n Reload/QDMA
But none of these provided any illumination on how are event/channel/PaRAM sets associate with CC0 and CC1 controllers. In fact, it appears to me a bit obscuring after reading through the EDMA3 chapter with finding a clear diagram for the association scheme. Diagrams such as Figure 18-1 and Figure 18-2 doesn’t show this.
I am also confused on how could hetero- or multi-core devices make use of Shadow Region 0/1 Channel Registers, and a bit more plain and straightforward explanation would be appreciated. Both the ARM and DSP sides of our L138 uses EDMA3, and sometimes the program hangs at event clearing and we noticed that the error might due to the use of same event to trigger transfer on the two cores. The shadow region seems to have been offered to address issues like this, but we still haven't understood it after considerable effort in reading the document.
There also seems to be some inconsistencies in description: 18.1.2 Features says CC0 and CC1 each have four shadow regions, whereas in Table 18-23. EDMA3 Channel Controller (EDMA3CC) Registers, only two (Shadow Region 0 Channel Registers, and Shadow Region 1 Channel Registers) are shown.
Paul