<?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>AMCFGR</reg_short_name>
        
        <reg_long_name>Activity Monitors Configuration Register</reg_long_name>

        <power_domain_text>It is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether AMCFGR is implemented in the Core power domain or in the Debug power domain</power_domain_text>

        <reg_parent_link id="amu.xml">AMU</reg_parent_link>

      
            <reg_condition otherwise="RES0">when FEAT_AMUv1 is implemented and FEAT_AMU_EXT is implemented</reg_condition>
      



    
    <reg_address
        external_access="False"
        mem_map_access="False"
        block_access="True"
        memory_access="True"
        table_id="AMUacccessor0"
    >
  
  <reg_frame>AMU</reg_frame>
  
    
    <reg_offset><hexnumber>0xE00</hexnumber></reg_offset>
    <reg_access>
    
        
      <reg_access_state>
          <reg_access_level>When FEAT_RME is implemented, FEAT_AMU_EXTACR is implemented, an access is Secure, and AMROOTCR().RA IN {'001', '000'}</reg_access_level>
          <reg_access_type>RAZ/WI</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_level>When FEAT_RME is implemented, FEAT_AMU_EXTACR is implemented, an access is Realm, and AMROOTCR().RA IN {'010', '000'}</reg_access_level>
          <reg_access_type>RAZ/WI</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_level>When FEAT_RME is implemented, FEAT_AMU_EXTACR is implemented, an access is Non-secure, and AMROOTCR().RA != '011'</reg_access_level>
          <reg_access_type>RAZ/WI</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_level>When FEAT_RME is not implemented, FEAT_AMU_EXTACR is implemented, an access is Non-secure, and AMSCR().NSRA == '0'</reg_access_level>
          <reg_access_type>RAZ/WI</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_type>RO</reg_access_type>
      </reg_access_state>
    </reg_access>
</reg_address>

    
    <reg_address
        external_access="False"
        mem_map_access="False"
        block_access="True"
        memory_access="True"
        table_id="AMUacccessor1"
    >
  
  <reg_frame>AMU</reg_frame>
  
    
    <reg_offset><hexnumber>0xE00</hexnumber></reg_offset>
    <reg_access>
    
        
      <reg_access_state>
          <reg_access_level>When FEAT_RME is implemented, FEAT_AMU_EXTACR is implemented, an access is Secure, and AMROOTCR().RA IN {'001', '000'}</reg_access_level>
          <reg_access_type>RAZ/WI</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_level>When FEAT_RME is implemented, FEAT_AMU_EXTACR is implemented, an access is Realm, and AMROOTCR().RA IN {'010', '000'}</reg_access_level>
          <reg_access_type>RAZ/WI</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_level>When FEAT_RME is implemented, FEAT_AMU_EXTACR is implemented, an access is Non-secure, and AMROOTCR().RA != '011'</reg_access_level>
          <reg_access_type>RAZ/WI</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_level>When FEAT_RME is not implemented, FEAT_AMU_EXTACR is implemented, an access is Non-secure, and AMSCR().NSRA == '0'</reg_access_level>
          <reg_access_type>RAZ/WI</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_type>RO</reg_access_type>
      </reg_access_state>
    </reg_access>
