<?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>MDCR_EL3</reg_short_name>
        
        <reg_long_name>Monitor Debug Configuration Register (EL3)</reg_long_name>



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




          <reg_reset_value></reg_reset_value>

      <reg_mappings>
        




      </reg_mappings>

        <reg_purpose>
          
    
      <purpose_text>
        <para>Provides EL3 configuration options for self-hosted debug and the Performance Monitors Extension.</para>
      </purpose_text>

        </reg_purpose>

      <reg_groups>
            <reg_group>Secure</reg_group>
      </reg_groups>
      
      
        
      <reg_attributes>
          
    
      <attributes_text>
        <para>MDCR_EL3 is a 64-bit register.</para>
      </attributes_text>

      </reg_attributes>
      <reg_fieldsets>
        






<fields id="fieldset_0" length="64">
  <text_before_fields/>
  <field id="fieldset_0-63_56" 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>56</field_lsb>
    <rel_range>63:56</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-55_55-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>EnPMS4</field_name>
    <field_msb>55</field_msb>
    <field_lsb>55</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Enable access to SPE registers. When disabled, accesses to SPE registers generate a trap to EL3.</para>
    </field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are: <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmbmar_el1.xml">PMBMAR_EL1</register_link>.</para>
<para>Trapped instructions are reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Accesses of the specified SPE registers at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Accesses of the specified SPE registers are not trapped by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_SPE_nVM is implemented</fields_condition>
  </field>
  <field id="fieldset_0-55_55-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>55</field_msb>
    <field_lsb>55</field_lsb>
    <rel_range>55</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-54_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="False" reserved_type="RES0">
    <field_name>TRBEE</field_name>
    <field_msb>54</field_msb>
    <field_lsb>53</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before">
      <para>Trace buffer management event Exception Enable.</para>
    </field_description>
    <field_description order="after">
      <para>If EL3 is not implemented, then the Effective value of <register_link state="AArch64" id="AArch64-mdcr_el3.xml">MDCR_EL3</register_link>.TRBEE is <binarynumber>0b01</binarynumber>.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b00</field_value>
        <field_value_description><para>Disabled. TRBE Profiling exceptions for all Exception levels are disabled. All of the following apply:</para>
<list type="unordered">
<listitem><content>No trace buffer management events are recorded in <register_link state="AArch64" id="AArch64-trbsr_el3.xml">TRBSR_EL3</register_link>.</content>
</listitem><listitem><content>TRBE Profiling exceptions are not generated.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trbsr_el1.xml">TRBSR_EL1</register_link>.IRQ drives the interrupt request signal <signal>TRBIRQ</signal>.</content>
</listitem><listitem><content>Accesses to <register_link state="AArch64" id="AArch64-trbsr_el2.xml">TRBSR_EL2</register_link> at EL2 are trapped to EL3.</content>
</listitem><listitem><content>Accesses to <register_link state="AArch64" id="AArch64-trbsr_el1.xml">TRBSR_EL1</register_link> at EL1 ignore the value of <register_link state="AArch64" id="AArch64-hcr_el2.xml">HCR_EL2</register_link>.NV1 and accesses to <register_link state="AArch64" id="AArch64-trbsr_el1.xml">TRBSR_EL1</register_link> at EL2 ignore the value of <register_link state="AArch64" id="AArch64-hcr_el2.xml">HCR_EL2</register_link>.E2H.</content>
</listitem></list></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b01</field_value>
        <field_value_description><para>Delegated. TRBE Profiling exceptions for EL3 are disabled, but might be enabled for EL2 or EL1 by <register_link state="AArch64" id="AArch64-trfcr_el2.xml">TRFCR_EL2</register_link>.EE or <register_link state="AArch64" id="AArch64-trfcr_el1.xml">TRFCR_EL1</register_link>.EE. All of the following apply:</para>
<list type="unordered">
<listitem><content>No trace buffer management events are recorded in <register_link state="AArch64" id="AArch64-trbsr_el3.xml">TRBSR_EL3</register_link>.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trbsr_el3.xml">TRBSR_EL3</register_link>.IRQ is ignored and TRBE Profiling exceptions are not taken to EL3.</content>
</listitem></list></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b10</field_value>
        <field_value_description><para>Enabled. TRBE Profiling exceptions for EL3 are enabled for trace buffer management events targeting EL3, as follows:</para>
<list type="unordered">
<listitem><content>Trace buffer management events due to a fault on a write to the trace buffer that would generate a Data Abort exception taken to EL3 if generated by a store instruction executed at the owning Exception level are recorded in <register_link state="AArch64" id="AArch64-trbsr_el3.xml">TRBSR_EL3</register_link>. That is, any of the following faults:<list type="unordered">
<listitem><content>Granule Protection Check faults other than Granule Protection Faults (GPFs).</content>
</listitem><listitem><content>If <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.GPF is 1, GPFs.</content>
</listitem><listitem><content>If <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.EA is 1, External aborts.</content>
</listitem></list>
</content>
</listitem><listitem><content>TRBE Profiling exceptions are generated and taken to EL3 when unmasked and <register_link state="AArch64" id="AArch64-trbsr_el3.xml">TRBSR_EL3</register_link>.IRQ is 1.</content>
</listitem></list></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b11</field_value>
        <field_value_description><para>Trap all. TRBE Profiling exceptions for EL3 are enabled for all trace buffer management events, as follows:</para>
<list type="unordered">
<listitem><content>All trace buffer management events are recorded in <register_link state="AArch64" id="AArch64-trbsr_el3.xml">TRBSR_EL3</register_link>.</content>
</listitem><listitem><content>TRBE Profiling exceptions are generated and taken to EL3 when unmasked and <register_link state="AArch64" id="AArch64-trbsr_el3.xml">TRBSR_EL3</register_link>.IRQ is 1.</content>
</listitem></list></field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_conditions>
          <field_reset_condition condition="the highest implemented Exception level is EL3">
            <field_reset>
              <field_reset_number>'00'</field_reset_number>
            </field_reset>
          </field_reset_condition>
          <field_reset_condition>
            <field_reset>
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_reset_condition>
        </field_reset_conditions>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_TRBE_EXC is implemented</fields_condition>
  </field>
  <field id="fieldset_0-54_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="False" rwtype="RES0">
    <field_msb>54</field_msb>
    <field_lsb>53</field_lsb>
    <rel_range>54:53</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-52_51-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>PMSEE</field_name>
    <field_msb>52</field_msb>
    <field_lsb>51</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before">
      <para>Profiling Buffer management event Exception Enable.</para>
    </field_description>
    <field_description order="after">
      <para>If EL3 is not implemented, then the Effective value of <register_link state="AArch64" id="AArch64-mdcr_el3.xml">MDCR_EL3</register_link>.PMSEE is <binarynumber>0b01</binarynumber>.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b00</field_value>
        <field_value_description><para>Disabled. SPE Profiling exceptions for all Exception levels are disabled. All of the following apply:</para>
<list type="unordered">
<listitem><content>No Profiling Buffer management events are recorded in <register_link state="AArch64" id="AArch64-pmbsr_el3.xml">PMBSR_EL3</register_link>.</content>
</listitem><listitem><content>SPE Profiling exceptions are not generated.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-pmbsr_el1.xml">PMBSR_EL1</register_link>.S drives the interrupt request signal <signal>PMBIRQ</signal>.</content>
</listitem><listitem><content>Accesses to <register_link state="AArch64" id="AArch64-pmbsr_el2.xml">PMBSR_EL2</register_link> at EL2 are trapped to EL3.</content>
</listitem><listitem><content>Accesses to <register_link state="AArch64" id="AArch64-pmbsr_el1.xml">PMBSR_EL1</register_link> at EL1 ignore the value of <register_link state="AArch64" id="AArch64-hcr_el2.xml">HCR_EL2</register_link>.NV1 and accesses to <register_link state="AArch64" id="AArch64-pmbsr_el1.xml">PMBSR_EL1</register_link> at EL2 ignore the value of <register_link state="AArch64" id="AArch64-hcr_el2.xml">HCR_EL2</register_link>.E2H.</content>
</listitem></list></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b01</field_value>
        <field_value_description><para>Delegated. SPE Profiling exceptions for EL3 are disabled, but might be enabled for EL2 or EL1 by <register_link state="AArch64" id="AArch64-pmscr_el2.xml">PMSCR_EL2</register_link>.EE or <register_link state="AArch64" id="AArch64-pmscr_el1.xml">PMSCR_EL1</register_link>.EE. All of the following apply:</para>
<list type="unordered">
<listitem><content>No Profiling Buffer management events are recorded in <register_link state="AArch64" id="AArch64-pmbsr_el3.xml">PMBSR_EL3</register_link>.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-pmbsr_el3.xml">PMBSR_EL3</register_link>.S is ignored and SPE Profiling exceptions are not taken to EL3.</content>
</listitem></list></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b10</field_value>
        <field_value_description><para>Enabled. SPE Profiling exceptions for EL3 are enabled for Profiling Buffer management events targeting EL3, as follows:</para>
<list type="unordered">
<listitem><content>Profiling Buffer management events due to a fault on a write to the Profiling Buffer that would generate a Data Abort exception taken to EL3 if generated by a store instruction executed at the owning Exception level are recorded in <register_link state="AArch64" id="AArch64-pmbsr_el3.xml">PMBSR_EL3</register_link>. That is, any of the following faults:<list type="unordered">
<listitem><content>Granule Protection Check faults other than Granule Protection Faults (GPFs).</content>
</listitem><listitem><content>If <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.GPF is 1, GPFs.</content>
</listitem><listitem><content>If <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.EA is 1, External aborts.</content>
</listitem></list>
</content>
</listitem><listitem><content>SPE Profiling exceptions are generated and taken to EL3 when unmasked and <register_link state="AArch64" id="AArch64-pmbsr_el3.xml">PMBSR_EL3</register_link>.S is 1.</content>
</listitem></list></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b11</field_value>
        <field_value_description><para>Trap all. SPE Profiling exceptions for EL3 are enabled for all Profiling Buffer management events, as follows:</para>
<list type="unordered">
<listitem><content>All Profiling Buffer management events are recorded in <register_link state="AArch64" id="AArch64-pmbsr_el3.xml">PMBSR_EL3</register_link>.</content>
</listitem><listitem><content>SPE Profiling exceptions are generated and taken to EL3 when unmasked and <register_link state="AArch64" id="AArch64-pmbsr_el3.xml">PMBSR_EL3</register_link>.S is 1.</content>
</listitem></list></field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_conditions>
          <field_reset_condition condition="the highest implemented Exception level is EL3">
            <field_reset>
              <field_reset_number>'00'</field_reset_number>
            </field_reset>
          </field_reset_condition>
          <field_reset_condition>
            <field_reset>
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_reset_condition>
        </field_reset_conditions>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_SPE_EXC is implemented</fields_condition>
  </field>
  <field id="fieldset_0-52_51-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>52</field_msb>
    <field_lsb>51</field_lsb>
    <rel_range>52:51</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-50_50-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>EnSTEPOP</field_name>
    <field_msb>50</field_msb>
    <field_lsb>50</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"/>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Execution from <register_link state="AArch64" id="AArch64-mdstepop_el1.xml">MDSTEPOP_EL1</register_link> is disabled. EL2, EL1 and EL0 System register accesses to <register_link state="AArch64" id="AArch64-mdstepop_el1.xml">MDSTEPOP_EL1</register_link> are trapped to EL3, unless the access generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Execution from <register_link state="AArch64" id="AArch64-mdstepop_el1.xml">MDSTEPOP_EL1</register_link> is not disabled by this control. System register accesses to <register_link state="AArch64" id="AArch64-mdstepop_el1.xml">MDSTEPOP_EL1</register_link> are not trapped by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_STEP2 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-50_50-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>50</field_msb>
    <field_lsb>50</field_lsb>
    <rel_range>50</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-49_48-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>ETBAD</field_name>
    <field_msb>49</field_msb>
    <field_lsb>48</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before">
      <para>External Trace Buffer Access Disable. Controls access to the Trace Buffer registers from an external debugger.</para>
    </field_description>
    <field_description order="after">
      <para>If EL3 is not implemented, then the Effective value of this field is <binarynumber>0b11</binarynumber>.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b00</field_value>
        <field_value_description><para>Non-secure accesses from an external debugger to Trace Buffer registers are prohibited.</para>
<para>If <xref linkend="#FEAT_RME">FEAT_RME</xref> is implemented, Secure and Realm accesses from an external debugger to Trace Buffer registers are prohibited and Root accesses to Trace Buffer registers are allowed.</para>
<para>If <xref linkend="#FEAT_RME">FEAT_RME</xref> is not implemented, Secure accesses to Trace Buffer registers are allowed.</para></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b01</field_value>
        <field_value_description>
          <para>Secure and Non-secure accesses from an external debugger to Trace Buffer registers are prohibited. Root and Realm accesses to Trace Buffer registers are allowed.</para>
        </field_value_description>
        <field_value_condition>When FEAT_RME is implemented</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b10</field_value>
        <field_value_description>
          <para>Realm and Non-secure accesses from an external debugger to Trace Buffer registers are prohibited. Root and Secure accesses to Trace Buffer registers are allowed.</para>
        </field_value_description>
        <field_value_condition>When FEAT_RME is implemented</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b11</field_value>
        <field_value_description>
          <para>All accesses from an external debugger to Trace Buffer registers are allowed.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'00'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_TRBE_EXT is implemented</fields_condition>
  </field>
  <field id="fieldset_0-49_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" rwtype="RES0">
    <field_msb>49</field_msb>
    <field_lsb>48</field_lsb>
    <rel_range>49:48</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-47_47-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>EnITE</field_name>
    <field_msb>47</field_msb>
    <field_lsb>47</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Enable access to Instrumentation trace System registers. When disabled, accesses to Instrumentation trace System registers generate a trap to EL3.</para>
    </field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are: <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-trcitecr_el1.xml">TRCITECR_EL1</register_link>, <register_link state="AArch64" id="AArch64-trcitecr_el2.xml">TRCITECR_EL2</register_link>, and TRCITECR_EL12.</para>
<para>Trapped instructions are reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Accesses of the specified Instrumentation trace System registers at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Accesses of the specified Instrumentation trace System registers are not trapped by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_ITE is implemented</fields_condition>
  </field>
  <field id="fieldset_0-47_47-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>47</field_lsb>
    <rel_range>47</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-46_45-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>EPMSSAD</field_name>
    <field_msb>46</field_msb>
    <field_lsb>45</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before"><para>External PMU Snapshot Access Disable. Controls access to the PMU Snapshot registers from an external debugger.</para>
<para>External accesses of the following registers are affected by this control:</para>
<list type="unordered">
<listitem><content><register_link id="pmu.pmccntsvr_el1.xml" state="">PMCCNTSVR_EL1</register_link>, <register_link id="pmu.pmevcntsvrn_el1.xml" state="">PMEVCNTSVR&lt;n&gt;_EL1</register_link>, and <register_link id="pmu.pmsscr_el1.xml" state="">PMSSCR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3_ICNTR">FEAT_PMUv3_ICNTR</xref> is implemented, <register_link id="pmu.pmicntsvr_el1.xml" state="">PMICNTSVR_EL1</register_link>.</content>
</listitem></list></field_description>
    <field_description order="after">
      <para>If EL3 is not implemented, then the Effective value of this field is <binarynumber>0b11</binarynumber>.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b00</field_value>
        <field_value_description><para>Non-secure accesses from an external debugger to the affected PMU Snapshot registers are prohibited.</para>
