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



      
            <reg_condition otherwise="UNDEFINED">when FEAT_AA64 is implemented</reg_condition>
          <reg_array>
              <reg_array_start>0</reg_array_start>
              <reg_array_end>63</reg_array_end>
         </reg_array>
      




          <reg_reset_value></reg_reset_value>

      <reg_mappings>
        



    
      
      <reg_mapping>
        
  

    

  

    <mapped_name filename="AArch32-dbgbvrn.xml">DBGBVR&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_mapping>
        
  

    

  

    <mapped_name filename="AArch32-dbgbxvrn.xml">DBGBXVR&lt;n&gt;</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="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</mapped_name>
  <mapped_type>Architectural</mapped_type>
      <mapped_execution_state>External</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>

      </reg_mapping>

      </reg_mappings>

        <reg_purpose>
          
    
      <purpose_text>
        <para>Holds a virtual address, or a VMID and/or a context ID, for use in breakpoint matching. Forms breakpoint n together with control register <register_link state="AArch64" id="AArch64-dbgbcrn_el1.xml">DBGBCR&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>How this register is interpreted depends on the value of <register_link state="AArch64" id="AArch64-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>.BT.</para>

      </configuration_text>
      <configuration_text>
        <list type="unordered">
<listitem><content>When <register_link state="AArch64" id="AArch64-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>.BT is <binarynumber>0b000x</binarynumber>, this register holds a virtual address.</content>
</listitem><listitem><content>When <register_link state="AArch64" id="AArch64-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>.BT is <binarynumber>0b001x</binarynumber>, <binarynumber>0b011x</binarynumber>, or <binarynumber>0b110x</binarynumber>, this register holds a Context ID.</content>
</listitem><listitem><content>When <register_link state="AArch64" id="AArch64-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>.BT is <binarynumber>0b100x</binarynumber>, this register holds a VMID.</content>
</listitem><listitem><content>When <register_link state="AArch64" id="AArch64-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>.BT is <binarynumber>0b101x</binarynumber>, this register holds a VMID and a Context ID.</content>
</listitem><listitem><content>When <register_link state="AArch64" id="AArch64-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>.BT is <binarynumber>0b111x</binarynumber>, this register holds two Context ID values.</content>
</listitem></list>

      </configuration_text>
      <configuration_text>
        <para>For other values of <register_link state="AArch64" id="AArch64-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>.BT, this register is <arm-defined-word>RES0</arm-defined-word>.</para>

      </configuration_text>
      <configuration_text>
        <para>If breakpoint n is not implemented then accesses to this register are <arm-defined-word>UNDEFINED</arm-defined-word>.</para>
      </configuration_text>

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

      </reg_attributes>
      <reg_fieldsets>
        






<fields id="fieldset_0" length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'000x'}</fields_condition>
  <fields_instance>DBGBCR&lt;n&gt;_EL1.BT==0b000x</fields_instance>
  <text_before_fields/>
  <field id="fieldset_0-63_57" 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>RESS[14:8]</field_name>
    <field_msb>63</field_msb>
    <field_lsb>57</field_lsb>
    <rel_range>63:57</rel_range>
    <field_description order="before"><para>Reserved, Sign extended. Software must set all bits in this field to the same value as the most significant bit of the VA field. If all bits in this field are not the same value as the most significant bit of the VA field, then all of the following apply:</para>