</reg_address>


          <reg_reset_value></reg_reset_value>

      <reg_mappings>
        



    
      
      <reg_mapping>
        
  

    

  

    <mapped_name filename="AArch64-amcfgr_el0.xml">AMCFGR_EL0</mapped_name>
  <mapped_type>Architectural</mapped_type>
      <mapped_execution_state>AArch64</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>

        <mapped_to_condition>when FEAT_AMU_EXT32 is implemented</mapped_to_condition>
      </reg_mapping>
    
      
      <reg_mapping>
        
  

    

  

    <mapped_name filename="AArch64-amcfgr_el0.xml">AMCFGR_EL0</mapped_name>
  <mapped_type>Architectural</mapped_type>
      <mapped_execution_state>AArch64</mapped_execution_state>
    <mapped_from_startbit>63</mapped_from_startbit>
    <mapped_from_endbit>0</mapped_from_endbit>
    <mapped_to_startbit>63</mapped_to_startbit>
    <mapped_to_endbit>0</mapped_to_endbit>
    <mapped_from_rangeset output="63:0">
      <range>
        <msb>63</msb>
        <lsb>0</lsb>
      </range>
    </mapped_from_rangeset>
    <mapped_to_rangeset output="63:0">
      <range>
        <msb>63</msb>
        <lsb>0</lsb>
      </range>
    </mapped_to_rangeset>

        <mapped_to_condition>when FEAT_AMU_EXT64 is implemented</mapped_to_condition>
      </reg_mapping>
    
      
      <reg_mapping>
        
  

    

  

    <mapped_name filename="AArch32-amcfgr.xml">AMCFGR</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_mappings>

        <reg_purpose>
          
    
      <purpose_text>
        <para>Global configuration register for the activity monitors.</para>

      </purpose_text>
      <purpose_text>
        <para>Provides information on supported features, the number of counter groups implemented, the total number of activity monitor event counters implemented, and the size of the counters. AMCFGR is applicable to both the architected and the auxiliary counter groups.</para>
      </purpose_text>

        </reg_purpose>

      <reg_groups>
          <reg_group>AMU</reg_group>
      </reg_groups>
      
      
        
      <reg_attributes>
          
    
      <attributes_text>
        <para>AMCFGR is a:</para>

      </attributes_text>
      <attributes_text>
        <list type="unordered">
<listitem><content>64-bit register when FEAT_AMU_EXT64 is implemented</content>
</listitem><listitem><content>32-bit register otherwise</content>
</listitem></list>
      </attributes_text>

      </reg_attributes>
      <reg_fieldsets>
        






<fields id="fieldset_0" length="64">
  <fields_condition>When FEAT_AMU_EXT64 is implemented</fields_condition>
  <text_before_fields/>
  <field id="fieldset_0-63_32" 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>
  </field>
  <field id="fieldset_0-31_28" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="True" is_partial_field="False" is_conditional_field_name="False">
    <field_name>NCG</field_name>
    <field_msb>31</field_msb>
    <field_lsb>28</field_lsb>
    <rel_range>31:28</rel_range>
    <field_description order="before">
      <para>Defines the number of counter groups implemented, minus one.</para>
    </field_description>
    <field_description order="after">
      <para>All other values are reserved.</para>
    </field_description>
    <field_values impdef="True">
      <field_value_instance>
        <field_value>0b0000</field_value>
        <field_value_description>
          <para>One counter group implemented.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0001</field_value>
        <field_value_description>
          <para>Two counter groups implemented.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_access>
      <field_access_state>
        <field_access_type>RO</field_access_type>
      </field_access_state>
    </field_access>
  </field>
  <field id="fieldset_0-27_25" 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>27</field_msb>
    <field_lsb>25</field_lsb>
    <rel_range>27:25</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-24_24" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="True" is_partial_field="False" is_conditional_field_name="False">
    <field_name>HDBG</field_name>
    <field_msb>24</field_msb>
    <field_lsb>24</field_lsb>
    <rel_range>24</rel_range>
    <field_description order="before"><para>Halt-on-debug supported.</para>