<para>If <xref linkend="#FEAT_RME">FEAT_RME</xref> is implemented, Secure and Realm accesses from an external debugger to the affected PMU Snapshot registers are prohibited.</para>
<para>Other accesses from an external debugger to the specified registers are not affected by this control.</para></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b01</field_value>
        <field_value_description><para>Secure and Non-secure accesses from an external debugger to the affected PMU Snapshot registers are prohibited.</para>
<para>Other accesses from an external debugger to the specified registers are not affected by this control.</para></field_value_description>
        <field_value_condition>When FEAT_RME is implemented</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b10</field_value>
        <field_value_description><para>Realm and Non-secure accesses from an external debugger to the affected PMU Snapshot registers are prohibited.</para>
<para>Other accesses from an external debugger to the specified registers are not affected by this control.</para></field_value_description>
        <field_value_condition>When FEAT_RME is implemented</field_value_condition>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b11</field_value>
        <field_value_description>
          <para>No accesses from an external debugger to the affected PMU Snapshot registers are prohibited by this control.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'00'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3_SS is implemented</fields_condition>
  </field>
  <field id="fieldset_0-46_45-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>46</field_msb>
    <field_lsb>45</field_lsb>
    <rel_range>46:45</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-44_44-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>EnPMSS</field_name>
    <field_msb>44</field_msb>
    <field_lsb>44</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Enable access to PMU Snapshot registers. When disabled, accesses to PMU Snapshot registers generate a trap to EL3.</para>
    </field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are:</para>
<list type="unordered">
<listitem><content><instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmccntsvr_el1.xml">PMCCNTSVR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmevcntsvrn_el1.xml">PMEVCNTSVR&lt;n&gt;_EL1</register_link>, and <register_link state="AArch64" id="AArch64-pmsscr_el1.xml">PMSSCR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3_ICNTR">FEAT_PMUv3_ICNTR</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmicntsvr_el1.xml">PMICNTSVR_EL1</register_link>.</content>
</listitem></list>
<para>Trapped instructions are reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Accesses of the specified PMU Snapshot registers at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Accesses of the specified PMU Snapshot registers are not trapped by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3_SS is implemented</fields_condition>
  </field>
  <field id="fieldset_0-44_44-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>44</field_msb>
    <field_lsb>44</field_lsb>
    <rel_range>44</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-43_43-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>EBWE</field_name>
    <field_msb>43</field_msb>
    <field_lsb>43</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Extended Breakpoint and Watchpoint Enable. Enables use of additional breakpoints or watchpoints, and enables a trap to EL3 on accesses to debug System registers.</para>
    </field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are: <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-mdselr_el1.xml">MDSELR_EL1</register_link>.</para>
<para>Trapped instructions are reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para>
<para>It is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether this field is implemented or is <arm-defined-word>RES0</arm-defined-word> when 16 or fewer breakpoints are implemented, 16 or fewer watchpoints are implemented, and <register_link state="AArch64" id="AArch64-mdselr_el1.xml">MDSELR_EL1</register_link> is implemented as RAZ/WI.</para>
<para>If EL3 is not implemented, then the Effective value of this field is 1.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description><para>The Effective values of <register_link state="AArch64" id="AArch64-mdscr_el1.xml">MDSCR_EL1</register_link>.EMBWE and <register_link state="AArch64" id="AArch64-mdcr_el2.xml">MDCR_EL2</register_link>.EBWE are 0.</para>
<para>The Effective value of <register_link state="AArch64" id="AArch64-mdselr_el1.xml">MDSELR_EL1</register_link>.BANK is zero at EL3.</para>
<para>Accesses of <register_link state="AArch64" id="AArch64-mdselr_el1.xml">MDSELR_EL1</register_link> at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception.</para></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description><para>The Effective values of <register_link state="AArch64" id="AArch64-mdscr_el1.xml">MDSCR_EL1</register_link>.EMBWE, <register_link state="AArch64" id="AArch64-mdcr_el2.xml">MDCR_EL2</register_link>.EBWE, and <register_link state="AArch64" id="AArch64-mdselr_el1.xml">MDSELR_EL1</register_link>.BANK are not affected by this field.</para>
<para>Accesses of <register_link state="AArch64" id="AArch64-mdselr_el1.xml">MDSELR_EL1</register_link> are not trapped by this mechanism.</para></field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_Debugv8p9 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-43_43-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>43</field_msb>
    <field_lsb>43</field_lsb>
    <rel_range>43</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-42_42-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>EnPMS3</field_name>
    <field_msb>42</field_msb>
    <field_lsb>42</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Enable access to SPE registers. When disabled, accesses to SPE registers generate a trap to EL3.</para>
    </field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are: <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmsdsfr_el1.xml">PMSDSFR_EL1</register_link>.</para>
<para>Trapped instructions are reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Accesses of the specified SPE registers at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Accesses of the specified SPE registers are not trapped by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_SPE_FDS is implemented</fields_condition>
  </field>
  <field id="fieldset_0-42_42-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>42</field_msb>
    <field_lsb>42</field_lsb>
    <rel_range>42</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-41_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>PMEE</field_name>
    <field_msb>41</field_msb>
    <field_lsb>40</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before">
      <para>Performance Monitors Exception Enable. Controls the generation of the <signal>PMUIRQ</signal> signal and the PMU Profiling exception at all Exception levels.</para>
    </field_description>
    <field_description order="after"><para>All other values are reserved.</para>
<para>If EL3 is not implemented, then the Effective value of this field is <binarynumber>0b01</binarynumber>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b00</field_value>
        <field_value_description>
          <para>The <signal>PMUIRQ</signal> signal is asserted on a PMU overflow, and the PMU Profiling exception is disabled.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b01</field_value>
        <field_value_description>
          <para>The <signal>PMUIRQ</signal> signal and the PMU Profiling exception are both controlled by <register_link state="AArch64" id="AArch64-mdcr_el2.xml">MDCR_EL2</register_link>.PMEE.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b11</field_value>
        <field_value_description>
          <para>The <signal>PMUIRQ</signal> signal is deasserted, and the PMU Profiling exception is enabled.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_conditions>
          <field_reset_condition condition="the highest implemented Exception level is EL3">
            <field_reset>
              <field_reset_number>'00'</field_reset_number>
            </field_reset>
          </field_reset_condition>
          <field_reset_condition>
            <field_reset>
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_reset_condition>
        </field_reset_conditions>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_EBEP is implemented</fields_condition>
  </field>
  <field id="fieldset_0-41_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>41</field_msb>
    <field_lsb>40</field_lsb>
    <rel_range>41: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_0-39_39-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>EnTB2</field_name>
    <field_msb>39</field_msb>
    <field_lsb>39</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Enable access to Trace Buffer registers. When disabled, accesses to Trace Buffer registers generate a trap to EL3.</para>
    </field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are: <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-trbmpam_el1.xml">TRBMPAM_EL1</register_link>.</para>
<para>Trapped instructions are reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Accesses of the specified Trace Buffer registers at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Accesses of the specified Trace Buffer registers are not trapped by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_TRBE_MPAM is implemented</fields_condition>
  </field>
  <field id="fieldset_0-39_39-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>39</field_msb>
    <field_lsb>39</field_lsb>
    <rel_range>39</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-38_38-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>E3BREC</field_name>
    <field_msb>38</field_msb>
    <field_lsb>38</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Branch Record Buffer EL3 Cold Reset Enable. With MDCR_EL3.E3BREW, controls branch recording at EL3.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description><para>When MDCR_EL3.E3BREW == 0: Branch recording at EL3 is disabled.</para>
<para>When MDCR_EL3.E3BREW == 1: Branch recording at EL3 is enabled.</para></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description><para>When MDCR_EL3.E3BREW == 0: Branch recording at EL3 is enabled.</para>
<para>When MDCR_EL3.E3BREW == 1: Branch recording at EL3 is disabled.</para></field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_BRBEv1p1 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-38_38-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>38</field_msb>
    <field_lsb>38</field_lsb>
    <rel_range>38</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-37_37-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>E3BREW</field_name>
    <field_msb>37</field_msb>
    <field_lsb>37</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Branch Record Buffer EL3 Warm Reset Enable. With MDCR_EL3.E3BREC, controls branch recording at EL3.</para>
    </field_description>
    <field_description order="after">
      <para>For a description of the values derived by evaluating MDCR_EL3.E3BREC and MDCR_EL3.E3BREW together, see MDCR_EL3.E3BREC.</para>
    </field_description>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_BRBEv1p1 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-37_37-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>37</field_msb>
    <field_lsb>37</field_lsb>
    <rel_range>37</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-36_36-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>EnPMSN</field_name>
    <field_msb>36</field_msb>
    <field_lsb>36</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Trap accesses to <register_link state="AArch64" id="AArch64-pmsnevfr_el1.xml">PMSNEVFR_EL1</register_link>. Controls access to Statistical Profiling <register_link state="AArch64" id="AArch64-pmsnevfr_el1.xml">PMSNEVFR_EL1</register_link> System register from EL2 and EL1.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Accesses to <register_link state="AArch64" id="AArch64-pmsnevfr_el1.xml">PMSNEVFR_EL1</register_link> at EL2 and EL1 generate a Trap exception to EL3.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Do not trap <register_link state="AArch64" id="AArch64-pmsnevfr_el1.xml">PMSNEVFR_EL1</register_link> to EL3.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_SPE_FnE is implemented</fields_condition>
  </field>
  <field id="fieldset_0-36_36-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>36</field_msb>
    <field_lsb>36</field_lsb>
    <rel_range>36</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-35_35-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>MPMX</field_name>
    <field_msb>35</field_msb>
    <field_lsb>35</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Monitor Performance Monitors Extended control. With MDCR_EL3.SPME, controls PMU operation at EL3.</para>
    </field_description>
    <field_description order="after"><para>The counters affected by this field are:</para>
<list type="unordered">
<listitem><content>If EL2 is implemented and MDCR_EL3.SPME is 1, event counters <register_link state="AArch64" id="AArch64-pmevcntrn_el0.xml">PMEVCNTR&lt;n&gt;_EL0</register_link> in the first range.</content>
</listitem><listitem><content>If EL2 is not implemented or MDCR_EL3.SPME is 0, event counters in the first and second ranges.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3_ICNTR">FEAT_PMUv3_ICNTR</xref> is implemented, the instruction counter, <register_link state="AArch64" id="AArch64-pmicntr_el0.xml">PMICNTR_EL0</register_link>.</content>
</listitem><listitem><content>If <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 1, the cycle counter, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link>.</content>
</listitem></list>
<para>Other event counters are not affected by this field. When <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 0, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is not affected by this field.</para>
<para>For more information about event counter ranges, see <register_link state="AArch64" id="AArch64-mdcr_el2.xml">MDCR_EL2</register_link>.HPMN.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Counters are not affected by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description><para>Affected counters are prohibited from counting at EL3.</para>
<para>If <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 1, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is disabled at EL3. Otherwise, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is not affected by this mechanism.</para></field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3p7 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-35_35-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>35</field_msb>
    <field_lsb>35</field_lsb>
    <rel_range>35</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-34_34-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>MCCD</field_name>
    <field_msb>34</field_msb>
    <field_lsb>34</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Monitor Cycle Counter Disable. Prohibits the Cycle Counter, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link>, from counting at EL3.</para>
    </field_description>
    <field_description order="after">
      <para>This field does not affect the CPU_CYCLES event or any other event that counts cycles.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Cycle counting by <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is not affected by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Cycle counting by <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is prohibited at EL3.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3p7 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-34_34-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>34</field_msb>
    <field_lsb>34</field_lsb>
    <rel_range>34</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-33_32-1" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" reserved_type="RES0">
    <field_name>SBRBE</field_name>
    <field_msb>33</field_msb>
    <field_lsb>32</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before">
      <para>Secure Branch Record Buffer Enable. Controls branch recording by the BRBE, and access to BRBE registers and instructions at EL2 and EL1.</para>
    </field_description>
    <field_description order="after"><para>The Branch Record Buffer registers trapped by this control are: <register_link state="AArch64" id="AArch64-brbcr_el1.xml">BRBCR_EL1</register_link>, <register_link state="AArch64" id="AArch64-brbcr_el2.xml">BRBCR_EL2</register_link>, BRBCR_EL12, <register_link state="AArch64" id="AArch64-brbfcr_el1.xml">BRBFCR_EL1</register_link>, <register_link state="AArch64" id="AArch64-brbidr0_el1.xml">BRBIDR0_EL1</register_link>, <register_link state="AArch64" id="AArch64-brbinfn_el1.xml">BRBINF&lt;n&gt;_EL1</register_link>, <register_link state="AArch64" id="AArch64-brbinfinj_el1.xml">BRBINFINJ_EL1</register_link>, <register_link state="AArch64" id="AArch64-brbsrcn_el1.xml">BRBSRC&lt;n&gt;_EL1</register_link>, <register_link state="AArch64" id="AArch64-brbsrcinj_el1.xml">BRBSRCINJ_EL1</register_link>, <register_link state="AArch64" id="AArch64-brbtgtn_el1.xml">BRBTGT&lt;n&gt;_EL1</register_link>, <register_link state="AArch64" id="AArch64-brbtgtinj_el1.xml">BRBTGTINJ_EL1</register_link>, and <register_link state="AArch64" id="AArch64-brbts_el1.xml">BRBTS_EL1</register_link>.</para>
