<?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 execution_state="AArch64" is_register="True" is_internal="True" is_stub_entry="False">
      <reg_short_name>PMCEID1_EL0</reg_short_name>
        
        <reg_long_name>Performance Monitors Common Event Identification Register 1</reg_long_name>



      
            <reg_condition otherwise="UNDEFINED">when FEAT_PMUv3 is implemented and FEAT_AA64 is implemented</reg_condition>
      




          <reg_reset_value></reg_reset_value>

      <reg_mappings>
        



    
      
      <reg_mapping>
        
  

    

  

    <mapped_name filename="AArch32-pmceid1.xml">PMCEID1</mapped_name>
  <mapped_type>Architectural</mapped_type>
      <mapped_execution_state>AArch32</mapped_execution_state>
    <mapped_from_startbit>31</mapped_from_startbit>
    <mapped_from_endbit>0</mapped_from_endbit>
    <mapped_to_startbit>31</mapped_to_startbit>
    <mapped_to_endbit>0</mapped_to_endbit>
    <mapped_from_rangeset output="31:0">
      <range>
        <msb>31</msb>
        <lsb>0</lsb>
      </range>
    </mapped_from_rangeset>
    <mapped_to_rangeset output="31:0">
      <range>
        <msb>31</msb>
        <lsb>0</lsb>
      </range>
    </mapped_to_rangeset>

      </reg_mapping>
    
      
      <reg_mapping>
        
  

    

  

    <mapped_name filename="AArch32-pmceid3.xml">PMCEID3</mapped_name>
  <mapped_type>Architectural</mapped_type>
      <mapped_execution_state>AArch32</mapped_execution_state>
    <mapped_from_startbit>63</mapped_from_startbit>
    <mapped_from_endbit>32</mapped_from_endbit>
    <mapped_to_startbit>31</mapped_to_startbit>
    <mapped_to_endbit>0</mapped_to_endbit>
    <mapped_from_rangeset output="63:32">
      <range>
        <msb>63</msb>
        <lsb>32</lsb>
      </range>
    </mapped_from_rangeset>
    <mapped_to_rangeset output="31:0">
      <range>
        <msb>31</msb>
        <lsb>0</lsb>
      </range>
    </mapped_to_rangeset>

      </reg_mapping>
    
      
      <reg_mapping>
        
  

    

  

    <mapped_name filename="pmu.pmceid1.xml">PMCEID1</mapped_name>
  <mapped_type>Architectural</mapped_type>
    <mapped_execution_state>External</mapped_execution_state>
    <mapped_from_startbit>31</mapped_from_startbit>
    <mapped_from_endbit>0</mapped_from_endbit>
    <mapped_to_startbit>31</mapped_to_startbit>
    <mapped_to_endbit>0</mapped_to_endbit>
    <mapped_from_rangeset output="31:0">
      <range>
        <msb>31</msb>
        <lsb>0</lsb>
      </range>
    </mapped_from_rangeset>
    <mapped_to_rangeset output="31:0">
      <range>
        <msb>31</msb>
        <lsb>0</lsb>
      </range>
    </mapped_to_rangeset>

      </reg_mapping>
    
      
      <reg_mapping>
        
  

    

  

    <mapped_name filename="pmu.pmceid3.xml">PMCEID3</mapped_name>
  <mapped_type>Architectural</mapped_type>
    <mapped_execution_state>External</mapped_execution_state>
    <mapped_from_startbit>63</mapped_from_startbit>
    <mapped_from_endbit>32</mapped_from_endbit>
    <mapped_to_startbit>31</mapped_to_startbit>
    <mapped_to_endbit>0</mapped_to_endbit>
    <mapped_from_rangeset output="63:32">
      <range>
        <msb>63</msb>
        <lsb>32</lsb>
      </range>
    </mapped_from_rangeset>
    <mapped_to_rangeset output="31:0">
      <range>
        <msb>31</msb>
        <lsb>0</lsb>
      </range>
    </mapped_to_rangeset>

      </reg_mapping>

      </reg_mappings>

        <reg_purpose>
          
    
      <purpose_text>
        <para>Defines which Common architectural events and Common microarchitectural events are implemented, or counted, using PMU events in the ranges <hexnumber>0x0020</hexnumber> to <hexnumber>0x003F</hexnumber> and <hexnumber>0x4020</hexnumber> to <hexnumber>0x403F</hexnumber>.</para>

      </purpose_text>
      <purpose_text>
        <para>For more information about the Common events and the use of the PMCEID&lt;n&gt;_EL0 registers see <xref linkend="#CACIDECJ">'The PMU event number space and common events'</xref>.</para>
      </purpose_text>

        </reg_purpose>

      <reg_groups>
          <reg_group>PMU</reg_group>
      </reg_groups>
      
      
        
      <reg_attributes>
          
    
      <attributes_text>
        <para>PMCEID1_EL0 is a 64-bit register.</para>
      </attributes_text>

      </reg_attributes>
      <reg_fieldsets>
        






