<?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>DBGBCR&lt;n&gt;_EL1</reg_short_name>
        
        <reg_long_name>Debug Breakpoint Control Registers</reg_long_name>

        <power_domain_text>DBGBCR&lt;n&gt;_EL1 is in the Core power domain</power_domain_text>


      
          <reg_array>
              <reg_array_start>0</reg_array_start>
              <reg_array_end>63</reg_array_end>
         </reg_array>
      

    
  <reg_address
      external_access="True"
    mem_map_access="True"
      power_domain="None"
  >
    <reg_component>Debug</reg_component>
    <reg_offset><hexnumber>0x408</hexnumber> + (16 * n)</reg_offset>
    <reg_instance>DBGBCR&lt;n&gt;_EL1</reg_instance>
    <reg_access>
      
        
      <reg_access_state>
          <reg_access_level>When DoubleLockStatus(), or !IsCorePowered(), or OSLockStatus(), or !AllowExternalDebugAccess(addrdesc)</reg_access_level>
          <reg_access_type>ERROR</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_level>When SoftwareLockStatus(addrdesc)</reg_access_level>
          <reg_access_type>RO</reg_access_type>
      </reg_access_state>
        
      <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_mapping>
        
  

    

  

    <mapped_name filename="AArch64-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</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>

      </reg_mapping>
    
      
      <reg_mapping>
        
  

    

  

    <mapped_name filename="AArch64-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</mapped_name>
  <mapped_type>Architectural</mapped_type>
      <mapped_execution_state>AArch64</mapped_execution_state>
    <mapped_from_startbit>63</mapped_from_startbit>
    <mapped_from_endbit>32</mapped_from_endbit>
    <mapped_to_startbit>63</mapped_to_startbit>
    <mapped_to_endbit>32</mapped_to_endbit>
    <mapped_from_rangeset output="63:32">
      <range>
        <msb>63</msb>
        <lsb>32</lsb>
      </range>
    </mapped_from_rangeset>
    <mapped_to_rangeset output="63:32">
      <range>
        <msb>63</msb>
        <lsb>32</lsb>
      </range>
    </mapped_to_rangeset>

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

    

  

    <mapped_name filename="AArch32-dbgbcrn.xml">DBGBCR&lt;n&gt;</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>Holds control information for a breakpoint. Forms breakpoint n together with value register <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>.</para>
      </purpose_text>

        </reg_purpose>

      <reg_groups>
          <reg_group>Debug</reg_group>
      </reg_groups>
      <reg_configuration>
        
    
      <configuration_text>
        <para>If breakpoint n is not implemented, then accesses to this register are:</para>

      </configuration_text>
      <configuration_text>
        <list type="unordered">
<listitem><content><arm-defined-word>RES0</arm-defined-word> when <function>IsCorePowered()</function> &amp;&amp; !<function>DoubleLockStatus()</function> &amp;&amp; !<function>OSLockStatus()</function> &amp;&amp; <function>AllowExternalDebugAccess()</function>.</content>
</listitem><listitem><content>A <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word> choice of <arm-defined-word>RES0</arm-defined-word> or ERROR otherwise.</content>
</listitem></list>
      </configuration_text>

      </reg_configuration>
      
      
        
      <reg_attributes>
          
    
      <attributes_text>
        <para>DBGBCR&lt;n&gt;_EL1 is a 64-bit register.</para>
      </attributes_text>

      </reg_attributes>
      <reg_fieldsets>
        






<fields id="fieldset_0" length="64">
  <text_before_fields>
    <para>When the E field is zero, all the other fields in the register are ignored.</para>
  </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_30-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>LBNX</field_name>
    <field_msb>31</field_msb>
    <field_lsb>30</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before"><para>Linked Breakpoint Number.</para>
<para>For Linked address matching breakpoints, with DBGBCR&lt;n&gt;_EL1.LBN, specifies the index of the breakpoint linked to.</para>
<para>For all other breakpoint types, this field is ignored and reads of the register return an <arm-defined-word>UNKNOWN</arm-defined-word> value.</para></field_description>
    <field_description order="after">
      <para>This field extends DBGBCR&lt;n&gt;_EL1.LBN to support up to 64 implemented breakpoints.</para>
    </field_description>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_Debugv8p9 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-31_30-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>31</field_msb>
    <field_lsb>30</field_lsb>
    <rel_range>31:30</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-29_29-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>SSCE</field_name>
    <field_msb>29</field_msb>
    <field_lsb>29</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"><para>Security State Control Extended.</para>