<para>The Branch Record Buffer instructions trapped by this control are:</para>
<list type="unordered">
<listitem><content><register_link id="AArch64-brb-iall.xml" state="AArch64">BRB IALL</register_link>.</content>
</listitem><listitem><content><register_link id="AArch64-brb-inj.xml" state="AArch64">BRB INJ</register_link>.</content>
</listitem></list>
<note><para>If FEAT_BRBEv1p1 is not implemented, EL3 is a prohibited region.</para></note><para>If EL3 is not implemented, then the Effective value of this field is <binarynumber>0b11</binarynumber>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b00</field_value>
        <field_value_description>
          <para>Direct accesses to BRBE registers and instructions, except when at EL3, generate a Trap exception to EL3. EL0, EL1, and EL2 are prohibited regions.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b01</field_value>
        <field_value_description>
          <para>Direct accesses to BRBE registers and instructions in Secure state, except when at EL3, generate a Trap exception to EL3. EL0, EL1, and EL2 in Secure state are prohibited regions. This control does not cause any direct accesses to BRBE registers when not in Secure state to be trapped, and does not cause any Exception levels when not in Secure state to be a prohibited region.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b10</field_value>
        <field_value_description>
          <para>Direct accesses to BRBE registers and instructions, except when at EL3, generate a Trap exception to EL3. This control does not cause any Exception levels to be prohibited regions.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b11</field_value>
        <field_value_description>
          <para>This control does not cause any direct accesses to BRBE registers or instruction to be trapped, and does not cause any Exception levels to be a prohibited region.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_BRBE is implemented</fields_condition>
  </field>
  <field id="fieldset_0-33_32-2" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
    <field_msb>33</field_msb>
    <field_lsb>32</field_lsb>
    <rel_range>33:32</rel_range>
    <field_description order="before"/>
    <field_description order="before">
      <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
    </field_description>
    <fields_condition>Otherwise</fields_condition>
  </field>
  <field id="fieldset_0-31_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>PMSSE</field_name>
    <field_msb>31</field_msb>
    <field_lsb>30</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before">
      <para>Performance Monitors Snapshot Enable. Controls the generation of Capture events.</para>
    </field_description>
    <field_description order="after">
      <para>If EL3 is not implemented, then the Effective value of this field is <binarynumber>0b01</binarynumber>.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b00</field_value>
        <field_value_description>
          <para>Capture events are disabled.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b01</field_value>
        <field_value_description>
          <para>Capture events are controlled by <register_link state="AArch64" id="AArch64-mdcr_el2.xml">MDCR_EL2</register_link>.PMSSE.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b10</field_value>
        <field_value_description>
          <para>Capture events are enabled and prohibited.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b11</field_value>
        <field_value_description>
          <para>Capture events are enabled and allowed.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_number>'00'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3_SS 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" 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>
  </field>
  <field id="fieldset_0-28_28-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>MTPME</field_name>
    <field_msb>28</field_msb>
    <field_lsb>28</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Multi-threaded PMU Enable. Enables use of the <register_link state="AArch64" id="AArch64-pmevtypern_el0.xml">PMEVTYPER&lt;n&gt;_EL0</register_link>.MT bits.</para>
    </field_description>
    <field_description order="after">
      <para>If <xref linkend="#FEAT_MTPMU">FEAT_MTPMU</xref> is disabled for any other PE in the system that has the same level 1 Affinity as the PE, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether the PE behaves as if this field is 0.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para><xref linkend="#FEAT_MTPMU">FEAT_MTPMU</xref> is disabled. The Effective value of <register_link state="AArch64" id="AArch64-pmevtypern_el0.xml">PMEVTYPER&lt;n&gt;_EL0</register_link>.MT is 0.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para><register_link state="AArch64" id="AArch64-pmevtypern_el0.xml">PMEVTYPER&lt;n&gt;_EL0</register_link>.MT bits not affected by this field.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Cold">
        <field_reset_number>'1'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_MTPMU is implemented</fields_condition>
  </field>
  <field id="fieldset_0-28_28-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>28</field_lsb>
    <rel_range>28</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-27_27-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>TDCC</field_name>
    <field_msb>27</field_msb>
    <field_lsb>27</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Trap DCC. Traps use of the Debug Comms Channel at EL2, EL1, and EL0 to EL3.</para>
    </field_description>
    <field_description order="after"><para>The DCC System registers trapped by this control are:</para>
<para>AArch64: <register_link state="AArch64" id="AArch64-osdtrrx_el1.xml">OSDTRRX_EL1</register_link>, <register_link state="AArch64" id="AArch64-osdtrtx_el1.xml">OSDTRTX_EL1</register_link>, <register_link state="AArch64" id="AArch64-mdccsr_el0.xml">MDCCSR_EL0</register_link>, <register_link state="AArch64" id="AArch64-mdccint_el1.xml">MDCCINT_EL1</register_link>, and, when the PE is in Non-debug state, <register_link state="AArch64" id="AArch64-dbgdtr_el0.xml">DBGDTR_EL0</register_link>, <register_link state="AArch64" id="AArch64-dbgdtrrx_el0.xml">DBGDTRRX_EL0</register_link>, and <register_link state="AArch64" id="AArch64-dbgdtrtx_el0.xml">DBGDTRTX_EL0</register_link>.</para>
<para>AArch32: <register_link state="AArch32" id="AArch32-dbgdtrrxext.xml">DBGDTRRXext</register_link>, <register_link state="AArch32" id="AArch32-dbgdtrtxext.xml">DBGDTRTXext</register_link>, <register_link state="AArch32" id="AArch32-dbgdscrint.xml">DBGDSCRint</register_link>, <register_link state="AArch32" id="AArch32-dbgdccint.xml">DBGDCCINT</register_link>, and, when the PE is in Non-debug state, <register_link state="AArch32" id="AArch32-dbgdtrrxint.xml">DBGDTRRXint</register_link> and <register_link state="AArch32" id="AArch32-dbgdtrtxint.xml">DBGDTRTXint</register_link>.</para>
<para>The traps are reported with EC syndrome value:</para>
<list type="unordered">
<listitem><content><hexnumber>0x05</hexnumber> for trapped AArch32 <instruction>MRC</instruction> and <instruction>MCR</instruction> accesses with <value>coproc</value> == <binarynumber>0b1110</binarynumber>.</content>
</listitem><listitem><content><hexnumber>0x06</hexnumber> for trapped AArch32 <instruction>LDC</instruction> to <register_link state="AArch32" id="AArch32-dbgdtrtxint.xml">DBGDTRTXint</register_link> and <instruction>STC</instruction> from <register_link state="AArch32" id="AArch32-dbgdtrrxint.xml">DBGDTRRXint</register_link>.</content>
</listitem><listitem><content><hexnumber>0x18</hexnumber> for trapped AArch64 <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses.</content>
</listitem></list>
<para>When the PE is in Debug state, MDCR_EL3.TDCC does not trap any accesses to:</para>
<para>AArch64: <register_link state="AArch64" id="AArch64-dbgdtr_el0.xml">DBGDTR_EL0</register_link>, <register_link state="AArch64" id="AArch64-dbgdtrrx_el0.xml">DBGDTRRX_EL0</register_link>, and <register_link state="AArch64" id="AArch64-dbgdtrtx_el0.xml">DBGDTRTX_EL0</register_link>.</para>
<para>AArch32: <register_link state="AArch32" id="AArch32-dbgdtrrxint.xml">DBGDTRRXint</register_link> and <register_link state="AArch32" id="AArch32-dbgdtrtxint.xml">DBGDTRTXint</register_link>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>This control does not cause any register accesses to be trapped.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description><para>Accesses to the DCC System registers at EL2, EL1, and EL0 generate a Trap exception to EL3, unless the access also generates a higher priority exception.</para>
<para>Traps on the DCC data transfer registers are ignored when the PE is in Debug state.</para></field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_FGT is implemented</fields_condition>
  </field>
  <field id="fieldset_0-27_27-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>27</field_msb>
    <field_lsb>27</field_lsb>
    <rel_range>27</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-26_26-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>NSTBE</field_name>
    <field_msb>26</field_msb>
    <field_lsb>26</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Non-secure Trace Buffer Extended. Together with MDCR_EL3.NSTB, controls the trace buffer owning Security state and accesses to trace buffer System registers from EL2 and EL1.</para>
    </field_description>
    <field_description order="after">
      <para>For a description of the values derived by evaluating NSTB and NSTBE together, see MDCR_EL3.NSTB.</para>
    </field_description>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_TRBE is implemented and FEAT_RME is implemented</fields_condition>
  </field>
  <field id="fieldset_0-26_26-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>26</field_msb>
    <field_lsb>26</field_lsb>
    <rel_range>26</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-25_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>NSTB</field_name>
    <field_msb>25</field_msb>
    <field_lsb>24</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before"><para>Non-secure Trace Buffer. Together with MDCR_EL3.NSTBE, controls the trace buffer owning Security state and accesses to trace buffer System registers from EL2 and EL1.</para>
<table><tgroup cols="3"><thead><row><entry>NSTBE</entry><entry>NSTB</entry><entry>Meaning</entry></row></thead><tbody><row><entry><binarynumber>0b0</binarynumber></entry><entry><binarynumber>0b00</binarynumber></entry><entry>Trace buffer owning Security state is Secure state.</entry></row><row><entry/><entry/><entry>When TraceBufferEnabled()==TRUE, tracing is prohibited in Realm and Non-secure states.</entry></row><row><entry/><entry/><entry>Accesses to trace buffer System registers at EL2 and EL1 are</entry></row><row><entry/><entry/><entry>trapped to EL3, unless the access generates a higher priority exception.</entry></row><row><entry/><entry/><entry>When Secure state is not implemented, this encoding is reserved.</entry></row><row><entry><binarynumber>0b0</binarynumber></entry><entry><binarynumber>0b01</binarynumber></entry><entry>Trace buffer owning Security state is Secure state.</entry></row><row><entry/><entry/><entry>When TraceBufferEnabled()==TRUE, tracing is prohibited in Realm and Non-secure states.</entry></row><row><entry/><entry/><entry>Accesses to trace buffer System registers at Realm and Non-secure</entry></row><row><entry/><entry/><entry>EL2, and Realm and Non-secure EL1, are trapped to EL3, unless the access generates a higher</entry></row><row><entry/><entry/><entry>priority exception.</entry></row><row><entry/><entry/><entry>When Secure state is not implemented, this encoding is reserved.</entry></row><row><entry><binarynumber>0b0</binarynumber></entry><entry><binarynumber>0b10</binarynumber></entry><entry>Trace buffer owning Security state is Non-secure state.</entry></row><row><entry/><entry/><entry>When TraceBufferEnabled()==TRUE, tracing is prohibited in Secure and Realm states.</entry></row><row><entry/><entry/><entry>Accesses to trace buffer System registers at EL2 and EL1 are</entry></row><row><entry/><entry/><entry>trapped to EL3, unless the access generates a higher priority exception.</entry></row><row><entry><binarynumber>0b0</binarynumber></entry><entry><binarynumber>0b11</binarynumber></entry><entry>Trace buffer owning Security state is Non-secure state.</entry></row><row><entry/><entry/><entry>When TraceBufferEnabled()==TRUE, tracing is prohibited in Secure and Realm states.</entry></row><row><entry/><entry/><entry>Accesses to trace buffer System registers at Secure and Realm EL2,</entry></row><row><entry/><entry/><entry>and Secure and Realm EL1, are trapped to EL3, unless the access generates a higher priority</entry></row><row><entry/><entry/><entry>exception.</entry></row><row><entry><binarynumber>0b1</binarynumber></entry><entry><binarynumber>0b10</binarynumber></entry><entry>Trace buffer owning Security state is Realm state.</entry></row><row><entry/><entry/><entry>When TraceBufferEnabled()==TRUE, tracing is prohibited in Secure and Non-secure states.</entry></row><row><entry/><entry/><entry>Accesses to trace buffer System registers at EL2 and EL1 are</entry></row><row><entry/><entry/><entry>trapped to EL3, unless the access generates a higher priority exception.</entry></row><row><entry><binarynumber>0b1</binarynumber></entry><entry><binarynumber>0b11</binarynumber></entry><entry>Trace buffer owning Security state is Realm state.</entry></row><row><entry/><entry/><entry>When TraceBufferEnabled()==TRUE, tracing is prohibited in Secure and Non-secure states.</entry></row><row><entry/><entry/><entry>Accesses to trace buffer System registers at Secure and Non-secure</entry></row><row><entry/><entry/><entry>EL2, and Secure and Non-secure EL1, are trapped to EL3, unless the access generates a higher</entry></row><row><entry/><entry/><entry>priority exception.</entry></row></tbody></tgroup></table>
<para>All other combinations of MDCR_EL3.NSTBE and MDCR_EL3.NSTB are reserved.</para></field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are:</para>
<list type="unordered">
<listitem><content><instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-trbbaser_el1.xml">TRBBASER_EL1</register_link>, <register_link state="AArch64" id="AArch64-trblimitr_el1.xml">TRBLIMITR_EL1</register_link>, <register_link state="AArch64" id="AArch64-trbmar_el1.xml">TRBMAR_EL1</register_link>, <register_link state="AArch64" id="AArch64-trbptr_el1.xml">TRBPTR_EL1</register_link>, <register_link state="AArch64" id="AArch64-trbsr_el1.xml">TRBSR_EL1</register_link>, and <register_link state="AArch64" id="AArch64-trbtrg_el1.xml">TRBTRG_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_TRBE_MPAM">FEAT_TRBE_MPAM</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-trbmpam_el1.xml">TRBMPAM_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_TRBE_EXC">FEAT_TRBE_EXC</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-trbsr_el2.xml">TRBSR_EL2</register_link> and <register_link id="AArch64-trbsr_el1.xml" state="AArch64">TRBSR_EL12</register_link>.</content>
</listitem></list>
<para>Unless the instruction generates a higher priority exception, trapped instructions generate an exception to EL3, reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para>
<para>When <function>TraceBufferEnabled()</function>==FALSE, these controls have no effect on whether tracing is prohibited.</para>
<para>If the Trace Buffer Unit is enabled and using Self-hosted mode, and MDCR_EL3.{NSTB, NSTBE} selects a reserved value, then the behavior is <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word>, and the Trace Buffer Unit does one of:</para>
<list type="unordered">
<listitem><content>Behaves as if the Trace Buffer Unit is disabled.</content>
</listitem><listitem><content>Selects an implemented Security state as the owning Security state.</content>
</listitem><listitem><content>When trace data is received from the trace unit, it is not written to memory and the Trace Buffer Unit generates a trace buffer management event, as follows:<list type="unordered">
<listitem><content><xref linkend="#TRBSR_ELx">TRBSR_ELx</xref>.IRQ is set to 1.</content>
</listitem><listitem><content>If <xref linkend="#TRBSR_ELx">TRBSR_ELx</xref>.S is 0, then all of the following occur:<list type="unordered">
<listitem><content><xref linkend="#TRBSR_ELx">TRBSR_ELx</xref>.S is set to 1, Collection is stopped.</content>
</listitem><listitem><content><xref linkend="#TRBSR_ELx">TRBSR_ELx</xref>.EC is set to <hexnumber>0x00</hexnumber>, Other buffer management event.</content>
</listitem><listitem><content><xref linkend="#TRBSR_ELx">TRBSR_ELx</xref>.BSC is set to <binarynumber>0b000000</binarynumber>, Access not allowed.</content>
</listitem></list>
</content>
</listitem><listitem><content>The other fields in <xref linkend="#TRBSR_ELx">TRBSR_ELx</xref> are unchanged.</content>
</listitem></list>
</content>
</listitem></list>
<para>If the Trace Buffer Unit is enabled and using Self-hosted mode, and MDCR_EL3.{NSTB, NSTBE} selects a reserved value, then it is <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word> whether or not accesses to trace buffer System registers at EL2 and EL1 generate Trap exceptions to EL3.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 1, then the Effective value of this field is <binarynumber>0b11</binarynumber>.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is <binarynumber>0b01</binarynumber>.</para></field_description>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_TRBE is implemented and FEAT_RME is implemented</fields_condition>
  </field>
  <field id="fieldset_0-25_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" reserved_type="RES0">
    <field_name>NSTB</field_name>
    <field_msb>25</field_msb>
    <field_lsb>24</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before">
      <para>Non-secure Trace Buffer. Controls the trace buffer owning Security state and accesses to trace buffer System registers from EL2 and EL1.</para>
    </field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are:</para>