<fields id="fieldset_0" length="64">
  <text_before_fields/>
  <field id="fieldset_0-63_32-1" 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" reserved_type="RES0">
    <field_name>IDhi&lt;n&gt;</field_name>
    <field_msb>63</field_msb>
    <field_lsb>32</field_lsb>
    <rel_range>31:0</rel_range>
    <field_description order="before"><para>IDhi[n] corresponds to Common event (<hexnumber>0x4020</hexnumber> + n).</para>
<para>For each bit:</para></field_description>
    <field_description order="after"><para>When the value of a bit in the field is 1, the corresponding Common event is implemented and counted.</para>
<note><para>Arm recommends that if a Common event is never counted, the value of the corresponding bit is 0.</para></note><para>A bit that corresponds to a reserved event number is reserved. The value might be used in a future revision of the architecture to identify an additional Common event.</para>
<note><para>Such an event might be added retrospectively to an earlier version of the PMU architecture, provided the event does not require any additional PMU features and has an event number that can be represented in the PMCEID&lt;n&gt;_EL0 registers of that earlier version of the PMU architecture.</para></note></field_description>
    <field_array_indexes index_variable="n" element_size="1" range_specifier="n+32">
      <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>The Common event is not implemented, or not counted.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>The Common event is implemented.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <fields_condition>When FEAT_PMUv3p1 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-63_32-2" 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>63</field_msb>
    <field_lsb>32</field_lsb>
    <rel_range>63:32</rel_range>
    <field_description order="before"/>
    <field_description order="before">
      <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
    </field_description>
    <fields_condition>Otherwise</fields_condition>
  </field>
  <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>ID&lt;n&gt;</field_name>
    <field_msb>31</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>31:0</rel_range>
    <field_description order="before"><para>ID[n] corresponds to Common event (<hexnumber>0x0020</hexnumber> + n).</para>
<para>For each bit:</para></field_description>
    <field_description order="after"><para>When the value of a bit in the field is 1, the corresponding Common event is implemented and counted.</para>
<note><para>Arm recommends that if a Common event is never counted, the value of the corresponding bit is 0.</para></note><para>A bit that corresponds to a reserved event number is reserved. The value might be used in a future revision of the architecture to identify an additional Common event.</para>
<note><para>Such an event might be added retrospectively to an earlier version of the PMU architecture, provided the event does not require any additional PMU features and has an event number that can be represented in the PMCEID&lt;n&gt;_EL0 registers of that earlier version of the PMU architecture.</para></note></field_description>
    <field_array_indexes index_variable="n" element_size="1" range_specifier="n">
      <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>The Common event is not implemented, or not counted.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>The Common event is implemented.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
  </field>
  <text_after_fields/>
</fields>




