Cortex-R52 GICv3 Interrupt1023

Hello

I met an issue of FIQ interrupt1023 occurred when two periodic interrupts existed: vector270: priority: 12, group1 (IRQ) and vector27: priority 16, group0 (FIQ).

When the fiq_exception got the INTID1023, I saw that ICC_HPPIR0: 0x1B (27), ICC_AP1R0: 0x1000 (active priority: 12). As the irq_exception will not mask FIQ, I suppose that when the CPU is handling vector270 (IRQ), vector27 (FIQ) comes and interrupts it. But as the priority of vector27 is lower than vector270, interrupt1023 is reported due to no sufficient priority. Is my understanding right ?

If so, what are the recommendations for irq and fiq handling when the system have both IRQ and FIQ interrupts enabled ?

BR, Grace

Parents
  • Yes, I saw FIQ exception was taken and ICC_IAR0 returned 1023.

    Now that's interesting.  If the GIC is asserting the FIQ input, then it shows the HPPI passed all the GIC tests (PMR, RPR...).  

    Inside the handler (so after you've taken the FIQ exception), could you try:

    • Read ICC_HPPIR0
    • Read ICC_AP0R0
    • Read ISR_EL1
    • Read ICC_IAR0
    • ISB
    • Read ICC_HPPIR0
    • Read ICC_AP0R0
    • Read ISR_EL1

    I'm checking what the state is immediately before and after the read of the IAR.  

Reply
  • Yes, I saw FIQ exception was taken and ICC_IAR0 returned 1023.

    Now that's interesting.  If the GIC is asserting the FIQ input, then it shows the HPPI passed all the GIC tests (PMR, RPR...).  

    Inside the handler (so after you've taken the FIQ exception), could you try:

    • Read ICC_HPPIR0
    • Read ICC_AP0R0
    • Read ISR_EL1
    • Read ICC_IAR0
    • ISB
    • Read ICC_HPPIR0
    • Read ICC_AP0R0
    • Read ISR_EL1

    I'm checking what the state is immediately before and after the read of the IAR.  

Children