<list type="unordered">
<listitem><content><instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-trbbaser_el1.xml">TRBBASER_EL1</register_link>, <register_link state="AArch64" id="AArch64-trblimitr_el1.xml">TRBLIMITR_EL1</register_link>, <register_link state="AArch64" id="AArch64-trbmar_el1.xml">TRBMAR_EL1</register_link>, <register_link state="AArch64" id="AArch64-trbptr_el1.xml">TRBPTR_EL1</register_link>, <register_link state="AArch64" id="AArch64-trbsr_el1.xml">TRBSR_EL1</register_link>, and <register_link state="AArch64" id="AArch64-trbtrg_el1.xml">TRBTRG_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_TRBE_MPAM">FEAT_TRBE_MPAM</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-trbmpam_el1.xml">TRBMPAM_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_TRBE_EXC">FEAT_TRBE_EXC</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-trbsr_el2.xml">TRBSR_EL2</register_link> and <register_link id="AArch64-trbsr_el1.xml" state="AArch64">TRBSR_EL12</register_link>.</content>
</listitem></list>
<para>Unless the instruction generates a higher priority exception, trapped instructions generate an exception to EL3, reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para>
<para>When <function>TraceBufferEnabled()</function>==FALSE, this control has no effect on whether tracing is prohibited.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 1, then the Effective value of this field is <binarynumber>0b11</binarynumber>.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is <binarynumber>0b01</binarynumber>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b00</field_value>
        <field_value_description>
          <para>Trace buffer owning Security state is Secure state. When <function>TraceBufferEnabled()</function>==TRUE, tracing is prohibited in Non-secure state.
Accesses to trace buffer System registers at EL2 and EL1  are trapped to EL3, unless the access generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b01</field_value>
        <field_value_description>
          <para>Trace buffer owning Security state is Secure state. When <function>TraceBufferEnabled()</function>==TRUE, tracing is prohibited in Non-secure state.
Accesses to trace buffer System registers at EL2 and EL1 in Non-secure state are trapped to EL3, unless the access generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b10</field_value>
        <field_value_description>
          <para>Trace buffer owning Security state is Non-secure state. When <function>TraceBufferEnabled()</function>==TRUE, tracing is prohibited in Secure state.
Accesses to trace buffer System registers at EL2 and EL1  are trapped to EL3, unless the access generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b11</field_value>
        <field_value_description>
          <para>Trace buffer owning Security state is Non-secure state. When <function>TraceBufferEnabled()</function>==TRUE, tracing is prohibited in Secure state.
Accesses to trace buffer System registers at EL2 and EL1 in Secure state are trapped to EL3, unless the access generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_TRBE is implemented</fields_condition>
  </field>
  <field id="fieldset_0-25_24-3" 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>25</field_msb>
    <field_lsb>24</field_lsb>
    <rel_range>25: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_23-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>SCCD</field_name>
    <field_msb>23</field_msb>
    <field_lsb>23</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Secure Cycle Counter Disable. Prohibits <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> from counting in Secure state and EL3.</para>
    </field_description>
    <field_description order="after">
      <para>This field does not affect the CPU_CYCLES event or any other event that counts cycles.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Cycle counting by <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is not affected by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Cycle counting by <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is prohibited in Secure state and EL3.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3p5 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-23_23-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>23</field_msb>
    <field_lsb>23</field_lsb>
    <rel_range>23</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-22_22-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>ETAD</field_name>
    <field_msb>22</field_msb>
    <field_lsb>22</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>External Trace Access Disable. Together with MDCR_EL3.ETADE, controls access to trace unit registers by an external debugger.</para>
    </field_description>
    <field_description order="after">
      <table>
        <tgroup cols="3">
          <thead>
            <row>
              <entry>ETADE</entry>
              <entry>ETAD</entry>
              <entry>Meaning</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry>
                <binarynumber>0b0</binarynumber>
              </entry>
              <entry>
                <binarynumber>0b0</binarynumber>
              </entry>
              <entry>No accesses from an external debugger to trace unit registers are prohibited by this control.</entry>
            </row>
            <row>
              <entry><binarynumber>0b0</binarynumber>
</entry>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry>Realm and Non-secure accesses from an external debugger to trace unit registers are prohibited.
Other accesses from an external debugger to trace unit registers are not affected by this control.</entry>
            </row>
            <row>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry><binarynumber>0b0</binarynumber>
</entry>
              <entry>Secure and Non-secure accesses from an external debugger to trace unit registers are prohibited.
Other accesses from an external debugger to trace unit registers are not affected by this control.</entry>
            </row>
            <row>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry>Secure, Non-secure, and Realm accesses from an external debugger to trace unit registers are prohibited.
Other accesses from an external debugger to trace unit registers are not affected by this control.</entry>
            </row>
          </tbody>
        </tgroup>
      </table>
    </field_description>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_RME is implemented, FEAT_TRC_EXT is implemented, and FEAT_TRBE is implemented</fields_condition>
  </field>
  <field id="fieldset_0-22_22-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" reserved_type="RES0">
    <field_name>ETAD</field_name>
    <field_msb>22</field_msb>
    <field_lsb>22</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>External Trace Access Disable. Controls Non-secure access to trace unit registers by an external debugger.</para>
    </field_description>
    <field_description order="after">
      <para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is 1.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>No accesses from an external debugger to the trace unit registers are prohibited by this control.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Non-secure accesses from an external debugger to some trace unit registers are prohibited. See individual registers for the effect of this field.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_TRC_EXT is implemented and FEAT_TRBE is implemented</fields_condition>
  </field>
  <field id="fieldset_0-22_22-3" 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>22</field_msb>
    <field_lsb>22</field_lsb>
    <rel_range>22</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-21_21-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>EPMAD</field_name>
    <field_msb>21</field_msb>
    <field_lsb>21</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"><para>External Performance Monitors Access Disable. Together with MDCR_EL3.EPMADE, controls access to Performance Monitor registers by an external debugger.</para>
<para>External accesses of the following Performance Monitor registers are affected by this control:</para>
<list type="unordered">
<listitem><content><register_link id="pmu.pmccfiltr_el0.xml" state="">PMCCFILTR_EL0</register_link>, <register_link id="pmu.pmccntr_el0.xml" state="">PMCCNTR_EL0</register_link>, <register_link id="pmu.pmcfgr.xml" state="">PMCFGR</register_link>, <register_link id="pmu.pmcntenclr_el0.xml" state="">PMCNTENCLR_EL0</register_link>, <register_link id="pmu.pmcntenset_el0.xml" state="">PMCNTENSET_EL0</register_link>, <register_link id="pmu.pmcr_el0.xml" state="">PMCR_EL0</register_link>, <register_link id="pmu.pmevcntrn_el0.xml" state="">PMEVCNTR&lt;n&gt;_EL0</register_link>, <register_link id="pmu.pmevtypern_el0.xml" state="">PMEVTYPER&lt;n&gt;_EL0</register_link>, <register_link id="pmu.pmintenclr_el1.xml" state="">PMINTENCLR_EL1</register_link>, <register_link id="pmu.pmintenset_el1.xml" state="">PMINTENSET_EL1</register_link>, <register_link id="pmu.pmovsclr_el0.xml" state="">PMOVSCLR_EL0</register_link>, and <register_link id="pmu.pmovsset_el0.xml" state="">PMOVSSET_EL0</register_link>.</content>
</listitem><listitem><content>If <register_link id="pmu.pmevfilt2rn.xml" state="">PMEVFILT2R&lt;n&gt;</register_link> is implemented, <register_link id="pmu.pmevfilt2rn.xml" state="">PMEVFILT2R&lt;n&gt;</register_link>.</content>
</listitem><listitem><content>If implemented, <register_link id="pmu.pmiidr.xml" state="">PMIIDR</register_link>.</content>
</listitem><listitem><content>If <register_link id="pmu.pmswinc_el0.xml" state="">PMSWINC_EL0</register_link> is implemented in the external view, <register_link id="pmu.pmswinc_el0.xml" state="">PMSWINC_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3p4">FEAT_PMUv3p4</xref> is implemented, <register_link id="pmu.pmmir.xml" state="">PMMIR</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3_EXT64">FEAT_PMUv3_EXT64</xref> is implemented, <register_link id="pmu.pmcnten.xml" state="">PMCNTEN</register_link>, <register_link id="pmu.pminten.xml" state="">PMINTEN</register_link>, and <register_link id="pmu.pmovs.xml" state="">PMOVS</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3p9">FEAT_PMUv3p9</xref> is implemented, <register_link id="pmu.pmzr_el0.xml" state="">PMZR_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3_ICNTR">FEAT_PMUv3_ICNTR</xref> is implemented, <register_link id="pmu.pmcgcr0.xml" state="">PMCGCR0</register_link>, <register_link id="pmu.pmicfiltr_el0.xml" state="">PMICFILTR_EL0</register_link>, and <register_link id="pmu.pmicntr_el0.xml" state="">PMICNTR_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PCSRv8p9">FEAT_PCSRv8p9</xref> is implemented, <register_link id="pmu.pmpcsctl.xml" state="">PMPCSCTL</register_link>.</content>
</listitem></list></field_description>
    <field_description order="after">
      <table>
        <tgroup cols="3">
          <thead>
            <row>
              <entry>EPMADE</entry>
              <entry>EPMAD</entry>
              <entry>Meaning</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry>
                <binarynumber>0b0</binarynumber>
              </entry>
              <entry>
                <binarynumber>0b0</binarynumber>
              </entry>
              <entry>No accesses from an external debugger to affected Performance Monitor registers are prohibited by this control.</entry>
            </row>
            <row>
              <entry><binarynumber>0b0</binarynumber>
</entry>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry>Realm and Non-secure accesses from an external debugger to affected Performance Monitor registers are prohibited.
Other accesses from an external debugger to affected Performance Monitor registers are not affected by this control.</entry>
            </row>
            <row>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry><binarynumber>0b0</binarynumber>
</entry>
              <entry>Secure and Non-secure accesses from an external debugger to affected Performance Monitor registers are prohibited.
Other accesses from an external debugger to affected Performance Monitor registers are not affected by this control.</entry>
            </row>
            <row>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry>Secure, Non-secure, and Realm accesses from an external debugger to affected Performance Monitor registers are prohibited.
Other accesses from an external debugger to affected Performance Monitor registers are not affected by this control.</entry>
            </row>
          </tbody>
        </tgroup>
      </table>
    </field_description>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_RME is implemented and FEAT_PMUv3_EXT is implemented</fields_condition>
  </field>
  <field id="fieldset_0-21_21-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" reserved_type="RES0">
    <field_name>EPMAD</field_name>
    <field_msb>21</field_msb>
    <field_lsb>21</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"><para>External Performance Monitors Access Disable. Controls Non-secure access to Performance Monitor registers by an external debugger.</para>
<para>External accesses of the following Performance Monitor registers are affected by this control:</para>
<list type="unordered">
<listitem><content><register_link id="pmu.pmccfiltr_el0.xml" state="">PMCCFILTR_EL0</register_link>, <register_link id="pmu.pmccntr_el0.xml" state="">PMCCNTR_EL0</register_link>, <register_link id="pmu.pmcfgr.xml" state="">PMCFGR</register_link>, <register_link id="pmu.pmcntenclr_el0.xml" state="">PMCNTENCLR_EL0</register_link>, <register_link id="pmu.pmcntenset_el0.xml" state="">PMCNTENSET_EL0</register_link>, <register_link id="pmu.pmcr_el0.xml" state="">PMCR_EL0</register_link>, <register_link id="pmu.pmevcntrn_el0.xml" state="">PMEVCNTR&lt;n&gt;_EL0</register_link>, <register_link id="pmu.pmevtypern_el0.xml" state="">PMEVTYPER&lt;n&gt;_EL0</register_link>, <register_link id="pmu.pmintenclr_el1.xml" state="">PMINTENCLR_EL1</register_link>, <register_link id="pmu.pmintenset_el1.xml" state="">PMINTENSET_EL1</register_link>, <register_link id="pmu.pmovsclr_el0.xml" state="">PMOVSCLR_EL0</register_link>, and <register_link id="pmu.pmovsset_el0.xml" state="">PMOVSSET_EL0</register_link>.</content>
</listitem><listitem><content>If <register_link id="pmu.pmevfilt2rn.xml" state="">PMEVFILT2R&lt;n&gt;</register_link> is implemented, <register_link id="pmu.pmevfilt2rn.xml" state="">PMEVFILT2R&lt;n&gt;</register_link>.</content>
</listitem><listitem><content>If implemented, <register_link id="pmu.pmiidr.xml" state="">PMIIDR</register_link>.</content>
</listitem><listitem><content>If <register_link id="pmu.pmswinc_el0.xml" state="">PMSWINC_EL0</register_link> is implemented in the external view, <register_link id="pmu.pmswinc_el0.xml" state="">PMSWINC_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3p4">FEAT_PMUv3p4</xref> is implemented, <register_link id="pmu.pmmir.xml" state="">PMMIR</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3_EXT64">FEAT_PMUv3_EXT64</xref> is implemented, <register_link id="pmu.pmcnten.xml" state="">PMCNTEN</register_link>, <register_link id="pmu.pminten.xml" state="">PMINTEN</register_link>, and <register_link id="pmu.pmovs.xml" state="">PMOVS</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3p9">FEAT_PMUv3p9</xref> is implemented, <register_link id="pmu.pmzr_el0.xml" state="">PMZR_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3_ICNTR">FEAT_PMUv3_ICNTR</xref> is implemented, <register_link id="pmu.pmcgcr0.xml" state="">PMCGCR0</register_link>, <register_link id="pmu.pmicfiltr_el0.xml" state="">PMICFILTR_EL0</register_link>, and <register_link id="pmu.pmicntr_el0.xml" state="">PMICNTR_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PCSRv8p9">FEAT_PCSRv8p9</xref> is implemented, <register_link id="pmu.pmpcsctl.xml" state="">PMPCSCTL</register_link>.</content>
</listitem></list></field_description>
    <field_description order="after">
      <para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is 1.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>No accesses from an external debugger to the Performance Monitor registers are prohibited by this control.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Non-secure accesses from an external debugger to the affected Performance Monitor registers are prohibited.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_Debugv8p4 is implemented and FEAT_PMUv3_EXT is implemented</fields_condition>
  </field>
  <field id="fieldset_0-21_21-3" 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>EPMAD</field_name>
    <field_msb>21</field_msb>
    <field_lsb>21</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"><para>External Performance Monitors Access Disable. Controls access to Performance Monitor registers by an external debugger.</para>
<para>External accesses of the following Performance Monitor registers are affected by this control:</para>
<list type="unordered">
<listitem><content><register_link id="pmu.pmccfiltr_el0.xml" state="">PMCCFILTR_EL0</register_link>, <register_link id="pmu.pmccntr_el0.xml" state="">PMCCNTR_EL0</register_link>, <register_link id="pmu.pmcfgr.xml" state="">PMCFGR</register_link>, <register_link id="pmu.pmcntenclr_el0.xml" state="">PMCNTENCLR_EL0</register_link>, <register_link id="pmu.pmcntenset_el0.xml" state="">PMCNTENSET_EL0</register_link>, <register_link id="pmu.pmcr_el0.xml" state="">PMCR_EL0</register_link>, <register_link id="pmu.pmevcntrn_el0.xml" state="">PMEVCNTR&lt;n&gt;_EL0</register_link>, <register_link id="pmu.pmevtypern_el0.xml" state="">PMEVTYPER&lt;n&gt;_EL0</register_link>, <register_link id="pmu.pmintenclr_el1.xml" state="">PMINTENCLR_EL1</register_link>, <register_link id="pmu.pmintenset_el1.xml" state="">PMINTENSET_EL1</register_link>, <register_link id="pmu.pmovsclr_el0.xml" state="">PMOVSCLR_EL0</register_link>, and <register_link id="pmu.pmovsset_el0.xml" state="">PMOVSSET_EL0</register_link>.</content>
</listitem><listitem><content>If <register_link id="pmu.pmevfilt2rn.xml" state="">PMEVFILT2R&lt;n&gt;</register_link> is implemented, <register_link id="pmu.pmevfilt2rn.xml" state="">PMEVFILT2R&lt;n&gt;</register_link>.</content>
</listitem><listitem><content>If implemented, <register_link id="pmu.pmiidr.xml" state="">PMIIDR</register_link>.</content>
</listitem><listitem><content>If <register_link id="pmu.pmswinc_el0.xml" state="">PMSWINC_EL0</register_link> is implemented in the external view, <register_link id="pmu.pmswinc_el0.xml" state="">PMSWINC_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3p4">FEAT_PMUv3p4</xref> is implemented, <register_link id="pmu.pmmir.xml" state="">PMMIR</register_link>.</content>
</listitem></list></field_description>
    <field_description order="after">
      <para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is 1.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>No accesses from an external debugger to the Performance Monitor registers are prohibited by this control.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>If the <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> authentication interface function <function>ExternalSecureInvasiveDebugEnabled()</function> returns FALSE, then accesses from an external debugger to the affected Performance Monitor registers are prohibited.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3_EXT is implemented</fields_condition>
  </field>
  <field id="fieldset_0-21_21-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>21</field_msb>
    <field_lsb>21</field_lsb>
    <rel_range>21</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-20_20-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>EDAD</field_name>
    <field_msb>20</field_msb>
    <field_lsb>20</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"><para>External Debug Access Disable. Together with MDCR_EL3.EDADE, controls access to breakpoint registers, watchpoint registers, and <register_link state="ext" id="ext-oslar_el1.xml">OSLAR_EL1</register_link> by an external debugger.</para>
