This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

IRQ handler not called by ARM A53

I'm testing GIC and ARM A53 connectivity. I can see that GIC is forwarding the IRQ request and ARM core has received it(shows in ISR reg). However, my IRQ handler is not getting called. Here is how I'm registering it..

void main () {

...

__enable_irq();

...

}

__irq void irqHandler(void) {

printf("Hello from the IRQ handler\n");

...

}

Parents
  • Does the SPSR_EL3 show that you came from EL3 with SP_EL3 selected?  (I'm assuming yes, given the vector table entry you said you were at).

    If yes, that I think something slightly different happened.  Before the interrupt you took a different (synchronous) exception.  Taking the exception set the mask bits, masking the later interrupt.  As the vector table entry for the synchronous exception was a branch to self, the code looped forever.

    It would be worth sanity checking what is actually in memory at the address pointed at by ELR_EL3.  Also you could try setting a breakpoint just before the loop in your code, and stepping through a couple of iterations.

Reply
  • Does the SPSR_EL3 show that you came from EL3 with SP_EL3 selected?  (I'm assuming yes, given the vector table entry you said you were at).

    If yes, that I think something slightly different happened.  Before the interrupt you took a different (synchronous) exception.  Taking the exception set the mask bits, masking the later interrupt.  As the vector table entry for the synchronous exception was a branch to self, the code looped forever.

    It would be worth sanity checking what is actually in memory at the address pointed at by ELR_EL3.  Also you could try setting a breakpoint just before the loop in your code, and stepping through a couple of iterations.

Children