This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
in the AM335x TRM (SPRUH73K.pdf) I found different tables listing the EDMA interrupts:
EDMA interrupts in Table 6-1. ARM Cortex-A8 Interrupts
Int Number Acronym/name Source Signal:
12 EDMACOMPINT TPCC (EDMA) tpcc_int_pend_po0
13 EDMAMPERR TPCC (EDMA) tpcc_mpint_pend_po
14 EDMAERRINT TPCC (EDMA) tpcc_errint_pend_po
...
112 TCERRINT0 TPTC0 tptc_erint_pend_po
113 TCERRINT1 TPTC1 tptc_erint_pend_po
114 TCERRINT2 TPTC2 tptc_erint_pend_po
Table 11-13. EDMA3 Transfer Completion Interrupts
Name Description
EDMA3CC_INT0 EDMA3CC Transfer Completion Interrupt Shadow Region 0
EDMA3CC_INT1 EDMA3CC Transfer Completion Interrupt Shadow Region 1
EDMA3CC_INT2 EDMA3CC Transfer Completion Interrupt Shadow Region 2
EDMA3CC_INT3 EDMA3CC Transfer Completion Interrupt Shadow Region 3
EDMA3CC_INT4 EDMA3CC Transfer Completion Interrupt Shadow Region 4
EDMA3CC_INT5 EDMA3CC Transfer Completion Interrupt Shadow Region 5
EDMA3CC_INT6 EDMA3CC Transfer Completion Interrupt Shadow Region 6
EDMA3CC_INT7 EDMA3CC Transfer Completion Interrupt Shadow Region 7
Table 11-14. EDMA3 Error Interrupts
Name Description
EDMA3CC_ERRINT EDMA3CC Error Interrupt
EDMA3CC_MPINT EDMA3CC Memory Protection Interrupt
EDMA3TC0_ERRINT TC0 Error Interrupt
EDMA3TC1_ERRINT TC1 Error Interrupt
EDMA3TC2_ERRINT TC2 Error Interrupt
Header file C:\ti\am335x_sysbios_ind_sdk_1.1.0.6\sdk\starterware\include\armv7a\am335x\interrupt.h agrees with Table 6.1.
Conclusions / Questions:
There are no shadow region interrupts in the AM335x?
Does it make sense to use EDMA shadow regions if all the transfer completions call the same ISR?
Regards,
Frank
Hi James,
thanks for your answer, it makes things much more clear.
JJD said:The chapter also describes a global completion interrupt. This interrupt is not implemented on AM335x
Does this mean that I always have to use the shadow registers EDMA3CC_S_IER(0) etc. at 0x49002000 etc. or will the global registers EDMA3CC_IER etc. at 0x49001000 etc. work too?
JJD said:TPTC1: tptc_erint_pend_po (TCERRINT1) goes to MPU Subsystem (Int ) only
TPTC1: tptc_erint_pend_po (TCERRINT2) goes to MPU Subsystem (Int ) only
I think there is a typo, and TPTC1 and TPTC2 go to MPU Interrupts 113, 114 as listed in table 6-1, right or not?
By the way, there are "several inconsistencies" in the SDK 1.0.0.6 EDMA software too. C:\ti\am335x_sysbios_ind_sdk_1.1.0.6\sdk\starterware\include\edma.h seems to be written for other SOCs with other implementations of TPCC / TPTC EDMA, not for _this_ AM335x (see below). C:\ti\am335x_sysbios_ind_sdk_1.1.0.6\sdk\starterware\examples\evmAM335x\edma\edmaTest.c does not use these interrupt defs, so may be it works...
Regards,
Frank
Parts of C:\ti\am335x_sysbios_ind_sdk_1.1.0.6\sdk\starterware\include\edma.h with values that do not match AM335x (no claim to be complete):
//***********************************************************************
// Values that can be used by the application for configuration via APIs
//***********************************************************************/
/** Maximum number of EDMA Shadow regions available */
#define EDMA3_MAX_REGIONS (2u)
/** Number of PaRAM Sets available */
#define EDMA3_NUM_PARAMSET (128u)
/** Number of Event Queues available */
#define EDMA3_0_NUM_EVTQUE (2u)
/** Number of Transfer Controllers available */
#define EDMA3_0_NUM_TC (2u)
/** Interrupt no. for Transfer Completion */
#define EDMA3_0_CC_XFER_COMPLETION_INT (11u)
/** Interrupt no. for CC Error */
#define EDMA3_0_CC0_ERRINT (12u)
/** Interrupt no. for TCs Error */
#define EDMA3_0_TC0_ERRINT (13u)
#define EDMA3_0_TC1_ERRINT (32u)
#define EDMA3CC_DMA_CHANNELS (32u)
...
#if defined(am335x) || defined(am335x_13x13) || defined(am335x_15x15) || \
defined(c6a811x) || defined(am386x) || defined(c6741x)
#define SOC_EDMA3_NUM_DMACH 64
#define SOC_EDMA3_NUM_QDMACH 8
#define SOC_EDMA3_NUM_PARAMSETS 256
#define SOC_EDMA3_NUM_EVQUE 4
#define SOC_EDMA3_CHMAPEXIST 0
#define SOC_EDMA3_NUM_REGIONS 8
#define SOC_EDMA3_MEMPROTECT 0
#endif