<para>External accesses of the following debug registers are affected by this control:</para>
<list type="unordered">
<listitem><content><register_link state="ext" id="ext-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>, <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>, <register_link state="ext" id="ext-dbgwcrn_el1.xml">DBGWCR&lt;n&gt;_EL1</register_link>,  <register_link state="ext" id="ext-dbgwvrn_el1.xml">DBGWVR&lt;n&gt;_EL1</register_link>, and <register_link state="ext" id="ext-oslar_el1.xml">OSLAR_EL1</register_link>.</content>
</listitem></list></field_description>
    <field_description order="after">
      <table>
        <tgroup cols="3">
          <thead>
            <row>
              <entry>EDADE</entry>
              <entry>EDAD</entry>
              <entry>Meaning</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry>
                <binarynumber>0b0</binarynumber>
              </entry>
              <entry>
                <binarynumber>0b0</binarynumber>
              </entry>
              <entry>No accesses from an external debugger to affected debug registers are prohibited by this control.</entry>
            </row>
            <row>
              <entry><binarynumber>0b0</binarynumber>
</entry>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry>Realm and Non-secure accesses from an external debugger to affected debug registers are prohibited.
Other accesses from an external debugger to affected debug registers are not affected by this control.</entry>
            </row>
            <row>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry><binarynumber>0b0</binarynumber>
</entry>
              <entry>Secure and Non-secure accesses from an external debugger to affected debug registers are prohibited.
Other accesses from an external debugger to affected debug registers are not affected by this control.</entry>
            </row>
            <row>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry><binarynumber>0b1</binarynumber>
</entry>
              <entry>Secure, Non-secure, and Realm accesses from an external debugger to affected debug registers are prohibited.
Other accesses from an external debugger to affected debug registers are not affected by this control.</entry>
            </row>
          </tbody>
        </tgroup>
      </table>
    </field_description>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_RME is implemented</fields_condition>
  </field>
  <field id="fieldset_0-20_20-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" reserved_type="RES0">
    <field_name>EDAD</field_name>
    <field_msb>20</field_msb>
    <field_lsb>20</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"><para>External Debug Access Disable. Controls Non-secure access to breakpoint registers, watchpoint registers, and <register_link state="ext" id="ext-oslar_el1.xml">OSLAR_EL1</register_link> by an external debugger.</para>
<para>External accesses of the following debug registers are affected by this control:</para>
<list type="unordered">
<listitem><content><register_link state="ext" id="ext-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>, <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>, <register_link state="ext" id="ext-dbgwcrn_el1.xml">DBGWCR&lt;n&gt;_EL1</register_link>,  <register_link state="ext" id="ext-dbgwvrn_el1.xml">DBGWVR&lt;n&gt;_EL1</register_link>, and <register_link state="ext" id="ext-oslar_el1.xml">OSLAR_EL1</register_link>.</content>
</listitem></list></field_description>
    <field_description order="after">
      <para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is 1.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>No accesses from an external debugger to the debug registers are prohibited by this control.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Non-secure accesses from an external debugger to the affected debug registers are prohibited.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_Debugv8p4 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-20_20-3" 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>EDAD</field_name>
    <field_msb>20</field_msb>
    <field_lsb>20</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"><para>External Debug Access Disable. Controls access to breakpoint registers, watchpoint registers, and <register_link state="ext" id="ext-oslar_el1.xml">OSLAR_EL1</register_link> by an external debugger.</para>
<para>External accesses of the following debug registers are affected by this control:</para>
<list type="unordered">
<listitem><content><register_link state="ext" id="ext-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>, <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>, <register_link state="ext" id="ext-dbgwcrn_el1.xml">DBGWCR&lt;n&gt;_EL1</register_link>,  <register_link state="ext" id="ext-dbgwvrn_el1.xml">DBGWVR&lt;n&gt;_EL1</register_link>, and <register_link state="ext" id="ext-oslar_el1.xml">OSLAR_EL1</register_link>.</content>
</listitem></list></field_description>
    <field_description order="after">
      <para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is 1.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>No accesses from an external debugger to the debug registers are prohibited by this control.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>If the <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> authentication interface function <function>ExternalSecureInvasiveDebugEnabled()</function> returns FALSE, then accesses from an external debugger to the affected debug registers are prohibited.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_Debugv8p2 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-20_20-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" reserved_type="RES0">
    <field_name>EDAD</field_name>
    <field_msb>20</field_msb>
    <field_lsb>20</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"><para>External Debug Access Disable. Controls access to breakpoint registers, watchpoint registers, and optionally <register_link state="ext" id="ext-oslar_el1.xml">OSLAR_EL1</register_link> by an external debugger.</para>
<para>External accesses of the following debug registers are affected by this control:</para>
<list type="unordered">
<listitem><content><register_link state="ext" id="ext-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>, <register_link state="ext" id="ext-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>, <register_link state="ext" id="ext-dbgwcrn_el1.xml">DBGWCR&lt;n&gt;_EL1</register_link>, and <register_link state="ext" id="ext-dbgwvrn_el1.xml">DBGWVR&lt;n&gt;_EL1</register_link>.</content>
</listitem><listitem><content>It is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether this control affects <register_link state="ext" id="ext-oslar_el1.xml">OSLAR_EL1</register_link>.</content>
</listitem></list></field_description>
    <field_description order="after">
      <para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is 1.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>No accesses from an external debugger to the debug registers are prohibited by this control.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>If the <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> authentication interface function <function>ExternalSecureInvasiveDebugEnabled()</function> returns FALSE, then accesses from an external debugger to the affected debug registers are prohibited.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>Otherwise</fields_condition>
  </field>
  <field id="fieldset_0-19_19-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>TTRF</field_name>
    <field_msb>19</field_msb>
    <field_lsb>19</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"><para>Trap Trace Filter controls. Traps use of the Trace Filter control registers at EL2 and EL1 to EL3.</para>
<para>The Trace Filter registers trapped by this control are:</para>
<list type="unordered">
<listitem><content>
<para><register_link state="AArch64" id="AArch64-trfcr_el2.xml">TRFCR_EL2</register_link>, TRFCR_EL12, <register_link state="AArch64" id="AArch64-trfcr_el1.xml">TRFCR_EL1</register_link>, reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para>
</content>
</listitem><listitem><content>
<para><register_link state="AArch32" id="AArch32-htrfcr.xml">HTRFCR</register_link> and <register_link state="AArch32" id="AArch32-trfcr.xml">TRFCR</register_link>, reported using EC syndrome value <hexnumber>0x03</hexnumber>.</para>
</content>
</listitem></list></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Accesses to Trace Filter registers at EL2 and EL1 are not affected by this field.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Accesses to Trace Filter registers at EL2 and EL1 generate a Trap exception to EL3, unless the access generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_TRF is implemented</fields_condition>
  </field>
  <field id="fieldset_0-19_19-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>19</field_msb>
    <field_lsb>19</field_lsb>
    <rel_range>19</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-18_18-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>STE</field_name>
    <field_msb>18</field_msb>
    <field_lsb>18</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Secure Trace enable. Enables tracing in Secure state.</para>
    </field_description>
    <field_description order="after"><para>This field also controls the level of authentication required by an external debugger to enable external tracing. See <xref linkend="#BABHFDDH">'Register controls to enable self-hosted trace'</xref>.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, the Effective value of this field is 1.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Trace prohibited in Secure state unless overridden by the <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> authentication interface.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Trace in Secure state is not affected by this field.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_TRF is implemented and HaveSecureState()</fields_condition>
  </field>
  <field id="fieldset_0-18_18-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>18</field_msb>
    <field_lsb>18</field_lsb>
    <rel_range>18</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-17_17-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>SPME</field_name>
    <field_msb>17</field_msb>
    <field_lsb>17</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Secure Performance Monitors Enable. Controls PMU operation in Secure state and at EL3 when MDCR_EL3.MPMX is 0.</para>
    </field_description>
    <field_description order="after"><para>When MDCR_EL3.MPMX is 0, the counters affected by this field are:</para>
<list type="unordered">
<listitem><content>Event counters in the first and second ranges. For more information about event counter ranges, see <register_link state="AArch64" id="AArch64-mdcr_el2.xml">MDCR_EL2</register_link>.HPMN.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3_ICNTR">FEAT_PMUv3_ICNTR</xref> is implemented, the instruction counter, <register_link state="AArch64" id="AArch64-pmicntr_el0.xml">PMICNTR_EL0</register_link>.</content>
</listitem><listitem><content>If <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 1, the cycle counter, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link>.</content>
</listitem></list>
<para>When <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 0, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is not affected by this field.</para>
<para>When MDCR_EL3.MPMX is 1, this field controls which event counters are affected by MDCR_EL3.MPMX at EL3. See MDCR_EL3.MPMX for more information.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is 1.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Affected counters are prohibited from counting in Secure state and at EL3. If <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 1, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is disabled in Secure state and at EL3. Otherwise, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is not affected by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Counters are not affected by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3 is implemented and FEAT_PMUv3p7 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-17_17-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" reserved_type="RES0">
    <field_name>SPME</field_name>
    <field_msb>17</field_msb>
    <field_lsb>17</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Secure Performance Monitors Enable. Controls PMU operation in Secure state.</para>
    </field_description>
    <field_description order="after"><para>The counters affected by this field are:</para>
<list type="unordered">
<listitem><content>All event counters.</content>
</listitem><listitem><content>If <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 1, the cycle counter, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link>.</content>
</listitem></list>
<para>When <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 0, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is not affected by this field.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is 1.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description><para>Event counting is prohibited in Secure state.</para>
<para>If <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 1, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is disabled in Secure state. Otherwise, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is not affected by this mechanism.</para></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Event counting and <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> are not affected by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3 is implemented and FEAT_Debugv8p2 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-17_17-3" 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>SPME</field_name>
    <field_msb>17</field_msb>
    <field_lsb>17</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Secure Performance Monitors Enable. Controls PMU operation in Secure state.</para>
    </field_description>
    <field_description order="after"><para>If <function>ExternalSecureNoninvasiveDebugEnabled()</function> is TRUE, then the event counters and <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> are not affected by this field.</para>
<para>Otherwise, the counters affected by this field are:</para>
<list type="unordered">
<listitem><content>All event counters.</content>
</listitem><listitem><content>If <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 1, the cycle counter, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link>.</content>
</listitem></list>
<para>When <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 0, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is not affected by this field.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is 1.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description><para>If <function>ExternalSecureNoninvasiveDebugEnabled()</function> is FALSE, then all the following apply:</para>
<list type="unordered">
<listitem><content>Event counting is prohibited in Secure state.</content>
</listitem><listitem><content>If <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>.DP is 1, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is disabled in Secure state. Otherwise, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> is not affected by this mechanism.</content>
</listitem></list></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Event counting and <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link> are not affected by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-17_17-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>17</field_msb>
    <field_lsb>17</field_lsb>
    <rel_range>17</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-16_16-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>SDD</field_name>
    <field_msb>16</field_msb>
    <field_lsb>16</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>AArch64 Secure Self-hosted invasive debug disable. Disables Software debug exceptions in Secure state, other than Breakpoint Instruction exceptions.</para>
    </field_description>
    <field_description order="after"><para>The SDD bit is ignored unless both of the following are true:</para>
<list type="unordered">
<listitem><content>The PE is in Secure state.</content>
</listitem><listitem><content>The Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.RW is 0.</content>
</listitem></list>
<para>If Secure EL2 is implemented and enabled, and Secure EL1 is using AArch32, then:</para>
<list type="unordered">
<listitem><content>If debug exceptions from Secure EL1 are enabled, debug exceptions from Secure EL0 are also enabled.</content>
</listitem><listitem><content>Otherwise, debug exceptions from Secure EL0 are enabled only if the value of <register_link state="AArch64" id="AArch64-sder32_el3.xml">SDER32_EL3</register_link>.SUIDEN is 1.</content>
</listitem></list></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Debug exceptions in Secure state are not affected by this field.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Debug exceptions, other than Breakpoint Instruction exceptions, are disabled from all Exception levels in Secure state.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When HaveSecureState()</fields_condition>
  </field>
  <field id="fieldset_0-16_16-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>16</field_msb>
    <field_lsb>16</field_lsb>
    <rel_range>16</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-15_14-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>SPD32</field_name>
    <field_msb>15</field_msb>
    <field_lsb>14</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before">
      <para>AArch32 Secure self-hosted privileged debug. Enables or disables debug exceptions from Secure EL1 using AArch32, other than Breakpoint Instruction exceptions.</para>
    </field_description>
    <field_description order="after"><para>Other values are reserved, and have the <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word> behavior that they must have the same behavior as <binarynumber>0b00</binarynumber>. Software must not rely on this property as the behavior of reserved values might change in a future revision of the architecture.</para>
<para>This field has no effect on Breakpoint Instruction exceptions. These are always enabled.</para>
<para>This field is ignored unless both of the following are true:</para>
<list type="unordered">
<listitem><content>The PE is in Secure state.</content>
</listitem><listitem><content>The Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.RW is 0.</content>
</listitem></list>
<para>If Secure EL1 is using AArch32, then:</para>
<list type="unordered">
<listitem><content>If debug exceptions from Secure EL1 are enabled, then debug exceptions from Secure EL0 are also enabled.</content>
</listitem><listitem><content>Otherwise, debug exceptions from Secure EL0 are enabled only if the value of <register_link state="AArch64" id="AArch64-sder32_el3.xml">SDER32_EL3</register_link>.SUIDEN is 1.</content>
</listitem></list>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is <binarynumber>0b11</binarynumber>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b00</field_value>
        <field_value_description>
          <para>Legacy mode. Debug exceptions from Secure EL1 are enabled by the <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> authentication interface.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b10</field_value>
        <field_value_description>
          <para>Secure privileged debug disabled. Debug exceptions from Secure EL1 are disabled.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b11</field_value>
        <field_value_description>
          <para>Secure privileged debug enabled. Debug exceptions from Secure EL1 are enabled.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_AA32EL1 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-15_14-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>15</field_msb>
    <field_lsb>14</field_lsb>
    <rel_range>15:14</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-13_12-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>NSPB</field_name>
    <field_msb>13</field_msb>
    <field_lsb>12</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before"><para>Non-secure Profiling Buffer. Together with MDCR_EL3.NSPBE, controls the Profiling Buffer owning Security state and accesses to Statistical Profiling and Profiling Buffer System registers from EL2 and EL1.</para>
