← Home

ICH_HFGITR_EL2

Hypervisor GIC Fine-Grained Instruction Trap Register

Provides instruction trap controls for GIC System instructions.

Configuration

This register is present only when FEAT_GCIE is implemented, (EL2 is implemented or EL3 is implemented), and FEAT_AA64 is implemented. Otherwise, direct accesses to ICH_HFGITR_EL2 are UNDEFINED.

If EL2 is not implemented, this register is RES0 from EL3.

Attributes

ICH_HFGITR_EL2 is a 64-bit register.

Field descriptions

6362616059585756555453525150494847464544434241403938373635343332
313029282726252423222120191817161514131211109876543210
RES0
RES0GICRCDNMIAGICRCDIAGICCDDIGICCDEOIGICCDHMGICCDRCFGGICCDPENDGICCDAFFGICCDPRIGICCDDISGICCDEN

Bits [63:11]:

Reserved, RES0.

GICRCDNMIA, bit [10]:

Trap execution of GICR CDNMIA at EL1 to EL2.

GICRCDNMIAMeaning
0b0

If EL2 is implemented and enabled in the current Security state, then execution of GICR CDNMIA at EL1 is trapped to EL2 and reported with EC syndrome value 0x18, unless the instruction generates a higher priority exception.

0b1

Execution of GICR CDNMIA is not trapped by this mechanism.

The reset behavior of this field is:

GICRCDIA, bit [9]:

Trap execution of GICR CDIA at EL1 to EL2.

GICRCDIAMeaning
0b0

If EL2 is implemented and enabled in the current Security state, then execution of GICR CDIA at EL1 is trapped to EL2 and reported with EC syndrome value 0x18, unless the instruction generates a higher priority exception.

0b1

Execution of GICR CDIA is not trapped by this mechanism.

The reset behavior of this field is:

GICCDDI, bit [8]:

Trap execution of GIC CDDI at EL1 to EL2.

GICCDDIMeaning
0b0

If EL2 is implemented and enabled in the current Security state, then execution of GIC CDDI at EL1 is trapped to EL2 and reported with EC syndrome value 0x18, unless the instruction generates a higher priority exception.

0b1

Execution of GIC CDDI is not trapped by this mechanism.

The reset behavior of this field is:

GICCDEOI, bit [7]:

Trap execution of GIC CDEOI at EL1 to EL2.

GICCDEOIMeaning
0b0

If EL2 is implemented and enabled in the current Security state, then execution of GIC CDEOI at EL1 is trapped to EL2 and reported with EC syndrome value 0x18, unless the instruction generates a higher priority exception.

0b1

Execution of GIC CDEOI is not trapped by this mechanism.

The reset behavior of this field is:

GICCDHM, bit [6]:

Trap execution of GIC CDHM at EL1 to EL2.

GICCDHMMeaning
0b0

If EL2 is implemented and enabled in the current Security state, then execution of GIC CDHM at EL1 is trapped to EL2 and reported with EC syndrome value 0x18, unless the instruction generates a higher priority exception.

0b1

Execution of GIC CDHM is not trapped by this mechanism.

The reset behavior of this field is:

GICCDRCFG, bit [5]:

Trap execution of GIC CDRCFG at EL1 to EL2.

GICCDRCFGMeaning
0b0

If EL2 is implemented and enabled in the current Security state, then execution of GIC CDRCFG at EL1 is trapped to EL2 and reported with EC syndrome value 0x18, unless the instruction generates a higher priority exception.

0b1

Execution of GIC CDRCFG is not trapped by this mechanism.

The reset behavior of this field is:

GICCDPEND, bit [4]:

Trap execution of GIC CDPEND at EL1 to EL2.

GICCDPENDMeaning
0b0

If EL2 is implemented and enabled in the current Security state, then execution of GIC CDPEND at EL1 is trapped to EL2 and reported with EC syndrome value 0x18, unless the instruction generates a higher priority exception.

0b1

Execution of GIC CDPEND is not trapped by this mechanism.

The reset behavior of this field is:

GICCDAFF, bit [3]:

Trap execution of GIC CDAFF at EL1 to EL2.

GICCDAFFMeaning
0b0

