<?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>GICC_AHPPIR</reg_short_name>
        
        <reg_long_name>CPU Interface Aliased Highest Priority Pending Interrupt Register</reg_long_name>



      
            <reg_condition otherwise="RES0">when FEAT_GICv3_LEGACY is implemented</reg_condition>
      

    
  <reg_address
      external_access="False"
    mem_map_access="True"
      power_domain="None"
  >
    <reg_component>GIC CPU interface</reg_component>
    <reg_offset><hexnumber>0x0028</hexnumber></reg_offset>
    <reg_instance>GICC_AHPPIR</reg_instance>
    <reg_access>
      
        
      <reg_access_state>
          <reg_access_level>When GICD_CTLR.DS == '0'</reg_access_level>
          <reg_access_type>RO</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_level>When an access is Secure</reg_access_level>
          <reg_access_type>RO</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_level>When an access is Non-secure</reg_access_level>
          <reg_access_type>RO</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>If the highest priority pending interrupt is in Group 1, this register provides the INTID of the highest priority pending interrupt on the CPU interface.</para>
      </purpose_text>

        </reg_purpose>

      <reg_groups>
            <reg_group>GICC</reg_group>
      </reg_groups>
      <reg_configuration>
        
    
      <configuration_text>
        <para>If <register_link state="ext" id="ext-gicd_ctlr.xml">GICD_CTLR</register_link>.DS==0, this register is an alias of the Non-secure view of <register_link state="ext" id="ext-gicc_hppir.xml">GICC_HPPIR</register_link>. A Secure access to this register is identical to a Non-secure access to <register_link state="ext" id="ext-gicc_hppir.xml">GICC_HPPIR</register_link>.</para>
      </configuration_text>

      </reg_configuration>
      
      
        
      <reg_attributes>
          
    
      <attributes_text>
        <para>GICC_AHPPIR 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" rwtype="RES0">
    <field_msb>31</field_msb>
    <field_lsb>24</field_lsb>
    <rel_range>31:24</rel_range>
    <field_description order="before"/>
    <field_description order="before">
      <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
    </field_description>
  </field>
  <field id="fieldset_0-23_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>INTID</field_name>
    <field_msb>23</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>23:0</rel_range>
    <field_description order="before"><para>The INTID of the signaled interrupt.</para>
<note><para>INTIDs 1020-1023 are reserved and convey additional information such as spurious interrupts.</para></note><para>When affinity routing is not enabled:</para>
<list type="unordered">
<listitem><content>Bits [23:13] are <arm-defined-word>RES0</arm-defined-word>.</content>
</listitem><listitem><content>For SGIs, bits [12:10] identify the CPU interface corresponding to the source PE. For all other interrupts these bits are <arm-defined-word>RES0</arm-defined-word>.</content>
</listitem></list></field_description>
  </field>
  <text_after_fields/>
</fields>




<reg_fieldset length="32">
  <fieldat id="fieldset_0-31_24" msb="31" lsb="24"/>
  <fieldat id="fieldset_0-23_0" msb="23" lsb="0"/>
</reg_fieldset>


      </reg_fieldsets>

      <access_mechanisms>
          


  
    
      <access_permission_text>
        <para>This register is used only when System register access is not enabled. When System register access is enabled:</para>

      </access_permission_text>
      <access_permission_text>
        <list type="unordered">
<listitem><content>For AArch32 implementations, <register_link state="AArch32" id="AArch32-icc_hppir1.xml">ICC_HPPIR1</register_link> provides equivalent functionality.</content>
</listitem><listitem><content>For AArch64 implementations, <register_link state="AArch64" id="AArch64-icc_hppir1_el1.xml">ICC_HPPIR1_EL1</register_link> provides equivalent functionality.</content>
</listitem></list>

      </access_permission_text>
      <access_permission_text>
        <para>If the highest priority pending interrupt is in Group 0, a read of this register returns the special INTID 1023.</para>

      </access_permission_text>
      <access_permission_text>
        <para>Interrupt identifiers corresponding to an interrupt group that is not enabled are ignored.</para>

      </access_permission_text>
      <access_permission_text>
        <para>If the highest priority pending interrupt is a direct interrupt that is both individually enabled in the Distributor and part of an interrupt group that is enabled in the Distributor, and the interrupt group is disabled in the CPU interface for this PE, this register returns the special INTID 1023.</para>

      </access_permission_text>
      <access_permission_text>
        <para>For more information about pending interrupts that are not considered when determining the highest priority pending interrupt, see <xref filename="AS_interrupt_handling_and_prioritization.fm" linkend="CJHDHFEC">'Preemption' in ARM&#174; Generic Interrupt Controller Architecture Specification, GIC architecture version 3.0 and version 4.0 (ARM IHI 0069)</xref>.</para>

      </access_permission_text>
      <access_permission_text>
        <para>When affinity routing is enabled for a Security state, it is a programming error to use memory-mapped registers to access the GIC.</para>
      </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>