<para>The fields that indicate when the breakpoint can be generated are:
HMC, PMC, SSC, and SSCE.
These fields must be considered in combination, and the values that are permitted for these fields are constrained.</para></field_description>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_RME is implemented</fields_condition>
  </field>
  <field id="fieldset_0-29_29-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>29</field_msb>
    <field_lsb>29</field_lsb>
    <rel_range>29</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-28_24-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>MASK</field_name>
    <field_msb>28</field_msb>
    <field_lsb>24</field_lsb>
    <rel_range>4:0</rel_range>
    <field_description order="before">
      <para>Address Mask. Only address ranges up to 2GB can be watched using a single mask.</para>
    </field_description>
    <field_description order="after"><para>All other values are reserved.</para>
<para>Indicates the number of masked address bits, from <binarynumber>0b00011</binarynumber> masking 3 address bits (<hexnumber>0x00000007</hexnumber> mask for address) to <binarynumber>0b11111</binarynumber> masking 31 address bits (<hexnumber>0x7FFFFFFF</hexnumber> mask for address).</para>
<para>If any of the following apply, then the behavior of the breakpoint is <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word>:</para>
<list type="unordered">
<listitem><content>DBGBCR&lt;n&gt;_EL1.MASK is a reserved value.</content>
</listitem><listitem><content>DBGBCR&lt;n&gt;_EL1.MASK is zero, DBGBCR&lt;n&gt;_EL1.{BT2, BT} is {0, <binarynumber>0b010x</binarynumber>} (address mismatch breakpoint without linking enabled), and AArch32 is not supported at EL1.</content>
</listitem><listitem><content>DBGBCR&lt;n&gt;_EL1.MASK is a valid nonzero value and any of the following apply:<list type="unordered">
<listitem><content>DBGBCR&lt;n&gt;_EL1.BAS is not <binarynumber>0b1111</binarynumber>, and AArch32 is supported at EL0.</content>
</listitem><listitem><content><register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>[(MASK-1):0] is nonzero.</content>
</listitem><listitem><content>DBGBCR&lt;n&gt;_EL1.{BT2, BT} is {0, <binarynumber>0b0x1x</binarynumber>} or {0, <binarynumber>0b1xxx</binarynumber>} (Context matching breakpoint).</content>
</listitem></list>
</content>
</listitem></list>
<para>When any of these conditions apply, the breakpoint behaves as if one of the following:</para>
<list type="unordered">
<listitem><content>DBGBCR&lt;n&gt;_EL1.MASK has been programmed with a defined value, which might be <binarynumber>0b00000</binarynumber> (no mask), other than for a direct read of DBGBCR&lt;n&gt;_EL1.</content>
</listitem><listitem><content>The breakpoint is disabled.</content>
</listitem></list></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b00000</field_value>
        <field_value_description>
          <para>No mask.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b00011..0b11111</field_value>
        <field_value_description>
          <para>Number of address bits masked.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_BWE is implemented</fields_condition>
  </field>
  <field id="fieldset_0-28_24-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>28</field_msb>
    <field_lsb>24</field_lsb>
    <rel_range>28:24</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-23_20" 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>BT</field_name>
    <field_msb>23</field_msb>
    <field_lsb>20</field_lsb>
    <rel_range>23:20</rel_range>
    <field_description order="before"><para>Breakpoint Type.</para>
