<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE register_page SYSTEM "registers.dtd">
<!-- Copyright (c) 2010-2026 Arm Limited or its affiliates. All rights reserved. -->
<!-- This document is Non-Confidential. This document may only be used and distributed in accordance with the terms of the agreement entered into by Arm and the party that Arm delivered this document to. -->
<!--The data contained in this document is preliminary and subject to change or correction following further review. -->
<?xml-stylesheet href="one_register.xsl" type="text/xsl" ?>







<register_page>
  <registers>
  
    <register is_register="True" is_internal="False" is_stub_entry="False">
      <reg_short_name>PMLAR</reg_short_name>
        
        <reg_long_name>Performance Monitors Lock Access Register</reg_long_name>


        <reg_parent_link id="pmu.xml">PMU</reg_parent_link>

      
            <reg_condition otherwise="RES0">when FEAT_PMUv3_EXT is implemented and FEAT_PMUv3 is implemented</reg_condition>
      



    
    <reg_address
        external_access="False"
        mem_map_access="False"
        block_access="True"
        memory_access="True"
        table_id="PMUacccessor0"
    >
  
  <reg_frame>PMU</reg_frame>
  
    
    <reg_offset><hexnumber>0xFB0</hexnumber></reg_offset>
    <reg_access>
    
        
      <reg_access_state>
          <reg_access_level>When FEAT_DoPD is implemented and !IsCorePowered()</reg_access_level>
          <reg_access_type>ERROR</reg_access_type>
      </reg_access_state>
        
      <reg_access_state>
          <reg_access_type>WO</reg_access_type>
      </reg_access_state>
    </reg_access>
</reg_address>


          <reg_reset_value></reg_reset_value>

      <reg_mappings>
        




      </reg_mappings>

        <reg_purpose>
          
    
      <purpose_text>
        <para>Allows or disallows access to the Performance Monitors registers through a memory-mapped interface.</para>

      </purpose_text>
      <purpose_text>
        <para>The optional Software Lock provides a lock to prevent memory-mapped writes to the Performance Monitors registers. Use of this lock mechanism reduces the risk of accidental damage to the contents of the Performance Monitors registers. It does not, and cannot, prevent all accidental or malicious damage.</para>
      </purpose_text>

        </reg_purpose>

      <reg_groups>
          <reg_group>PMU</reg_group>
      </reg_groups>
      <reg_configuration>
        
    
      <configuration_text>
        <para>If <xref linkend="#FEAT_DoPD">FEAT_DoPD</xref> is implemented, Software Lock is not implemented by the architecturally-defined debug components of the PE in the Core power domain.</para>

      </configuration_text>
      <configuration_text>
        <para>If <xref linkend="#FEAT_DoPD">FEAT_DoPD</xref> is not implemented, this register is in the Debug power domain.</para>

      </configuration_text>
      <configuration_text>
        <para>Software uses PMLAR to set or clear the lock, and <register_link id="pmu.pmlsr.xml" state="">PMLSR</register_link> to check the current status of the lock.</para>
      </configuration_text>

      </reg_configuration>
      
      
        
      <reg_attributes>
          
    
      <attributes_text>
        <para>PMLAR is a 32-bit register.</para>
      </attributes_text>

      </reg_attributes>
      <reg_fieldsets>
        






<fields id="fieldset_0" length="32">
  <fields_condition>When PMU Software Lock is implemented</fields_condition>
  <text_before_fields/>
  <field id="fieldset_0-31_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
    <field_name>KEY</field_name>
    <field_msb>31</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>31:0</rel_range>
    <field_description order="before"><para>Lock Access control. Writing the key value <hexnumber>0xC5ACCE55</hexnumber> to this field unlocks the lock, enabling write accesses to this component's registers through a memory-mapped interface.</para>
<para>Writing any other value to this register locks the lock, disabling write accesses to this component's registers through a memory mapped interface.</para></field_description>
  </field>
  <text_after_fields/>
</fields>



<fields id="fieldset_1" length="32">
  <fields_condition/>
  <fields_instance>Otherwise</fields_instance>
  <text_before_fields>
    <para>Otherwise</para>
  </text_before_fields>
  <field id="fieldset_1-31_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
    <field_msb>31</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>31:0</rel_range>
    <field_description order="before"/>
    <field_description order="before">
      <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
    </field_description>
  </field>
  <text_after_fields/>
</fields>





<reg_fieldset length="32">
  <fields_condition>When PMU Software Lock is implemented</fields_condition>
  <fieldat id="fieldset_0-31_0" msb="31" lsb="0"/>
</reg_fieldset>

<reg_fieldset length="32">
  <fields_condition/>
  <fieldat id="fieldset_1-31_0" msb="31" lsb="0"/>
</reg_fieldset>


      </reg_fieldsets>

      <access_mechanisms>
          






    
        
        <access_mechanism type="BlockAccessAbstract" table_id="PMUacccessor0">
        
        
        
        
        <access_header>Accessible at offset <hexnumber>0xFB0</hexnumber> from PMU</access_header>
    </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>