<list type="unordered">
<listitem><content>It is <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word> whether the PE ignores this field when comparing an address.</content>
</listitem><listitem><content>If the breakpoint is not context-aware, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether the value read back in each bit of this field is a copy of the most significant bit of the VA field or the value written.</content>
</listitem></list></field_description>
  </field>
  <field id="fieldset_0-56_53-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="True" reserved_type="RES0">
    <field_name>VA[56:53]</field_name>
    <field_msb>56</field_msb>
    <field_lsb>53</field_lsb>
    <rel_range>3:0</rel_range>
    <field_description order="before">
      <para>Extension to VA[48:2]. For more information, see VA[48:2].</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_LVA3 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-56_53-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="True" reserved_type="RES0">
    <field_name>RESS[7:4]</field_name>
    <field_msb>56</field_msb>
    <field_lsb>53</field_lsb>
    <rel_range>3:0</rel_range>
    <field_description order="before">
      <para>Extension to RESS[14:8]. For more information, see RESS[14:8].</para>
    </field_description>
    <fields_condition>Otherwise</fields_condition>
  </field>
  <field id="fieldset_0-52_49-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="True" reserved_type="RES0">
    <field_name>VA[52:49]</field_name>
    <field_msb>52</field_msb>
    <field_lsb>49</field_lsb>
    <rel_range>3:0</rel_range>
    <field_description order="before">
      <para>Extension to VA[48:2]. For more information, see VA[48:2].</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_LVA is implemented</fields_condition>
  </field>
  <field id="fieldset_0-52_49-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="True" reserved_type="RES0">
    <field_name>RESS[3:0]</field_name>
    <field_msb>52</field_msb>
    <field_lsb>49</field_lsb>
    <rel_range>3:0</rel_range>
    <field_description order="before">
      <para>Extension to RESS[14:8]. For more information, see RESS[14:8].</para>
    </field_description>
    <fields_condition>Otherwise</fields_condition>
  </field>
  <field id="fieldset_0-48_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">
    <field_name>VA[48:2]</field_name>
    <field_msb>48</field_msb>
    <field_lsb>2</field_lsb>
    <rel_range>48:2</rel_range>
    <field_description order="before"><para>Bits[48:2] of the address value for comparison.</para>
<para>When <xref linkend="#FEAT_LVA3">FEAT_LVA3</xref> is implemented, (VA[56:53]:VA[52:49]) forms the upper part of the address value. If FEAT_LVA3 is not implemented, bits VA[56:53] are part of the RESS field.</para>
<para>When <xref linkend="#FEAT_LVA">FEAT_LVA</xref> is implemented, VA[52:49] forms the upper part of the address value. If FEAT_LVA is not implemented, bits [52:49] are part of the RESS field.</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-1_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" rwtype="RES0">
    <field_msb>1</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before"/>
    <field_description order="before">
      <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
    </field_description>
  </field>
  <text_after_fields/>
</fields>



<fields id="fieldset_1" length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'001x'}</fields_condition>
  <fields_instance>DBGBCR&lt;n&gt;_EL1.BT==0b001x</fields_instance>
  <text_before_fields/>
  <field id="fieldset_1-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_1-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>ContextID</field_name>
    <field_msb>31</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>31:0</rel_range>
    <field_description order="before"><para>Context ID value for comparison.</para>
<para>The value is compared against <register_link state="AArch64" id="AArch64-contextidr_el2.xml">CONTEXTIDR_EL2</register_link> when the Effective value of <register_link state="AArch64" id="AArch64-hcr_el2.xml">HCR_EL2</register_link>.E2H is 1, and either:</para>
<list type="unordered">
<listitem><content>The PE is executing at EL2.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-hcr_el2.xml">HCR_EL2</register_link>.TGE is 1, the PE is executing at EL0, and EL2 is enabled in the current Security state.</content>
</listitem></list>
<para>Otherwise, the value is compared against <register_link state="AArch64" id="AArch64-contextidr_el1.xml">CONTEXTIDR_EL1</register_link>.</para></field_description>
    <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>



<fields id="fieldset_2" length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'011x'}, EL2 is implemented, and FEAT_Debugv8p1 is implemented</fields_condition>
  <fields_instance>DBGBCR&lt;n&gt;_EL1.BT==0b011x, EL2 is implemented, and FEAT_Debugv8p2 is implemented</fields_instance>
  <text_before_fields/>
  <field id="fieldset_2-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_2-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>ContextID</field_name>
    <field_msb>31</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>31:0</rel_range>
    <field_description order="before">
      <para>Context ID value for comparison against <register_link state="AArch64" id="AArch64-contextidr_el1.xml">CONTEXTIDR_EL1</register_link>.</para>
    </field_description>
    <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>



