Arm Community
Site
Search
User
Site
Search
User
Groups
Research Collaboration and Enablement
DesignStart
Education Hub
Innovation
Open Source Software and Platforms
Forums
AI and ML forum
Architectures and Processors forum
Arm Development Platforms forum
Arm Development Studio forum
Arm Virtual Hardware forum
Automotive forum
Compilers and Libraries forum
Graphics, Gaming, and VR forum
High Performance Computing (HPC) forum
Infrastructure Solutions forum
Internet of Things (IoT) forum
Keil forum
Morello Forum
Operating Systems forum
SoC Design and Simulation forum
中文社区论区
Blogs
AI and ML blog
Announcements
Architectures and Processors blog
Automotive blog
Graphics, Gaming, and VR blog
High Performance Computing (HPC) blog
Infrastructure Solutions blog
Innovation blog
Internet of Things (IoT) blog
Operating Systems blog
Research Articles
SoC Design and Simulation blog
Tools, Software and IDEs blog
中文社区博客
Support
Arm Support Services
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
Support forums
Arm Development Studio forum
GIC Acknowledge Register read has no impact
Jump...
Cancel
Locked
Locked
Replies
2 replies
Subscribers
121 subscribers
Views
2369 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
Offline
Sebastian Meisheit
over 9 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
Offline
Martin Weidmann
over 9 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
Up
0
Down
Cancel
Reply
Offline
Martin Weidmann
over 9 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
Up
0
Down
Cancel
Children
No data