Arm
®
CoreLink™ GIC-600AE Generic Interrupt Controller
Technical Reference Manual
Document ID: 101206_0003_04_en
Issue: 04
Operation
4.2 Interrupt groups and security
The GIC-600AE configures the interrupts that it receives into one of three groups. Each group
determines the security status of an interrupt and how it is routed.
The following registers control to what group each interrupt is assigned:
•
GICD_IGROUPRn
•
GICD_IGRPMODRn
•
GICR_IGROUPR0
•
GICR_IGRPMODR0
The groups are:
•
Group 0
•
Group 1 Secure
•
Group 1 Non-secure
Each interrupt is programmed to belong to an interrupt group. Each interrupt group:
•
Determines the Security state for interrupts in that group, depending on the Exception level of
the core.
•
Has separate enable bits that control whether interrupts in that group can be forwarded to the
core.
•
Has an impact on later routing decisions in the core interfaces.
The GIC-600AE supports the three interrupt groups that the following table shows.
Table 4-1: Security and groupings
Interrupt type Example use
Secure Group 0 Interrupts for EL3 (Secure firmware)
Secure Group 1 Interrupts for Secure EL1 (Trusted OS)
Non-secure Group 1 Interrupts for the Non-secure state (OS and the hypervisor, or one of both)
The following table shows the interrupt signals that are used for each interrupt group, Security
state, and Exception level.
Table 4-2: Interrupt signals, Security states, and Exception levels
Group 1Core Exception level and Security state Group 0
Secure Non-secure
Secure EL0, EL1 FIQ IRQ FIQ
Non-secure EL0, EL1, EL2 FIQ FIQ IRQ
EL3 FIQ FIQ FIQ
The ds_value configuration parameter controls the GIC-600AE security, as the GIC exits reset.
Copyright © 2018–2020, 2022 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 51 of 268