<para>With DBGBCR&lt;n&gt;_EL1.BT2 when implemented, specifies breakpoint type.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0000</field_value>
        <field_value_description>
          <para>Unlinked instruction address match. <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link> is the address of an instruction.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0001</field_value>
        <field_value_description>
          <para>Linked instruction address match. As <binarynumber>0b0000</binarynumber>, but linked to a breakpoint that has linking enabled.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0010</field_value>
        <field_value_description>
          <para>Unlinked Context ID match. If the Effective value of <register_link state="AArch64" id="AArch64-hcr_el2.xml">HCR_EL2</register_link>.E2H is 1 and either the PE is executing at EL0 with <register_link state="AArch64" id="AArch64-hcr_el2.xml">HCR_EL2</register_link>.TGE set to 1 or the PE is executing at EL2, then <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>.ContextID is compared against <register_link state="AArch64" id="AArch64-contextidr_el2.xml">CONTEXTIDR_EL2</register_link>. Otherwise, <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>.ContextID is compared against <register_link state="AArch64" id="AArch64-contextidr_el1.xml">CONTEXTIDR_EL1</register_link>.</para>
        </field_value_description>
        <field_value_condition>When breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0011</field_value>
        <field_value_description>
          <para>As <binarynumber>0b0010</binarynumber>, with linking enabled.</para>
        </field_value_description>
        <field_value_condition>When breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0100</field_value>
        <field_value_description>
          <para>Unlinked instruction address mismatch. <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link> is the address of an instruction.</para>
        </field_value_description>
        <field_value_condition>When FEAT_BWE is implemented or EL1 is using AArch32</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0101</field_value>
        <field_value_description>
          <para>Linked instruction address mismatch. As <binarynumber>0b0100</binarynumber>, but linked to a breakpoint that has linking enabled.</para>
        </field_value_description>
        <field_value_condition>When FEAT_BWE is implemented or EL1 is using AArch32</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0110</field_value>
        <field_value_description>
          <para>Unlinked <register_link state="AArch64" id="AArch64-contextidr_el1.xml">CONTEXTIDR_EL1</register_link> match. <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>.ContextID is a Context ID compared against <register_link state="AArch64" id="AArch64-contextidr_el1.xml">CONTEXTIDR_EL1</register_link>.</para>
        </field_value_description>
        <field_value_condition>When EL2 is implemented, FEAT_Debugv8p1 is implemented, and breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0111</field_value>
        <field_value_description>
          <para>As <binarynumber>0b0110</binarynumber>, with linking enabled.</para>
        </field_value_description>
        <field_value_condition>When EL2 is implemented, FEAT_Debugv8p1 is implemented, and breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1000</field_value>
        <field_value_description>
          <para>Unlinked VMID match. <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>.VMID is a VMID compared against <register_link state="AArch64" id="AArch64-vttbr_el2.xml">VTTBR_EL2</register_link>.VMID.</para>
        </field_value_description>
        <field_value_condition>When EL2 is implemented and breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1001</field_value>
        <field_value_description>
          <para>As <binarynumber>0b1000</binarynumber>, with linking enabled.</para>
        </field_value_description>
        <field_value_condition>When EL2 is implemented and breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1010</field_value>
        <field_value_description>
          <para>Unlinked VMID and Context ID match. <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>.ContextID is a Context ID compared against <register_link state="AArch64" id="AArch64-contextidr_el1.xml">CONTEXTIDR_EL1</register_link>, and <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>.VMID is a VMID compared against <register_link state="AArch64" id="AArch64-vttbr_el2.xml">VTTBR_EL2</register_link>.VMID.</para>
        </field_value_description>
        <field_value_condition>When EL2 is implemented and breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1011</field_value>
        <field_value_description>
          <para>As <binarynumber>0b1010</binarynumber>, with linking enabled.</para>
        </field_value_description>
        <field_value_condition>When EL2 is implemented and breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1100</field_value>
        <field_value_description>
          <para>Unlinked <register_link state="AArch64" id="AArch64-contextidr_el2.xml">CONTEXTIDR_EL2</register_link> match. <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>.ContextID2 is a Context ID compared against <register_link state="AArch64" id="AArch64-contextidr_el2.xml">CONTEXTIDR_EL2</register_link>.</para>
        </field_value_description>
        <field_value_condition>When EL2 is implemented, FEAT_Debugv8p1 is implemented, and breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1101</field_value>
        <field_value_description>
          <para>As <binarynumber>0b1100</binarynumber>, with linking enabled.</para>
        </field_value_description>
        <field_value_condition>When EL2 is implemented, FEAT_Debugv8p1 is implemented, and breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1110</field_value>
        <field_value_description>
          <para>Unlinked Full Context ID match. <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>.ContextID is compared against <register_link state="AArch64" id="AArch64-contextidr_el1.xml">CONTEXTIDR_EL1</register_link>, and <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>.ContextID2 is compared against <register_link state="AArch64" id="AArch64-contextidr_el2.xml">CONTEXTIDR_EL2</register_link>.</para>
        </field_value_description>
        <field_value_condition>When EL2 is implemented, FEAT_Debugv8p1 is implemented, and breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1111</field_value>
        <field_value_description>
          <para>As <binarynumber>0b1110</binarynumber>, with linking enabled.</para>
        </field_value_description>
        <field_value_condition>When EL2 is implemented, FEAT_Debugv8p1 is implemented, and breakpoint n is context-aware</field_value_condition>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-19_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>LBN</field_name>
    <field_msb>19</field_msb>
    <field_lsb>16</field_lsb>
    <rel_range>19:16</rel_range>
    <field_description order="before"><para>Linked Breakpoint Number.</para>