<table><tgroup cols="3"><thead><row><entry>NSPBE</entry><entry>NSPB</entry><entry>Meaning</entry></row></thead><tbody><row><entry><binarynumber>0b0</binarynumber></entry><entry><binarynumber>0b00</binarynumber></entry><entry>Profiling Buffer owning Security state is Secure state.</entry></row><row><entry/><entry/><entry>Profiling is disabled in Realm and Non-secure states.</entry></row><row><entry/><entry/><entry>Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 are</entry></row><row><entry/><entry/><entry>trapped to EL3, unless the access generates a higher priority exception.</entry></row><row><entry/><entry/><entry>When Secure state is not implemented, this encoding is reserved.</entry></row><row><entry><binarynumber>0b0</binarynumber></entry><entry><binarynumber>0b01</binarynumber></entry><entry>Profiling Buffer owning Security state is Secure state.</entry></row><row><entry/><entry/><entry>Profiling is disabled in Realm and Non-secure states.</entry></row><row><entry/><entry/><entry>Accesses to Statistical Profiling and Profiling Buffer System registers at Realm and Non-secure</entry></row><row><entry/><entry/><entry>EL2, and Realm and Non-secure EL1, are trapped to EL3, unless the access generates a higher</entry></row><row><entry/><entry/><entry>priority exception.</entry></row><row><entry/><entry/><entry>When Secure state is not implemented, this encoding is reserved.</entry></row><row><entry><binarynumber>0b0</binarynumber></entry><entry><binarynumber>0b10</binarynumber></entry><entry>Profiling Buffer owning Security state is Non-secure state.</entry></row><row><entry/><entry/><entry>Profiling is disabled in Secure and Realm states.</entry></row><row><entry/><entry/><entry>Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 are</entry></row><row><entry/><entry/><entry>trapped to EL3, unless the access generates a higher priority exception.</entry></row><row><entry><binarynumber>0b0</binarynumber></entry><entry><binarynumber>0b11</binarynumber></entry><entry>Profiling Buffer owning Security state is Non-secure state.</entry></row><row><entry/><entry/><entry>Profiling is disabled in Secure and Realm states.</entry></row><row><entry/><entry/><entry>Accesses to Statistical Profiling and Profiling Buffer System registers at Secure and Realm EL2,</entry></row><row><entry/><entry/><entry>and Secure and Realm EL1, are trapped to EL3, unless the access generates a higher priority</entry></row><row><entry/><entry/><entry>exception.</entry></row><row><entry><binarynumber>0b1</binarynumber></entry><entry><binarynumber>0b10</binarynumber></entry><entry>Profiling Buffer owning Security state is Realm state.</entry></row><row><entry/><entry/><entry>Profiling is disabled in Secure and Non-secure states.</entry></row><row><entry/><entry/><entry>Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 are</entry></row><row><entry/><entry/><entry>trapped to EL3, unless the access generates a higher priority exception.</entry></row><row><entry><binarynumber>0b1</binarynumber></entry><entry><binarynumber>0b11</binarynumber></entry><entry>Profiling Buffer owning Security state is Realm state.</entry></row><row><entry/><entry/><entry>Profiling is disabled in Secure and Non-secure states.</entry></row><row><entry/><entry/><entry>Accesses to Statistical Profiling and Profiling Buffer System registers at Secure and Non-secure</entry></row><row><entry/><entry/><entry>EL2, and Secure and Non-secure EL1, are trapped to EL3, unless the access generates a higher</entry></row><row><entry/><entry/><entry>priority exception.</entry></row></tbody></tgroup></table>
<para>All other combinations of MDCR_EL3.NSPBE and MDCR_EL3.NSPB are reserved.</para></field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are:</para>
<list type="unordered">
<listitem><content><instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmblimitr_el1.xml">PMBLIMITR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmbptr_el1.xml">PMBPTR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmbsr_el1.xml">PMBSR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmscr_el1.xml">PMSCR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmscr_el2.xml">PMSCR_EL2</register_link>, <register_link id="AArch64-pmscr_el1.xml" state="AArch64">PMSCR_EL12</register_link>, <register_link state="AArch64" id="AArch64-pmsevfr_el1.xml">PMSEVFR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmsfcr_el1.xml">PMSFCR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmsicr_el1.xml">PMSICR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmsirr_el1.xml">PMSIRR_EL1</register_link>, and <register_link state="AArch64" id="AArch64-pmslatfr_el1.xml">PMSLATFR_EL1</register_link>.</content>
</listitem><listitem><content><instruction>MRS</instruction> accesses to <register_link state="AArch64" id="AArch64-pmsidr_el1.xml">PMSIDR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_SPE_FnE">FEAT_SPE_FnE</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmsnevfr_el1.xml">PMSNEVFR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_SPE_FDS">FEAT_SPE_FDS</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmsdsfr_el1.xml">PMSDSFR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_SPE_EXC">FEAT_SPE_EXC</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmbsr_el2.xml">PMBSR_EL2</register_link> and <register_link id="AArch64-pmbsr_el1.xml" state="AArch64">PMBSR_EL12</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_SPE_nVM">FEAT_SPE_nVM</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmbmar_el1.xml">PMBMAR_EL1</register_link>.</content>
</listitem></list>
<para>Unless the instruction generates a higher priority exception, trapped instructions generate an exception to EL3, reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para>
<para>If profiling is enabled and MDCR_EL3.{NSPB, NSPBE} selects a reserved value, then the behavior is <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word>, and the Statistical Profiling Unit does one of:</para>
<list type="unordered">
<listitem><content>Behaves as if profiling is disabled.</content>
</listitem><listitem><content>Selects an implemented Security state as the owning Security state.</content>
</listitem><listitem><content>When profiling data is generated, it is not written to memory and the Statistical Profiling Unit generates a Profiling Buffer management event, as follows:<list type="unordered">
<listitem><content>If <xref linkend="#PMBSR_ELx">PMBSR_ELx</xref>.S is 0, then all of the following occur:<list type="unordered">
<listitem><content><xref linkend="#PMBSR_ELx">PMBSR_ELx</xref>.S is set to 1.</content>
</listitem><listitem><content><xref linkend="#PMBSR_ELx">PMBSR_ELx</xref>.DL is set to 1.</content>
</listitem><listitem><content><xref linkend="#PMBSR_ELx">PMBSR_ELx</xref>.EC is set to <binarynumber>0b000000</binarynumber>, Other buffer management event.</content>
</listitem><listitem><content><xref linkend="#PMBSR_ELx">PMBSR_ELx</xref>.BSC is set to <binarynumber>0b000000</binarynumber>, Access not allowed.</content>
</listitem></list>
</content>
</listitem><listitem><content>The other fields in <xref linkend="#PMBSR_ELx">PMBSR_ELx</xref> are unchanged.</content>
</listitem></list>
</content>
</listitem></list>
<para>If profiling is enabled and MDCR_EL3.{NSPB, NSPBE} selects a reserved value, then it is <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word> whether or not accesses to the Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 generate Trap exceptions to EL3.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 1, then the Effective value of this field is <binarynumber>0b11</binarynumber>.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is <binarynumber>0b01</binarynumber>.</para></field_description>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_SPE is implemented and FEAT_RME is implemented</fields_condition>
  </field>
  <field id="fieldset_0-13_12-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" reserved_type="RES0">
    <field_name>NSPB</field_name>
    <field_msb>13</field_msb>
    <field_lsb>12</field_lsb>
    <rel_range>1:0</rel_range>
    <field_description order="before">
      <para>Non-secure Profiling Buffer. Controls the Profiling Buffer owning Security state and accesses to Statistical Profiling and Profiling Buffer System registers from EL2 and EL1.</para>
    </field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are:</para>
<list type="unordered">
<listitem><content><instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmblimitr_el1.xml">PMBLIMITR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmbptr_el1.xml">PMBPTR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmbsr_el1.xml">PMBSR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmscr_el1.xml">PMSCR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmscr_el2.xml">PMSCR_EL2</register_link>, <register_link id="AArch64-pmscr_el1.xml" state="AArch64">PMSCR_EL12</register_link>, <register_link state="AArch64" id="AArch64-pmsevfr_el1.xml">PMSEVFR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmsfcr_el1.xml">PMSFCR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmsicr_el1.xml">PMSICR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmsirr_el1.xml">PMSIRR_EL1</register_link>, and <register_link state="AArch64" id="AArch64-pmslatfr_el1.xml">PMSLATFR_EL1</register_link>.</content>
</listitem><listitem><content><instruction>MRS</instruction> accesses to <register_link state="AArch64" id="AArch64-pmsidr_el1.xml">PMSIDR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_SPE_FnE">FEAT_SPE_FnE</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmsnevfr_el1.xml">PMSNEVFR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_SPE_FDS">FEAT_SPE_FDS</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmsdsfr_el1.xml">PMSDSFR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_SPE_EXC">FEAT_SPE_EXC</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmbsr_el2.xml">PMBSR_EL2</register_link> and <register_link id="AArch64-pmbsr_el1.xml" state="AArch64">PMBSR_EL12</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_SPE_nVM">FEAT_SPE_nVM</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmbmar_el1.xml">PMBMAR_EL1</register_link>.</content>
</listitem></list>
<para>Unless the instruction generates a higher priority exception, trapped instructions generate an exception to EL3, reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 1, then the Effective value of this field is <binarynumber>0b11</binarynumber>.</para>
<para>If EL3 is not implemented and the Effective value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0, then the Effective value of this field is <binarynumber>0b01</binarynumber>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b00</field_value>
        <field_value_description>
          <para>Profiling Buffer owning Security state is Secure state. Profiling is disabled in Non-secure state.
Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1  are trapped to EL3, unless the access generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b01</field_value>
        <field_value_description>
          <para>Profiling Buffer owning Security state is Secure state. Profiling is disabled in Non-secure state.
Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 in Non-secure state are trapped to EL3, unless the access generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b10</field_value>
        <field_value_description>
          <para>Profiling Buffer owning Security state is Non-secure state. Profiling is disabled in Secure state.
Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1  are trapped to EL3, unless the access generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b11</field_value>
        <field_value_description>
          <para>Profiling Buffer owning Security state is Non-secure state. Profiling is disabled in Secure state.
Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 in Secure state are trapped to EL3, unless the access generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_SPE is implemented</fields_condition>
  </field>
  <field id="fieldset_0-13_12-3" 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>13</field_msb>
    <field_lsb>12</field_lsb>
    <rel_range>13:12</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-11_11-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>NSPBE</field_name>
    <field_msb>11</field_msb>
    <field_lsb>11</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Non-secure Profiling Buffer Extended. Together with MDCR_EL3.NSPB, controls the Profiling Buffer owning Security state and accesses to Statistical Profiling and Profiling Buffer System registers from EL2 and EL1.</para>
    </field_description>
    <field_description order="after">
      <para>For a description of the values derived by evaluating NSPB and NSPBE together, see MDCR_EL3.NSPB.</para>
    </field_description>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_SPE is implemented and FEAT_RME is implemented</fields_condition>
  </field>
  <field id="fieldset_0-11_11-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>11</field_msb>
    <field_lsb>11</field_lsb>
    <rel_range>11</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-10_10-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>TDOSA</field_name>
    <field_msb>10</field_msb>
    <field_lsb>10</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"><para>Trap debug OS-related register access. Traps EL2 and EL1 System register accesses to the powerdown debug System registers to EL3.</para>
<para>Accesses to the registers are trapped as follows:</para>
<list type="unordered">
<listitem><content>Accesses from AArch64 state, <register_link state="AArch64" id="AArch64-oslar_el1.xml">OSLAR_EL1</register_link>, <register_link state="AArch64" id="AArch64-oslsr_el1.xml">OSLSR_EL1</register_link>, <register_link state="AArch64" id="AArch64-osdlr_el1.xml">OSDLR_EL1</register_link>, <register_link state="AArch64" id="AArch64-dbgprcr_el1.xml">DBGPRCR_EL1</register_link>, and any <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> register with similar functionality that the implementation specifies as trapped by this field, are trapped to EL3 and reported using EC syndrome value <hexnumber>0x18</hexnumber>.</content>
</listitem><listitem><content>Accesses using MCR or MRC to <register_link state="AArch32" id="AArch32-dbgoslar.xml">DBGOSLAR</register_link>, <register_link state="AArch32" id="AArch32-dbgoslsr.xml">DBGOSLSR</register_link>, <register_link state="AArch32" id="AArch32-dbgosdlr.xml">DBGOSDLR</register_link>, and <register_link state="AArch32" id="AArch32-dbgprcr.xml">DBGPRCR</register_link>, are trapped to EL3 and reported using EC syndrome value <hexnumber>0x05</hexnumber>.</content>
</listitem><listitem><content>Accesses to any <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> register with similar functionality that the implementation specifies as trapped by this field.</content>
</listitem></list></field_description>
    <field_description order="after">
      <note>
        <para>The powerdown debug System registers are not accessible at EL0.</para>
      </note>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>This control does not cause any instructions to be trapped.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>EL2 and EL1 System register accesses to the powerdown debug System registers are trapped to EL3, unless it is trapped by <register_link state="AArch32" id="AArch32-hdcr.xml">HDCR</register_link>.TDOSA or <register_link state="AArch64" id="AArch64-mdcr_el2.xml">MDCR_EL2</register_link>.TDOSA.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_DoubleLock is implemented</fields_condition>
  </field>
  <field id="fieldset_0-10_10-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" reserved_type="RES0">
    <field_name>TDOSA</field_name>
    <field_msb>10</field_msb>
    <field_lsb>10</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before"><para>Trap debug OS-related register access. Traps EL2 and EL1 System register accesses to the powerdown debug System registers to EL3.</para>
<para>The following registers are affected by this trap:</para>
<list type="unordered">
<listitem><content>AArch64: <register_link state="AArch64" id="AArch64-oslar_el1.xml">OSLAR_EL1</register_link>, <register_link state="AArch64" id="AArch64-oslsr_el1.xml">OSLSR_EL1</register_link>, and <register_link state="AArch64" id="AArch64-dbgprcr_el1.xml">DBGPRCR_EL1</register_link>.</content>
</listitem><listitem><content>AArch32: <register_link state="AArch32" id="AArch32-dbgoslar.xml">DBGOSLAR</register_link>, <register_link state="AArch32" id="AArch32-dbgoslsr.xml">DBGOSLSR</register_link>, and <register_link state="AArch32" id="AArch32-dbgprcr.xml">DBGPRCR</register_link>.</content>
</listitem><listitem><content>AArch64 and AArch32: Any <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> register with similar functionality that the implementation specifies as trapped by this field.</content>
</listitem><listitem><content>It is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether accesses to <register_link state="AArch64" id="AArch64-osdlr_el1.xml">OSDLR_EL1</register_link> and <register_link state="AArch32" id="AArch32-dbgosdlr.xml">DBGOSDLR</register_link> are trapped.</content>
</listitem></list></field_description>
    <field_description order="after">
      <note>
        <para>The powerdown debug System registers are not accessible at EL0.</para>
      </note>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>This control does not cause any instructions to be trapped.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>EL2 and EL1 System register accesses to the powerdown debug System registers are trapped to EL3, unless it is trapped by <register_link state="AArch32" id="AArch32-hdcr.xml">HDCR</register_link>.TDOSA or <register_link state="AArch64" id="AArch64-mdcr_el2.xml">MDCR_EL2</register_link>.TDOSA.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>Otherwise</fields_condition>
  </field>
  <field id="fieldset_0-9_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">
    <field_name>TDA</field_name>
    <field_msb>9</field_msb>
    <field_lsb>9</field_lsb>
    <rel_range>9</rel_range>
    <field_description order="before">
      <para>Trap accesses of debug System registers. Enables a trap to EL3 on accesses of debug System registers.</para>
    </field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are:</para>
