Arm Community
Site
Search
User
Site
Search
User
Support forums
Arm Development Studio forum
GIC Acknowledge Register read has no impact
Jump...
Cancel
Locked
Locked
Replies
2 replies
Subscribers
119 subscribers
Views
2792 views
Users
0 members are here
Options
Share
More actions
Cancel
Related
How was your experience today?
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
GIC Acknowledge Register read has no impact
Sebastian Meisheit
over 12 years ago
Note: This was originally posted on 30th July 2012 at
http://forums.arm.com
Hi,
Setup:
I am using Pandaboard ES with Cortex-A9MP (2x Cortex-A9) and connect to processor_0 by JTAG and Lauterbach hardware debugger.
From GICD_TYPER [10] = 1 i know the GIC implements Security Extensions.
From the Peripheral ID2 Register [7:4] = 1 i know its GICv1.
I am not able to enter Secure World (SMC or CPSR mode change doesnt work on the PandaES), so every access would be non-secure.
Problem:
According to the
ICCIAR
definition, an interrupt pending on a CPU interface should change from pending to active only after the register
ICCIAR
is read. In my GIC the interrupt changes immediately to active, if the priority is sufficient. I use the ICCIAR to get the current interrupt ID, but it has no efffect on the CPU interface or the GIC registers.
Is the ICCIAR definition wrong here, or am i missing something?
Greets
Sebastian
Parents
Martin Weidmann
over 12 years ago
Note: This was originally posted on 31st July 2012 at
http://forums.arm.com
You're correct that interrupts go from Pending to Active by reading the Ack register (
GICC_AIR)
.
NOTE... In GICv2 (i.e. A15/A7 orGIC-400) you can force an interrupt to the Active state by writing to the GICD_ISACTIVER, but that doesn't apply here. :-)
Couple of thoughts... the mostly likely to my mind is that one of the other cores is acknowledging the interrupt. You said that you're connected to CPU0, what is CPU1 doing?
Other thought... the Secure world code could be acknowledging the interrupt. This seems less likely as usually the Secure world code only handles secure interrupts - which you Normal world code would never get to see.
Cancel
Vote up
0
Vote down
Cancel
Reply
Martin Weidmann
over 12 years ago
Note: This was originally posted on 31st July 2012 at
http://forums.arm.com
You're correct that interrupts go from Pending to Active by reading the Ack register (
GICC_AIR)
.
NOTE... In GICv2 (i.e. A15/A7 orGIC-400) you can force an interrupt to the Active state by writing to the GICD_ISACTIVER, but that doesn't apply here. :-)
Couple of thoughts... the mostly likely to my mind is that one of the other cores is acknowledging the interrupt. You said that you're connected to CPU0, what is CPU1 doing?
Other thought... the Secure world code could be acknowledging the interrupt. This seems less likely as usually the Secure world code only handles secure interrupts - which you Normal world code would never get to see.
Cancel
Vote up
0
Vote down
Cancel
Children
No data