<reg_fieldset length="64">
  <fieldat id="fieldset_0-63_32-1" label="IDhi31" msb="63" lsb="63"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi30" msb="62" lsb="62"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi29" msb="61" lsb="61"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi28" msb="60" lsb="60"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi27" msb="59" lsb="59"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi26" msb="58" lsb="58"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi25" msb="57" lsb="57"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi24" msb="56" lsb="56"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi23" msb="55" lsb="55"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi22" msb="54" lsb="54"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi21" msb="53" lsb="53"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi20" msb="52" lsb="52"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi19" msb="51" lsb="51"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi18" msb="50" lsb="50"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi17" msb="49" lsb="49"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi16" msb="48" lsb="48"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi15" msb="47" lsb="47"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi14" msb="46" lsb="46"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi13" msb="45" lsb="45"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi12" msb="44" lsb="44"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi11" msb="43" lsb="43"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi10" msb="42" lsb="42"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi9" msb="41" lsb="41"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi8" msb="40" lsb="40"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi7" msb="39" lsb="39"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi6" msb="38" lsb="38"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi5" msb="37" lsb="37"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi4" msb="36" lsb="36"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi3" msb="35" lsb="35"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi2" msb="34" lsb="34"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi1" msb="33" lsb="33"/>
  <fieldat id="fieldset_0-63_32-1" label="IDhi0" msb="32" lsb="32"/>
  <fieldat id="fieldset_0-31_0" label="ID31" msb="31" lsb="31"/>
  <fieldat id="fieldset_0-31_0" label="ID30" msb="30" lsb="30"/>
  <fieldat id="fieldset_0-31_0" label="ID29" msb="29" lsb="29"/>
  <fieldat id="fieldset_0-31_0" label="ID28" msb="28" lsb="28"/>
  <fieldat id="fieldset_0-31_0" label="ID27" msb="27" lsb="27"/>
  <fieldat id="fieldset_0-31_0" label="ID26" msb="26" lsb="26"/>
  <fieldat id="fieldset_0-31_0" label="ID25" msb="25" lsb="25"/>
  <fieldat id="fieldset_0-31_0" label="ID24" msb="24" lsb="24"/>
  <fieldat id="fieldset_0-31_0" label="ID23" msb="23" lsb="23"/>
  <fieldat id="fieldset_0-31_0" label="ID22" msb="22" lsb="22"/>
  <fieldat id="fieldset_0-31_0" label="ID21" msb="21" lsb="21"/>
  <fieldat id="fieldset_0-31_0" label="ID20" msb="20" lsb="20"/>
  <fieldat id="fieldset_0-31_0" label="ID19" msb="19" lsb="19"/>
  <fieldat id="fieldset_0-31_0" label="ID18" msb="18" lsb="18"/>
  <fieldat id="fieldset_0-31_0" label="ID17" msb="17" lsb="17"/>
  <fieldat id="fieldset_0-31_0" label="ID16" msb="16" lsb="16"/>
  <fieldat id="fieldset_0-31_0" label="ID15" msb="15" lsb="15"/>
  <fieldat id="fieldset_0-31_0" label="ID14" msb="14" lsb="14"/>
  <fieldat id="fieldset_0-31_0" label="ID13" msb="13" lsb="13"/>
  <fieldat id="fieldset_0-31_0" label="ID12" msb="12" lsb="12"/>
  <fieldat id="fieldset_0-31_0" label="ID11" msb="11" lsb="11"/>
  <fieldat id="fieldset_0-31_0" label="ID10" msb="10" lsb="10"/>
  <fieldat id="fieldset_0-31_0" label="ID9" msb="9" lsb="9"/>
  <fieldat id="fieldset_0-31_0" label="ID8" msb="8" lsb="8"/>
  <fieldat id="fieldset_0-31_0" label="ID7" msb="7" lsb="7"/>
  <fieldat id="fieldset_0-31_0" label="ID6" msb="6" lsb="6"/>
  <fieldat id="fieldset_0-31_0" label="ID5" msb="5" lsb="5"/>
  <fieldat id="fieldset_0-31_0" label="ID4" msb="4" lsb="4"/>
  <fieldat id="fieldset_0-31_0" label="ID3" msb="3" lsb="3"/>
  <fieldat id="fieldset_0-31_0" label="ID2" msb="2" lsb="2"/>
  <fieldat id="fieldset_0-31_0" label="ID1" msb="1" lsb="1"/>
  <fieldat id="fieldset_0-31_0" label="ID0" msb="0" lsb="0"/>
