<?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>GICR_IPRIORITYR&lt;n&gt;</reg_short_name>
        
        <reg_long_name>Interrupt Priority Registers</reg_long_name>



      
          <reg_array>
              <reg_array_start>0</reg_array_start>
              <reg_array_end>7</reg_array_end>
         </reg_array>
      

    
  <reg_address
      external_access="False"
    mem_map_access="True"
      power_domain="None"
  >
    <reg_component>GIC Redistributor</reg_component>
    <reg_frame>SGI_base</reg_frame>
    <reg_offset><hexnumber>0x0400</hexnumber> + (4 * n)</reg_offset>
    <reg_instance>GICR_IPRIORITYR&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>Holds the priority of the corresponding interrupt for each SGI and PPI supported by the GIC.</para>
      </purpose_text>

        </reg_purpose>

      <reg_groups>
            <reg_group>GICR</reg_group>
      </reg_groups>
      <reg_configuration>
        
    
      <configuration_text>
        <para>A copy of these registers is provided for each Redistributor.</para>

      </configuration_text>
      <configuration_text>
        <para>These registers are configured as follows:</para>

      </configuration_text>
      <configuration_text>
        <list type="unordered">
<listitem><content>GICR_IPRIORITYR0-GICR_IPRIORITYR3 store the priority of SGIs.</content>
</listitem><listitem><content>GICR_IPRIORITYR4-GICR_IPRIORITYR7 store the priority of PPIs.</content>
</listitem></list>
      </configuration_text>

      </reg_configuration>
      
      
        
      <reg_attributes>
          
    
      <attributes_text>
        <para>GICR_IPRIORITYR&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_24" 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>Priority_offset_3B</field_name>
    <field_msb>31</field_msb>
    <field_lsb>24</field_lsb>
    <rel_range>31:24</rel_range>
    <field_description order="before">
      <para>Interrupt priority value from an <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> range, at byte offset 3. Lower priority values correspond to greater priority of the interrupt. For an INTID configured as non-maskable, this field is <arm-defined-word>RES0</arm-defined-word>.</para>
    </field_description>
    <field_resets>
      <field_reset reset_type="GIC">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-23_16" 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>Priority_offset_2B</field_name>
    <field_msb>23</field_msb>
    <field_lsb>16</field_lsb>
    <rel_range>23:16</rel_range>
    <field_description order="before">
      <para>Interrupt priority value from an <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> range, at byte offset 2. Lower priority values correspond to greater priority of the interrupt. For an INTID configured as non-maskable, this field is <arm-defined-word>RES0</arm-defined-word>.</para>
    </field_description>
    <field_resets>
      <field_reset reset_type="GIC">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-15_8" 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>Priority_offset_1B</field_name>
    <field_msb>15</field_msb>
    <field_lsb>8</field_lsb>
    <rel_range>15:8</rel_range>
    <field_description order="before">
      <para>Interrupt priority value from an <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> range, at byte offset 1. Lower priority values correspond to greater priority of the interrupt. For an INTID configured as non-maskable, this field is <arm-defined-word>RES0</arm-defined-word>.</para>
    </field_description>
    <field_resets>
      <field_reset reset_type="GIC">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-7_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>Priority_offset_0B</field_name>
    <field_msb>7</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>7:0</rel_range>
    <field_description order="before">
      <para>Interrupt priority value from an <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> range, at byte offset 0. Lower priority values correspond to greater priority of the interrupt. For an INTID configured as non-maskable, this field is <arm-defined-word>RES0</arm-defined-word>.</para>
    </field_description>
    <field_resets>
      <field_reset reset_type="GIC">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <text_after_fields/>
</fields>




<reg_fieldset length="32">
  <fieldat id="fieldset_0-31_24" msb="31" lsb="24"/>
  <fieldat id="fieldset_0-23_16" msb="23" lsb="16"/>
  <fieldat id="fieldset_0-15_8" msb="15" lsb="8"/>
  <fieldat id="fieldset_0-7_0" msb="7" lsb="0"/>
</reg_fieldset>


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

      <access_mechanisms>
          


  
    
      <access_permission_text>
        <para>These registers are used when affinity routing is enabled for the Security state of the interrupt. When affinity routing is not enabled the bits corresponding to the interrupt are RAZ/WI and <register_link state="ext" id="ext-gicd_ipriorityrn.xml">GICD_IPRIORITYR&lt;n&gt;</register_link> provides equivalent functionality.</para>

      </access_permission_text>
      <access_permission_text>
        <para>These registers are used for SGIs and PPIs only. Equivalent functionality for SPIs is provided by <register_link state="ext" id="ext-gicd_ipriorityrn.xml">GICD_IPRIORITYR&lt;n&gt;</register_link>.</para>

      </access_permission_text>
      <access_permission_text>
        <para>These registers are byte-accessible.</para>

      </access_permission_text>
      <access_permission_text>
        <para>When <register_link state="ext" id="ext-gicd_ctlr.xml">GICD_CTLR</register_link>.DS == 0:</para>

      </access_permission_text>
      <access_permission_text>
        <list type="unordered">
<listitem><content>
<para>A field that corresponds to a Group 0 or Secure Group 1 interrupt is RAZ/WI to Non-secure accesses.</para>
</content>
</listitem><listitem><content>
<para>A Non-secure access to a field that corresponds to a Non-secure Group 1 interrupt behaves as described in <xref filename="AS_interrupt_handling_and_prioritization.fm" linkend="CJHECCCE">'Software accesses of interrupt priority' in ARM&#174; Generic Interrupt Controller Architecture Specification, GIC architecture version 3.0 and version 4.0 (ARM IHI 0069)</xref>.</para>
</content>
</listitem></list>

      </access_permission_text>
      <access_permission_text>
        <note><para>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>