<fields id="fieldset_3" length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'100x'} and EL2 is implemented</fields_condition>
  <fields_instance>DBGBCR&lt;n&gt;_EL1.BT==0b100x and EL2 is implemented</fields_instance>
  <text_before_fields/>
  <field id="fieldset_3-63_48" 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>48</field_lsb>
    <rel_range>63:48</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_3-47_40-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>VMID[15:8]</field_name>
    <field_msb>47</field_msb>
    <field_lsb>40</field_lsb>
    <rel_range>7:0</rel_range>
    <field_description order="before">
      <para>Extension to VMID[7:0]. For more information, see DBGBVR&lt;n&gt;_EL1.VMID[7:0].</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_VMID16 is implemented, VTCR_EL2.VS == '1', and EL2 is using AArch64</fields_condition>
  </field>
  <field id="fieldset_3-47_40-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>47</field_msb>
    <field_lsb>40</field_lsb>
    <rel_range>47:40</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_3-39_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">
    <field_name>VMID[7:0]</field_name>
    <field_msb>39</field_msb>
    <field_lsb>32</field_lsb>
    <rel_range>39:32</rel_range>
    <field_description order="before"><para>VMID value for comparison.</para>
<para>The VMID is 8 bits when any of the following are true:</para>
<list type="unordered">
<listitem><content>EL2 is using AArch32.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-vtcr_el2.xml">VTCR_EL2</register_link>.VS is 0.</content>
</listitem><listitem><content><xref linkend="#FEAT_VMID16">FEAT_VMID16</xref> is not implemented.</content>
</listitem></list></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_3-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" rwtype="RES0">
    <field_msb>31</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>31:0</rel_range>
    <field_description order="before"/>
    <field_description order="before">
      <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
    </field_description>
  </field>
  <text_after_fields/>
</fields>



<fields id="fieldset_4" length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'101x'} and EL2 is implemented</fields_condition>
  <fields_instance>DBGBCR&lt;n&gt;_EL1.BT==0b101x and EL2 is implemented</fields_instance>
  <text_before_fields/>
  <field id="fieldset_4-63_48" 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>48</field_lsb>
    <rel_range>63:48</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_4-47_40-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>VMID[15:8]</field_name>
    <field_msb>47</field_msb>
    <field_lsb>40</field_lsb>
    <rel_range>7:0</rel_range>
    <field_description order="before">
      <para>Extension to VMID[7:0]. For more information, see DBGBVR&lt;n&gt;_EL1.VMID[7:0].</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_VMID16 is implemented, VTCR_EL2.VS == '1', and EL2 is using AArch64</fields_condition>
  </field>
  <field id="fieldset_4-47_40-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>47</field_msb>
    <field_lsb>40</field_lsb>
    <rel_range>47:40</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_4-39_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">
    <field_name>VMID[7:0]</field_name>
    <field_msb>39</field_msb>
    <field_lsb>32</field_lsb>
    <rel_range>39:32</rel_range>
    <field_description order="before"><para>VMID value for comparison.</para>
<para>The VMID is 8 bits when any of the following are true:</para>
<list type="unordered">
<listitem><content>EL2 is using AArch32.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-vtcr_el2.xml">VTCR_EL2</register_link>.VS is 0.</content>
</listitem><listitem><content><xref linkend="#FEAT_VMID16">FEAT_VMID16</xref> is not implemented.</content>
</listitem></list></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_4-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>ContextID</field_name>
    <field_msb>31</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>31:0</rel_range>
    <field_description order="before">
      <para>Context ID value for comparison against <register_link state="AArch64" id="AArch64-contextidr_el1.xml">CONTEXTIDR_EL1</register_link>.</para>
    </field_description>
    <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>