<para>For Linked address matching breakpoints, with DBGBCR&lt;n&gt;_EL1.LBNX when implemented, specifies the index of the breakpoint linked to.</para>
<para>For all other breakpoint types, this field is ignored and reads of the register return an <arm-defined-word>UNKNOWN</arm-defined-word> value.</para></field_description>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-15_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">
    <field_name>SSC</field_name>
    <field_msb>15</field_msb>
    <field_lsb>14</field_lsb>
    <rel_range>15:14</rel_range>
    <field_description order="before"><para>Security state control. Determines the Security states under which a Breakpoint debug event for breakpoint n is generated. This field must be interpreted along with the HMC and PMC fields, and there are constraints on the permitted values of the {HMC, SSC, PMC} fields. For more information, including the effect of programming the fields to a reserved set of values, see <xref linkend="#CJAGFIAA">'Reserved DBGBCR&lt;n&gt;_EL1.{SSC, HMC, PMC} values'</xref>.</para>
<para>For more information on the operation of the SSC, HMC, and PMC fields, see <xref linkend="#BCGCFEJJ">'Execution conditions for which a breakpoint generates Breakpoint exceptions'</xref>.</para></field_description>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-13_13" 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>HMC</field_name>
    <field_msb>13</field_msb>
    <field_lsb>13</field_lsb>
    <rel_range>13</rel_range>
    <field_description order="before"><para>Higher mode control. Determines the debug perspective for deciding when a Breakpoint debug event for breakpoint n is generated. This field must be interpreted along with the SSC and PMC fields, and there are constraints on the permitted values of the {HMC, SSC, PMC} fields. For more information see <register_link state="ext" id="ext-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>.SSC description.</para>
<para>For more information on the operation of the SSC, HMC, and PMC fields, see <xref linkend="#BCGCFEJJ">'Execution conditions for which a breakpoint generates Breakpoint exceptions'</xref>.</para></field_description>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-12_9" 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>12</field_msb>
    <field_lsb>9</field_lsb>
    <rel_range>12:9</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-8_5-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="RES1">
    <field_name>BAS</field_name>
    <field_msb>8</field_msb>
    <field_lsb>5</field_lsb>
    <rel_range>3:0</rel_range>
    <field_description order="before"><para>Byte address select. Defines which halfwords an address-matching breakpoint matches, regardless of the instruction set and Execution state.</para>
<para>The permitted values depend on the breakpoint type.</para>
<para>For Address match breakpoints in either AArch32 or AArch64 state, the permitted values are:</para>
<table><tgroup cols="3"><thead><row><entry>BAS</entry><entry>Match instruction at</entry><entry>Constraint for debuggers</entry></row></thead><tbody><row><entry><binarynumber>0b0011</binarynumber></entry><entry><register_link state="AArch64" id="AArch64-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link></entry><entry>Use for T32 instructions.</entry></row><row><entry><binarynumber>0b1100</binarynumber></entry><entry><register_link state="AArch64" id="AArch64-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link> + 2</entry><entry>Use for T32 instructions.</entry></row><row><entry><binarynumber>0b1111</binarynumber></entry><entry><register_link state="AArch64" id="AArch64-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link></entry><entry>Use for A64 and A32 instructions.</entry></row></tbody></tgroup></table>
<para>All other values are reserved.</para>
<para>For more information, see <xref linkend="#BGBJCDEC">'Using the BAS field in Address Match breakpoints'</xref>.</para>
<para>For Address mismatch breakpoints in an AArch32 stage 1 translation regime, the permitted values are:</para>
<table><tgroup cols="3"><thead><row><entry>BAS</entry><entry>Match instruction at</entry><entry>Constraint for debuggers</entry></row></thead><tbody><row><entry><binarynumber>0b0000</binarynumber></entry><entry>-</entry><entry>Use for a match anywhere breakpoint.</entry></row><row><entry><binarynumber>0b0011</binarynumber></entry><entry><register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link></entry><entry>Use for stepping T32 instructions.</entry></row><row><entry><binarynumber>0b1100</binarynumber></entry><entry><register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link> + 2</entry><entry>Use for stepping T32 instructions.</entry></row><row><entry><binarynumber>0b1111</binarynumber></entry><entry><register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link></entry><entry>Use for stepping A64 and A32 instructions.</entry></row></tbody></tgroup></table>
<para>All other values are reserved.</para>
<para>For more information, see <xref linkend="#BGBJCDEC">'Using the BAS field in Address Match breakpoints'</xref>.</para>
<para>For Context matching breakpoints, this field is <arm-defined-word>RES1</arm-defined-word> and ignored.</para></field_description>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_AA32 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-8_5-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="RES1">
    <field_msb>8</field_msb>
    <field_lsb>5</field_lsb>
    <rel_range>8:5</rel_range>
    <field_description order="before"/>
    <field_description order="before">
      <para>Reserved, <arm-defined-word>RES1</arm-defined-word>.</para>
    </field_description>
    <fields_condition>Otherwise</fields_condition>
  </field>
  <field id="fieldset_0-4_4" 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>4</field_msb>
    <field_lsb>4</field_lsb>
    <rel_range>4</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-3_3-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>BT2</field_name>
    <field_msb>3</field_msb>
    <field_lsb>3</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Breakpoint Type 2. With DBGBCR&lt;n&gt;_EL1.BT, specifies breakpoint type.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>As DBGBCR&lt;n&gt;_EL1.BT.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description><para>As DBGBCR&lt;n&gt;_EL1.BT, but with linking enabled.</para>
