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.

CCS/TDA2EXEVM: Getting interrupt id value after reading GICC_IAR register= 0x3FF(1023).

Part Number: TDA2EXEVM

Tool/software: Code Composer Studio

Hi,

I have tried PDK example "pdk_01_07_01_02\packages\ti\csl\example\timer\timer_app"  for timer interrupt .Interrupt is serviced properly, but I am trying read GCC_IAR register(memory Address  0x4821200C) at that time  memory browser showing 0x3FF value after that it went abort handler.when i was not open memory browser of CCS ,reading value which was 0x24 for TIMER4 interrupt ,but Actually Timer4 cross bar interrupt is 0x23(35).How to read interrupt id value in Cortex A15?

Regards,,

Kiran Vidhate

  • Hi Kiran,

    Below is from the GIC spec:
    "A read of the GICC_IAR returns the interrupt ID of the highest priority pending interrupt for the CPU interface. The
    read returns a spurious interrupt ID of 1023 if any of the following apply:
    • forwarding of interrupts by the Distributor to the CPU interface is disabled
    • signaling of interrupts by the CPU interface to the connected processor is disabled
    • no pending interrupt on the CPU interface has sufficient priority for the interface to signal it to the processor."

    This means read will be correct only when there is a pending interrupt.
    Also crossbar id is different from the interrupt id. This register will provide you the interrupt line number.
    For more details refer to "section 4.4.4 Interrupt Acknowledge Register, GICC_IAR" of IHI0048B_b_gic_architecture_specification.pdf.

    Regards,
    Rishabh