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.

IVA2.2 sDMA interrupt configuration



I am trying to use DSP BIOS HWI_INT5 to interrupt the IVA2.2 based on an interrupt from sDMA_IRQ0 (EVT 89, IVA2_IRQ[44]). 

To do so, I implemented the following :

1. Opened the .tcf file and set the HWI_INT5 Interrupt Selection Number to 89, assigned the callback function and enabled "Use Dispatcher".

2. Enabled  ( IER  INT5 using C64_enableIER( C64_EINT5 ).  Verified by looking at the IER register.

3. Unmasked the WUG interrupt by writing 1 to WUGEN_MEVTCLR1 bit 12 (MIRQCLRR44). (Write only, can't verify).

4. Globally enabled interrupts using HWI_enable().  Verified that GIE was set in the CSR

When the DMA transfer completes, I detect an event in the DMA status register and the value 0x2000000 in EVTFLAG2 corresponding to EF89 being set by the DMA event.  However, the IFR remains at 0x00000000 and the interrupt is not detected by the CPU.

I'm sure that I'm missing something simple.  Any suggestions would be appreciated.  Thanks...

  • For the edification of anyone encountering this problem in the future, I found the solution - I was calling HWI_enable() too early in my routine.  When I called it just prior to the signal processing loop, the interrupts began occurring normally.  I'm not sure why this solved the problem, but I'm pleased to be moving forward.