If EL2 is implemented and enabled in the current Security state, then execution of GIC CDAFF at EL1 is trapped to EL2 and reported with EC syndrome value 0x18, unless the instruction generates a higher priority exception.

0b1

Execution of GIC CDAFF is not trapped by this mechanism.

The reset behavior of this field is:

GICCDPRI, bit [2]:

Trap execution of GIC CDPRI at EL1 to EL2.

GICCDPRIMeaning
0b0

If EL2 is implemented and enabled in the current Security state, then execution of GIC CDPRI at EL1 is trapped to EL2 and reported with EC syndrome value 0x18, unless the instruction generates a higher priority exception.

0b1

Execution of GIC CDPRI is not trapped by this mechanism.

The reset behavior of this field is:

GICCDDIS, bit [1]:

Trap execution of GIC CDDIS at EL1 to EL2.

GICCDDISMeaning
0b0

If EL2 is implemented and enabled in the current Security state, then execution of GIC CDDIS at EL1 is trapped to EL2 and reported with EC syndrome value 0x18, unless the instruction generates a higher priority exception.

0b1

Execution of GIC CDDIS is not trapped by this mechanism.

The reset behavior of this field is:

GICCDEN, bit [0]:

Trap execution of GIC CDEN at EL1 to EL2.

GICCDENMeaning
0b0

If EL2 is implemented and enabled in the current Security state, then execution of GIC CDEN at EL1 is trapped to EL2 and reported with EC syndrome value 0x18, unless the instruction generates a higher priority exception.

0b1

Execution of GIC CDEN is not trapped by this mechanism.

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>, ICH_HFGITR_EL2

(op0 = 0b11, op1 = 0b100, CRn = 0b1100, CRm = 0b1001, op2 = 0b111)

if !(IsFeatureImplemented(FEAT_GCIE) && (HaveEL(EL2) || HaveEL(EL3)) && IsFeatureImplemented(FEAT_AA64)) then Undefined(); elsif PSTATE.EL == EL0 then Undefined(); elsif PSTATE.EL == EL1 then if EffectiveHCR_EL2_NVx() IN {'1x1'} && (!IsFeatureImplemented(FEAT_GCIE_LEGACY) || (IsFeatureImplemented(FEAT_GCIE_LEGACY) && ICH_VCTLR_EL2().V3 == '0')) then X{64}(t) = NVMem(0xB10); elsif EffectiveHCR_EL2_NVx() IN {'xx1'} && (!IsFeatureImplemented(FEAT_GCIE_LEGACY) || (IsFeatureImplemented(FEAT_GCIE_LEGACY) && ICH_VCTLR_EL2().V3 == '0')) then AArch64_SystemAccessTrap(EL2, 0x18); else Undefined(); end; elsif PSTATE.EL == EL2 then X{64}(t) = ICH_HFGITR_EL2(); elsif PSTATE.EL == EL3 then X{64}(t) = ICH_HFGITR_EL2(); end;

MSR ICH_HFGITR_EL2, <Xt>

(op0 = 0b11, op1 = 0b100, CRn = 0b1100, CRm = 0b1001, op2 = 0b111)

if !(IsFeatureImplemented(FEAT_GCIE) && (HaveEL(EL2) || HaveEL(EL3)) && IsFeatureImplemented(FEAT_AA64)) then Undefined(); elsif PSTATE.EL == EL0 then Undefined(); elsif PSTATE.EL == EL1 then if EffectiveHCR_EL2_NVx() IN {'1x1'} && (!IsFeatureImplemented(FEAT_GCIE_LEGACY) || (IsFeatureImplemented(FEAT_GCIE_LEGACY) && ICH_VCTLR_EL2().V3 == '0')) then NVMem(0xB10) = X{64}(t); elsif EffectiveHCR_EL2_NVx() IN {'xx1'} && (!IsFeatureImplemented(FEAT_GCIE_LEGACY) || (IsFeatureImplemented(FEAT_GCIE_LEGACY) && ICH_VCTLR_EL2().V3 == '0')) then AArch64_SystemAccessTrap(EL2, 0x18); else Undefined(); end; elsif PSTATE.EL == EL2 then ICH_HFGITR_EL2() = X{64}(t); elsif PSTATE.EL == EL3 then ICH_HFGITR_EL2() = 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.