<fields id="fieldset_5" length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'110x'}, EL2 is implemented, and FEAT_Debugv8p1 is implemented</fields_condition>
  <fields_instance>DBGBCR&lt;n&gt;_EL1.BT==0b110x, EL2 is implemented, and FEAT_Debugv8p1 is implemented</fields_instance>
  <text_before_fields/>
  <field id="fieldset_5-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">
    <field_name>ContextID2</field_name>
    <field_msb>63</field_msb>
    <field_lsb>32</field_lsb>
    <rel_range>63:32</rel_range>
    <field_description order="before">
      <para>Context ID value for comparison against <register_link state="AArch64" id="AArch64-contextidr_el2.xml">CONTEXTIDR_EL2</register_link>.</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_5-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" rwtype="RES0">
    <field_msb>31</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>31:0</rel_range>
    <field_description order="before"/>
    <field_description order="before">
      <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
    </field_description>
  </field>
  <text_after_fields/>
</fields>



<fields id="fieldset_6" length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'111x'}, EL2 is implemented, and FEAT_Debugv8p1 is implemented</fields_condition>
  <fields_instance>DBGBCR&lt;n&gt;_EL1.BT==0b111x, EL2 is implemented, and FEAT_Debugv8p1 is implemented</fields_instance>
  <text_before_fields/>
  <field id="fieldset_6-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">
    <field_name>ContextID2</field_name>
    <field_msb>63</field_msb>
    <field_lsb>32</field_lsb>
    <rel_range>63:32</rel_range>
    <field_description order="before">
      <para>Context ID value for comparison against <register_link state="AArch64" id="AArch64-contextidr_el2.xml">CONTEXTIDR_EL2</register_link>.</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_6-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>ContextID</field_name>
    <field_msb>31</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>31:0</rel_range>
    <field_description order="before">
      <para>Context ID value for comparison against <register_link state="AArch64" id="AArch64-contextidr_el1.xml">CONTEXTIDR_EL1</register_link>.</para>
    </field_description>
    <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">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'000x'}</fields_condition>
  <fieldat id="fieldset_0-63_57" msb="63" lsb="57"/>
  <fieldat id="fieldset_0-56_53-1" label="Bits[56:53]" msb="56" lsb="53"/>
  <fieldat id="fieldset_0-52_49-1" label="Bits[52:49]" msb="52" lsb="49"/>
  <fieldat id="fieldset_0-48_2" msb="48" lsb="2"/>
  <fieldat id="fieldset_0-1_0" msb="1" lsb="0"/>
</reg_fieldset>

<reg_fieldset length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'001x'}</fields_condition>
  <fieldat id="fieldset_1-63_32" msb="63" lsb="32"/>
  <fieldat id="fieldset_1-31_0" msb="31" lsb="0"/>
</reg_fieldset>

<reg_fieldset length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'011x'}, EL2 is implemented, and FEAT_Debugv8p1 is implemented</fields_condition>
  <fieldat id="fieldset_2-63_32" msb="63" lsb="32"/>
  <fieldat id="fieldset_2-31_0" msb="31" lsb="0"/>
</reg_fieldset>

<reg_fieldset length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'100x'} and EL2 is implemented</fields_condition>
  <fieldat id="fieldset_3-63_48" msb="63" lsb="48"/>
  <fieldat id="fieldset_3-47_40-1" msb="47" lsb="40"/>
  <fieldat id="fieldset_3-39_32" msb="39" lsb="32"/>
  <fieldat id="fieldset_3-31_0" msb="31" lsb="0"/>
</reg_fieldset>

<reg_fieldset length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'101x'} and EL2 is implemented</fields_condition>
  <fieldat id="fieldset_4-63_48" msb="63" lsb="48"/>
  <fieldat id="fieldset_4-47_40-1" msb="47" lsb="40"/>
  <fieldat id="fieldset_4-39_32" msb="39" lsb="32"/>
  <fieldat id="fieldset_4-31_0" msb="31" lsb="0"/>
</reg_fieldset>

