<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE register_page SYSTEM "registers.dtd">
<!-- Copyright (c) 2010-2026 Arm Limited or its affiliates. All rights reserved. -->
<!-- This document is Non-Confidential. This document may only be used and distributed in accordance with the terms of the agreement entered into by Arm and the party that Arm delivered this document to. -->
<!--The data contained in this document is preliminary and subject to change or correction following further review. -->
<?xml-stylesheet href="one_register.xsl" type="text/xsl" ?>







<register_page>
  <registers>
  
    <register is_register="True" is_internal="False" is_stub_entry="False">
      <reg_short_name>GICD_IGROUPR&lt;n&gt;</reg_short_name>
        
        <reg_long_name>Interrupt Group Registers</reg_long_name>



      
          <reg_array>
              <reg_array_start>0</reg_array_start>
              <reg_array_end>31</reg_array_end>
         </reg_array>
      

    
  <reg_address
      external_access="False"
    mem_map_access="True"
      power_domain="None"
  >
    <reg_component>GIC Distributor</reg_component>
    <reg_frame>Dist_base</reg_frame>
    <reg_offset><hexnumber>0x0080</hexnumber> + (4 * n)</reg_offset>
    <reg_instance>GICD_IGROUPR&lt;n&gt;</reg_instance>
    <reg_access>
      
        
      <reg_access_state>
          <reg_access_type>RW</reg_access_type>
      </reg_access_state>
    </reg_access>
</reg_address>



          <reg_reset_value></reg_reset_value>

      <reg_mappings>
        




      </reg_mappings>

        <reg_purpose>
          
    
      <purpose_text>
        <para>Controls whether the corresponding interrupt is in Group 0 or Group 1.</para>
      </purpose_text>

        </reg_purpose>

      <reg_groups>
            <reg_group>GICD</reg_group>
      </reg_groups>
      <reg_configuration>
        
    
      <configuration_text>
        <para>These registers are available in all GIC configurations. If <register_link state="ext" id="ext-gicd_ctlr.xml">GICD_CTLR</register_link>.DS==0, these registers are Secure.</para>

      </configuration_text>
      <configuration_text>
        <para>The number of implemented GICD_IGROUPR&lt;n&gt; registers is (<register_link state="ext" id="ext-gicd_typer.xml">GICD_TYPER</register_link>.ITLinesNumber+1). Registers are numbered from 0.</para>

      </configuration_text>
      <configuration_text>
        <para>GICD_IGROUPR0 is Banked for each connected PE with <register_link state="ext" id="ext-gicr_typer.xml">GICR_TYPER</register_link>.Processor_Number &lt; 8.</para>

      </configuration_text>
      <configuration_text>
        <para>Accessing GICD_IGROUPR0 from a PE with <register_link state="ext" id="ext-gicr_typer.xml">GICR_TYPER</register_link>.Processor_Number &gt; 7 is <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word>:</para>

      </configuration_text>
      <configuration_text>
        <list type="unordered">
<listitem><content>Register is RAZ/WI.</content>
</listitem><listitem><content>An <arm-defined-word>UNKNOWN</arm-defined-word> banked copy of the register is accessed.</content>
</listitem></list>
      </configuration_text>

      </reg_configuration>
      
      
        
      <reg_attributes>
          
    
      <attributes_text>
        <para>GICD_IGROUPR&lt;n&gt; is a 32-bit register.</para>
      </attributes_text>

      </reg_attributes>
      <reg_fieldsets>
        






<fields id="fieldset_0" length="32">
  <text_before_fields/>
  <field id="fieldset_0-31_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
    <field_name>Group_status_bit&lt;x&gt;</field_name>
    <field_msb>31</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>31:0</rel_range>
    <field_description order="before">
      <para>Group status bit.</para>
    </field_description>
    <field_description order="after"><para>If affinity routing is enabled for the Security state of an interrupt, the bit that corresponds to the interrupt is concatenated with the equivalent bit in <register_link state="ext" id="ext-gicd_igrpmodrn.xml">GICD_IGRPMODR&lt;n&gt;</register_link> to form a 2-bit field that defines an interrupt group. The encoding of this field is described in <register_link state="ext" id="ext-gicd_igrpmodrn.xml">GICD_IGRPMODR&lt;n&gt;</register_link>.</para>
<para>If affinity routing is disabled for the Security state of an interrupt, then:</para>
<list type="unordered">
<listitem><content>The corresponding <register_link state="ext" id="ext-gicd_igrpmodrn.xml">GICD_IGRPMODR&lt;n&gt;</register_link> bit is <arm-defined-word>RES0</arm-defined-word>.</content>
</listitem><listitem><content>For Secure interrupts, the interrupt is Secure Group 0.</content>
</listitem><listitem><content>For Non-secure interrupts, the interrupt is Non-secure Group 1.</content>
</listitem></list></field_description>
    <field_array_indexes index_variable="x" element_size="1" range_specifier="x">
      <field_array_index>
        <field_array_start>31</field_array_start>
        <field_array_end>0</field_array_end>
      </field_array_index>
    </field_array_indexes>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description><para>When <register_link state="ext" id="ext-gicd_ctlr.xml">GICD_CTLR</register_link>.DS==1, the corresponding interrupt is Group 0.</para>