<list type="unordered">
<listitem><content><instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-dbgauthstatus_el1.xml">DBGAUTHSTATUS_EL1</register_link>, <register_link state="AArch64" id="AArch64-dbgbcrn_el1.xml">DBGBCR&lt;n&gt;_EL1</register_link>, <register_link state="AArch64" id="AArch64-dbgbvrn_el1.xml">DBGBVR&lt;n&gt;_EL1</register_link>, <register_link state="AArch64" id="AArch64-dbgclaimclr_el1.xml">DBGCLAIMCLR_EL1</register_link>, <register_link state="AArch64" id="AArch64-dbgclaimset_el1.xml">DBGCLAIMSET_EL1</register_link>, <register_link state="AArch64" id="AArch64-dbgvcr32_el2.xml">DBGVCR32_EL2</register_link>, <register_link state="AArch64" id="AArch64-dbgwcrn_el1.xml">DBGWCR&lt;n&gt;_EL1</register_link>, <register_link state="AArch64" id="AArch64-dbgwvrn_el1.xml">DBGWVR&lt;n&gt;_EL1</register_link>, <register_link state="AArch64" id="AArch64-mdccint_el1.xml">MDCCINT_EL1</register_link>, <register_link state="AArch64" id="AArch64-mdccsr_el0.xml">MDCCSR_EL0</register_link>, <register_link state="AArch64" id="AArch64-mdcr_el2.xml">MDCR_EL2</register_link>, <register_link state="AArch64" id="AArch64-mdrar_el1.xml">MDRAR_EL1</register_link>, <register_link state="AArch64" id="AArch64-mdscr_el1.xml">MDSCR_EL1</register_link>, <register_link state="AArch64" id="AArch64-osdtrrx_el1.xml">OSDTRRX_EL1</register_link>, <register_link state="AArch64" id="AArch64-osdtrtx_el1.xml">OSDTRTX_EL1</register_link>, and <register_link state="AArch64" id="AArch64-oseccr_el1.xml">OSECCR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_Debugv8p9">FEAT_Debugv8p9</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-mdselr_el1.xml">MDSELR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_STEP2">FEAT_STEP2</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-mdstepop_el1.xml">MDSTEPOP_EL1</register_link>.</content>
</listitem><listitem><content>In Non-debug state, <instruction>MRS</instruction> accesses to <register_link state="AArch64" id="AArch64-dbgdtrrx_el0.xml">DBGDTRRX_EL0</register_link> and <register_link state="AArch64" id="AArch64-dbgdtr_el0.xml">DBGDTR_EL0</register_link> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-dbgdtrtx_el0.xml">DBGDTRTX_EL0</register_link> and <register_link state="AArch64" id="AArch64-dbgdtr_el0.xml">DBGDTR_EL0</register_link>.</content>
</listitem></list>
<para>In AArch32 state, the instructions affected by this control are:</para>
<list type="unordered">
<listitem><content><instruction>MRC</instruction> and <instruction>MCR</instruction> accesses to <register_link state="AArch32" id="AArch32-dbgauthstatus.xml">DBGAUTHSTATUS</register_link>, <register_link state="AArch32" id="AArch32-dbgbcrn.xml">DBGBCR&lt;n&gt;</register_link>, <register_link state="AArch32" id="AArch32-dbgbvrn.xml">DBGBVR&lt;n&gt;</register_link>, <register_link state="AArch32" id="AArch32-dbgbxvrn.xml">DBGBXVR&lt;n&gt;</register_link>, <register_link state="AArch32" id="AArch32-dbgclaimclr.xml">DBGCLAIMCLR</register_link>, <register_link state="AArch32" id="AArch32-dbgclaimset.xml">DBGCLAIMSET</register_link>, <register_link state="AArch32" id="AArch32-dbgdccint.xml">DBGDCCINT</register_link>, <register_link state="AArch32" id="AArch32-dbgdevid.xml">DBGDEVID</register_link>, <register_link state="AArch32" id="AArch32-dbgdevid1.xml">DBGDEVID1</register_link>, <register_link state="AArch32" id="AArch32-dbgdevid2.xml">DBGDEVID2</register_link>, <register_link state="AArch32" id="AArch32-dbgdidr.xml">DBGDIDR</register_link>, <register_link state="AArch32" id="AArch32-dbgdrar.xml">DBGDRAR</register_link>, <register_link state="AArch32" id="AArch32-dbgdsar.xml">DBGDSAR</register_link>, <register_link state="AArch32" id="AArch32-dbgdscrext.xml">DBGDSCRext</register_link>, <register_link state="AArch32" id="AArch32-dbgdscrint.xml">DBGDSCRint</register_link>, <register_link state="AArch32" id="AArch32-dbgdtrrxext.xml">DBGDTRRXext</register_link>, <register_link state="AArch32" id="AArch32-dbgdtrtxext.xml">DBGDTRTXext</register_link>, <register_link state="AArch32" id="AArch32-dbgoseccr.xml">DBGOSECCR</register_link>, <register_link state="AArch32" id="AArch32-dbgvcr.xml">DBGVCR</register_link>, <register_link state="AArch32" id="AArch32-dbgwcrn.xml">DBGWCR&lt;n&gt;</register_link>, <register_link state="AArch32" id="AArch32-dbgwfar.xml">DBGWFAR</register_link>, <register_link state="AArch32" id="AArch32-dbgwvrn.xml">DBGWVR&lt;n&gt;</register_link>, <register_link state="AArch32" id="AArch32-hdcr.xml">HDCR</register_link>, and <register_link state="AArch32" id="AArch32-sder.xml">SDER</register_link>.</content>
</listitem><listitem><content><instruction>MRRC</instruction> accesses to <register_link state="AArch32" id="AArch32-dbgdrar.xml">DBGDRAR</register_link> and <register_link state="AArch32" id="AArch32-dbgdsar.xml">DBGDSAR</register_link>.</content>
</listitem><listitem><content><instruction>STC</instruction> accesses to <register_link state="AArch32" id="AArch32-dbgdtrrxint.xml">DBGDTRRXint</register_link> and <instruction>LDC</instruction> accesses to <register_link state="AArch32" id="AArch32-dbgdtrtxint.xml">DBGDTRTXint</register_link>.</content>
</listitem><listitem><content>In Non-debug state, <instruction>MRC</instruction> accesses to <register_link state="AArch32" id="AArch32-dbgdtrrxint.xml">DBGDTRRXint</register_link> and <instruction>MCR</instruction> accesses to <register_link state="AArch32" id="AArch32-dbgdtrtxint.xml">DBGDTRTXint</register_link>.</content>
</listitem></list>
<para>Trapped AArch64 instructions are reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para>
<para>Trapped AArch32 instructions are reported using EC syndrome value <hexnumber>0x03</hexnumber> for <instruction>MRC</instruction> and <instruction>MCR</instruction> accesses with <value>coproc</value> == <binarynumber>0b1111</binarynumber>, <hexnumber>0x05</hexnumber> for <instruction>MCR</instruction> and <instruction>MCR</instruction> accesses with <value>coproc</value> == <binarynumber>0b1110</binarynumber>, <hexnumber>0x06</hexnumber> for <instruction>LDC</instruction> and <instruction>STC</instruction> accesses, and <hexnumber>0x0C</hexnumber> for <instruction>MRRC</instruction> accesses.</para>
<para>The following instructions are not trapped in Debug state:</para>
<list type="unordered">
<listitem><content>AArch64 <instruction>MRS</instruction> accesses to <register_link state="AArch64" id="AArch64-dbgdtrrx_el0.xml">DBGDTRRX_EL0</register_link> and <register_link state="AArch64" id="AArch64-dbgdtr_el0.xml">DBGDTR_EL0</register_link> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-dbgdtrtx_el0.xml">DBGDTRTX_EL0</register_link> and <register_link state="AArch64" id="AArch64-dbgdtr_el0.xml">DBGDTR_EL0</register_link>.</content>
</listitem><listitem><content>AArch32 <instruction>MRC</instruction> accesses to <register_link state="AArch32" id="AArch32-dbgdtrrxint.xml">DBGDTRRXint</register_link> and <instruction>MCR</instruction> accesses to <register_link state="AArch32" id="AArch32-dbgdtrtxint.xml">DBGDTRTXint</register_link>.</content>
</listitem></list>
<para>If 16 or fewer breakpoints and 16 or fewer watchpoints are implemented, and <register_link state="AArch64" id="AArch64-mdselr_el1.xml">MDSELR_EL1</register_link> is implemented as RAZ/WI, then it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether AArch64 accesses to <register_link state="AArch64" id="AArch64-mdselr_el1.xml">MDSELR_EL1</register_link> are trapped to EL3 when MDCR_EL3.TDA is 1.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Accesses of the specified debug System registers are not trapped by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Accesses of the specified debug System registers at EL2, EL1, and EL0 are trapped to EL3, unless the instruction generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-8_8" 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>8</field_msb>
    <field_lsb>8</field_lsb>
    <rel_range>8</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-7_7-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>EnPM2</field_name>
    <field_msb>7</field_msb>
    <field_lsb>7</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Enable access to PMU registers. When disabled, accesses to PMU registers generate a trap to EL3.</para>
    </field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are:</para>
<list type="unordered">
<listitem><content>If <xref linkend="#FEAT_EBEP">FEAT_EBEP</xref> is implemented or <xref linkend="#FEAT_PMUv3_SS">FEAT_PMUv3_SS</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmecr_el1.xml">PMECR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3_ICNTR">FEAT_PMUv3_ICNTR</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmicfiltr_el0.xml">PMICFILTR_EL0</register_link> and <register_link state="AArch64" id="AArch64-pmicntr_el0.xml">PMICNTR_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3p9">FEAT_PMUv3p9</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmuacr_el1.xml">PMUACR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_SPMU">FEAT_SPMU</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-spmaccessr_el1.xml">SPMACCESSR_EL1</register_link>, <register_link state="AArch64" id="AArch64-spmaccessr_el2.xml">SPMACCESSR_EL2</register_link>, SPMACCESSR_EL12, <register_link state="AArch64" id="AArch64-spmcfgr_el1.xml">SPMCFGR_EL1</register_link>, <register_link state="AArch64" id="AArch64-spmcgcrn_el1.xml">SPMCGCR&lt;n&gt;_EL1</register_link>, <register_link state="AArch64" id="AArch64-spmcntenclr_el0.xml">SPMCNTENCLR_EL0</register_link>, <register_link state="AArch64" id="AArch64-spmcntenset_el0.xml">SPMCNTENSET_EL0</register_link>, <register_link state="AArch64" id="AArch64-spmcr_el0.xml">SPMCR_EL0</register_link>, <register_link state="AArch64" id="AArch64-spmdevaff_el1.xml">SPMDEVAFF_EL1</register_link>, <register_link state="AArch64" id="AArch64-spmdevarch_el1.xml">SPMDEVARCH_EL1</register_link>, <register_link state="AArch64" id="AArch64-spmevcntrn_el0.xml">SPMEVCNTR&lt;n&gt;_EL0</register_link>, <register_link state="AArch64" id="AArch64-spmevfilt2rn_el0.xml">SPMEVFILT2R&lt;n&gt;_EL0</register_link>, <register_link state="AArch64" id="AArch64-spmevfiltrn_el0.xml">SPMEVFILTR&lt;n&gt;_EL0</register_link>, <register_link state="AArch64" id="AArch64-spmevtypern_el0.xml">SPMEVTYPER&lt;n&gt;_EL0</register_link>, <register_link state="AArch64" id="AArch64-spmiidr_el1.xml">SPMIIDR_EL1</register_link>, <register_link state="AArch64" id="AArch64-spmintenclr_el1.xml">SPMINTENCLR_EL1</register_link>, <register_link state="AArch64" id="AArch64-spmintenset_el1.xml">SPMINTENSET_EL1</register_link>, <register_link state="AArch64" id="AArch64-spmovsclr_el0.xml">SPMOVSCLR_EL0</register_link>, <register_link state="AArch64" id="AArch64-spmovsset_el0.xml">SPMOVSSET_EL0</register_link>, <register_link state="AArch64" id="AArch64-spmscr_el1.xml">SPMSCR_EL1</register_link>, and <register_link state="AArch64" id="AArch64-spmselr_el0.xml">SPMSELR_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_SPMU2">FEAT_SPMU2</xref> is implemented, <instruction>MSR</instruction> writes to <register_link state="AArch64" id="AArch64-spmzr_el0.xml">SPMZR_EL0</register_link>.</content>
</listitem></list>
<para>Trapped instructions are reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description><para>Accesses of the specified PMU registers at EL2, EL1, and EL0 are trapped to EL3, unless the instruction generates a higher priority exception.</para>
<para>If <xref linkend="#FEAT_PMUv3_ICNTR">FEAT_PMUv3_ICNTR</xref> is implemented, then:</para>
<list type="unordered">
<listitem><content>
<para><register_link state="AArch64" id="AArch64-pmcntenclr_el0.xml">PMCNTENCLR_EL0</register_link>.F0, <register_link state="AArch64" id="AArch64-pmcntenset_el0.xml">PMCNTENSET_EL0</register_link>.F0, <register_link state="AArch64" id="AArch64-pmovsclr_el0.xml">PMOVSCLR_EL0</register_link>.F0, <register_link state="AArch64" id="AArch64-pmovsset_el0.xml">PMOVSSET_EL0</register_link>.F0, and <register_link state="AArch64" id="AArch64-pmzr_el0.xml">PMZR_EL0</register_link>.F0 read-as-zero and ignore writes at EL2, EL1, and EL0.</para>
</content>
</listitem><listitem><content>
<para><register_link state="AArch64" id="AArch64-pmintenclr_el1.xml">PMINTENCLR_EL1</register_link>.F0 and <register_link state="AArch64" id="AArch64-pmintenset_el1.xml">PMINTENSET_EL1</register_link>.F0 read-as-zero and ignore writes at EL2 and EL1.</para>
</content>
</listitem></list></field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Accesses of the specified PMU registers are not trapped by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3p9 is implemented, or FEAT_SPMU is implemented, or FEAT_EBEP is implemented, or FEAT_PMUv3_SS is implemented, or FEAT_SPMU2 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-7_7-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>7</field_msb>
    <field_lsb>7</field_lsb>
    <rel_range>7</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-6_6-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>TPM</field_name>
    <field_msb>6</field_msb>
    <field_lsb>6</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Trap accesses of PMU registers. Enables a trap to EL3 on accesses of PMU registers.</para>
    </field_description>
    <field_description order="after"><para>In AArch64 state, the instructions affected by this control are:</para>