<para>This feature must be supported, and so this bit is 1.</para></field_description>
    <field_values impdef="True">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para><register_link id="amu.amcr.xml" state="">AMCR</register_link>.HDBG is <arm-defined-word>RES0</arm-defined-word>.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para><register_link id="amu.amcr.xml" state="">AMCR</register_link>.HDBG is read/write.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_access>
      <field_access_state>
        <field_access_type>RO</field_access_type>
      </field_access_state>
    </field_access>
  </field>
  <field id="fieldset_0-23_14" 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="RAZ">
    <field_msb>23</field_msb>
    <field_lsb>14</field_lsb>
    <rel_range>23:14</rel_range>
    <field_description order="before"/>
    <field_description order="before">
      <para>Reserved, RAZ.</para>
    </field_description>
  </field>
  <field id="fieldset_0-13_8" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="True" is_partial_field="False" is_conditional_field_name="False">
    <field_name>SIZE</field_name>
    <field_msb>13</field_msb>
    <field_lsb>8</field_lsb>
    <rel_range>13:8</rel_range>
    <field_description order="before"><para>Defines the size of the activity monitor event counters, minus one.</para>
<para>The counters are 64-bit, so the value of this field is <binarynumber>0b111111</binarynumber>.</para>
<para>This field is used by software to determine the spacing of the counters in the memory-map. The counters are at doubleword-aligned addresses.</para></field_description>
    <field_description order="after">
      <para>Reads as <binarynumber>0b111111</binarynumber>.</para>
    </field_description>
    <field_access>
      <field_access_state>
        <field_access_type>RO</field_access_type>
      </field_access_state>
    </field_access>
  </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="True" is_partial_field="False" is_conditional_field_name="False">
    <field_name>N</field_name>
    <field_msb>7</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>7:0</rel_range>
    <field_description order="before">
      <para>Defines the number of activity monitor event counters implemented in all groups. One less than the sum of <register_link id="amu.amcfgr.xml" state="">AMCFGR</register_link>.CG1NC and <register_link id="amu.amcfgr.xml" state="">AMCFGR</register_link>.CG0NC.</para>
    </field_description>
    <field_description order="after">
      <para>This field has an <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> value.</para>
    </field_description>
    <field_access>
      <field_access_state>
        <field_access_type>RO</field_access_type>
      </field_access_state>
    </field_access>
  </field>
  <text_after_fields/>
</fields>



<fields id="fieldset_1" length="32">
  <fields_condition/>
  <text_before_fields/>
  <field id="fieldset_1-31_28" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="True" is_partial_field="False" is_conditional_field_name="False">
    <field_name>NCG</field_name>
    <field_msb>31</field_msb>
    <field_lsb>28</field_lsb>
    <rel_range>31:28</rel_range>
    <field_description order="before">
      <para>Defines the number of counter groups implemented, minus one.</para>
    </field_description>
    <field_description order="after">
      <para>All other values are reserved.</para>
    </field_description>
    <field_values impdef="True">
      <field_value_instance>
        <field_value>0b0000</field_value>
        <field_value_description>
          <para>One counter group implemented.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0001</field_value>
        <field_value_description>
          <para>Two counter groups implemented.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_access>
      <field_access_state>
        <field_access_type>RO</field_access_type>
      </field_access_state>
    </field_access>
  </field>
  <field id="fieldset_1-27_25" 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>27</field_msb>
    <field_lsb>25</field_lsb>
    <rel_range>27:25</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_1-24_24" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="True" is_partial_field="False" is_conditional_field_name="False">
    <field_name>HDBG</field_name>
    <field_msb>24</field_msb>
    <field_lsb>24</field_lsb>
    <rel_range>24</rel_range>
    <field_description order="before"><para>Halt-on-debug supported.</para>
<para>This feature must be supported, and so this bit is 1.</para></field_description>
    <field_values impdef="True">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para><register_link id="amu.amcr.xml" state="">AMCR</register_link>.HDBG is <arm-defined-word>RES0</arm-defined-word>.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para><register_link id="amu.amcr.xml" state="">AMCR</register_link>.HDBG is read/write.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_access>
      <field_access_state>
        <field_access_type>RO</field_access_type>
      </field_access_state>
    </field_access>
  </field>
  <field id="fieldset_1-23_14" 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="RAZ">
    <field_msb>23</field_msb>
    <field_lsb>14</field_lsb>
    <rel_range>23:14</rel_range>
    <field_description order="before"/>
    <field_description order="before">
      <para>Reserved, RAZ.</para>
    </field_description>
  </field>
  <field id="fieldset_1-13_8" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="True" is_partial_field="False" is_conditional_field_name="False">
    <field_name>SIZE</field_name>
    <field_msb>13</field_msb>
    <field_lsb>8</field_lsb>
    <rel_range>13:8</rel_range>
    <field_description order="before"><para>Defines the size of the activity monitor event counters, minus one.</para>