<reg_fieldset length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'110x'}, EL2 is implemented, and FEAT_Debugv8p1 is implemented</fields_condition>
  <fieldat id="fieldset_5-63_32" msb="63" lsb="32"/>
  <fieldat id="fieldset_5-31_0" msb="31" lsb="0"/>
</reg_fieldset>

<reg_fieldset length="64">
  <fields_condition>When DBGBCR&lt;n&gt;_EL1.BT IN {'111x'}, EL2 is implemented, and FEAT_Debugv8p1 is implemented</fields_condition>
  <fieldat id="fieldset_6-63_32" msb="63" lsb="32"/>
  <fieldat id="fieldset_6-31_0" msb="31" 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 implemented, a PE is permitted to support up to 64 implemented breakpoints.</para>
      </access_permission_text>





    
        
        <access_mechanism accessor="MRS DBGBVR&lt;m&gt;_EL1" type="SystemAccessor">
            <encoding>
                
                <acc_array var="m">
                    <acc_array_range>0-15</acc_array_range>
                </acc_array>
            <access_instruction>MRS &lt;Xt&gt;, DBGBVR&lt;m&gt;_EL1</access_instruction>
                
                <enc n="op0" v="0b10"/>
                
                <enc n="op1" v="0b000"/>
                
                <enc n="CRn" v="0b0000"/>
                
                <enc n="CRm" v="m[3:0]"/>
                
                <enc n="op2" v="0b100"/>
            </encoding>
            <access_permission>
                <ps name="MRS" sections="1" secttype="access_permission">
                <pstext>
let m:integer = UInt(CRm[3:0]);

if !IsFeatureImplemented(FEAT_AA64) then
    Undefined();
elsif (!IsFeatureImplemented(FEAT_Debugv8p9) &amp;&amp; m &gt;= NUM_BREAKPOINTS) || (IsFeatureImplemented(FEAT_Debugv8p9) &amp;&amp; m + (UInt(EffectiveMDSELR_EL1_BANK()) * 16) &gt;= NUM_BREAKPOINTS) then
    Undefined();
elsif PSTATE.EL == EL0 then
    Undefined();
elsif PSTATE.EL == EL1 then
    if HaveEL(EL3) &amp;&amp; EL3SDDUndefPriority() &amp;&amp; MDCR_EL3().TDA == '1' then
        Undefined();
    elsif EL2Enabled() &amp;&amp; IsFeatureImplemented(FEAT_FGT) &amp;&amp; (!HaveEL(EL3) || SCR_EL3().FGTEn == '1') &amp;&amp; HDFGRTR_EL2().DBGBVRn_EL1 == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif EL2Enabled() &amp;&amp; MDCR_EL2().[TDE,TDA] != '00' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif HaveEL(EL3) &amp;&amp; MDCR_EL3().TDA == '1' then
        if EL3SDDUndef() then
            Undefined();
        else
            AArch64_SystemAccessTrap(EL3, 0x18);
        end;
    elsif OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR().TDA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        if IsFeatureImplemented(FEAT_Debugv8p9) then
            X{64}(t) = DBGBVR_EL1(m + (UInt(EffectiveMDSELR_EL1_BANK()) * 16));
        else
            X{64}(t) = DBGBVR_EL1(m);
        end;
    end;
elsif PSTATE.EL == EL2 then
    if HaveEL(EL3) &amp;&amp; EL3SDDUndefPriority() &amp;&amp; MDCR_EL3().TDA == '1' then
        Undefined();
    elsif HaveEL(EL3) &amp;&amp; MDCR_EL3().TDA == '1' then
        if EL3SDDUndef() then
            Undefined();
        else
            AArch64_SystemAccessTrap(EL3, 0x18);
        end;
    elsif OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR().TDA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        if IsFeatureImplemented(FEAT_Debugv8p9) then
            X{64}(t) = DBGBVR_EL1(m + (UInt(EffectiveMDSELR_EL1_BANK()) * 16));
        else
            X{64}(t) = DBGBVR_EL1(m);
        end;
    end;