<list type="unordered">
<listitem><content><instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmccfiltr_el0.xml">PMCCFILTR_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmccntr_el0.xml">PMCCNTR_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmcntenclr_el0.xml">PMCNTENCLR_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmcntenset_el0.xml">PMCNTENSET_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmcr_el0.xml">PMCR_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmevcntrn_el0.xml">PMEVCNTR&lt;n&gt;_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmevtypern_el0.xml">PMEVTYPER&lt;n&gt;_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmintenclr_el1.xml">PMINTENCLR_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmintenset_el1.xml">PMINTENSET_EL1</register_link>, <register_link state="AArch64" id="AArch64-pmovsclr_el0.xml">PMOVSCLR_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmovsset_el0.xml">PMOVSSET_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmselr_el0.xml">PMSELR_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmswinc_el0.xml">PMSWINC_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmuserenr_el0.xml">PMUSERENR_EL0</register_link>, <register_link state="AArch64" id="AArch64-pmxevcntr_el0.xml">PMXEVCNTR_EL0</register_link>, and <register_link state="AArch64" id="AArch64-pmxevtyper_el0.xml">PMXEVTYPER_EL0</register_link>.</content>
</listitem><listitem><content><instruction>MRS</instruction> accesses to <register_link state="AArch64" id="AArch64-pmceid0_el0.xml">PMCEID0_EL0</register_link> and <register_link state="AArch64" id="AArch64-pmceid1_el0.xml">PMCEID1_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3p4">FEAT_PMUv3p4</xref> is implemented, <instruction>MRS</instruction> accesses to <register_link state="AArch64" id="AArch64-pmmir_el1.xml">PMMIR_EL1</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3p9">FEAT_PMUv3p9</xref> is implemented, <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmzr_el0.xml">PMZR_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3_ICNTR">FEAT_PMUv3_ICNTR</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmicfiltr_el0.xml">PMICFILTR_EL0</register_link> and <register_link state="AArch64" id="AArch64-pmicntr_el0.xml">PMICNTR_EL0</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_EBEP">FEAT_EBEP</xref> is implemented or <xref linkend="#FEAT_PMUv3_SS">FEAT_PMUv3_SS</xref> is implemented, <instruction>MRS</instruction> and <instruction>MSR</instruction> accesses to <register_link state="AArch64" id="AArch64-pmecr_el1.xml">PMECR_EL1</register_link>.</content>
</listitem></list>
<para>In AArch32 state, the instructions affected by this control are:</para>
<list type="unordered">
<listitem><content><instruction>MRC</instruction> and <instruction>MCR</instruction> accesses to <register_link state="AArch32" id="AArch32-pmccfiltr.xml">PMCCFILTR</register_link>, <register_link state="AArch32" id="AArch32-pmccntr.xml">PMCCNTR</register_link>, <register_link state="AArch32" id="AArch32-pmceid0.xml">PMCEID0</register_link>, <register_link state="AArch32" id="AArch32-pmceid1.xml">PMCEID1</register_link>, <register_link state="AArch32" id="AArch32-pmcntenclr.xml">PMCNTENCLR</register_link>, <register_link state="AArch32" id="AArch32-pmcntenset.xml">PMCNTENSET</register_link>, <register_link state="AArch32" id="AArch32-pmcr.xml">PMCR</register_link>, <register_link state="AArch32" id="AArch32-pmevcntrn.xml">PMEVCNTR&lt;n&gt;</register_link>, <register_link state="AArch32" id="AArch32-pmevtypern.xml">PMEVTYPER&lt;n&gt;</register_link>, <register_link state="AArch32" id="AArch32-pmintenclr.xml">PMINTENCLR</register_link>, <register_link state="AArch32" id="AArch32-pmintenset.xml">PMINTENSET</register_link>, <register_link state="AArch32" id="AArch32-pmovsr.xml">PMOVSR</register_link>, <register_link state="AArch32" id="AArch32-pmovsset.xml">PMOVSSET</register_link>, <register_link state="AArch32" id="AArch32-pmselr.xml">PMSELR</register_link>, <register_link state="AArch32" id="AArch32-pmswinc.xml">PMSWINC</register_link>, <register_link state="AArch32" id="AArch32-pmuserenr.xml">PMUSERENR</register_link>, <register_link state="AArch32" id="AArch32-pmxevcntr.xml">PMXEVCNTR</register_link>, and <register_link state="AArch32" id="AArch32-pmxevtyper.xml">PMXEVTYPER</register_link>.</content>
</listitem><listitem><content><instruction>MRRC</instruction> and <instruction>MCRR</instruction> accesses to <register_link state="AArch32" id="AArch32-pmccntr.xml">PMCCNTR</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3p1">FEAT_PMUv3p1</xref> is implemented, <instruction>MRC</instruction> accesses to <register_link state="AArch32" id="AArch32-pmceid2.xml">PMCEID2</register_link> and <register_link state="AArch32" id="AArch32-pmceid3.xml">PMCEID3</register_link>.</content>
</listitem><listitem><content>If <xref linkend="#FEAT_PMUv3p4">FEAT_PMUv3p4</xref> is implemented, <instruction>MRC</instruction> accesses to <register_link state="AArch32" id="AArch32-pmmir.xml">PMMIR</register_link>.</content>
</listitem></list>
<para>Trapped AArch64 instructions are reported using EC syndrome value <hexnumber>0x18</hexnumber>.</para>
<para>Trapped AArch32 instructions are reported using EC syndrome value <hexnumber>0x03</hexnumber> for <instruction>MRC</instruction> and <instruction>MCR</instruction> accesses, and <hexnumber>0x04</hexnumber> for <instruction>MRRC</instruction> and <instruction>MCRR</instruction> accesses.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Accesses of the specified PMU registers are not trapped by this mechanism.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Accesses of the specified PMU registers at EL2, EL1, and EL0 are trapped to EL3, unless the instruction generates a higher priority exception.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_PMUv3 is implemented</fields_condition>
  </field>
  <field id="fieldset_0-6_6-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>6</field_msb>
    <field_lsb>6</field_lsb>
    <rel_range>6</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-5_5" 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>5</field_msb>
    <field_lsb>5</field_lsb>
    <rel_range>5</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-4_4-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>EDADE</field_name>
    <field_msb>4</field_msb>
    <field_lsb>4</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>External Debug Access Disable Extended. Together with MDCR_EL3.EDAD, controls access to breakpoint registers, watchpoint registers, and <register_link state="ext" id="ext-oslar_el1.xml">OSLAR_EL1</register_link> by an external debugger.</para>
    </field_description>
    <field_description order="after">
      <para>For a description of the values derived by evaluating MDCR_EL3.EDAD and MDCR_EL3.EDADE together, see MDCR_EL3.EDAD.</para>
    </field_description>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_RME is implemented</fields_condition>
  </field>
  <field id="fieldset_0-4_4-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>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>
    <fields_condition>Otherwise</fields_condition>
  </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>ETADE</field_name>
    <field_msb>3</field_msb>
    <field_lsb>3</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>External Trace Access Disable Extended. Together with MDCR_EL3.ETAD, controls access to trace unit registers by an external debugger.</para>
    </field_description>
    <field_description order="after">
      <para>For a description of the values derived by evaluating MDCR_EL3.ETAD and MDCR_EL3.ETADE together, see MDCR_EL3.ETAD.</para>
    </field_description>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_RME is implemented, FEAT_TRC_EXT is implemented, and FEAT_TRBE is implemented</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_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" reserved_type="RES0">
    <field_name>EPMADE</field_name>
    <field_msb>2</field_msb>
    <field_lsb>2</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>External Performance Monitors Access Disable Extended. Together with MDCR_EL3.EPMAD, controls access to Performance Monitor registers by an external debugger.</para>
    </field_description>
    <field_description order="after">
      <para>For a description of the values derived by evaluating MDCR_EL3.EPMAD and MDCR_EL3.EPMADE together, see MDCR_EL3.EPMAD.</para>
    </field_description>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_RME is implemented and FEAT_PMUv3_EXT is implemented</fields_condition>
  </field>
  <field id="fieldset_0-2_2-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>2</field_msb>
    <field_lsb>2</field_lsb>
    <rel_range>2</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-1_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" rwtype="RES0">
    <field_msb>1</field_msb>
    <field_lsb>1</field_lsb>
    <rel_range>1</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-0_0-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>RLTE</field_name>
    <field_msb>0</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Realm Trace enable. Enables tracing in Realm state.</para>
    </field_description>
    <field_description order="after">
      <para>This field also controls the level of authentication that is required by an external debugger to enable external tracing.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Trace prohibited in Realm state, unless overridden by the <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> authentication interface.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Trace in Realm state is not affected by this field.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_number>'0'</field_reset_number>
      </field_reset>
    </field_resets>
    <fields_condition>When FEAT_RME is implemented and FEAT_TRF is implemented</fields_condition>
  </field>
  <field id="fieldset_0-0_0-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>0</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>0</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>
  <text_after_fields/>
</fields>




<reg_fieldset length="64">
  <fieldat id="fieldset_0-63_56" msb="63" lsb="56"/>
  <fieldat id="fieldset_0-55_55-1" msb="55" lsb="55"/>
  <fieldat id="fieldset_0-54_53-1" msb="54" lsb="53"/>
  <fieldat id="fieldset_0-52_51-1" msb="52" lsb="51"/>
  <fieldat id="fieldset_0-50_50-1" msb="50" lsb="50"/>
  <fieldat id="fieldset_0-49_48-1" msb="49" lsb="48"/>
  <fieldat id="fieldset_0-47_47-1" msb="47" lsb="47"/>
  <fieldat id="fieldset_0-46_45-1" msb="46" lsb="45"/>
  <fieldat id="fieldset_0-44_44-1" msb="44" lsb="44"/>
  <fieldat id="fieldset_0-43_43-1" msb="43" lsb="43"/>
  <fieldat id="fieldset_0-42_42-1" msb="42" lsb="42"/>
  <fieldat id="fieldset_0-41_40-1" msb="41" lsb="40"/>
  <fieldat id="fieldset_0-39_39-1" msb="39" lsb="39"/>
  <fieldat id="fieldset_0-38_38-1" msb="38" lsb="38"/>
  <fieldat id="fieldset_0-37_37-1" msb="37" lsb="37"/>
  <fieldat id="fieldset_0-36_36-1" msb="36" lsb="36"/>
  <fieldat id="fieldset_0-35_35-1" msb="35" lsb="35"/>
  <fieldat id="fieldset_0-34_34-1" msb="34" lsb="34"/>
  <fieldat id="fieldset_0-33_32-1" msb="33" lsb="32"/>
  <fieldat id="fieldset_0-31_30-1" msb="31" lsb="30"/>
  <fieldat id="fieldset_0-29_29" msb="29" lsb="29"/>
  <fieldat id="fieldset_0-28_28-1" msb="28" lsb="28"/>
  <fieldat id="fieldset_0-27_27-1" msb="27" lsb="27"/>
  <fieldat id="fieldset_0-26_26-1" msb="26" lsb="26"/>
  <fieldat id="fieldset_0-25_24-1" msb="25" lsb="24"/>
  <fieldat id="fieldset_0-23_23-1" msb="23" lsb="23"/>
  <fieldat id="fieldset_0-22_22-1" msb="22" lsb="22"/>
  <fieldat id="fieldset_0-21_21-1" msb="21" lsb="21"/>
  <fieldat id="fieldset_0-20_20-1" msb="20" lsb="20"/>
  <fieldat id="fieldset_0-19_19-1" msb="19" lsb="19"/>
  <fieldat id="fieldset_0-18_18-1" msb="18" lsb="18"/>
  <fieldat id="fieldset_0-17_17-1" msb="17" lsb="17"/>
  <fieldat id="fieldset_0-16_16-1" msb="16" lsb="16"/>
  <fieldat id="fieldset_0-15_14-1" msb="15" lsb="14"/>
  <fieldat id="fieldset_0-13_12-1" msb="13" lsb="12"/>
  <fieldat id="fieldset_0-11_11-1" msb="11" lsb="11"/>
  <fieldat id="fieldset_0-10_10-1" msb="10" lsb="10"/>
  <fieldat id="fieldset_0-9_9" msb="9" lsb="9"/>
  <fieldat id="fieldset_0-8_8" msb="8" lsb="8"/>
  <fieldat id="fieldset_0-7_7-1" msb="7" lsb="7"/>
  <fieldat id="fieldset_0-6_6-1" msb="6" lsb="6"/>
  <fieldat id="fieldset_0-5_5" msb="5" lsb="5"/>
  <fieldat id="fieldset_0-4_4-1" msb="4" lsb="4"/>
  <fieldat id="fieldset_0-3_3-1" msb="3" lsb="3"/>
  <fieldat id="fieldset_0-2_2-1" msb="2" lsb="2"/>
  <fieldat id="fieldset_0-1_1" msb="1" lsb="1"/>
  <fieldat id="fieldset_0-0_0-1" msb="0" lsb="0"/>
</reg_fieldset>


      </reg_fieldsets>

      <access_mechanisms>
          






    
        
        <access_mechanism accessor="MRS MDCR_EL3" type="SystemAccessor">
            <encoding>
            <access_instruction>MRS &lt;Xt&gt;, MDCR_EL3</access_instruction>
                
                <enc n="op0" v="0b11"/>
                
                <enc n="op1" v="0b110"/>
                
                <enc n="CRn" v="0b0001"/>
                
                <enc n="CRm" v="0b0011"/>
                
                <enc n="op2" v="0b001"/>
            </encoding>
            <access_permission>
                <ps name="MRS" sections="1" secttype="access_permission">
                <pstext>
if !(HaveEL(EL3) &amp;&amp; IsFeatureImplemented(FEAT_AA64)) then
    Undefined();
elsif PSTATE.EL == EL0 then
    Undefined();
elsif PSTATE.EL == EL1 then
    Undefined();
elsif PSTATE.EL == EL2 then
    Undefined();
elsif PSTATE.EL == EL3 then
    X{64}(t) = MDCR_EL3();
end;
                </pstext>
                </ps>
            </access_permission>
        </access_mechanism>
    
        
        <access_mechanism accessor="MSRregister MDCR_EL3" type="SystemAccessor">
            <encoding>
            <access_instruction>MSR MDCR_EL3, &lt;Xt&gt;</access_instruction>
                
                <enc n="op0" v="0b11"/>
                
                <enc n="op1" v="0b110"/>
                
                <enc n="CRn" v="0b0001"/>
                
                <enc n="CRm" v="0b0011"/>
                
                <enc n="op2" v="0b001"/>
            </encoding>
            <access_permission>
                <ps name="MSRregister" sections="1" secttype="access_permission">
                <pstext>
if !(HaveEL(EL3) &amp;&amp; IsFeatureImplemented(FEAT_AA64)) then
    Undefined();
elsif PSTATE.EL == EL0 then
    Undefined();
elsif PSTATE.EL == EL1 then
    Undefined();
elsif PSTATE.EL == EL2 then
    Undefined();
elsif PSTATE.EL == EL3 then
    if IsFeatureImplemented(FEAT_FGWTE3) &amp;&amp; FGWTE3_EL3().MDCR_EL3 == '1' then
        AArch64_SystemAccessTrap(EL3, 0x18);
    else
        MDCR_EL3() = X{64}(t);
    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>