<para>This value is only defined for the following DBGBCR&lt;n&gt;_EL1.BT values:</para>
<para><binarynumber>0b0000</binarynumber>, <binarynumber>0b0001</binarynumber>, <binarynumber>0b0100</binarynumber>, and <binarynumber>0b0101</binarynumber>.</para>
<para>All other values are reserved.</para></field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_ABLE is implemented and breakpoint n supports address breakpoint linking</fields_condition>
  </field>
  <field id="fieldset_0-3_3-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>3</field_msb>
    <field_lsb>3</field_lsb>
    <rel_range>3</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-2_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">
    <field_name>PMC</field_name>
    <field_msb>2</field_msb>
    <field_lsb>1</field_lsb>
    <rel_range>2:1</rel_range>
    <field_description order="before"><para>Privilege mode control. Determines the Exception level or levels at which a Breakpoint debug event for breakpoint n is generated. This field must be interpreted along with the SSC and HMC fields, and there are constraints on the permitted values of the {HMC, SSC, PMC} fields. For more information see the <register_link state="ext" id="ext-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>.SSC description.</para>
<para>For more information on the operation of the SSC, HMC, and PMC fields, see <xref linkend="#BCGCFEJJ">'Execution conditions for which a breakpoint generates Breakpoint exceptions'</xref>.</para></field_description>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-0_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>E</field_name>
    <field_msb>0</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Enable breakpoint n.</para>
    </field_description>
    <field_description order="after"><para>This field is ignored by the PE and treated as zero when all of the following are true:</para>
<list type="unordered">
<listitem><content>Any of the following are true:<list type="unordered">
<listitem><content><function>HaltOnBreakpointOrWatchpoint()</function> is FALSE and the Effective value of <register_link state="AArch64" id="AArch64-mdscr_el1.xml">MDSCR_EL1</register_link>.EMBWE is 0.</content>
</listitem><listitem><content><function>HaltOnBreakpointOrWatchpoint()</function> is TRUE and the Effective value of <register_link state="ext" id="ext-edscr2.xml">EDSCR2</register_link>.EHBWE is 0.</content>
</listitem></list>
</content>
</listitem><listitem><content><xref linkend="#FEAT_Debugv8p9">FEAT_Debugv8p9</xref> is implemented.</content>
</listitem><listitem><content>n &gt;= 16.</content>
</listitem></list></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Breakpoint n disabled.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Breakpoint n enabled.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <text_after_fields/>
</fields>




<reg_fieldset length="64">
  <fieldat id="fieldset_0-63_32" msb="63" lsb="32"/>
  <fieldat id="fieldset_0-31_30-1" msb="31" lsb="30"/>
  <fieldat id="fieldset_0-29_29-1" msb="29" lsb="29"/>
  <fieldat id="fieldset_0-28_24-1" msb="28" lsb="24"/>
  <fieldat id="fieldset_0-23_20" msb="23" lsb="20"/>
  <fieldat id="fieldset_0-19_16" msb="19" lsb="16"/>
  <fieldat id="fieldset_0-15_14" msb="15" lsb="14"/>
  <fieldat id="fieldset_0-13_13" msb="13" lsb="13"/>
  <fieldat id="fieldset_0-12_9" msb="12" lsb="9"/>
  <fieldat id="fieldset_0-8_5-1" msb="8" lsb="5"/>
  <fieldat id="fieldset_0-4_4" msb="4" lsb="4"/>
  <fieldat id="fieldset_0-3_3-1" msb="3" lsb="3"/>
  <fieldat id="fieldset_0-2_1" msb="2" lsb="1"/>
  <fieldat id="fieldset_0-0_0" msb="0" lsb="0"/>
</reg_fieldset>


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

      <access_mechanisms>
          


  
    
      <access_permission_text>
        <para>When <xref linkend="#FEAT_Debugv8p9">FEAT_Debugv8p9</xref> is not implemented, this register is 32-bits wide and offset <hexnumber>0x40C</hexnumber> + (16 * n) is reserved.</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>