← Home

ICC_ICSR_EL1

Interrupt Controller Interrupt Configuration and State Register

Reports the configuration and state of the INTID specified to a previous GIC request interrupt configuration instruction.

Configuration

This register is present only when FEAT_GCIE is implemented and FEAT_AA64 is implemented. Otherwise, direct accesses to ICC_ICSR_EL1 are UNDEFINED.

Attributes

ICC_ICSR_EL1 is a 64-bit register.

Field descriptions

6362616059585756555453525150494847464544434241403938373635343332
313029282726252423222120191817161514131211109876543210
RES0IAFFID
RES0PriorityRES0HMActiveIRMPendingEnabledF

Bits [63:48]:

Reserved, RES0.

IAFFID, bits [47:32]:

The interrupt Affinity value.

The IRS may support fewer than 16 bits of IAFFID. Upper bits not implemented by the IRS are returned as zero.

When IRM is 1, this field is IMPLEMENTATION DEFINED.

The reset behavior of this field is:

Bits [31:16]:

Reserved, RES0.

Priority, bits [15:11]:

The priority of the interrupt.

The reset behavior of this field is:

Bits [10:6]:

Reserved, RES0.

HM, bit [5]:

The Handling mode of the interrupt.

HMMeaning
0b0

Edge

0b1

Level

The reset behavior of this field is:

Active, bit [4]:

The interrupt Active state.

ActiveMeaning
0b0

Inactive

0b1

Active

The reset behavior of this field is:

IRM, bit [3]:

Interrupt Routing mode.

IRMMeaning
0b0

Targeted.

0b1

1ofN.

The reset behavior of this field is:

Pending, bit [2]:

The interrupt Pending state.

PendingMeaning
0b0

Not pending

0b1

Pending

The reset behavior of this field is:

Enabled, bit [1]:

The interrupt individual enable.

EnabledMeaning
0b0

Disabled

0b1

Enabled

The reset behavior of this field is:

F, bit [0]:

Indicates whether the IRS returned valid data.

FMeaning
0b0

Request completed successfully.

0b1

Request did not complete successfully.

The reset behavior of this field is:

Access Instructions

Accesses to this register use the following encodings in the System register encoding space:

MRS <Xt>, ICC_ICSR_EL1

(op0 = 0b11, op1 = 0b000, CRn = 0b1100, CRm = 0b1010, op2 = 0b100)

if !(IsFeatureImplemented(FEAT_GCIE) && IsFeatureImplemented(FEAT_AA64)) then Undefined(); elsif PSTATE.EL == EL0 then Undefined(); elsif PSTATE.EL == EL1 then if EL2Enabled() && HCR_EL2().IMO == '1' && IsFeatureImplemented(FEAT_GCIE_LEGACY) && ICH_VCTLR_EL2().V3 == '1' then Undefined(); elsif EL2Enabled() && ICH_HFGRTR_EL2().ICC_ICSR_EL1 == '0' then AArch64_SystemAccessTrap(EL2, 0x18); else X{64}(t) = ICC_ICSR_EL1(); end; elsif PSTATE.EL == EL2 then X{64}(t) = ICC_ICSR_EL1(); elsif PSTATE.EL == EL3 then X{64}(t) = ICC_ICSR_EL1(); end;

MSR ICC_ICSR_EL1, <Xt>

(op0 = 0b11, op1 = 0b000, CRn = 0b1100, CRm = 0b1010, op2 = 0b100)

if !(IsFeatureImplemented(FEAT_GCIE) && IsFeatureImplemented(FEAT_AA64)) then Undefined(); elsif PSTATE.EL == EL0 then Undefined(); elsif PSTATE.EL == EL1 then if EL2Enabled() && HCR_EL2().IMO == '1' && IsFeatureImplemented(FEAT_GCIE_LEGACY) && ICH_VCTLR_EL2().V3 == '1' then Undefined(); elsif EL2Enabled() && ICH_HFGWTR_EL2().ICC_ICSR_EL1 == '0' then AArch64_SystemAccessTrap(EL2, 0x18); else ICC_ICSR_EL1() = X{64}(t); end; elsif PSTATE.EL == EL2 then ICC_ICSR_EL1() = X{64}(t); elsif PSTATE.EL == EL3 then ICC_ICSR_EL1() = X{64}(t); end;


Version 2026.06 — Copyright © 2010-2026 Arm Limited or its affiliates.

This site is provided as a community resource and is NOT affiliated with nor endorsed by Arm Limited.