</reg_fieldset>


      </reg_fieldsets>

      <access_mechanisms>
          






    
        
        <access_mechanism accessor="MRS PMCEID1_EL0" type="SystemAccessor">
            <encoding>
            <access_instruction>MRS &lt;Xt&gt;, PMCEID1_EL0</access_instruction>
                
                <enc n="op0" v="0b11"/>
                
                <enc n="op1" v="0b011"/>
                
                <enc n="CRn" v="0b1001"/>
                
                <enc n="CRm" v="0b1100"/>
                
                <enc n="op2" v="0b111"/>
            </encoding>
            <access_permission>
                <ps name="MRS" sections="1" secttype="access_permission">
                <pstext>
if !(IsFeatureImplemented(FEAT_PMUv3) &amp;&amp; IsFeatureImplemented(FEAT_AA64)) then
    Undefined();
elsif PSTATE.EL == EL0 then
    if HaveEL(EL3) &amp;&amp; EL3SDDUndefPriority() &amp;&amp; MDCR_EL3().TPM == '1' then
        Undefined();
    elsif PMUSERENR_EL0().EN == '0' &amp;&amp; (!IsFeatureImplemented(FEAT_PMUv3p9) || PMUSERENR_EL0().UEN == '0') then
        if EL2Enabled() &amp;&amp; HCR_EL2().TGE == '1' then
            AArch64_SystemAccessTrap(EL2, 0x18);
        else
            AArch64_SystemAccessTrap(EL1, 0x18);
        end;
    elsif IsFeatureImplemented(FEAT_PMUv3p9) &amp;&amp; PMUSERENR_EL0().TID == '1' then
        if EL2Enabled() &amp;&amp; HCR_EL2().TGE == '1' then
            AArch64_SystemAccessTrap(EL2, 0x18);
        else
            AArch64_SystemAccessTrap(EL1, 0x18);
        end;
    elsif EL2Enabled() &amp;&amp; !ELIsInHost(EL0) &amp;&amp; IsFeatureImplemented(FEAT_FGT) &amp;&amp; (!HaveEL(EL3) || SCR_EL3().FGTEn == '1') &amp;&amp; HDFGRTR_EL2().PMCEIDn_EL0 == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif EL2Enabled() &amp;&amp; MDCR_EL2().TPM == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif HaveEL(EL3) &amp;&amp; MDCR_EL3().TPM == '1' then
        if EL3SDDUndef() then
            Undefined();
        else
            AArch64_SystemAccessTrap(EL3, 0x18);
        end;
    else
        X{64}(t) = PMCEID1_EL0();
    end;
elsif PSTATE.EL == EL1 then
    if HaveEL(EL3) &amp;&amp; EL3SDDUndefPriority() &amp;&amp; MDCR_EL3().TPM == '1' then
        Undefined();
    elsif EL2Enabled() &amp;&amp; IsFeatureImplemented(FEAT_FGT) &amp;&amp; (!HaveEL(EL3) || SCR_EL3().FGTEn == '1') &amp;&amp; HDFGRTR_EL2().PMCEIDn_EL0 == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif EL2Enabled() &amp;&amp; MDCR_EL2().TPM == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif HaveEL(EL3) &amp;&amp; MDCR_EL3().TPM == '1' then
        if EL3SDDUndef() then
            Undefined();
        else
            AArch64_SystemAccessTrap(EL3, 0x18);
        end;
    else
        X{64}(t) = PMCEID1_EL0();
    end;
elsif PSTATE.EL == EL2 then
    if HaveEL(EL3) &amp;&amp; EL3SDDUndefPriority() &amp;&amp; MDCR_EL3().TPM == '1' then
        Undefined();
    elsif HaveEL(EL3) &amp;&amp; MDCR_EL3().TPM == '1' then
        if EL3SDDUndef() then
            Undefined();
        else
            AArch64_SystemAccessTrap(EL3, 0x18);
        end;
    else
        X{64}(t) = PMCEID1_EL0();
    end;
elsif PSTATE.EL == EL3 then
    X{64}(t) = PMCEID1_EL0();
end;
                </pstext>
                </ps>
            </access_permission>
        </access_mechanism>

      </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>