<para>The counters are 64-bit, so the value of this field is <binarynumber>0b111111</binarynumber>.</para>
<para>This field is used by software to determine the spacing of the counters in the memory-map. The counters are at doubleword-aligned addresses.</para></field_description>
    <field_description order="after">
      <para>Reads as <binarynumber>0b111111</binarynumber>.</para>
    </field_description>
    <field_access>
      <field_access_state>
        <field_access_type>RO</field_access_type>
      </field_access_state>
    </field_access>
  </field>
  <field id="fieldset_1-7_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="True" is_partial_field="False" is_conditional_field_name="False">
    <field_name>N</field_name>
    <field_msb>7</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>7:0</rel_range>
    <field_description order="before">
      <para>Defines the number of activity monitor event counters implemented in all groups. One less than the sum of <register_link id="amu.amcfgr.xml" state="">AMCFGR</register_link>.CG1NC and <register_link id="amu.amcfgr.xml" state="">AMCFGR</register_link>.CG0NC.</para>
    </field_description>
    <field_description order="after">
      <para>This field has an <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> value.</para>
    </field_description>
    <field_access>
      <field_access_state>
        <field_access_type>RO</field_access_type>
      </field_access_state>
    </field_access>
  </field>
  <text_after_fields/>
</fields>





<reg_fieldset length="64">
  <fields_condition>When FEAT_AMU_EXT64 is implemented</fields_condition>
  <fieldat id="fieldset_0-63_32" msb="63" lsb="32"/>
  <fieldat id="fieldset_0-31_28" msb="31" lsb="28"/>
  <fieldat id="fieldset_0-27_25" msb="27" lsb="25"/>
  <fieldat id="fieldset_0-24_24" msb="24" lsb="24"/>
  <fieldat id="fieldset_0-23_14" msb="23" lsb="14"/>
  <fieldat id="fieldset_0-13_8" msb="13" lsb="8"/>
  <fieldat id="fieldset_0-7_0" msb="7" lsb="0"/>
</reg_fieldset>

<reg_fieldset length="32">
  <fields_condition/>
  <fieldat id="fieldset_1-31_28" msb="31" lsb="28"/>
  <fieldat id="fieldset_1-27_25" msb="27" lsb="25"/>
  <fieldat id="fieldset_1-24_24" msb="24" lsb="24"/>
  <fieldat id="fieldset_1-23_14" msb="23" lsb="14"/>
  <fieldat id="fieldset_1-13_8" msb="13" lsb="8"/>
  <fieldat id="fieldset_1-7_0" msb="7" lsb="0"/>
</reg_fieldset>


      </reg_fieldsets>

      <access_mechanisms>
          






    
        
        <access_mechanism type="BlockAccessAbstract" table_id="AMUacccessor0">
        
        
        
        
        <access_header>Accessible at offset <hexnumber>0xE00</hexnumber> from AMU</access_header>
        <access_condition>
When FEAT_AMU_EXT64 is implemented
        </access_condition>
    </access_mechanism>
    
        
        <access_mechanism type="BlockAccessAbstract" table_id="AMUacccessor1">
        
        
        
        
        <access_header>Accessible at offset <hexnumber>0xE00</hexnumber> from AMU</access_header>
        <access_condition>
When FEAT_AMU_EXT32 is implemented
        </access_condition>
    </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>