elsif PSTATE.EL == EL3 then
    if OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR().TDA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        if IsFeatureImplemented(FEAT_Debugv8p9) then
            X{64}(t) = DBGBVR_EL1(m + (UInt(EffectiveMDSELR_EL1_BANK()) * 16));
        else
            X{64}(t) = DBGBVR_EL1(m);
        end;
    end;
end;
                </pstext>
                </ps>
            </access_permission>
        </access_mechanism>
    
        
        <access_mechanism accessor="MSRregister DBGBVR&lt;m&gt;_EL1" type="SystemAccessor">
            <encoding>
                
                <acc_array var="m">
                    <acc_array_range>0-15</acc_array_range>
                </acc_array>
            <access_instruction>MSR DBGBVR&lt;m&gt;_EL1, &lt;Xt&gt;</access_instruction>
                
                <enc n="op0" v="0b10"/>
                
                <enc n="op1" v="0b000"/>
                
                <enc n="CRn" v="0b0000"/>
                
                <enc n="CRm" v="m[3:0]"/>
                
                <enc n="op2" v="0b100"/>
            </encoding>
            <access_permission>
                <ps name="MSRregister" sections="1" secttype="access_permission">
                <pstext>
let m:integer = UInt(CRm[3:0]);

if !IsFeatureImplemented(FEAT_AA64) then
    Undefined();
elsif (!IsFeatureImplemented(FEAT_Debugv8p9) &amp;&amp; m &gt;= NUM_BREAKPOINTS) || (IsFeatureImplemented(FEAT_Debugv8p9) &amp;&amp; m + (UInt(EffectiveMDSELR_EL1_BANK()) * 16) &gt;= NUM_BREAKPOINTS) then
    Undefined();
elsif PSTATE.EL == EL0 then
    Undefined();
elsif PSTATE.EL == EL1 then
    if HaveEL(EL3) &amp;&amp; EL3SDDUndefPriority() &amp;&amp; MDCR_EL3().TDA == '1' then
        Undefined();
    elsif EL2Enabled() &amp;&amp; IsFeatureImplemented(FEAT_FGT) &amp;&amp; (!HaveEL(EL3) || SCR_EL3().FGTEn == '1') &amp;&amp; HDFGWTR_EL2().DBGBVRn_EL1 == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif EL2Enabled() &amp;&amp; MDCR_EL2().[TDE,TDA] != '00' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif HaveEL(EL3) &amp;&amp; MDCR_EL3().TDA == '1' then
        if EL3SDDUndef() then
            Undefined();
        else
            AArch64_SystemAccessTrap(EL3, 0x18);
        end;
    elsif OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR().TDA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        if IsFeatureImplemented(FEAT_Debugv8p9) then
            DBGBVR_EL1(m + (UInt(EffectiveMDSELR_EL1_BANK()) * 16)) = X{64}(t);
        else
            DBGBVR_EL1(m) = X{64}(t);
        end;
    end;
elsif PSTATE.EL == EL2 then
    if HaveEL(EL3) &amp;&amp; EL3SDDUndefPriority() &amp;&amp; MDCR_EL3().TDA == '1' then
        Undefined();
    elsif HaveEL(EL3) &amp;&amp; MDCR_EL3().TDA == '1' then
        if EL3SDDUndef() then
            Undefined();
        else
            AArch64_SystemAccessTrap(EL3, 0x18);
        end;
    elsif OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR().TDA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        if IsFeatureImplemented(FEAT_Debugv8p9) then
            DBGBVR_EL1(m + (UInt(EffectiveMDSELR_EL1_BANK()) * 16)) = X{64}(t);
        else
            DBGBVR_EL1(m) = X{64}(t);
        end;
    end;
elsif PSTATE.EL == EL3 then
    if OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR().TDA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        if IsFeatureImplemented(FEAT_Debugv8p9) then
            DBGBVR_EL1(m + (UInt(EffectiveMDSELR_EL1_BANK()) * 16)) = X{64}(t);
        else
            DBGBVR_EL1(m) = X{64}(t);
        end;
    end;
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>