<para>When <register_link state="ext" id="ext-gicd_ctlr.xml">GICD_CTLR</register_link>.DS==0, the corresponding interrupt is Secure.</para></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description><para>When <register_link state="ext" id="ext-gicd_ctlr.xml">GICD_CTLR</register_link>.DS==1, the corresponding interrupt is Group 1.</para>
<para>When <register_link state="ext" id="ext-gicd_ctlr.xml">GICD_CTLR</register_link>.DS==0, the corresponding interrupt is Non-secure Group 1.</para></field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="GIC">
        <field_reset_conditions>
          <field_reset_condition condition="n == 0">
            <field_reset>
              <field_reset_standard_text>U</field_reset_standard_text>
            </field_reset>
          </field_reset_condition>
          <field_reset_condition condition="n &gt; 0">
            <field_reset>
              <field_reset_number>'0'</field_reset_number>
            </field_reset>
          </field_reset_condition>
        </field_reset_conditions>
      </field_reset>
    </field_resets>
  </field>
  <text_after_fields><para>For INTID m, when DIV and MOD are the integer division and modulo operations:</para>
<list type="unordered">
<listitem><content>The corresponding GICD_IGROUP&lt;n&gt; number, n, is given by n = m DIV 32.</content>
</listitem><listitem><content>The offset of the required GICD_IGROUP is (<hexnumber>0x080</hexnumber> + (4*n)).</content>
</listitem><listitem><content>The bit number of the required group modifier bit in this register is m MOD 32.</content>
</listitem></list></text_after_fields>
</fields>




<reg_fieldset length="32">
  <fieldat id="fieldset_0-31_0" label="Group_status_bit31" msb="31" lsb="31"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit30" msb="30" lsb="30"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit29" msb="29" lsb="29"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit28" msb="28" lsb="28"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit27" msb="27" lsb="27"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit26" msb="26" lsb="26"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit25" msb="25" lsb="25"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit24" msb="24" lsb="24"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit23" msb="23" lsb="23"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit22" msb="22" lsb="22"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit21" msb="21" lsb="21"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit20" msb="20" lsb="20"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit19" msb="19" lsb="19"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit18" msb="18" lsb="18"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit17" msb="17" lsb="17"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit16" msb="16" lsb="16"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit15" msb="15" lsb="15"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit14" msb="14" lsb="14"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit13" msb="13" lsb="13"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit12" msb="12" lsb="12"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit11" msb="11" lsb="11"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit10" msb="10" lsb="10"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit9" msb="9" lsb="9"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit8" msb="8" lsb="8"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit7" msb="7" lsb="7"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit6" msb="6" lsb="6"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit5" msb="5" lsb="5"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit4" msb="4" lsb="4"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit3" msb="3" lsb="3"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit2" msb="2" lsb="2"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit1" msb="1" lsb="1"/>
  <fieldat id="fieldset_0-31_0" label="Group_status_bit0" msb="0" lsb="0"/>
</reg_fieldset>


      </reg_fieldsets>
        <reg_variables>
              <reg_variable variable="n" max="31"/>
        </reg_variables>

      <access_mechanisms>
          


  
    
      <access_permission_text>
        <para>For SGIs and PPIs:</para>

      </access_permission_text>
      <access_permission_text>
        <list type="unordered">
<listitem><content>When ARE is 1 for the Security state of an interrupt, the field for that interrupt is <arm-defined-word>RES0</arm-defined-word> and an implementation is permitted to make the field RAZ/WI in this case.</content>
</listitem><listitem><content>Equivalent functionality is provided by GICR_IGROUPR0.</content>
</listitem></list>

      </access_permission_text>
      <access_permission_text>
        <para>When <register_link state="ext" id="ext-gicd_ctlr.xml">GICD_CTLR</register_link>.DS==0, the register is RAZ/WI to Non-secure accesses.</para>

      </access_permission_text>
      <access_permission_text>
        <para>Bits corresponding to unimplemented interrupts are RAZ/WI.</para>

      </access_permission_text>
      <access_permission_text>
        <note><para>Accesses to GICD_IGROUPR0 when affinity routing is not enabled for a Security state access the same state as <register_link state="ext" id="ext-gicr_igroupr0.xml">GICR_IGROUPR0</register_link>, and must update Redistributor state associated with the PE performing the accesses.
Implementations must ensure that an interrupt that is pending at the time of the write uses either the old value or the new value and must ensure that the interrupt is neither lost nor handled more than one time. The effect of the change must be visible in finite time.</para></note>
      </access_permission_text>





    

      </access_mechanisms>

      <arch_variants>
      </arch_variants>
  </register>
</registers>
<timestamp>2026-03-26 20:27:25</timestamp>
<commit_id>2026-03_rel</commit_id>
</register_page>