Arm Cortex A76 TRM 100798 0401 01 en
Arm Cortex A76 TRM 100798 0401 01 en
Revision: r4p1
Non-Confidential Issue 01
Copyright © 2016–2020, 2023 Arm Limited (or its 100798_0401_01_en
affiliates).
All rights reserved.
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Release Information
Document history
Proprietary Notice
This document is protected by copyright and other related rights and the practice or
implementation of the information contained in this document may be protected by one or more
patents or pending patent applications. No part of this document may be reproduced in any form
by any means without the express prior written permission of Arm. No license, express or implied,
by estoppel or otherwise to any intellectual property rights is granted by this document unless
specifically stated.
Your access to the information in this document is conditional upon your acceptance that you
will not use or permit others to use the information for the purposes of determining whether
implementations infringe any third party patents.
DOCUMENT. For the avoidance of doubt, Arm makes no representation with respect to, and has
undertaken no analysis to identify or understand the scope and content of, patents, copyrights,
trade secrets, or other rights.
TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL ARM BE LIABLE FOR
ANY DAMAGES, INCLUDING WITHOUT LIMITATION ANY DIRECT, INDIRECT, SPECIAL,
INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND
REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF ANY USE OF THIS
DOCUMENT, EVEN IF ARM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
This document consists solely of commercial items. You shall be responsible for ensuring that
any use, duplication or disclosure of this document complies fully with any relevant export laws
and regulations to assure that this document or any portion thereof is not exported, directly
or indirectly, in violation of such export laws. Use of the word “partner” in reference to Arm’s
customers is not intended to create or refer to any partnership relationship with any other
company. Arm may make changes to this document at any time and without notice.
This document may be translated into other languages for convenience, and you agree that if there
is any conflict between the English version of this document and any translation, the terms of the
English version of the Agreement shall prevail.
The Arm corporate logo and words marked with ® or ™ are registered trademarks or trademarks
of Arm Limited (or its affiliates) in the US and/or elsewhere. All rights reserved. Other brands and
names mentioned in this document may be the trademarks of their respective owners. Please
follow Arm’s trademark usage guidelines at https://www.arm.com/company/policies/trademarks.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
(LES-PRE-20349|version 21.0)
Confidentiality Status
This document is Non-Confidential. The right to use, copy and disclose this document may be
subject to license restrictions in accordance with the terms of the agreement entered into by Arm
and the party that Arm delivered this document to.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 3 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Product Status
Feedback
Arm welcomes feedback on this product and its documentation. To provide feedback on the
product, create a ticket on https://support.developer.arm.com.
Arm values inclusive communities. Arm recognizes that we and our industry have used language
that can be offensive. Arm strives to lead the industry and create change.
This document includes language that can be offensive. We will replace this language in a future
issue of this document.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 4 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
Contents
1. Introduction....................................................................................................................................................19
1.1 Product revision status................................................................................................................................19
1.2 Intended audience........................................................................................................................................19
1.3 Conventions................................................................................................................................................... 19
1.4 Useful resources........................................................................................................................................... 21
3. Technical overview....................................................................................................................................... 29
3.1 Components...................................................................................................................................................29
3.1.1 Instruction fetch........................................................................................................................................ 31
3.1.2 Instruction decode.................................................................................................................................... 31
3.1.3 Register rename.........................................................................................................................................31
3.1.4 Instruction issue........................................................................................................................................ 31
3.1.5 Execution pipeline.....................................................................................................................................31
3.1.6 L1 data memory system..........................................................................................................................32
3.1.7 L2 memory system................................................................................................................................... 32
3.2 Interfaces........................................................................................................................................................ 32
3.3 About system control.................................................................................................................................. 32
3.4 About the Generic Timer........................................................................................................................... 33
5. Power management..................................................................................................................................... 35
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 5 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 6 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
7. L1 memory system.......................................................................................................................................55
7.1 About the L1 memory system.................................................................................................................. 55
7.1.1 L1 instruction side memory system..................................................................................................... 55
7.1.2 L1 data side memory system.................................................................................................................55
7.2 Cache behavior............................................................................................................................................. 56
7.2.1 Instruction cache disabled behavior.....................................................................................................56
7.2.2 Instruction cache speculative memory accesses............................................................................... 56
7.2.3 Data cache disabled behavior................................................................................................................57
7.2.4 Data cache maintenance considerations............................................................................................. 57
7.2.5 Data cache coherency............................................................................................................................. 57
7.2.6 Write streaming mode............................................................................................................................. 57
7.3 L1 instruction memory system..................................................................................................................58
7.3.1 Program flow prediction..........................................................................................................................58
7.4 L1 data memory system............................................................................................................................. 60
7.4.1 Memory system implementation...........................................................................................................60
7.4.2 Internal exclusive monitor.......................................................................................................................62
7.5 Data prefetching........................................................................................................................................... 62
7.6 Direct access to internal memory............................................................................................................ 63
7.6.1 Encoding for L1 instruction cache tag, L1 instruction cache data, L1 BTB, L1 GHB, L1 TLB
instruction, and BPIQ..........................................................................................................................................64
7.6.2 Encoding for L1 data cache tag, L1 data cache data, and L1 TLB data....................................... 67
7.6.3 Encoding for the L2 unified cache....................................................................................................... 71
7.6.4 Encoding for the L2 TLB........................................................................................................................ 74
8. L2 memory system.......................................................................................................................................77
8.1 About the L2 memory system.................................................................................................................. 77
8.2 About the L2 cache.....................................................................................................................................77
8.3 Support for memory types.........................................................................................................................77
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 7 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 8 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 9 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 10 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 13 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 14 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 15 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 16 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 17 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Contents
B. Revisions...................................................................................................................................................... 487
B.1 Revisions.......................................................................................................................................................487
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 18 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Introduction
1. Introduction
The rxpy identifier indicates the revision status of the product described in this manual, for
example, r1p2, where:
This manual is for system designers, system integrators, and programmers who are designing or
programming a System on Chip (SoC) that uses an Arm core.
1.3 Conventions
The following subsections describe conventions used in Arm documents.
Glossary
The Arm® Glossary is a list of terms used in Arm documentation, together with definitions for
those terms. The Arm Glossary does not contain terms that are industry standard unless the Arm
meaning differs from the generally accepted meaning.
Convention Use
italic Citations.
bold Terms in descriptive lists, where appropriate.
monospace Text that you can enter at the keyboard, such as commands, file and program names, and source code.
monospace underline A permitted abbreviation for a command or option. You can enter the underlined text instead of the full
command or option name.
<and> Encloses replaceable terms for assembler syntax where they appear in code or code fragments.
For example:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 19 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Introduction
Convention Use
SMALL CAPITALS Terms that have specific technical meanings as defined in the Arm® Glossary. For example,
IMPLEMENTATION DEFINED, IMPLEMENTATION SPECIFIC, UNKNOWN, and UNPREDICTABLE.
Requirements for the system. Not following these requirements might result in
system failure or damage.
Requirements for the system. Not following these requirements will result in system
failure or damage.
A useful tip that might make it easier, better or faster to perform a task.
A reminder of something important that relates to the information you are reading.
Timing diagrams
The following figure explains the components used in timing diagrams. Variations, when they occur,
have clear labels. You must not assume any timing information that is not explicit in the diagrams.
Shaded bus and signal areas are undefined, so the bus or signal can assume any value within the
shaded area at that time. The actual level is unimportant and does not affect normal operation.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 20 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Introduction
Signals
The signal conventions are:
Signal level
The level of an asserted signal depends on whether the signal is active-HIGH or active-LOW.
Asserted means:
• HIGH for active-HIGH signals.
• LOW for active-LOW signals.
Lowercase n
At the start or end of a signal name, n denotes an active-LOW signal.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 21 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Introduction
www.ieee.org
Arm tests its PDFs only in Adobe Acrobat and Acrobat Reader. Arm cannot
guarantee the quality of its documents when used with any other PDF reader.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 22 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Introduction to the Cortex®‑A76 core
The Cortex®‑A76 core has a L1 memory system and a private, integrated L2 cache. It also includes
a superscalar, variable-length, out-of-order pipeline.
The Cortex®‑A76 core is implemented inside the DynamIQ™ Shared Unit (DSU) cluster. For more
information, see the Arm® DynamIQ™ Shared Unit Technical Reference Manual.
The following figure shows an example of a configuration with four Cortex®‑A76 cores.
DynamIQ™ Cluster
Interrupt interface
Core 1
Core 3
CoreSight infrastructure
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 23 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Introduction to the Cortex®‑A76 core
2.2 Features
The Cortex®‑A76 core includes the following features:
Core features
• 40-bit Physical Address (PA).
• A Memory Management Unit (MMU).
• Optional Cryptographic Extension.
• Armv8.4 Dot Product support instruction.
• Superscalar, variable-length, out-of-order pipeline.
• Support for Arm TrustZone® technology.
• Support for Page-Based Hardware Attributes (PBHA).
• Reliability, Availability, and Serviceability (RAS) Extension.
• Full implementation of the Armv8.2-A A64, A32, and T32 instruction sets.
• Generic Interrupt Controller (GICv4) CPU interface to connect to an external distributor.
• Generic Timers interface supporting 64-bit count input from an external system counter.
• An integrated execution unit that implements the Advanced SIMD and floating-point
architecture support.
• AArch32 Execution state at Exception level EL0 only. AArch64 Execution state at all Exception
levels (EL0 to EL3).
Cache features
• Separate L1 data and instruction caches.
• Private, unified data and instruction L2 cache.
• Optional L1 and L2 memory protection in the form of Error Correcting Code (ECC) or parity on
RAM instances which affect functionality.
Debug features
• Armv8.2 debug logic.
• Activity Monitor Unit (AMU).
• Performance Monitoring Unit (PMU).
• Optional CoreSight Embedded Logic Analyzer (ELA).
• Embedded Trace Macrocell (ETM) that supports instruction trace only.
See the Arm® Architecture Reference Manual for A-profile architecture for more information.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 24 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Introduction to the Cortex®‑A76 core
The AMU is not architecturally specified in the Arm® Architecture Reference Manual
for A-profile architecture. See the AMU Chapter in this manual for more information
on the Cortex®‑A76 core.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 25 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Introduction to the Cortex®‑A76 core
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 26 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Introduction to the Cortex®‑A76 core
A different party can perform each of the following tasks. Each task can include implementation
and integration choices that affect the behavior and features of the core.
Implementation
The implementer configures and synthesizes the RTL to produce a hard macrocell. This task
includes integrating RAMs into the design.
Integration
The integrator connects the macrocell into a SoC. This task includes connecting it to a
memory system and peripherals.
Programming
In the final task, the system programmer develops the software to configure and initialize the
core and tests the application software.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 27 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Introduction to the Cortex®‑A76 core
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 28 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Technical overview
3. Technical overview
This chapter describes the structure of the Cortex®‑A76 core.
3.1 Components
In a standalone configuration, there can be up to four Cortex®‑A76 cores and a DynamIQ Shared
Unit (DSU) that connects the cores to an external memory system.
For more information about the DSU, see the Arm® DynamIQ™ Shared Unit Technical Reference
Manual.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 29 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Technical overview
DynamIQ™ Cluster
Core 3*
Core 2*
Core 1*
Core 0
Register
Rename
Execution
Instruction Pipeline
Issue/Commit
Instruction
DecodeClick and type. Right-click to select fill color.
MMU Load/Store
Instruction
Fetch
L2 Memory System
There are multiple asynchronous bridges between the Cortex®‑A76 core and the
DSU. Only the coherent interface between the Cortex®‑A76 core and the DSU
can be configured to run synchronously, however it does not affect the other
interfaces such as debug, trace, and Generic Interrupt Controller (GIC) which are
always asynchronous. For more information on how to set the coherent interface
to run either synchronously or asynchronously, see Configuration Guidelines in the
Arm® DynamIQ™ Shared Unit Configuration and Sign-off Guide.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 30 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Technical overview
Related information
Memory Management Unit on page 46
L1 memory system on page 55
L2 memory system on page 77
Generic Interrupt Controller CPU interface on page 87
Debug on page 311
Performance Monitoring Unit on page 316
Embedded Trace Macrocell on page 328
• Integer execute unit that performs arithmetic and logical data processing operations.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 31 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Technical overview
• Vector execute unit that performs Advanced SIMD and floating-point operations. Optionally, it
can execute the cryptographic instructions.
3.2 Interfaces
The Cortex®‑A76 core has several interfaces to connect it to a SoC. The DynamIQ Shared Unit
(DSU) manages all interfaces.
For information on the interfaces, see the Arm® DynamIQ™ Shared Unit Technical Reference Manual.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 32 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Technical overview
The System registers are accessible in the AArch64 EL0-EL3 and AArch32 EL0 Execution state.
Some of the System registers are accessible through the external debug interface.
The Cortex®‑A76 core provides a set of timer registers. The timers are:
• An EL1 Non-secure physical timer
• An EL2 Hypervisor physical timer
• An EL3 Secure physical timer
• A virtual timer
• A Hypervisor virtual timer
The Cortex®‑A76 core does not include the system counter. The system counter resides in the
SoC, and its value is distributed to the core over a 64-bit bus.
For more information on the Generic Timer, see the Arm® DynamIQ™ Shared Unit Technical
Reference Manual and the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 33 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Clocks, resets, and input synchronization
The Cortex®‑A76 core contains several interfaces that connect to other components in the system.
These interfaces can be in the same clock domain or in other clock domains.
For information about clocks, resets, and input synchronization, see the Arm® DynamIQ™ Shared
Unit Technical Reference Manual.
See the Arm® DynamIQ™ Shared Unit Technical Reference Manual for more information.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 34 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Power management
5. Power management
This chapter describes the power domains and the power modes in the Cortex®‑A76 core.
The following figure shows the VCPU and VSYS voltage domains in each Cortex®‑A76 core and in
the DSU. The example shows a configuration with four Cortex®‑A76 cores.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 35 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Power management
DSU
VCPU0 VCPU2
VCPU1 VCPU3
VSYS
Asynchronous bridge logic exists between the voltage domains. The Cortex®‑A76 core processing
logic and core clock domain of the asynchronous bridge are in the VCPU voltage domain. The DSU
clock domain of the asynchronous bridge is in the VSYS voltage domain.
You can tie VCPU and VSYS to the same supply if the core is not required to
support Dynamic Voltage and Frequency Scaling (DVFS). If it is in its own power
domain with proper isolation, the core can still be powered down independently.
There are additional system power domains in the DSU. See the Arm® DynamIQ™
Shared Unit Technical Reference Manual for information.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 36 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Power management
The following figure shows an example of how the voltage and power domains are organized.
L1
L2
Asynchronous bridge
CPU domain
Asynchronous bridge
SYS domain
The following table describes the power domains that the Cortex®‑A76 core supports.
<n> is the core number in the range 0-3. The number represents core 0, core 1, core 2, and core 3. If a core is not present,
then the corresponding power domain is not present.
PDSYS The domain is the interface between Cortex®‑A76 and the DSU. It contains the cluster clock domain logic of the CPU
bridge. The CPU Bridge contains all asynchronous bridges for crossing clock domains, and is split with one half of each bridge
in the core clock domain and the other half in the relevant cluster domain. All core I/O signals go through the CPU bridge
and the SYS power domain.
Clamping cells between power domains are inferred through power intent files rather than
instantiated in the RTL.
The following figure shows the power domains in the DSU cluster, where everything in the same
color is part of the same power domain. The number of Cortex®‑A76 cores can vary, and the
number of domains increases based on the number of Cortex®‑A76 cores present. This example
only shows four Cortex®‑A76 cores and the power domains that are associated with them. Other
power domains are required for a DSU cluster and are not shown in this example.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 37 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Power management
Cluster
PDCPU[0] domain PDCPU[1] domain PDCPU[2] domain PDCPU[3] domain
L2 L2 L2 L2
PDSYS
Wait for Interrupt (WFI) and Wait for Event (WFE) are features of Arm®v8‑A architecture that put
the core in a low-power standby mode by architecturally disabling the clock at the top of the clock
tree. The core is fully powered and retains all the state in standby mode.
There is a small dynamic power overhead from the logic that is required to wake up the core from
WFI low-power state. Other than this, the power that is drawn is reduced to static leakage current
only.
When the core executes the WFI instruction, the core waits for all instructions in the core, including
explicit memory accesses, to retire before it enters a low-power state. The WFI instruction also
ensures that store instructions have updated the cache or have been issued to the L3 memory
system.
While the core is in WFI low-power state, the clocks in the core are temporarily enabled without
causing the core to exit WFI low-power state when any of the following events are detected:
• An L3 snoop request that must be serviced by the core data caches.
• A cache or TLB maintenance operation that must be serviced by the core L1 instruction cache,
data cache, TLB, or L2 cache.
• An APB access to the debug or trace registers residing in the core power domain.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 38 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Power management
Exit from WFI low-power state occurs when one of the following occurs:
• The core detects one of the WFI wake-up events.
• The core detects a reset.
For more information, see the Arm® Architecture Reference Manual for A-profile architecture.
When the core executes the WFE instruction, the core waits for all instructions in the core, including
explicit memory accesses, to retire before it enters a low-power state. The WFE instruction also
ensures that store instructions have updated the cache or have been issued to the L3 memory
system.
If the event register is set, execution of WFE does not cause entry into standby state, but clears
the event register.
While the core is in WFE low-power state, the clocks in the core are temporarily enabled without
causing the core to exit WFE low-power state when any of the following events are detected:
• An L3 snoop request that must be serviced by the core data caches.
• A cache or TLB maintenance operation that must be serviced by the core L1 instruction cache,
data cache, TLB, or L2 cache.
• An APB access to the debug or trace registers residing in the core power domain.
• A GIC CPU access through the AXI4 stream channel.
Exit from WFE low-power state occurs when one of the following occurs:
• The core detects one of the WFE wake-up events.
• The EVENTI input signal is asserted.
• The core detects a reset.
For more information, see the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 39 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Power management
There is one P-Channel per core, plus one P-Channel for the cluster. The Cortex®‑A76 core
provides the current requirements on the PACTIVE signals, so that the power controller can make
decisions and request any change with PREQ and PSTATE. The Cortex®‑A76 core then performs
any actions necessary to reach the requested power mode, such as gating clocks, flushing caches,
or disabling coherency, before accepting the request.
If the request is not valid, either because of an incorrect transition or because the status has
changed so that state is no longer appropriate, then the request is denied. The power mode of
each core can be independent of other cores in the cluster, however the cluster power mode is
linked to the mode of the cores.
Core
dynamic
retention
On
Debug
Emulated off recovery
Off
From any
power mode
The blue modes indicate the modes that the channel can be initialized into.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 40 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Power management
5.6.1 On mode
In this mode, the core is on and fully operational.
The core can be initialized into the On mode. If the core does not use P-Channel, you can tie the
core in the On mode by tying PREQ LOW.
When a transition to the On mode completes, all caches are accessible and coherent. Other than
the normal architectural steps to enable caches, no additional software configuration is required.
When the core domain P-Channel is initialized into the On mode, either as a shortcut for entering
that mode or as a tie-off for an unused P-Channel, it is an assumed transition from the Off mode.
This includes an invalidation of any cache RAM within the core domain.
5.6.2 Off mode
The Cortex®‑A76 core supports a full Shutdown mode where power can be removed completely
and no state is retained.
The shutdown can be for either the whole cluster or just for an individual core, which allows other
cores in the cluster to continue operating.
In this mode, all core processing logic and RAMs are off. The domain is inoperable and all core
state is lost. The L1 and L2 caches are disabled, flushed and the core is removed from coherency
automatically on transition to Off mode.
An attempted debug access when the core domain is off returns an error response on the internal
debug interface indicating the core is not available.
All Debug registers must retain their mode and be accessible from the external debug interface. All
other functional interfaces behave as if the core was in Off mode.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 41 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Power management
The Core dynamic retention mode can be enabled and disabled separately for WFI and WFE by
software running on the core. Separate timeout values can be programmed for entry into this mode
from WFI and WFE mode:
• Use the CPUPWRCTLR.WFI_RET_CTRL register bits to program timeout values for entry into
Core dynamic retention mode from WFI mode.
• Use the CPUPWRCTLR.WFE_RET_CTRL register bits to program timeout values for entry into
Core dynamic retention mode from WFE mode.
The clock to the core is automatically gated outside of the domain when the core is in Core
dynamic retention mode and is running synchronously to the cluster. However, if the core is
running asynchronously to the cluster, the system integrator must gate the clock externally
during Core dynamic retention mode. For more information, see the Arm® DynamIQ™ Shared Unit
Configuration and Sign-off Guide.
The outputs of the domain must be isolated to prevent buffers without power from propagating
UNKNOWN values to any operational parts of the system.
When the core is in Core dynamic retention mode there is support for snoop, GIC, and debug
access, so the core appears as if it were in WFI or WFE mode. When an incoming access occurs,
it stalls, and the On PACTIVE bit is set HIGH. The incoming access proceeds when the domain is
returned to the On mode using P-Channel.
When the incoming access completes, and if the core has not exited WFI or WFE mode, then the
On PACTIVE bit is set LOW after the programmed retention timeout. The power controller can
then request to reenter the Core dynamic retention mode.
It allows contents of the core L1 instruction, L1 data and L2 caches that were present before the
reset to be observable after the reset. The contents of the caches are retained and are not altered
on the transition back to the On mode.
By default, the core invalidates its caches when Cold reset (nCPUPORESET) is deasserted. If the P-
Channel is initialized to the Debug recovery mode, and the core is cycled through power-on reset
along with the system power-on reset, then the cache invalidation is disabled. Initializing the P-
Channel to the Debug recovery mode ensures that the cache contents are preserved when the
core is transitioned to the On mode.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 42 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Power management
Debug recovery mode also supports preserving the RAS state, in addition to the cache contents. In
this case, a transition to the Debug recovery mode is made from any of the current states. When in
Debug recovery mode, the core is cycled through a Warm reset with the system Warm reset. The
RAS and cache state are preserved when the core is transitioned to the On mode.
This mode is strictly for debug purposes. It must not be used for functional purposes, because the
correct operation of the L1 cache is not guaranteed when entering this mode.
This mode can occur at any time with no guarantee of the state of the core. A
P-Channel request of this type is accepted immediately, therefore its effects on
the core, cluster, or the wider system are UNPREDICTABLE, and a wider system
reset might be required. For example, if there were outstanding memory system
transactions at the time of the reset, then these transactions might complete after
the reset when the core is not expecting them and cause a system deadlock.
However, only some powered up and powered down domain combinations are valid and
supported.
The PDCPU power domain supports the power states that are described in the following table.
1
It is tied off to 0 and should be inferred when all other PACTIVE bits are LOW. For more information, see the
AMBA® Low Power Interface Specification.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 43 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Power management
States that are not shown in the following tables are unsupported and must not
occur.
The following table describes the power modes, and the corresponding power domain states for
individual cores. The power mode of each core is independent of all other cores in the cluster.
Deviating from the legal power modes can lead to UNPREDICTABLE results. You must comply with
the dynamic power management and powerup and powerdown sequences described in the
following sections.
Core powerdown
To take a core out of coherence ready for core powerdown, complete the following steps:
1. Save all architectural states.
2. Configure the GIC distributor to disable or reroute interrupts away from this core.
3. Set the CPUPWRCTLR.CORE_PWRDN_EN bit to 1 to indicate to the power controller that a
powerdown is requested.
4. Execute an ISB instruction.
5. Execute a WFI instruction.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 44 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Power management
All L1 and L2 cache disabling, L1 and L2 cache flushing, and communication with the L3 memory
system is performed in hardware after the WFI is executed, under the direction of the power
controller.
For information about cluster powerdown, see the Arm® DynamIQ™ Shared Unit Technical Reference
Manual.
Core powerup
To bring a core into coherence after reset, no software steps are required.
Related information
CPUPWRCTLR_EL1, Power Control Register, EL1 on page 157
The debug over powerdown logic is part of the DebugBlock, which is external to the cluster and
can be implemented in a separate power domain. If the DebugBlock is in the same power domain
as the core, then debug over powerdown is not supported.
For more information on the DebugBlock, see the Arm® DynamIQ™ Shared Unit Technical Reference
Manual.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 45 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory Management Unit
• Control the table walk hardware that accesses translation tables in main memory.
• Translate Virtual Addresses (VAs) to Physical Addresses (PAs).
• Provide fine-grained memory system control through a set of virtual-to-physical address
mappings and memory attributes that are held in translation tables.
Each stage of address translation uses a set of address translations and associated memory
properties that are held in memory mapped tables that are called translation tables. Translation
table entries can be cached into a Translation Lookaside Buffer (TLB).
The following table describes the components that are included in the MMU.
The TLB entries contain either one or both of a global indicator and an Address Space Identifier
(ASID) to permit context switches without requiring the TLB to be invalidated.
The TLB entries contain a Virtual Machine Identifier (VMID) to permit virtual machine switches by
the hypervisor without requiring the TLB to be invalidated.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 46 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory Management Unit
Using a larger granule size can reduce the maximum required number of levels of address lookup.
Address Space 8 bits or 16 bits depending on the value of TCR_ELx.AS
Identifier (ASID) size
Virtual Machine 8 bits or 16 bits depending on the value of VTCR_EL2.VS
Identifier (VMID) size
Physical Address (PA) Maximum 40 bits
size
Any configuration of TCR_ELx.IPS over 40 bits is considered as 40 bits. You can enable or disable each stage of
the address translation independently.
The Cortex®‑A76 core also supports the Virtualization Host Extension (VHE), including ASID space
for EL2. When VHE is implemented and enabled, EL2 has the same behavior as EL1.
See the Arm® Architecture Reference Manual for A-profile architecture for more information on
concatenated translation tables and for address translation formats.
A hit in the instruction L1 TLB provides a single CLK cycle access to the translation, and returns
the PA to the instruction cache for comparison. It also checks the access permissions to signal an
Instruction Abort.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 47 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory Management Unit
A hit in the data L1 TLB provides a single CLK cycle access to the translation, and returns the PA to
the data cache for comparison. It also checks the access permissions to signal a Data Abort.
6.2.3 L2 TLB
The L2 TLB structure is shared by instruction and data. It handles misses from the instruction and
data L1 TLBs.
Access to the L2 TLB usually takes three cycles. If a different page or block size mapping is used,
then this access can take longer.
The L2 TLB supports four translation table walks in parallel (four TLB misses), and can service two
TLB lookups while the translation table walks are in progress. If there are six successive misses, the
L2 TLB stalls.
Caches in the core are invalidated automatically at reset deassertion unless the core
power mode is initialized to Debug recovery mode. See the Arm® DynamIQ™ Shared
Unit Technical Reference Manual for more information.
TLB entries store the context information that is required to facilitate a match and avoid the need
for a TLB flush on a context or virtual machine switch.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 48 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory Management Unit
Each entry is either a global entry, or it is associated with a particular Address Space Identifier (ASID).
In addition, each TLB entry contains a field to store the Virtual Machine Identifier (VMID) in the
entry applicable to accesses from Non-secure EL0 and EL1 Exception levels.
A TLB match entry occurs when the following conditions are met:
• A VA, moderated by the page size such as the VA bits[48:N], where N is log2 of the block size
for that translation that is stored in the TLB entry, matches the requested address.
• Entry translation regime matches the current translation regime.
• The ASID matches the current ASID held in the CONTEXTIDR, TTBR0, or TTBR1 register, or
the entry is marked global.
• The VMID matches the current VMID held in the VTTBR_EL2 register.
• The ASID and VMID matches are IGNORED when ASID and VMID are not relevant.
ASID is relevant when the translation regime is:
◦ EL2 in Non-secure state with HCR_EL2.E2H and HCR_EL2.TGE set to 1
◦ EL1 or EL0 in Secure state
◦ EL1 or EL0 in Non-secure state
When the Cortex®‑A76 core generates a memory access, the following process occurs:
1. The MMU performs a lookup for the requested VA, current Address Space Identifier (ASID),
current Virtual Machine Identifier (VMID), and current translation regime in the relevant
instruction or data L1 TLB.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 49 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory Management Unit
2. If there is a miss in the relevant L1 TLB, the MMU performs a lookup for the requested VA,
current ASID, current VMID, and translation regime in the L2 TLB.
3. If there is a miss in the L2 TLB, the MMU performs a hardware translation table walk.
If an L2 TLB miss, the hardware does a translation table walk as long as the MMU is enabled, and
the translation using the base register has not been disabled.
If the translation table walk is disabled for a particular base register, the core returns a translation
fault. If the TLB finds a matching entry, it uses the information in the entry as follows.
The access permission bits determine whether the access is permitted. If the matching entry does
not pass the permission checks, the MMU signals a Permission fault. See the Arm® Architecture
Reference Manual for A-profile architecture for details of Permission faults.
Program the Translation Granule bit, TG0, in the appropriate translation control register:
• TCR_EL1
• TCR_EL2
• TCR_EL3
• VTCR_EL2
For TCR_EL1, you can program the Translation Granule bits TG0 and TG1 to configure the
translation granule respectively for TTBR0_EL1 and TTBR1_EL1, or TCR_EL2 when Virtualization
Host Extension (VHE) is enabled.
If the encoding of both the ORGN and IRGN bits is Write-Back, the data cache lookup is
performed and data is read from the data cache. External memory is accessed, if the ORGN and
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 50 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory Management Unit
IRGN bit contain different attributes, or if the encoding of the ORGN and IRGN bits is Write-
Through or Non-cacheable.
Hardware management of the Access flag is enabled by the following configuration fields:
• TCR_ELx.HA for stage 1 translations.
• VTCR_EL2.HA for stage 2 translations.
To support the hardware management of dirty state, the DBM field is added to the translation table
descriptors as part of Armv8.1 architecture.
The core supports hardware update only in outer Write-Back and inner Write-Back memory
regions.
If software requests a hardware update in a memory region that is not inner Write-Back or not
outer Write-Back, then the core returns an abort with the following encoding:
• ESR.ELx.DFSC = 0b110001 for Data Aborts in AArch64.
• ESR.ELx.IFSC = 0b110001 for Instruction Aborts in AArch64.
MMU responses
The MMU generates a response to the requester, when one of the following translations is
completed:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 51 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory Management Unit
• A L1 TLB hit.
• A L2 TLB hit.
• A translation table walk.
When an external abort to the external interface occurs on an access for a translation table walk
access, the MMU returns a synchronous external abort. For a load multiple or a store multiple
operation, the address that is captured in the fault address register is that of the address that
generated the synchronous external abort.
See the Arm® Architecture Reference Manual for A-profile architecture for more information.
The Cortex®‑A76 core treats such a block as not causing a translation fault.
Conflict aborts
The Cortex®‑A76 core does not generate Conflict aborts.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 52 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory Management Unit
• One of the four different device memory types that are defined for Armv8:
In the Cortex®‑A76 core, a page is cacheable only if the Inner and Outer memory attributes are
Write-Back. In all other cases, all pages are downgraded to Non-cacheable Normal memory.
When the Memory Management Unit (MMU) is disabled at stage 1 and stage 2, and SCTLR.I is set
to 1, instruction prefetches are cached in the instruction cache but not in the unified cache. In all
other cases, normal behavior on memory attribute applies.
See the Arm® Architecture Reference Manual for A-profile architecture for more information on
translation table formats.
It allows software to set up to two bits in the translation tables, which are then propagated
though the memory system with transactions, and can be used in the system to control system
components. The meaning of the bits is specific to the system design.
For information on how to set and enable the PBHA bits in the translation tables, see the Arm®
Architecture Reference Manual for A-profile architecture. When disabled, the PBHA value that is
propagated on the bus is 0.
For memory accesses caused by a translation table walk, the AHTCR, ATTBCR, and AVTCR
registers control the PBHA values.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 53 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory Management Unit
Enable of PBHA has a granularity of 1 bit, so this property is applied independently on each PBHA
bit.
Mismatched aliases
If the same physical address is accessed through more than one virtual address mapping, and the
PBHA bits are different in the mappings, then the results are UNPREDICTABLE. The PBHA value sent
on the bus could be for either mapping.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 54 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
7. L1 memory system
This chapter describes the L1 instruction cache and data cache that make up the L1 memory
system.
The L1 memory system consists of separate instruction and data caches. Both have a fixed size of
64KB.
• Virtually Indexed, Physically Tagged (VIPT) 4-way set-associative L1 instruction cache, which
behaves as a Physically Indexed, Physically Tagged (PIPT) cache.
• Fixed cache line length of 64 bytes.
• Pseudo-LRU cache replacement policy.
• 256-bit read interface from the L2 memory system.
• Virtually Indexed, Physically Tagged (VIPT), which behaves as a Physically Indexed, Physically Tagged
(PIPT) 4-way set-associative L1 data cache.
• Fixed cache line length of 64 bytes.
• Pseudo-LRU cache replacement policy.
• 256-bit write interface from the L2 memory system.
• 256-bit read interface from the L2 memory system.
• Two 128-bit read paths from the data L1 memory system to the datapath.
• 256-bit write path from the datapath to the L1 memory system.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 55 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
• At reset the instruction and data caches are disabled and both caches are automatically
invalidated.
Caches in the core are invalidated automatically at reset deassertion unless the core
power mode is initialized to Debug recovery mode. See the Arm® DynamIQ™ Shared
Unit Technical Reference Manual for more information.
If the instruction cache is disabled, all instruction fetches to cacheable memory are treated as if
they were Non-cacheable. This treatment means that instruction fetches might not be coherent
with caches in other cores, and software must take account of this.
A branch instruction or exception in the code stream can cause a pipeline flush, discarding the
currently fetched instructions. On instruction fetch accesses, pages with Device memory type
attributes are treated as Non-Cacheable Normal Memory.
Device memory pages must be marked with the translation table descriptor attribute bit Execute
Never (XN). The device and code address spaces must be separated in the physical memory map.
This separation prevents speculative fetches to read-sensitive devices when address translation is
disabled.
If the instruction cache is enabled, and if the instruction fetches miss in the L1 instruction cache,
they can still look up in the L1 data caches. However, a new line is not allocated in the data cache
unless the data cache is enabled.
See the Arm® Architecture Reference Manual for A-profile architecture for more information.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 56 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
When the data cache is disabled, instructions and operations are affected as follows:
• An instruction fetch does not allocate a new line in the L2 or L3 caches.
• All load and store instructions to cacheable memory are treated as if they were Non-cacheable
and are incoherent with the caches in both this core and other cores in the cluster. Software
must take this into account.
• Data cache maintenance operations are an exception and will execute normally.
DC ISW operations in AArch32, and DC ISW instructions in AArch64, perform both a clean and
invalidate of the target set/way. The values of HCR.SWIO and HCR_EL2.SWIO have no effect.
See the Arm® Architecture Reference Manual for A-profile architecture for more information.
However, there are some situations where allocating on writes is not required. For example, when
executing the C standard library memset() function to clear a large block of memory to a known
value. Writes of large blocks of data can pollute the cache with unnecessary data. It can also waste
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 57 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
power and performance if a linefill must be performed only to discard the linefill data because the
entire line was subsequently written by the memset().
To counter this, the L1 memory system includes logic to detect when the core has stores pending
to a full cache line when it is waiting for a linefill to complete, or when it detects a DCZVA (full cache
line write to zero). If this situation is detected, then it switches into write streaming mode.
When in write streaming mode, loads behave as normal, and can still cause linefills, and writes still
lookup in the cache, but if they miss then they write out to L2 (or possibly L3, system cache, or
DRAM) rather than starting a linefill.
The L1 memory system continues in write streaming mode until it can no longer create a full
cacheline of store (for example because of a lack of resource in the L1 memory system) or has
detected a high proportion of store hitting in the cache.
Branch prediction increases overall performance and reduces power consumption. With program
flow prediction disabled, all taken branches incur a penalty that is associated with flushing the
pipeline.
To avoid this penalty, the branch prediction hardware predicts if a conditional or unconditional
branch is to be taken. For conditional branches, the hardware predicts if the branch is to be taken.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 58 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
It also predicts the address that the branch goes to, known as the branch target address. For
unconditional branches, only the target is predicted.
Return stack
The return stack stores the address and instruction set state.
This address is equal to the link register value stored in R14 in AArch32 state or X30 in AArch64
state.
In AArch32 state, the following instructions cause a return stack pop if predicted:
• BX
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 59 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
As exception return instructions can change core privilege mode and Security state, they are not
predicted. These include:
• ERET
Atomic instructions
The Cortex®‑A76 core supports the atomic instructions that are added in Armv8.1 architecture.
Atomic instructions to cacheable memory can be performed as either near atomics or far atomics,
depending on where the cache line containing the data resides.
When an instruction hits in the L1 data cache in a unique state, then it is performed as a near
atomic in the L1 memory system. If the atomic operation misses in the L1 cache, or the line is
shared with another core, then the atomic is sent as a far atomic on the core CHI interface.
If the operation misses everywhere within the cluster, and the interconnect supports far atomics,
then the atomic is passed on to the interconnect to perform the operation.
When the operation hits anywhere inside the cluster, or when an interconnect does not support
atomics, the L3 memory system performs the atomic operation. If the line it is not already there,
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 60 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
it allocates the line into the L3 cache. This depends on whether the DynamIQ Shared Unit (DSU) is
configured with an L3 cache.
Therefore, if software prefers that the atomic is performed as a near atomic, precede the atomic
instruction with a PLDW or PRFM PSTL1KEEP instruction.
Alternatively, the CPUECTLR can be programmed such that different types of atomic instructions
attempt to execute as a near atomic. One cache fill is made on an atomic. If the cache line is lost
before the atomic operation can be made, it is sent as a far atomic.
The Cortex®‑A76 core supports atomics to device or non-cacheable memory, however this relies
on the interconnect also supporting atomics. If such an atomic instruction is executed when the
interconnect does not support them, it results in an abort.
For more information on the CPUECTLR register, see 13.32 CPUECTLR_EL1, CPU Extended
Control Register, EL1 on page 142.
LDAPR instructions
The core supports Load acquire instructions adhering to the RCpc consistency semantic introduced
in the Armv8.3 extensions for A profile. This is reflected in register ID_AA64ISAR1_EL1 where
bits[23:20] are set to 0b0001 to indicate that the core supports LDAPRB, LDAPRH, and LDAPR
instructions implemented in AArch64.
For any load or store that is targeted at a memory region that is marked as transient, the following
occurs:
• If the memory access misses in the L1 data cache, the returned cache line is allocated in the L1
data cache but is marked as transient.
• When the line is evicted from the L1 data cache, the transient hint is passed to the L2 cache so
that the replacement policy will not attempt to retain the line. When the line is subsequently
evicted from the L2 cache, it will bypass the next level cache entirely.
Non-temporal loads
Non-temporal loads indicate to the caches that the data is likely to be used for only short periods.
For example, when streaming single-use read data that is then discarded. In addition to non-
temporal loads, there are also prefetch-memory (PRFM) hint instructions with the STRM qualifier.
Non-temporal loads to memory which are designated as Write-Back are treated the same as loads
to Transient memory.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 61 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
This monitor is a 2-state, open and exclusive, state machine that manages Load-Exclusive or Store-
Exclusive accesses and Clear-Exclusive (CLREX) instructions. You can use these instructions to
construct semaphores, ensuring synchronization between different processes running on the
core, and also between different cores that are using the same coherent memory locations for
the semaphore. A Load-Exclusive instruction tags a small block of memory for exclusive access.
CTR.ERG defines the size of the tagged block as 16 words, one cache line.
• In the A32 and T32 instruction sets, any instruction that has a mnemonic
starting with LDREX, STREX, LDAEX, or STLEX.
See the Arm® Architecture Reference Manual for A-profile architecture for more information about
these instructions.
Preload instructions
The Cortex®‑A76 core supports the AArch64 Prefetch Memory (PRFM) instructions and the AArch32
Prefetch Data (PLD) and Preload Data With Intent To Write (PLDW) instructions. These instructions
signal to the memory system that memory accesses from a specified address are likely to occur
soon. The memory system acts by taking actions that aim to reduce the latency of the memory
access when they occur. PRFM instructions perform a lookup in the cache, and if they miss and
are to a cacheable address, a linefill starts. However, the PRFM instruction retires when its linefill is
started, rather than waiting for the linefill to complete. This enables other instructions to execute
while the linefill continues in the background.
The Preload Instruction (PLI) memory system hint performs preloading in the L2 cache for cacheable
accesses if they miss in both the L1 instruction cache and L2 cache. Instruction preloading is
performed in the background.
For more information about prefetch memory and preloading caches, see the Arm® Architecture
Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 62 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
prefetch to both the L1 and L2 Cache. The store side prefetcher uses the physical address, and
only prefetches to the L2 Cache.
The CPUECTLR register allows you to have some control over the prefetcher. See 13.32
CPUECTLR_EL1, CPU Extended Control Register, EL1 on page 142 for more information on the
control of the prefetcher.
Use the prefetch memory system instructions for data prefetching where short sequences or
irregular pattern fetches are required.
In the Cortex®‑A76 core, this enables a block of 64 bytes in memory, which is aligned to 64 bytes
in size, to be set to zero.
For more information, see the Arm® Architecture Reference Manual for A-profile architecture.
When the core executes in AArch64 state, there are six read-only registers that are used to
access the contents of the internal memory. The internal memory is selected by programming
the IMPLEMENTATION DEFINED RAMINDEX register (using SYS #6, c15, c0, #0 instruction). These
operations are available only in EL3. In all other modes, executing these instructions results in
an Undefined Instruction exception. The data is read from read-only registers as shown in the
following table. After accessing the cache, a Data Synchronization Barrier (DSB) is required prior to
reading the data register.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 63 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 64 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
The following table shows the data that is returned from accessing the L1 instruction tag RAM.
00 Invalid
01 T32
10 A32
11 A64
[0] Parity
Instruction Register 1 [63:0] 0
Instruction Register 2 [63:0] 0
The following table shows the data that is returned from accessing the L1 instruction data RAM.
The following table shows the data that is returned from accessing the L1 BTB RAM.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 65 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
The following table shows the data that is returned from accessing the L1 GHB RAM.
The following table shows the data that is returned from accessing the L1 instruction TLB RAM.
000 4KB
001 16KB
010 64KB
011 256KB
100 2MB
101 32MB
11x Reserved
[49:46] [49:46] TLB attribute
[45] [45] Outer-shared
[44] [44] Inner-shared
[43:39] [43:39] TLB attribute
[38:23] [38:23] ASID
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 66 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
00 Secure EL1/EL0
01 Secure EL3
10 Non-secure EL1/EL0
11 Non-secure EL2
[4:1] [4:1] TLB attribute
[0] [0] Valid
Instruction Register 1 [63:61] [63:61] 0
[60] [60] Non-secure
[59:32] [59:32] Physical address [39:12]
[31:0] [31:0] Virtual address[48:17]
Instruction Register 2 [63:0] [63:0] 0
The following table shows the data that is returned from accessing the BPIQ RAM.
7.6.2 Encoding for L1 data cache tag, L1 data cache data, and L1 TLB data
The core data cache consists of a 4-way set-associative structure.
The encoding, which is set in Rd in the appropriate MCR instruction, used to locate the required
cache data entry for tag, data, and TLB memory is shown in the following tables. It is similar for
both the tag RAM, data RAM, and TLB access. Data RAM access includes an extra field to locate
the appropriate doubleword in the cache line.
Tag RAM encoding includes an extra field to select which one of the two cache channels must be
used to perform any access.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 67 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
Data cache reads return 64 bits of data in Data Register 0, Data Register 1, and Data Register 2. If
cache protection is supported, Data Register 2 is used to report ECC information using the format
that is shown in the following tables.
The following table shows the data that is returned from accessing the L1 data cache tag RAM with
ECC.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 68 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
00 Invalid
01 Shared
10 Exclusive
11 Modified with respect to the L2
cache
Data Register 1 [63:0] 0
Data Register 2 [63:0] 0
The following table shows the data that is returned from accessing the L1 data cache tag RAM
without ECC.
00 Invalid
01 Shared
10 Exclusive
11 Modified
Data Register 1 [63:0] 0
Data Register 2 [63:0] 0
The following table shows the data that is returned from accessing the L1 data cache data RAM
with ECC.
The following table shows the data that is returned from accessing the L1 data cache data RAM
without ECC.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 69 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
The following table shows the data that is returned from accessing the L1 data TLB RAM.
000 4KB
001 16KB
010 64KB
011 256KB
100 2MB
101 Reserved
110 512MB
111 Reserved
[35] [35] Non-secure
[34:33] [34:33] Translation regime:
00 Secure EL1/EL0
01 Secure EL3
10 Non-secure EL1/EL0
11 Non-secure EL2
[32:17] [32:17] ASID
[16:1] [16:1] VMID
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 70 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
The following table shows the data that is returned from accessing the L2 tag RAM when L2 is
configured with a 128KB cache size.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 71 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
101 Modified
001 Exclusive
x11 Shared
xx0 Invalid
Data Register 1 [63:0] [63:0] 0
Data Register 2 [63:0] [63:0] 0
The following table shows the data that is returned from accessing the L2 tag RAM when L2 is
configured with a 256KB cache size.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 72 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
101 Modified
001 Exclusive
x11 Shared
xx0 Invalid
Data Register 1 [63:0] [63:0] 0
Data Register 2 [63:0] [63:0] 0
The following table shows the data that is returned from accessing the L2 tag RAM when L2 is
configured with a 512KB cache size.
101 Modified
001 Exclusive
x11 Shared
xx0 Invalid
Data Register 1 [63:0] [63:0] 0
Data Register 2 [63:0] [63:0] 0
The following table shows the data that is returned from accessing the L2 data RAM.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 73 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
The following table shows the data that is returned from accessing the L2 victim RAM.
The following table shows the encoding that is required to select a given TLB entry.
000 way0
001 way1
010 way2
011 way3
100 way4
[17:8] Reserved
[7:0] Index
The following table shows the data that is returned from accessing the L2 TLB.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 74 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
000 4KB
001 16KB
010 64KB
011 256KB
100 2MB
101 32MB
110 512MB
111 1GB
[16:7] [16:7] Reserved
[6] [6] Indicates that the entry is coalesced and
holds translations for four contiguous
pages
[5:2] [5:2] This bit field contains the valid bits for
four contiguous pages. If the entry is
non-coalesced, then 0b0001 indicates a
valid entry
[1:0] [1:0] Reserved
Instruction Register 1 [63:54] - VMID [9:0]
- [63:56] VMID [7:0]
[53:38] [55:40] ASID [15:0]
- [39:38] PBHA[1:0]
[37] 2 [37] Walk cache entry
[36] [36] Prefetched translation
[35:7] [35:7] Virtual address [48:20]
[6] [6] Non-secure
[5:0] [5:0] Reserved
Instruction Register 2 [63:8] [63:10] Reserved
2
when bit [37] of Instruction register 1 is set, indicating that this is a walk cache entry, the decoding provided in this
table is not valid.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 75 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L1 memory system
00 Secure EL1
01 EL3
10 Non-secure EL1
11 EL2
[5:0] - VMID [15:10]
- [7:0] VMID [15:8]
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 76 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L2 memory system
8. L2 memory system
This chapter describes the L2 memory system.
• An 8-way set associative L2 cache with a configurable size of 128KB, 256KB or 512KB. Cache
lines have a fixed length of 64 bytes.
• Optional ECC protection for all RAM structures except victim array.
• Strictly inclusive with L1 data cache. Weakly inclusive with L1 instruction cache.
• Configurable CHI interface to the DynamIQ Shared Unit (DSU) or CHI compliant system with
support for 128-bit and 256-bit data widths.
• Dynamic biased replacement policy.
• Modified Exclusive Shared Invalid (MESI) coherency.
When fetched from the system, instructions are allocated to the L2 cache and can be invalidated
during maintenance operations.
Caches in the core are invalidated automatically at reset deassertion unless the core
power mode is initialized to Debug recovery mode. See the Arm® DynamIQ™ Shared
Unit Technical Reference Manual for more information.
• Memory that is marked as both Inner Write-Back Cacheable and Outer Write-Back Cacheable
is cached in the L1 data cache and the L2 cache.
• Memory that is marked Inner Write-Through is downgraded to Non-cacheable.
• Memory that is marked Outer Write-Through or Outer Non-cacheable is downgraded to Non-
cacheable, even if the inner attributes are Write-Back cacheable.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 77 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
L2 memory system
The following table shows the transaction capabilities of the Cortex®‑A76 core. It lists the
maximum possible values for read, write, DVM issuing, and snoop capabilities of the private L2
cache.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 78 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Reliability, Availability, and Serviceability (RAS)
When configured with core cache protection, the Cortex®‑A76 core can detect and correct a 1-bit
error in any RAM and detect 2-bit errors in some RAMs.
For information about SCU-L3 cache protection, see the Arm® DynamIQ™ Shared
Unit Technical Reference Manual.
Errors that are present but not detected are known as latent or undetected errors. A transaction
carrying a latent error is corrupted. In a system with no error detection, all errors are latent errors
and are silently propagated by components until either:
• They are masked and do not affect the outcome of the system. These are benign or false errors.
• They affect the service interface of the system and cause failure. These are silent data
corruptions.
The severity of a failure can range from minor to catastrophic. In many systems, data or service loss
is regarded as more of a minor failure than data corruption, as long as backup data is available.
The RAS extension focuses on errors that are produced from hardware faults, which fall into two
main categories:
• Transient faults.
• Persistent faults.
The RAS extension describes data corruption faults, which mostly occur in memories and on data
links. RAS concepts can also be used for the management of other types of physical faults that are
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 79 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Reliability, Availability, and Serviceability (RAS)
found in systems, such as lock-step errors, thermal trip, and mechanical failure. The RAS extension
provides a common programmers model and mechanisms for fault handling and error recovery.
In this case, the Cortex®‑A76 core protects against errors that result in a RAM bitcell holding the
incorrect value.
Table 9-1: Cache protection behavior on page 81 indicates which protection type is applied to
each RAM.
The core can progress and remain functionally correct when there is a single bit error in any RAM.
If there are multiple single bit errors in different RAMs, or within different protection granules
within the same RAM, then the core also remains functionally correct.
If there is a double bit error in a single RAM within the same protection granule, then the behavior
depends on the RAM:
• For RAMs with SECDED capability, the core detects and either reports or defers the error. If
the error is in a cache line containing dirty data, then that data might be lost.
• For RAMs with only SED, the core does not detect a double bit error. This might cause data
corruption.
If there are three or more bit errors within the same protection granule, then depending on the
RAM and the position of the errors within the RAM, the core might or might not detect the errors.
The cache protection feature of the core has a minimal performance impact when no errors are
present.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 80 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Reliability, Availability, and Serviceability (RAS)
MMU None - -
replacement
policy
MMU biased None - -
replacement
L2 cache tag SECDED 128KB L2 - 7 ECC bits for 38 tag Tag is corrected inline.
bits
To ensure that progress is guaranteed even in case of hard error, the core returns corrected data to
the core, and no cache access is required after data correction.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 81 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Reliability, Availability, and Serviceability (RAS)
When a component accesses memory, an error might be detected in that memory and then be
corrected, deferred, or detected but silently propagated. The following table lists the types of RAS
errors that are supported in the Cortex®‑A76 core.
In the Cortex®‑A76 core, the ESB instruction allows efficient isolation of errors:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 82 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Reliability, Availability, and Serviceability (RAS)
• The ESB instruction does not wait for completion of accesses that cannot generate an
asynchronous external abort. For example, if all external aborts are handled synchronously or it
is known that no such accesses are outstanding.
• The ESB instruction does not order accesses and does not guarantee a pipeline flush.
All system errors must be synchronized by an ESB instruction, which guarantees the following:
• All system errors that are generated before the ESB instruction have pended a System Error
Interrupts (SEI) exception.
• If a physical SEI is pended by or was pending before the ESB instruction executes, then:
◦ It is taken before completion of the ESB instruction, if the physical SEI exception is
unmasked at the current Exception level.
◦ The pending SEI is cleared, the SEI status is recorded in DISR_EL1, and DISR_EL1.A is set
to 1 if the physical SEI exception is masked at the current Exception level. It indicates that
the SEI exception was generated before the ESB instruction by instructions that occur in
program order.
• If a virtual SEI is pended by or was pending before the ESB instruction executes, then:
◦ It is taken before completion of the ESB instruction, if the virtual SEI exception is unmasked.
◦ The pending virtual SEI is cleared and the SEI status is recorded in VDISR_EL2 using the
information that is provided by software in VSESR_EL2, if the virtual SEI exception is
masked.
This includes unrecoverable SEIs that are generated by instructions, translation table walks, and
instruction fetches on the same core.
DISR_EL1 can only be accessed at EL1 and above. If EL2 is implemented and
HCR_EL2.AMO is set to 1, then reads and writes of DISR_EL1 at Non-secure EL1
access VDISR_EL2.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 83 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Reliability, Availability, and Serviceability (RAS)
For more information on error recording that is generated by cache protection, see the Arm®
Architecture Reference Manual Supplement, Reliability, Availability, and Serviceability (RAS), for A-profile
architecture. The following points apply specifically to the Cortex®‑A76 core:
• Error recording is only available when the core cache protection is implemented.
• In the Cortex®‑A76 core, any error that is detected is reported and recorded in the error record
registers:
◦ 13.43 ERRSELR_EL1, Error Record Select Register, EL1 on page 166
◦ 13.44 ERXADDR_EL1, Selected Error Record Address Register, EL1 on page 167
◦ 13.45 ERXCTLR_EL1, Selected Error Record Control Register, EL1 on page 167
◦ 13.46 ERXFR_EL1, Selected Error Record Feature Register, EL1 on page 167
◦ 13.47 ERXMISC0_EL1, Selected Error Record Miscellaneous Register 0, EL1 on page 167
◦ 13.48 ERXMISC1_EL1, Selected Error Record Miscellaneous Register 1, EL1 on page 168
◦ 13.49 ERXPFGCDN_EL1, Selected Error Pseudo Fault Generation Count Down Register,
EL1 on page 168
◦ 13.50 ERXPFGCTL_EL1, Selected Error Pseudo Fault Generation Control Register, EL1 on
page 169
◦ 13.51 ERXPFGF_EL1, Selected Pseudo Fault Generation Feature Register, EL1 on page
171
◦ 13.52 ERXSTATUS_EL1, Selected Error Record Primary Status Register, EL1 on page 172
• There are two error records provided, which can be selected with the ERRSELR_EL1 register:
◦ Record 0 is private to the core, and is updated on any error in the core RAMs including L1
caches, TLB, and L2 cache.
◦ Record 1 records any error in the L3 and snoop filter RAMs and is shared between all cores
in the cluster.
• The fault handling interrupt is generated on the nFAULTIRQ[0] pin for L3 and snoop filter
errors, or on the nFAULTIRQ[n+1] pin for core n L1 and L2 errors.
The core is programmable to inject an error for any of the possible error types (corrected error,
deferred error, uncontainable error, and recoverable error) on a future memory access. When that
access is performed, the core responds as if an error was detected on that access by asserting error
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 84 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Reliability, Availability, and Serviceability (RAS)
interrupts, logging information in the error records, and taking aborts as appropriate for the type of
error. Injecting an error will not affect the data in the RAM or the checking process itself. When a
real error is detected on an access for which an injected error is programmed, the injected error will
not prevent the core from handling the real error. The RAS register might log the injected error or
the real error in this case.
Cacheable code must also be executed, which will cause cacheable transactions that
can be injected with errors.
The following table describes all the possible types of error that the core can encounter and
therefore inject.
The following table describes the registers that handle error injection in the Cortex®‑A76 core.
This mechanism simulates the corruption of any RAM but the data is not actually
corrupted.
See also:
• 14.7 ERR0PFGCDN, Error Pseudo Fault Generation Count Down Register on page 261.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 85 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Reliability, Availability, and Serviceability (RAS)
• 14.8 ERR0PFGCTL, Error Pseudo Fault Generation Control Register on page 261.
• 14.9 ERR0PFGF, Error Pseudo Fault Generation Feature Register on page 263.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 86 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Generic Interrupt Controller CPU interface
This interfaces with an external GICv4 distributor component within the cluster system and is a
resource for supporting and managing interrupts. The GIC CPU interface hosts registers to mask,
identify, and control states of interrupts forwarded to that core. Each core in the cluster system has
a GIC CPU interface component and connects to a common external distributor component.
This chapter describes only features that are specific to the Cortex®‑A76 core
implementation. Additional information specific to the cluster can be found in Arm®
DynamIQ™ Shared Unit Technical Reference Manual.
This chapter describes only features that are specific to the Cortex®‑A76 core implementation.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 87 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Generic Interrupt Controller CPU interface
Related information
GIC registers on page 269
However, you can disable it if you assert the GICCDISABLE signal HIGH at reset. If you disable the
GIC CPU interface, the input pins nVIRQ and nVFIQ can be driven by an external GIC in the SoC.
GIC System register access generates UNDEFINED instruction exceptions when the GICCDISABLE
signal is HIGH.
If the GIC is enabled, the input pins nVIRQ and nVFIQ must be tied off to HIGH. This is because
the internal GIC CPU interface generates the virtual interrupt signals to the cores. The nIRQ and
nFIQ signals are controlled by software, therefore there is no requirement to tie them HIGH.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 88 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point support
The Arm®v8‑A architecture does not define a separate version number for its Advanced SIMD and
floating-point support in the AArch64 Execution state because the instructions are always implicitly
present.
The Cortex®‑A76 core only supports AArch32 in EL0, therefore none of the feature identification
registers are accessible in the AArch32 Execution state.
You can access the feature identification registers in the AArch64 Execution state using the MRS
instruction, for example:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 89 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point support
Table 11-1: AArch64 Advanced SIMD and scalar floating-point feature identification registers
Register name Description
ID_AA64PFR0_EL1 See 13.67 ID_AA64PFR0_EL1, AArch64 Processor Feature Register 0, EL1 on page 189.
MVFR0_EL1 See 16.4 MVFR0_EL1, Media, and VFP Feature Register 0, EL1 on page 301.
MVFR1_EL1 See 16.5 MVFR1_EL1, Media, and VFP Feature Register 1, EL1 on page 302.
MVFR2_EL1 See 16.6 MVFR2_EL1, Media, and VFP Feature Register 2, EL1 on page 304.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 90 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 System registers
The following table identifies the architecturally defined registers that are implemented in the
Cortex®‑A76 core. For a description of these registers, see the Arm® Architecture Reference Manual
for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 91 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
The chapter provides IMPLEMENTATION SPECIFIC information, for a complete description of the
registers, see the Arm® Architecture Reference Manual for A-profile architecture.
See Table 13-1: Registers with implementation defined bit fields on page 93.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 92 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 93 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 94 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 95 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 96 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 97 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
The following tables list the AArch 64 IMPLEMENTATION DEFINED registers, which are sorted by
opcode.
The following table shows the 32-bit wide IMPLEMENTATION DEFINED Cluster registers. Details of
these registers can be found in Arm® DynamIQ™ Shared Unit Technical Reference Manual
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 98 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Identification registers
Name Type Reset Description
AIDR_EL1 RO 0x00000000 13.14 AIDR_EL1, Auxiliary ID Register, EL1 on
page 116
CCSIDR__EL1 RO - 13.23 CCSIDR_EL1, Cache Size ID Register, EL1
on page 129
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 99 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 100 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 101 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 102 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Virtualization registers
Name Type Description
ACTLR_EL2 RW 13.6 ACTLR_EL2, Auxiliary Control Register, EL2 on page 106
AFSR0_EL2 RW 13.9 AFSR0_EL2, Auxiliary Fault Status Register 0, EL2 on page 112
AFSR1_EL2 RW 13.12 AFSR1_EL2, Auxiliary Fault Status Register 1, EL2 on page 115
AMAIR_EL2 RW 13.16 AMAIR_EL2, Auxiliary Memory Attribute Indirection Register, EL2 on page 118
CPTR_EL2 RW 13.26 CPTR_EL2, Architectural Feature Trap Register, EL2 on page 133
ESR_EL2 RW 13.54 ESR_EL2, Exception Syndrome Register, EL2 on page 174
HACR_EL2 RW 13.56 HACR_EL2, Hyp Auxiliary Configuration Register, EL2 on page 176
HCR_EL2 RW 13.57 HCR_EL2, Hypervisor Configuration Register, EL2 on page 177
HPFAR_EL2 RW Hypervisor IPA Fault Address Register EL2
TCR_EL2 RW 13.100 TCR_EL2, Translation Control Register, EL2 on page 241
VMPIDR_EL2 RW Virtualization Multiprocessor ID Register EL2
VPIDR_EL2 RW Virtualization Core ID Register EL2
VSESR_EL2 RW 13.108 VSESR_EL2, Virtual SError Exception Syndrome Register on page 249
VTCR_EL2 RW 13.109 VTCR_EL2, Virtualization Translation Control Register, EL2 on page 250
VTTBR_EL2 RW 13.110 VTTBR_EL2, Virtualization Translation Table Base Register, EL2 on page 251
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 103 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
The following table shows the 32-bit wide IMPLEMENTATION DEFINED Cluster registers. Details of
these registers can be found in Arm® DynamIQ™ Shared Unit Technical Reference Manual
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 104 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Security
Name Type Description
ACTLR_EL3 RW 13.7 ACTLR_EL3, Auxiliary Control Register, EL3 on page 109
AFSR0_EL3 RW 13.10 AFSR0_EL3, Auxiliary Fault Status Register 0, EL3 on page 113
AFSR1_EL3 RW 13.13 AFSR1_EL3, Auxiliary Fault Status Register 1, EL3 on page 115
AMAIR_EL3 RW 13.17 AMAIR_EL3, Auxiliary Memory Attribute Indirection Register, EL3 on page 119
CPTR_EL3 RW 13.27 CPTR_EL3, Architectural Feature Trap Register, EL3 on page 134
MDCR_EL3 RW 13.89 MDCR_EL3, Monitor Debug Configuration Register, EL3 on page 226
Address registers
Name Type Description
PAR_EL1 RW 13.92 PAR_EL1, Physical Address Register, EL1 on page 231
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 105 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 0
RES0
RES0, [63:0]
RES0 Reserved.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 106 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CLUSTERPMUEN
SMEN
TSIDEN
PWREN
ERXPFGEN
AMEN
ECTLREN
ACTLREN
RES0
RES0, [63:13]
RES0 Reserved.
CLUSTERPMUEN, [12]
Performance Management Registers enable. The possible values are:
SMEN, [11]
Scheme Management Registers enable. The possible values are:
TSIDEN, [10]
Thread Scheme ID Register enable. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 107 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
RES0, [9:8]
RES0 Reserved.
PWREN, [7]
Power Control Registers enable. The possible values are:
RES0, [6]
RES0 Reserved.
ERXPFGEN, [5]
Error Record Registers enable. The possible values are:
AMEN, [4]
Activity Monitor enable. The possible values are:
RES0, [3:2]
RES0 Reserved.
ECTLREN, [1]
Extended Control Registers enable. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 108 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
ACTLREN, [0]
Auxiliary Control Registers enable. The possible values are:
Configurations
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CLUSTERPMUEN
SMEN
TSIDEN
PWREN
ERXPFGEN
AMEN
ECTLREN
ACTLREN
RES0
RES0, [63:13]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 109 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
CLUSTERPMUEN, [12]
Performance Management Registers enable. The possible values are:
SMEN, [11]
Scheme Management Registers enable. The possible values are:
TSIDEN, [10]
Thread Scheme ID Register enable. The possible values are:
RES0, [9:8]
RES0 Reserved.
PWREN, [7]
Power Control Registers enable. The possible values are:
RES0, [6]
RES0 Reserved.
ERXPFGEN, [5]
Error Record Registers enable. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 110 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
0 ERXPFG* are not write-accessible from EL2 and EL1 Secure. This is
the reset value.
1 ERXPFG* are write-accessible from EL2 and EL1 Secure.
AMEN, [4]
Activity Monitor enable. The possible values are:
0 Accesses from EL2, EL1, and EL0 to activity monitor registers are
trapped to EL3. This is the reset value.
1 Accesses from EL2, EL1, and EL0 to activity monitor registers are not
trapped to EL3.
RES0, [3:2]
RES0 Reserved.
ECTLREN, [1]
Extended Control Registers enable. The possible values are:
ACTLREN, [0]
Auxiliary Control Registers enable. The possible values are:
Configurations
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 0
Reserved
RES0
Reserved, [63:32]
Reserved.
RES0, [31:0]
RES0 Reserved.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 112 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 0
Reserved
RES0
Reserved, [63:32]
Reserved.
RES0, [31:0]
RES0 Reserved.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 0
Reserved
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 113 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Reserved, [63:32]
Reserved.
RES0, [31:0]
RES0 Reserved.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 0
Reserved
RES0
Reserved, [63:32]
Reserved.
RES0, [31:0]
RES0 Reserved.
Configurations
There are no configuration notes.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 114 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 0
Reserved
RES0
Reserved, [63:32]
Reserved.
RES0, [31:0]
RES0 Reserved.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 115 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 0
Reserved
RES0
Reserved, [63:32]
Reserved.
RES0, [31:0]
RES0 Reserved.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 116 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 0
Reserved
RES0
Reserved, [63:32]
Reserved.
RES0, [31:0]
RES0 Reserved.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 117 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 0
RES0
RES0, [63:0]
RES0 Reserved.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 0
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 118 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
RES0, [63:0]
RES0 Reserved.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 0
RES0
RES0, [63:0]
RES0 Reserved.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 119 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HWVAL160 HWEN059
RES0 HWVAL159 HWEN060
HWVAL060 HWEN159
HWVAL059 HWEN160
RES0, [63:14]
RES0.
HWVAL160, [13]
HWVAL159, [12]
RES0, [11:10]
RES0.
HWVAL060, [9]
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 120 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
HWVAL059, [8]
RES0, [7:6]
RES0.
HWEN160, [5]
HWEN159, [4]
RES0, [3:2]
RES0.
HWEN060, [1]
HWEN059, [0]
Configurations
AArch64 register ATCR_EL1 is mapped to AArch32 register ATTBCR (NS).
At EL2 with HCR_EL2.E2H set, accesses to ATCR_EL1 are remapped to access ATCR_EL2.
Usage constraints
Accessing the ATCR_EL1
To access the ATCR_EL1:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 121 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
ATCR_EL1 is accessible as follows:
Control Accessibility
E2H TGE NS EL0 EL1 EL2 EL3
ATCR_EL1 x x 0 - RW n/a RW
ATCR_EL1 0 0 1 - RW RW RW
ATCR_EL1 0 1 1 - n/a RW RW
ATCR_EL1 1 0 1 - RW ATCR_EL2 RW
ATCR_EL1 1 1 1 - n/a ATCR_EL2 RW
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 122 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HWVAL160 HWEN059
RES0 HWVAL159 HWEN060
HWVAL060 HWEN159
HWVAL059 HWEN160
RES0, [63:14]
RES0.
HWVAL160, [13]
HWVAL159, [12]
RES0, [11:10]
RES0.
HWVAL060, [9]
HWVAL059, [8]
RES0, [7:6]
RES0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 123 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
HWEN160, [5]
HWEN159, [4]
RES0, [3:2]
RES0.
HWEN060, [1]
HWEN059, [0]
Configurations
AArch64 ATCR_EL2 register is architecturally mapped to AArch32 register AHTCR.
Usage constraints
Accessing the ATCR_EL2
To access the ATCR_EL2:
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
ATCR_EL2 is accessible as follows:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 124 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
EL0 (NS) EL1 (NS) EL1 (S) EL2 EL3 (SCR.NS=1) EL3 (SCR.NS=0)
- - - RW RW RW
This register is only used when Page-Based Hardware Attributes (PBHA) is configured by the core.
Usage constraints
Accessing the ATCR_EL12
To access the ATCR_EL1 using the ATCR_EL12 alias:
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
ATCR_EL12 is accessible as follows:
Control Accessibility
E2H TGE NS EL0 EL1 EL2 EL3
ATCR_EL12 x x 0 - - n/a -
ATCR_EL12 0 0 1 - - - -
ATCR_EL12 0 1 1 - n/a - -
ATCR_EL12 1 0 1 - - ATCR_EL1 ATCR_EL1
ATCR_EL12 1 1 1 - n/a ATCR_EL1 ATCR_EL1
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 125 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 10 9 8 7 2 1 0
HWVAL60 HWEN59
HWVAL59 HWEN60
res0
RES0, [63:10]
RES0.
HWVAL60, [9]
HWVAL59, [8]
RES0, [7:2]
RES0.
HWEN60, [1]
HWEN59, [0]
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 126 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Configurations
AArch64 register ATCR_EL3 is architecturally mapped to AArch32 register ATCR (S).
Usage constraints
Accessing the ATCR_EL3
To access the ATCR_EL3:
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
ATCR_EL3 is accessible as follows:
EL0 EL1 (NS) EL1 (S) EL2 EL3 (SCR.NS=1) EL3 (SCR.NS=0)
- - - - RW RW
63 10 9 8 7 2 1 0
HWVAL60 HWEN59
RES0
HWVAL59 HWEN60
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 127 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
RES0, [63:10]
RES0.
HWVAL60, [9]
HWVAL59, [8]
RES0, [7:2]
RES0.
HWEN60, [1]
HWEN59, [0]
Configurations
AArch64 register AVTCR_EL2 is architecturally mapped to AArch32 register AVTCR.
Usage constraints
Accessing the AVTCR_EL2
To access the AVTCR_EL2:
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
AVTCR_EL2 is accessible as follows:
EL0 EL1 (NS) EL1 (S) EL2 EL3 (SCR.NS=1) EL3 (SCR.NS=0)
- - - RW RW RW
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 128 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 30 29 28 27 13 12 3 2 0
WT WA LineSize
WB RA
Reserved, [63:32]
Reserved.
WT, [31]
Indicates whether the selected cache level supports Write-Through:
WB, [30]
Indicates whether the selected cache level supports Write-Back. Permitted values are:
RA, [29]
Indicates whether the selected cache level supports read-allocation. Permitted values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 129 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
1 Read-allocation is supported.
WA, [28]
Indicates whether the selected cache level supports write-allocation. Permitted values are:
NumSets, [27:13]
(Number of sets in cache) - 1. Therefore, a value of 0 indicates one set in the cache. The
number of sets does not have to be a power of 2.
For more information about encoding, see CCSIDR_EL1 encodings on page 130.
Associativity, [12:3]
(Associativity of cache) - 1. Therefore, a value of 0 indicates an associativity of 1. The
associativity does not have to be a power of 2.
For more information about encoding, see CCSIDR_EL1 encodings on page 130.
LineSize, [2:0]
(Log2(Number of bytes in cache line)) - 4. For example:
For a line length of 16 bytes: Log2(16) = 4, LineSize entry = 0. This is the minimum line
length.
For more information about encoding, see CCSIDR_EL1 encodings on page 130.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
CCSIDR_EL1 encodings
The following table shows the individual bit field and complete register encodings for the
CCSIDR_EL1.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 130 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
It also identifies the Level of Coherency (LoC) and Level of Unification (LoU) for the cache hierarchy.
63 33 32 30 29 27 26 24 23 21 20 9 8 6 5 3 2 0
RES0
RES0, [63:33]
RES0 Reserved.
ICB, [32:30]
Inner cache boundary. This field indicates the boundary between the inner and the outer
domain:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 131 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
LoUU, [29:27]
Indicates the Level of Unification Uniprocessor for the cache hierarchy:
LoC, [26:24]
Indicates the Level of Coherency for the cache hierarchy:
LoUIS, [23:21]
Indicates the Level of Unification Inner Shareable (LoUIS) for the cache hierarchy.
RES0, [20:9]
No cache at levels L7 down to L4.
RES0 Reserved.
Ctype3, [8:6]
Indicates the type of cache if the core implements L3 cache. If present, unified instruction
and data caches at level 3:
If Ctype2 has a value of 0b000, then the value of Ctype3 must be IGNORED.
Ctype2, [5:3]
Indicates the type of unified instruction and data caches at level 2:
Ctype1, [2:0]
Indicates the type of cache which is implemented at L1:
Configurations
There are no configuration notes.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 132 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 28 22 21 20 19 0
Reserved
TTA FPEN
res0
Reserved, [63:32]
Reserved.
RES0, [31:29]
RES0 Reserved.
TTA, [28]
Traps EL0 and EL1 System register accesses to all implemented trace registers to EL1, from
both Execution states. This bit is RES0. The core does not provide System register access to
ETM control.
Configurations
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 133 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 30 21 20 19 14 13 12 11 10 9 0
Reserved
RES1
RES0
Reserved, [63:32]
Reserved.
TTA, [20]
Trap Trace Access.
Configurations
RW fields in this register reset to UNKNOWN values.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
It also controls EL3 access to trace functionality and registers associated with Advanced SIMD and
floating-point execution.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 134 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 30 21 20 19 11 10 9 0
Reserved
RES0
Reserved, [63:32]
Reserved.
TTA, [20]
Trap Trace Access.
0 Does not cause any instruction to be trapped. This is the reset value.
1 Any attempt at any Exception level to execute an instruction that
uses the registers that are associated with SVE, Advanced SIMD
and floating-point is trapped to EL3, subject to the exception
prioritization rules.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 135 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 0
Reserved
Reserved, [63:0]
Configurations
CPUACTLR_EL1 is common to the Secure and Non-secure states.
Usage constraints
Accessing the CPUACTLR_EL1
The CPU Auxiliary Control Register can be written only when the system is idle. Arm
recommends that you write to this register after a Cold reset, before the MMU is enabled.
Setting many of these bits can cause significantly lower performance on your code.
Therefore, Arm strongly recommends that you do not modify this register unless directed by
Arm.
This register can be read with the MRS instruction using the following syntax:
MRS <Xt>,<systemreg>
This register can be written with the MSR instruction using the following syntax:
This syntax is encoded with the following settings in the instruction encoding:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 136 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Accessibility
This register is accessible in software as follows:
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not
possible.
Traps and enables
For a description of the prioritization of any generated exceptions, see Synchronous exception
prioritization in the Arm® Architecture Reference Manual for A-profile architecture.
63 0
Reserved
Reserved, [63:0]
Reserved for Arm® internal use.
Configurations
CPUACTLR2_EL1 is common to the Secure and Non-secure states.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 137 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Usage constraints
Accessing the CPUACTLR2_EL1
The CPUACTLR2_EL1 can be written only when the system is idle. Arm recommends that
you write to this register after a powerup reset, before the MMU is enabled.
Setting many of these bits can cause significantly lower performance on your code.
Therefore, Arm strongly recommends that you do not modify this register unless directed by
Arm.
This register can be read using MRS with the following syntax:
MRS <Xt>,<systemreg>
This register can be written using MSR with the following syntax:
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not
possible.
Traps and enables
For a description of the prioritization of any generated exceptions, see Exception priority order
in the Arm® Architecture Reference Manual for A-profile architecture for exceptions that are
taken to AArch64 state, and see Synchronous exception prioritization for exceptions that are
taken to AArch64 state.
Write-Access to this register from EL1 or EL2 depends on the value of bit[0] of ACTLR_EL2 and
ACTLR_EL3.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 138 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 0
Reserved
Reserved, [63:0]
Reserved for Arm® internal use.
Configurations
CPUACTLR3_EL1 is common to the Secure and Non-secure states.
Usage constraints
Accessing the CPUACTLR3_EL1
The CPUACTLR3_EL1 can be written only when the system is idle. Arm recommends that
you write to this register after a powerup reset, before the MMU is enabled.
Setting many of these bits can cause significantly lower performance on your code.
Therefore, Arm strongly recommends that you do not modify this register unless directed by
Arm.
This register can be read using MRS with the following syntax:
MRS <Xt>,<systemreg>
This register can be written using MSR with the following syntax:
This syntax is encoded with the following settings in the instruction encoding:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 139 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Accessibility
This register is accessible in software as follows:
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not
possible.
Traps and enables
For a description of the prioritization of any generated exceptions, see Exception priority order
in the Arm® Architecture Reference Manual for A-profile architecture for exceptions that are
taken to AArch64 state, and see Synchronous exception prioritization for exceptions that are
taken to AArch64 state.
Write-Access to this register from EL1 or EL2 depends on the value of bit[0] of ACTLR_EL2 and
ACTLR_EL3.
63 32 31 2 1 0
Reserved ECC
res0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 140 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Reserved, [63:32]
Reserved.
RES0, [31:2]
RES0 Reserved.
ECC, [1:0]
Indicates whether ECC is present or not. The possible values are:
00
ECC is not present.
01
ECC is present.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Usage constraints
Accessing the CPUCFR_EL1
This register can be read with the MRS instruction using the following syntax:
MRS <Xt>,<systemreg>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 141 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not
possible.
63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32
MXP_EN ATOMIC_ACQ_NEAR
MXP_TP
MXP_ATHR CA_EVICT_DIS
MM_VMID_THR CA_UCLEAN_EVICT_EN
MM_ASP_EN
MM_CH_DIS PFT_IF
MM_TLBPF_DIS PFT_LS
PFT_MM
HPA_MODE
HPA_CAP L2_FLUSH
HPA_L1_DIS
HPA_DIS
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 9 8 7 6 5 4 3 2 1 0
ATOMIC_ST_NEAR EXTLLC
ATOMIC_REL_NEAR RPF_PHIT_EN
ATOMIC_LD_NEAR RPF_LO_CONF
RPF_DIS
TLD_PRED_DIS
DTLB_CABT_EN
PF_STS_DIS
WS_THR_L2 PF_STI_DIS
WS_THR_L3 PF_SS_L2_DIST
WS_THR_L4 PF_DIS
WS_THR_DRAM
WS_THR_DCZVA
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 142 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
RES0, [63:62]
RES0 Reserved.
MXP_EN, [61]
Max-power throttle enable. The possible values are:
Both the MXP_EN bit and the MPMMEN input pin at the DSU cluster level must be
asserted to enable the max-power throttling mechanism.
RES0, [60:59]
RES0 Reserved.
MXP_TP, [58:57]
Percentage of throttling in the Load-Store and Vector Execute units during the period when
throttling has been triggered and is active. The possible values are:
MXP_ATHR, [56:55]
Peak activity threshold at which max-power throttling is triggered. The possible values are:
MM_VMID_THR, [54]
VMID filter threshold. The possible values are:
MM_ASP_EN, [53]
Disables allocation of splintered pages in L2 TLB. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 143 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
MM_CH_DIS, [52]
Disables use of contiguous hint. The possible values are:
MM_TLBPF_DIS, [51]
Disables L2 TLB prefetcher. The possible values are:
HPA_MODE, [50:49]
Hardware Page Aggregation (HPA) mode. The possible values are:
HPA_CAP, [48]
Limited or full hardware page aggregation selection. The possible values are:
0
Limited hardware page aggregation. This is the reset value.
1
Full hardware page aggregation.
HPA_L1_DIS, [47]
Disables HPA in L1 TLBs (but continues to use HPA in L2 TLB). The possible values are:
HPA_DIS, [46]
Disables hardware page aggregation. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 144 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
RES0, [45:44]
RES0 Reserved.
L2_FLUSH, [43]
Allocation behavior of copybacks that are caused by L2 cache hardware flush and DC CISW
instructions targeting the L2 cache. If it is known that data is likely to be used soon by
another core, setting this bit can improve system performance. The possible values are:
RES0, [42]
RES0 Reserved.
PFT_MM, [41:40]
DRAM prefetch using PrefetchTgt transactions for table walk requests. The possible values
are:
PFT_LS, [39:38]
DRAM prefetch using PrefetchTgt transactions for load and store requests. The possible
values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 145 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
PFT_IF, [37:36]
DRAM prefetch using PrefetchTgt transactions for instruction fetch requests. The possible
values are:
CA_UCLEAN_EVICT_EN, [35]
Enables sending WriteEvict transactions on the CPU CHI interface for UniqueClean evictions.
WriteEvict transactions update downstream caches. Enable WriteEvict transactions only if
there is an extra level of cache below the CPU's level 2 cache. The possible values are:
CA_EVICT_DIS, [34]
Disables sending of Evict transactions on the CPU CHI interface for clean cache lines that
are evicted from the core. Evict transactions are required only if the system contains a snoop
filter that requires notification when the core evicts the cache line. The possible values are:
RES0, [33]
RES0 Reserved.
ATOMIC_ACQ_NEAR, [32]
An atomic instruction to WB memory with acquire semantics that does not hit in the cache in
Exclusive state, can make up to one fill request. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 146 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
ATOMIC_ST_NEAR, [31]
A store atomic instruction to WB memory that does not hit in the cache in Exclusive state,
can make up to one fill request. The possible values are:
ATOMIC_REL_NEAR, [30]
An atomic instruction to WB memory with release semantics that does not hit in the cache in
Exclusive state, can make up to one fill request. The possible values are:
ATOMIC_LD_NEAR, [29]
A load atomic (including SWP and CAS) instruction to WB memory that does not hit in the
cache in Exclusive state, can make up to one fill request. The possible values are:
TLD_PRED_DIS, [28]
Disables Transient Load Prediction. The possible values are:
RES0, [27]
RES0 Reserved.
DTLB_CABT_EN, [26]
Enables TLB Conflict Data Abort Exception. The possible values are:
0 Disables TLB conflict data abort exception. This is the reset value.
1 Enables TLB conflict data abort exception.
WS_THR_L2, [25:24]
Threshold for direct stream to L2 cache on store. The possible values are:
00 256B.
01 4KB. This is the reset value.
10 8KB.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 147 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
WS_THR_L3, [23:22]
Threshold for direct stream to L3 cache on store. The possible values are:
00 768B.
01 16KB. This is the reset value.
10 32KB.
11 Disables direct stream to L3 cache on store.
WS_THR_L4, [21:20]
Threshold for direct stream to L4 cache on store. The possible values are:
00 16KB.
01 64KB. This is the reset value.
10 128KB.
11 Disables direct stream to L4 cache on store.
WS_THR_DRAM, [19:18]
Threshold for direct stream to DRAM on store. The possible values are:
00 64KB.
01 1MB, for memory designated as outer-allocate. This is the reset
value.
10 1MB, allocating irrespective of outer-allocation designation.
11 Disables direct stream to DRAM on store.
WS_THR_DCZVA, [17]
Have DCZVA use a lower WS_THR_L2 configuration. The possible values are:
RES0, [16]
RES0 Reserved.
PF_DIS, [15]
Disables data-side hardware prefetching. The possible values are:
RES0, [14]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 148 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
PF_SS_L2_DIST, [13:12]
Single cache line stride prefetching L2 distance. The possible values are:
00 22
01 28
10 34
11 40. This is the reset value.
RES0, [11:10]
RES0 Reserved.
RES0, [9]
RES0 Reserved.
PF_STI_DIS, [8]
Disables store prefetches at issue (not overridden by CPUECTLR_EL1[15]). The possible
values are:
PF_STS_DIS, [7]
Disables store-stride prefetches. The possible values are:
RES0, [6]
RES0 Reserved.
RPF_DIS, [5]
Disables region prefetcher. The possible values are:
RPF_LO_CONF, [4]
Region prefetcher training behavior. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 149 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
RPF_PHIT_EN, [3]
Enable region prefetcher propagation on hit. The possible values are:
RES0, [2:1]
RES0 Reserved.
EXTLLC, [0]
Internal or external Last-level cache (LLC) in the system. The possible values are:
Configurations
This register has no configuration options.
Usage constraints
Accessing the CPUECTLR_EL1
The CPU Extended Control Register can be written only when the system is idle. Arm
recommends that you write to this register after a powerup reset, before the MMU is
enabled.
This register can be read using MRS with the following syntax:
MRS <Xt>,<systemreg>
This register can be written using MSR with the following syntax:
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 150 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not
possible.
Traps and enables
For a description of the prioritization of any generated exceptions, see Synchronous exception
prioritization in the Arm® Architecture Reference Manual for A-profile architecture for exceptions
taken to AArch64 state.
63 0
Reserved
Reserved, [63:0]
Configurations
CPUPCR_EL3 is only accessible in Secure state.
Usage constraints
Accessing the CPUPCR_EL3
The CPUPCR_EL3 can be written only when the system is idle. Arm recommends that you
write to this register after a powerup reset, before the MMU is enabled.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 151 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Writing to this register might cause UNPREDICTABLE behaviors. Therefore, Arm strongly
recommends that you do not modify this register unless directed by Arm.
This register can be read with the MRS instruction using the following syntax:
MRS <Xt>,<systemreg>
This register can be written with the MSR instruction using the following syntax:
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not
possible.
Traps and enables
For a description of the prioritization of any generated exceptions, see Synchronous exception
prioritization in the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 152 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 0
Reserved
Reserved, [63:0]
Configurations
CPUPMR_EL3 is only accessible in Secure state.
Usage constraints
Accessing the CPUPMR_EL3
The CPUPMR_EL3 can be written only when the system is idle. Arm recommends that you
write to this register after a powerup reset, before the MMU is enabled.
Writing to this register might cause UNPREDICTABLE behaviors. Therefore, Arm strongly
recommends that you do not modify this register unless directed by Arm.
This register can be read with the MRS instruction using the following syntax:
MRS <Xt>,<systemreg>
This register can be written with the MSR instruction using the following syntax:
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 153 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not
possible.
Traps and enables
For a description of the prioritization of any generated exceptions, see Synchronous exception
prioritization in the Arm® Architecture Reference Manual for A-profile architecture.
63 0
Reserved
Reserved, [63:0]
Configurations
CPUPOR_EL3 is only accessible in Secure state.
Usage constraints
Accessing the CPUPOR_EL3
The CPUPOR_EL3 can be written only when the system is idle. Arm recommends that you
write to this register after a powerup reset, before the MMU is enabled.
Writing to this register might cause UNPREDICTABLE behaviors. Therefore, Arm strongly
recommends that you do not modify this register unless directed by Arm.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 154 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
This register can be read with the MRS instruction using the following syntax:
MRS <Xt>,<systemreg>
This register can be written with the MSR instruction using the following syntax:
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not
possible.
Traps and enables
For a description of the prioritization of any generated exceptions, see Synchronous exception
prioritization in the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 155 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 0
Reserved
Reserved, [63:0]
Configurations
CPUPSELR_EL3 is only accessible in Secure state.
Usage constraints
Accessing the CPUPSELR_EL3
The CPUPSELR_EL3 can be written only when the system is idle. Arm recommends that you
write to this register after a powerup reset, before the MMU is enabled.
Writing to this register might cause UNPREDICTABLE behaviors. Therefore, Arm strongly
recommends that you do not modify this register unless directed by Arm.
This register can be read with the MRS instruction using the following syntax:
MRS <Xt>,<systemreg>
This register can be written with the MSR instruction using the following syntax:
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 156 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not
possible.
Traps and enables
For a description of the prioritization of any generated exceptions, see Synchronous exception
prioritization in the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 10 9 7 6 4 3 1 0
Reserved
WFE_RET_CTRL
WFI_RET_CTRL
CORE_PWRDN_EN
RES0
Reserved, [63:32]
Reserved.
RES0, [31:10]
RES0 Reserved.
WFE_RET_CTRL, [9:7]
CPU WFE retention control:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 157 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
000 Disable the retention circuit. This is the default value, see Table
13-45: CPUPWRCTLR Retention Control Field on page 158 for
more retention control options.
WFI_RET_CTRL, [6:4]
CPU WFI retention control:
000 Disable the retention circuit. This is the default value, see Table
13-45: CPUPWRCTLR Retention Control Field on page 158 for
more retention control options.
RES0, [3:1]
RES0 Reserved.
CORE_PWRDN_EN, [0]
Indicates to the power controller using PACTIVE if the core wants to power down when it
enters WFI state.
Configurations
There are no configuration notes.
Usage constraints
Accessing the CPUPWRCTLR_EL1
This register can be read using MRS with the following syntax:
MRS <Xt>,<systemreg>
3
The number of system counter ticks required before the core signals retention readiness on PACTIVE to the power
controller. The core does not accept a retention entry request until this time.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 158 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
This register can be written using MSR with the following syntax:
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not
possible.
Traps and enables
For a description of the prioritization of any generated exceptions, see Exception priority order
in the Arm® Architecture Reference Manual for A-profile architecture for exceptions that are
taken to AArch32 state, and see Synchronous exception prioritization for exceptions that are
taken to AArch64 state.
Write-Access to this register from EL1 or EL2 depends on the value of bit[7] of ACTLR_EL2
and ACTLR_EL3.
For details of the CCSIDR_EL1, see 13.23 CCSIDR_EL1, Cache Size ID Register, EL1 on page
129.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 159 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 4 3 1 0
Reserved Level
InD
RES0
Reserved, [63:32]
Reserved.
RES0, [31:4]
RES0 Reserved.
Level, [3:1]
Cache level of required cache:
000 L1.
001 L2.
010 L3, if present.
The combinations of Level and InD for 0100 to 1111 are reserved.
InD, [0]
Instruction not Data bit:
The combinations of Level and InD for 0100 to 1111 are reserved.
Configurations
If a cache level is missing but CSSELR_EL1 selects this level, then a CCSIDR_EL1 read returns
an UNKNOWN value.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 160 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 30 29 28 27 24 23 20 19 16 15 1413 4 3 0
IDC
RES1
RES0
Reserved, [63:32]
Reserved.
RES1, [31]
RES1 Reserved.
RES0, [30:29]
RES0 Reserved.
IDC, [28]
Data cache clean requirements for instruction to data coherence:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 161 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
CWG, [27:24]
Cache write-back granule. Log2 of the number of words of the maximum size of memory
that can be overwritten as a result of the eviction of a cache entry that has had a memory
location in it modified:
ERG, [23:20]
Exclusives Reservation Granule. Log2 of the number of words of the maximum size of the
reservation granule that has been implemented for the Load-Exclusive and Store-Exclusive
instructions:
DminLine, [19:16]
Log2 of the number of words in the smallest cache line of all the data and unified caches that
the core controls:
L1Ip, [15:14]
Instruction cache policy. Indicates the indexing and tagging policy for the L1 instruction
cache:
RES0, [13:4]
RES0 Reserved.
IminLine, [3:0]
Log2 of the number of words in the smallest cache line of all the instruction caches that the
core controls.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 162 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 5 4 3 0
BlockSize
DZP
RES0
RES0, [63:5]
RES0 Reserved.
BlockSize, [3:0]
Log2 of the block size in words:
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 30 25 24 23 13 12 10 9 8 6 5 0
A AET DFSC
IDS EA
RES0
RES0, [63:32]
RES0 Reserved.
A, [31]
Set to 1 when ESB defers an asynchronous SError interrupt. If the implementation does not
include any synchronizable sources of SError interrupt, this bit is RES0.
RES0, [30:25]
RES0 Reserved.
IDS, [24]
Indicates the type of format the deferred SError interrupt uses. The value of this bit is:
RES0, [23:13]
RES0 Reserved.
AET, [12:10]
Asynchronous Error Type. Describes the state of the core after taking an asynchronous Data
Abort exception. The possible values are:
The recovery software must also examine any implemented fault records to
determine the location and extent of the error.
EA, [9]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 164 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
RES0, [8:6]
RES0 Reserved.
DFSC, [5:0]
Data Fault Status Code. The possible values of this field are:
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 16 15 0
NUM
res0
RES0, [63:16]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 165 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
NUM, [15:0]
Number of records that can be accessed through the Error Record System registers.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 1 0
SEL
RES0
RES0, [63:1]
RES0 Reserved.
SEL, [0]
Selects which error record should be accessed.
0 Select error record 0 containing errors from level 1 and level 2 RAMs
that are located on the Cortex®‑A76 core.
1 Select error record 1 containing errors from level 3 RAMs that are
located on the DynamIQ Shared Unit (DSU).
Configurations
There are no configuration notes.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 166 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
If ERRSELR_EL1.SEL==0, then ERXADDR_EL1 accesses the ERR0ADDR register of the core error
record. See 14.2 ERR0ADDR, Error Record Address Register on page 252.
If ERRSELR_EL1.SEL==0, then ERXCTLR_EL1 accesses the ERR0CTLR register of the core error
record. See 14.3 ERR0CTLR, Error Record Control Register on page 253.
If ERRSELR_EL1.SEL==1, then ERXCLTR_EL1 accesses the ERR1CTLR register of the DSU error
record. See the Arm® DynamIQ™ Shared Unit Technical Reference Manual.
If ERRSELR_EL1.SEL==0, then ERXFR_EL1 accesses the ERR0FR register of the core error record.
See 14.4 ERR0FR, Error Record Feature Register on page 255.
If ERRSELR_EL1.SEL==1, then ERXFR_EL1 accesses the ERR1FR register of the DynamIQ Shared
Unit (DSU) error record. See the Arm® DynamIQ™ Shared Unit Technical Reference Manual.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 167 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
If ERRSELR_EL1.SEL==0, then ERXMISC0_EL1 accesses the ERR0MISC0 register of the core error
record. See 14.5 ERR0MISC0, Error Record Miscellaneous Register 0 on page 257.
If ERRSELR_EL1.SEL==0, then ERXMISC1_EL1 accesses the ERR0MISC1 register of the core error
record. See 14.6 ERR0MISC1, Error Record Miscellaneous Register 1 on page 260.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 168 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
MRS <Xt>,<systemreg>
This register can be written using MSR with the following syntax:
MSR <Xt>,<systemreg>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
'n/a' Not accessible. Executing the PE at this Exception level is not permitted.
Traps and enables
For a description of the prioritization of any generated exceptions, see Exception priority order
in the Arm® Architecture Reference Manual for A-profile architecture for exceptions taken to
AArch32 state, and see Synchronous exception prioritization for exceptions taken to AArch64
state. Subject to these prioritization rules, the following traps and enables are applicable
when accessing this register.
ERXPFGCDN_EL1 is accessible at EL3 and can be accessible at EL1 and EL2 depending on
the value of bit[5] in ACTLR_EL2 and ACTLR_EL3. See 13.6 ACTLR_EL2, Auxiliary Control
Register, EL2 on page 106 and 13.7 ACTLR_EL3, Auxiliary Control Register, EL3 on page
109.
ERXPFGCDN_EL1 is UNDEFINED at EL0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 169 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
MRS <Xt>,<systemreg>
This register can be written using MSR with the following syntax:
MSR <Xt>,<systemreg>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not
possible.
Traps and enables
For a description of the prioritization of any generated exceptions, see Exception priority order
in the Arm® Architecture Reference Manual for A-profile architecture for exceptions taken to
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 170 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
AArch32 state, and see Synchronous exception prioritization for exceptions taken to AArch64
state. Subject to these prioritization rules, the following traps and enables are applicable
when accessing this register.
ERXPFGCTL_EL1 is accessible at EL3 and can be accessible at EL1 and EL2 depending on
the value of bit[5] in ACTLR_EL2 and ACTLR_EL3. See 13.6 ACTLR_EL2, Auxiliary Control
Register, EL2 on page 106 and 13.7 ACTLR_EL3, Auxiliary Control Register, EL3 on page
109.
ERXPFGCTL_EL1 is UNDEFINED at EL0.
If ERRSELR_EL1.SEL==0, then ERXPFGF_EL1 accesses the ERR0PFGF register of the core error
record. See 14.9 ERR0PFGF, Error Pseudo Fault Generation Feature Register on page 263.
MRS <Xt>,<systemreg>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not
possible.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 171 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
If ERXPFGR_EL1 is accessible at EL1 and HCR_EL2.TERR == 1, then direct reads and writes
of ERXPFGR_EL1 at Non-secure EL1 generate a Trap exception to EL2.
If ERXPFGR_EL1 is accessible at EL1 or EL2 and SCR_EL3.TERR == 1, then direct reads and
writes of ERXPFGR_EL1 at EL1 or EL2 generate a Trap exception to EL3.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 172 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 26 25 24 0
Reserved EC ISS
IL
Reserved, [63:32]
Reserved.
EC, [31:26]
Exception Class. Indicates the reason for the exception that this register holds information
about.
IL, [25]
Instruction Length for synchronous exceptions. The possible values are:
0 16-bit.
1 32-bit.
This field is 1 for the SError interrupt, instruction aborts, misaligned PC, Stack pointer
misalignment, Data Aborts for which the ISV bit is 0, exceptions caused by an illegal
instruction set state, and exceptions using the 0x00 Exception Class.
ISS, [24:0]
Syndrome information.
See 13.108 VSESR_EL2, Virtual SError Exception Syndrome Register on page 249.
Configurations
There are no configuration notes.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 173 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual for A-profile architecture.
63 32 31 26 25 24 0
Reserved EC ISS
IL
Reserved, [63:32]
Reserved.
EC, [31:26]
Exception Class. Indicates the reason for the exception that this register holds information
about. See the Arm® Architecture Reference Manual for A-profile architecture for more
information.
IL, [25]
Instruction Length for synchronous exceptions. The possible values are:
0 16-bit.
1 32-bit.
See the Arm® Architecture Reference Manual for A-profile architecture for more information.
ISS, [24:0]
Syndrome information. See the Arm® Architecture Reference Manual for A-profile architecture
for more information.
See 13.108 VSESR_EL2, Virtual SError Exception Syndrome Register on page 249.
Configurations
RW fields in this register reset to architecturally UNKNOWN values.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 26 25 24 0
Reserved EC ISS
IL
Reserved, [63:32]
Reserved.
EC, [31:26]
Exception Class. Indicates the reason for the exception that this register holds information
about.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 175 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
IL, [25]
Instruction Length for synchronous exceptions. The possible values are:
0 16-bit.
1 32-bit.
This field is 1 for the SError interrupt, instruction aborts, misaligned PC, Stack pointer
misalignment, data aborts for which the ISV bit is 0, exceptions caused by an illegal
instruction set state, and exceptions using the 0x0 Exception Class.
ISS, [24:0]
Syndrome information.
See 13.108 VSESR_EL2, Virtual SError Exception Syndrome Register on page 249.
Configurations
RW fields in this register reset to architecturally UNKNOWN values.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 176 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 0
Reserved
RES0
Reserved, [63:32]
Reserved.
RES0, [31:0]
Reserved, RES0.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 177 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MIOCNCE VM
SWIO
TEA
PTW
TERR
FMO
TLOR IMO
E2H AMO
ID VF
VI
CD
VSE
RW
FB
TRVM
BSU
HCD
DC
TDZ TWI
TGE TWE
TVM TID0
TTLB TID1
TPU TID2
TPC TID3
TSW TSC
RES0 TACR TIDCP
RES1
RES0, [63:39]
RES0 Reserved.
MIOCNCE, [38]
Mismatched Inner/Outer Cacheable Non-Coherency Enable, for the Non-secure EL1 and
EL0 translation regime.
RW, [31]
RES1 Reserved.
HCD, [29]
RES0 Reserved.
TGE, [27]
Traps general exceptions. If this bit is set, and SCR_EL3.NS is set, then:
• All exceptions that would be routed to EL1 are routed to EL2.
• The SCTLR_EL1.M bit is treated as 0 regardless of its actual state, other than for reading
the bit.
• The HCR_EL2.FMO, IMO, and AMO bits are treated as 1 regardless of their actual state,
other than for reading the bits.
• All virtual interrupts are disabled.
• Any IMPLEMENTATION DEFINED mechanisms for signaling virtual interrupts are disabled.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 178 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
When the value of SCR_EL3.NS is 0, the core behaves as if this field is 0 for all purposes
other than a direct read or Write-Access of HCR_EL2.
TID3, [18]
Traps ID group 3 registers. The possible values are:
See the Arm® Architecture Reference Manual for A-profile architecture for the registers covered
by this setting.
Configurations
If EL2 is not implemented, this register is RES0 from EL3
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
res0
RES0, [63:32]
RES0
Reserved.
CTX_CMPs, [31:28]
Number of breakpoints that are context-aware, minus 1. These are the highest numbered
breakpoints:
0x1
Two breakpoints are context-aware.
RES0, [27:24]
RES0
Reserved.
WRPs, [23:20]
The number of watchpoints minus 1:
0x3
Four watchpoints.
RES0, [19:16]
RES0
Reserved.
BRPs, [15:12]
The number of breakpoints minus 1:
0x5
Six breakpoints.
PMUVer, [11:8]
Performance Monitors Extension version.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 180 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
0x4
Performance monitor System registers implemented, PMUv3.
TraceVer, [7:4]
Trace extension:
0x0
Trace System registers not implemented.
DebugVer, [3:0]
Debug architecture version:
0x8
Arm®v8‑A debug architecture implemented.
Configurations
ID_AA64DFR0_EL1 is architecturally mapped to external register EDDFR.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
The optional Cryptographic Extension is not included in the base product of the core. Arm requires
licensees to have contractual rights to obtain the Cryptographic Extension.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 181 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 48 47 44 43 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
RES0
RES0, [63:48]
RES0 Reserved.
DP, [47:44]
Indicates whether Dot Product support instructions are implemented.
RES0, [43:32]
RES0 Reserved.
RDM, [31:28]
Indicates whether SQRDMLAH and SQRDMLSH instructions in AArch64 are implemented.
RES0, [27:24]
RES0 Reserved.
Atomic, [23:20]
Indicates whether Atomic instructions in AArch64 are implemented. The value is:
0x2 LDADD, LDCLR, LDEOR, LDSET, LDSMAX, LDSMIN, LDUMAX, LDUMIN, CAS, CASP,
and SWP instructions are implemented.
CRC32, [19:16]
Indicates whether CRC32 instructions are implemented. The value is:
SHA2, [15:12]
Indicates whether SHA2 instructions are implemented. The possible values are:
0x0 No SHA2 instructions are implemented. This is the value if the core
implementation does not include the Cryptographic Extension.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 182 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
SHA1, [11:8]
Indicates whether SHA1 instructions are implemented. The possible values are:
AES, [7:4]
Indicates whether AES instructions are implemented. The possible values are:
RES0, [3:0]
RES0 Reserved.
Configurations
ID_AA64ISAR0_EL1 is architecturally mapped to external register ID_AA64ISAR0.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 183 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 24 23 20 19 4 3 0
LRCPC DC CVAP
res0
RES0, [63:24]
RES0
Reserved.
LRCPC, [23:20]
Indicates whether load-acquire (LDA) instructions are implemented for a Release Consistent
core consistent RCPC model.
RES0, [19:4]
RES0
Reserved.
DC CVAP, [3:0]
Indicates whether data cache, Clean to the Point of Persistence (DC CVAP) instructions are
implemented.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 184 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
res0
RES0, [63:32]
RES0
Reserved.
TGran4, [31:28]
Support for 4KB memory translation granule size:
0x0
4KB granule supported.
TGran64, [27:24]
Support for 64KB memory translation granule size:
0x0
64KB granule supported.
TGran16, [23:20]
Support for 16KB memory translation granule size:
0x1
Indicates that the 16KB granule is supported.
BigEndEL0, [19:16]
Mixed-endian support only at EL0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 185 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
0x0
No mixed-endian support at EL0. The SCTLR_EL1.E0E bit has a fixed value.
SNSMem, [15:12]
Secure versus Non-secure Memory distinction:
0x1
Supports a distinction between Secure and Non-secure Memory.
BigEnd, [11:8]
Mixed-endian configuration support:
0x1
Mixed-endian support. The SCTLR_ELx.EE and SCTLR_EL1.E0E bits can be configured.
ASIDBits, [7:4]
Number of ASID bits:
0x2
16 bits.
PARange, [3:0]
Physical address range supported:
0x2
40 bits, 1TB.
The supported Physical Address Range is 40-bits. Other cores in the DynamIQ Shared
Unit (DSU) may support a different Physical Address Range.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
RES0
RES0, [63:32]
RES0
Reserved.
XNX, [31:28]
Indicates whether provision of EL0 vs EL1 execute-never control at stage 2 is supported.
0x1
EL0/EL1 execute control distinction at stage 2 bit is supported. All other values are
reserved.
SpecSEI, [27:24]
Describes whether the PE can generate SError interrupt exceptions from Speculative reads of
memory, including Speculative instruction fetches.
0x0
The PE never generates an SError interrupt due to an External abort on a Speculative
read.
PAN, [23:20]
Privileged Access Never. Indicates support for the PAN bit in PSTATE, SPSR_EL1, SPSR_EL2,
SPSR_EL3, and DSPSR_EL0.
0x2
PAN supported and AT S1E1RP and AT S1E1WP instructions supported.
LO, [19:16]
Indicates support for LORegions.
0x1
LORegions are supported.
HPDS, [15:12]
Presence of Hierarchical Disables. Enables an operating system or hypervisor to hand over
up to 4 bits of the last level translation table descriptor (bits[62:59] of the translation table
entry) for use by hardware for IMPLEMENTATION DEFINED usage. The value is:
0x2
Hierarchical Permission Disables and Hardware allocation of bits[62:59] supported.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 187 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
VH, [11:8]
Indicates whether Virtualization Host Extensions are supported.
0x1
Virtualization Host Extensions supported.
VMIDBits, [7:4]
Indicates the number of VMID bits supported.
0x2
16 bits are supported.
HAFDBS, [3:0]
Indicates the support for hardware updates to Access flag and dirty state in translation tables.
0x2
Hardware update of both the Access flag and dirty state is supported in hardware.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 20 19 16 15 12 11 8 7 4 3 0
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 188 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
RES0, [63:20]
RES0
Reserved.
VARange, [19:16]
Indicates support for a larger virtual address. The value is:
0x0
VMSAv8-64 supports 48-bit virtual addresses.
IESB, [15:12]
Indicates whether an implicit Error Synchronization Barrier has been inserted. The value is:
0x1
SCTLR_ELx.IESB implicit ErrorSynchronizationBarrier control implemented.
LSM, [11:8]
Indicates whether LDM and STM ordering control bits are supported. The value is:
0x0
LSMAOE and nTLSMD bit not supported.
UAO, [7:4]
Indicates the presence of the User Access Override (UAO). The value is:
0x1
UAO is supported.
CnP, [3:0]
Common not Private. Indicates whether a TLB entry is pointed at a translation table base
register that is a member of a common set. The value is:
0x1
CnP bit is supported.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 189 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
The optional Advanced SIMD and floating-point support is not included in the base product of the
core. Arm requires licensees to have contractual rights to obtain the Advanced SIMD and floating-
point support.
63 60 59 56 55 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
EL3 EL2 EL1 EL0
CSV3 CSV2 RAS GIC AdvSIMD FP
handling handling handling handling
RES0
CSV3, [63:60]
0x1
Data that are loaded under speculation with a permission or domain fault cannot be
used to form an address or generate condition codes to be used by instructions newer
than the load in the speculative sequence. This is the reset value.
RAS, [31:28]
RAS extension version. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 190 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
0x1
Version 1 of the RAS extension is present.
GIC, [27:24]
GIC CPU interface:
0x0
GIC CPU interface is disabled, GICCDISABLE is HIGH, or not implemented.
0x1
GIC CPU interface is implemented and enabled, GICCDISABLE is LOW. GICv4 is
supported.
AdvSIMD, [23:20]
Advanced SIMD. The possible values are:
0x1
Advanced SIMD, including half-precision support, is implemented.
FP, [19:16]
Floating-point. The possible values are:
0x1
Floating-point, including half-precision support, is implemented.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 191 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Configurations
ID_AA64PFR0_EL1 is architecturally mapped to External register EDPFR.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 8 7 4 3 0
SSBS
RES0
RES0, [63:8]
RES0
Reserved.
SSBS, [7:4]
PSTATE.SSBS. The possible values are:
0x1
AArch64 provides the PSTATE.SSBS mechanism to mark regions that are Speculative
Store Bypassing Safe (SSBS), but does not implement the MSR/MRS instructions to
directly read and write the PSTATE.SSBS field.
RES0, [3:0]
RES0
Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 192 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Configurations
ID_AA64PFR1_EL1 is architecturally mapped to External register EDPFR.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 0
Reserved
RES0
Reserved, [63:32]
Reserved.
RES0, [31:0]
Reserved, RES0.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 193 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
RES0
Reserved, [63:32]
Reserved.
RES0, [31:28]
RES0 Reserved.
PerfMon, [27:24]
Indicates support for performance monitor model:
MProfDbg, [23:20]
Indicates support for memory-mapped debug model for M profile cores:
MMapTrc, [19:16]
Indicates support for memory-mapped trace model:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 194 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
In the Trace registers, the ETMIDR gives more information about the implementation.
CopTrc, [15:12]
Indicates support for coprocessor-based trace model:
RES0, [11:8]
RES0 Reserved.
CopSDbg, [7:4]
Indicates support for coprocessor-based Secure debug model:
CopDbg, [3:0]
Indicates support for coprocessor-based debug model:
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 195 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
RES0
Reserved, [63:32]
Reserved.
RES0, [31:28]
RES0 Reserved.
Divide, [27:24]
Indicates the implemented Divide instructions:
0x2
• SDIV and UDIV in the T32 instruction set.
• SDIV and UDIV in the A32 instruction set.
Debug, [23:20]
Indicates the implemented Debug instructions:
0x1 BKPT.
Coproc, [19:16]
Indicates the implemented coprocessor instructions:
CmpBranch, [15:12]
Indicates the implemented combined Compare and Branch instructions in the T32 instruction
set:
Bitfield, [11:8]
Indicates the implemented bit field instructions:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 196 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
BitCount, [7:4]
Indicates the implemented Bit Counting instructions:
0x1 CLZ.
Swap, [3:0]
Indicates the implemented Swap instructions in the A32 instruction set:
Configurations
In an AArch64-only implementation, this register is UNKNOWN.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 197 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
Reserved, [63:32]
Reserved.
Jazelle, [31:28]
Indicates the implemented Jazelle state instructions:
0x1 Adds the BXJ instruction, and the J bit in the PSR.
Interwork, [27:24]
Indicates the implemented interworking instructions:
0x3
• The BX instruction, and the T bit in the PSR.
• The BLX instruction. The PC loads have BX-like behavior.
• Data-processing instructions in the A32 instruction set with the PC as the
destination and the S bit clear, have BX-like behavior.
Immediate, [23:20]
Indicates the implemented data-processing instructions with long immediates:
0x1
• The MOVT instruction.
• The MOV instruction encodings with zero-extended 16-bit immediates.
• The T32 ADD and SUB instruction encodings with zero-extended 12-bit immediates,
and other ADD, ADR, and SUB encodings cross-referenced by the pseudocode for
those encodings.
IfThen, [19:16]
Indicates the implemented If-Then instructions in the T32 instruction set:
Extend, [15:12]
Indicates the implemented Extend instructions:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 198 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
0x2
• The SXTB, SXTH, UXTB, and UXTH instructions.
• The SXTB16, SXTAB, SXTAB16, SXTAH, UXTB16, UXTAB, UXTAB16, and UXTAH instructions.
Except_AR, [11:8]
Indicates the implemented A profile exception-handling instructions:
0x1 The SRS and RFE instructions, and the A profile forms of the CPS
instruction.
Except, [7:4]
Indicates the implemented exception-handling instructions in the A32 instruction set:
0x1 The LDM (exception return), LDM (user registers), and STM (user
registers) instruction versions.
Endian, [3:0]
Indicates the implemented Endian instructions:
Configurations
In an AArch64-only implementation, this register is UNKNOWN.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 199 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
MultiAccessInt
Reserved, [63:32]
Reserved.
Reversal, [31:28]
Indicates the implemented Reversal instructions:
PSR_AR, [27:24]
Indicates the implemented A and R profile instructions to manipulate the PSR:
0x1 The MRS and MSR instructions, and the exception return forms of data-
processing instructions.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 200 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
MultS, [19:16]
Indicates the implemented advanced signed Multiply instructions.
0x3
• The SMULL and SMLAL instructions.
• The SMLABB, SMLABT, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLATB, SMLATT, SMLAWB,
SMLAWT, SMULBB, SMULBT, SMULTB, SMULTT, SMULWB, SMULWT instructions, and the Q bit
in the PSRs.
• The SMLAD, SMLADX, SMLALD, SMLALDX, SMLSD, SMLSDX, SMLSLD, SMLSLDX, SMMLA, SMMLAR,
SMMLS, SMMLSR, SMMUL, SMMULR, SMUAD, SMUADX, SMUSD, and SMUSDX instructions.
Mult, [15:12]
Indicates the implemented additional Multiply instructions:
MultiAccessInt, [11:8]
Indicates the support for interruptible multi-access instructions:
0x0 No support. This means that the LDM and STM instructions are not
interruptible.
MemHint, [7:4]
Indicates the implemented memory hint instructions:
LoadStore, [3:0]
Indicates the implemented additional load/store instructions:
The Load Acquire (LDAB, LDAH, LDA, LDAEXB, LDAEXH, LDAEX, and LDAEXD)
and Store Release (STLB, STLH, STL, STLEXB, STLEXH, STLEX, and
STLEXD) instructions.
Configurations
In an AArch64-only implementation, this register is UNKNOWN.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 201 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
• 13.76 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1 on page 206.
• 13.77 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1 on page 208.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
Reserved, [63:32]
Reserved.
T32EE, [31:28]
Indicates the implemented T32EE instructions:
TrueNOP, [27:24]
Indicates support for True NOP instructions:
0x1 True NOP instructions in both the A32 and T32 instruction sets, and
additional NOP-compatible hints.
T32Copy, [23:20]
Indicates the support for T32 non flag-setting MOV instructions:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 202 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
0x1 Support for T32 instruction set encoding T1 of the MOV (register)
instruction, copying from a low register to a low register.
TabBranch, [19:16]
Indicates the implemented Table Branch instructions in the T32 instruction set.
SynchPrim, [15:12]
Indicates the implemented synchronization primitive instructions:
0x2
• The LDREX and STREX instructions.
• The CLREX, LDREXB, STREXB, and STREXH instructions.
• The LDREXD and STREXD instructions.
SVC, [11:8]
Indicates the implemented SVC instructions:
SIMD, [7:4]
Indicates the implemented Single Instruction Multiple Data (SIMD) instructions.
0x3
• The SSAT and USAT instructions, and the Q bit in the PSRs.
• The PKHBT, PKHTB, QADD16, QADD8, QASX, QSUB16, QSUB8, QSAX, SADD16, SADD8, SASX,
SEL, SHADD16, SHADD8, SHASX, SHSUB16, SHSUB8, SHSAX, SSAT16, SSUB16, SSUB8, SSAX,
SXTAB16, SXTB16, UADD16, UADD8, UASX, UHADD16, UHADD8, UHASX, UHSUB16, UHSUB8,
UHSAX, UQADD16, UQADD8, UQASX, UQSUB16, UQSUB8, UQSAX, USAD8, USADA8, USAT16,
USUB16, USUB8, USAX, UXTAB16, UXTB16 instructions, and the GE[3:0] bits in the PSRs.
The SIMD field relates only to implemented instructions that perform SIMD operations
on the general-purpose registers. In an implementation that supports Advanced SIMD
and floating-point instructions, MVFR0, MVFR1, and MVFR2 give information about
the implemented Advanced SIMD instructions.
Saturate, [3:0]
Indicates the implemented Saturate instructions:
Configurations
In an AArch64-only implementation, this register is UNKNOWN.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 203 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
• 13.71 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1 on page 195.
• 13.72 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1 on page 197.
• 13.73 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1 on page 199.
• 13.75 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1 on page 204.
• 13.76 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1 on page 206.
• 13.77 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1 on page 208.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
SynchPrim_frac
Reserved, [63:32]
Reserved.
SWP_frac, [31:28]
Indicates support for the memory system locking the bus for SWP or SWPB instructions:
PSR_M, [27:24]
Indicates the implemented M profile instructions to modify the PSRs:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 204 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
SynchPrim_frac, [23:20]
This field is used with the ID_ISAR3.SynchPrim field to indicate the implemented
synchronization primitive instructions:
0x0
• The LDREX and STREX instructions.
• The CLREX, LDREXB, LDREXH, STREXB, and STREXH instructions.
• The LDREXD and STREXD instructions.
Barrier, [19:16]
Indicates the supported Barrier instructions in the A32 and T32 instruction sets:
SMC, [15:12]
Indicates the implemented SMC instructions:
WriteBack, [11:8]
Indicates the support for Write-Back addressing modes:
WithShifts, [7:4]
Indicates the support for instructions with shifts.
0x4
• Support for shifts of loads and stores over the range LSL 0-3.
• Support for other constant shift options, both on load/store and other instructions.
• Support for register-controlled shift options.
Unpriv, [3:0]
Indicates the implemented unprivileged instructions.
0x2
• The LDRBT, LDRT, STRBT, and STRT instructions.
• The LDRHT, LDRSBT, LDRSHT, and STRHT instructions.
Configurations
In an AArch64-only implementation, this register is UNKNOWN.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 205 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
RES0
Reserved, [63:32]
Reserved.
RES0, [31:28]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 206 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
RDM, [27:24]
VQRDMLAH and VQRDMLSH instructions in AArch32. The value is:
RES0, [23:20]
RES0 Reserved.
CRC32, [19:16]
Indicates whether CRC32 instructions are implemented in AArch32 state. The value is:
SHA2, [15:12]
Indicates whether SHA2 instructions are implemented in AArch32 state. The possible values
are:
SHA1, [11:8]
Indicates whether SHA1 instructions are implemented in AArch32 state. The possible values
are:
AES, [7:4]
Indicates whether AES instructions are implemented in AArch32 state. The possible values
are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 207 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
SEVL, [3:0]
Indicates whether the SEVL instruction is implemented:
Configurations
ID_ISAR5 must be interpreted with ID_ISAR0_EL1, ID_ISAR1_EL1, ID_ISAR2_EL1,
ID_ISAR3_EL1, ID_ISAR4_EL1, and ID_ISAR6_EL1. See:
• 13.71 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1 on page 195.
• 13.72 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1 on page 197.
• 13.73 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1 on page 199.
• 13.74 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1 on page 202.
• 13.75 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1 on page 204.
• 13.77 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1 on page 208.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 8 7 4 3 0
Reserved DP
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 208 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Reserved, [63:32]
Reserved.
RES0, [31:8]
RES0 Reserved.
DP, [7:4]
UDOT and SDOT instructions. The value is:
RES0, [3:0]
RES0 Reserved.
Configurations
There is one copy of this register that is used in both Secure and Non-secure states.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 209 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
Reserved, [63:32]
Reserved.
InnerShr, [31:28]
Indicates the innermost Shareability domain implemented:
FCSE, [27:24]
Indicates support for Fast Context Switch Extension (FCSE):
AuxReg, [23:20]
Indicates support for Auxiliary registers:
0x2 Support for Auxiliary Fault Status Registers (AIFSR and ADFSR) and
Auxiliary Control Register.
TCM, [19:16]
Indicates support for TCMs and associated DMAs:
ShareLvl, [15:12]
Indicates the number of Shareability levels implemented:
OuterShr, [11:8]
Indicates the outermost Shareability domain implemented:
PMSA, [7:4]
Indicates support for a Protected Memory System Architecture (PMSA):
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 210 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
VMSA, [3:0]
Indicates support for a Virtual Memory System Architecture (VMSA).
Configurations
Must be interpreted with ID_MMFR1_EL1, ID_MMFR2_EL1, ID_MMFR3_EL1, and
ID_MMFR4_EL1. See:
• 13.79 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1 on page 211.
• 13.80 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1 on page 213.
• 13.81 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1 on page 215.
• 13.82 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1 on page 217.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 211 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Reserved, [63:32]
Reserved.
BPred, [31:28]
Indicates branch predictor management requirements:
L1TstCln, [27:24]
Indicates the supported L1 data cache test and clean operations, for Harvard or unified cache
implementation:
L1Uni, [23:20]
Indicates the supported entire L1 cache maintenance operations, for a unified cache
implementation:
L1Hvd, [19:16]
Indicates the supported entire L1 cache maintenance operations, for a Harvard cache
implementation:
L1UniSW, [15:12]
Indicates the supported L1 cache line maintenance operations by set/way, for a unified cache
implementation:
L1HvdSW, [11:8]
Indicates the supported L1 cache line maintenance operations by set/way, for a Harvard
cache implementation:
L1UniVA, [7:4]
Indicates the supported L1 cache line maintenance operations by MVA, for a unified cache
implementation:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 212 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
L1HvdVA, [3:0]
Indicates the supported L1 cache line maintenance operations by MVA, for a Harvard cache
implementation:
Configurations
Must be interpreted with ID_MMFR0_EL1, ID_MMFR2_EL1, ID_MMFR3_EL1, and
ID_MMFR4_EL1. See:
• 13.78 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1 on page 209.
• 13.80 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1 on page 213.
• 13.81 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1 on page 215.
• 13.82 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1 on page 217.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
Reserved, [63:32]
Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 213 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
HWAccFlg, [31:28]
Hardware access flag. Indicates support for a hardware access flag, as part of the VMSAv7
implementation:
WFIStall, [27:24]
Wait For Interrupt Stall. Indicates the support for Wait For Interrupt (WFI) stalling:
MemBarr, [23:20]
Memory Barrier. Indicates the supported CP15 memory barrier operations.
UniTLB, [19:16]
Unified TLB. Indicates the supported TLB maintenance operations, for a unified TLB
implementation.
HvdTLB, [15:12]
Harvard TLB. Indicates the supported TLB maintenance operations, for a Harvard TLB
implementation:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 214 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
LL1HvdRng, [11:8]
L1 Harvard cache Range. Indicates the supported L1 cache maintenance range operations,
for a Harvard cache implementation:
L1HvdBG, [7:4]
L1 Harvard cache Background fetch. Indicates the supported L1 cache background prefetch
operations, for a Harvard cache implementation:
L1HvdFG, [3:0]
L1 Harvard cache Foreground fetch. Indicates the supported L1 cache foreground prefetch
operations, for a Harvard cache implementation:
Configurations
Must be interpreted with ID_MMFR0_EL1, ID_MMFR1_EL1, ID_MMFR3_EL1, and
ID_MMFR4_EL1. See:
• 13.78 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1 on page 209.
• 13.79 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1 on page 211.
• 13.81 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1 on page 215.
• 13.82 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1 on page 217.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 215 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
Reserved, [63:32]
Reserved.
Supersec, [31:28]
Supersections. Indicates support for supersections:
CMemSz, [27:24]
Cached memory size. Indicates the size of physical memory that is supported by the core
caches:
CohWalk, [23:20]
Coherent walk. Indicates whether translation table updates require a clean to the point of
unification:
0x1 Updates to the translation tables do not require a clean to the point
of unification to ensure visibility by subsequent translation table
walks.
PAN, [19:16]
Privileged Access Never.
0x2
PAN supported and new ATS1CPRP and ATS1CPWP instructions supported.
MaintBcst, [15:12]
Maintenance broadcast. Indicates whether cache, TLB, and branch predictor operations are
broadcast:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 216 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
BPMaint, [11:8]
Branch predictor maintenance. Indicates the supported branch predictor maintenance
operations.
CMaintSW, [7:4]
Cache maintenance by set/way. Indicates the supported cache maintenance operations by
set/way.
CMaintVA, [3:0]
Cache maintenance by Virtual Address (VA). Indicates the supported cache maintenance
operations by VA.
Configurations
Must be interpreted with ID_MMFR0_EL1, ID_MMFR1_EL1, ID_MMFR2_EL1, and
ID_MMFR4_EL1. See:
• 13.78 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1 on page 209.
• 13.79 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1 on page 211.
• 13.80 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1 on page 213.
• 13.82 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1 on page 217.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 217 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 24 23 20 19 16 15 12 11 8 7 4 3 0
Reserved, [63:32]
Reserved.
RAZ, [31:24]
Read-As-Zero.
LSM, [23:20]
Load/Store Multiple. Indicates whether adjacent loads or stores can be combined. The value
is:
HPDS, [19:16]
Presence of Hierarchical Disables. Enables an operating system or hypervisor to hand over
up to 4 bits of the last level translation table descriptor (bits[62:59] of the translation table
entry) for use by hardware for IMPLEMENTATION DEFINED usage. The value is:
CNP, [15:12]
Common Not Private. Indicates support for selective sharing of TLB entries across multiple
PEs. The value is:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 218 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
XNX, [11:8]
Execute Never. Indicates whether the stage 2 translation tables allows the stage 2 control of
whether memory is executable at EL1 independent of whether memory is executable at EL0.
The value is:
AC2, [7:4]
Indicates the extension of the ACTLR and HACTLR registers using ACTLR2 and HACTLR2.
The value is:
SpecSEI, [3:0]
Describes whether the core can generate SError interrupt exceptions from Speculative reads
of memory, including Speculative instruction fetches. The value is:
Configurations
There is one copy of this register that is used in both Secure and Non-secure states.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 219 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 28 27 20 19 16 15 12 11 8 7 4 3 0
RES0
Reserved, [63:32]
Reserved.
RAS, [31:28]
RAS extension version. The value is:
RES0, [27:20]
RES0 Reserved.
CSV2, [19:16]
0x0 This device does not disclose whether branch targets trained in one
context can affect speculative execution in a different context.
0x1 Branch targets trained in one context cannot affect speculative
execution in a different hardware described context. This is the reset
value.
State3, [15:12]
Indicates support for Thumb Execution Environment (T32EE) instruction set. This value is:
State2, [11:8]
Indicates support for Jazelle. This value is:
State1, [7:4]
Indicates support for T32 instruction set. This value is:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 220 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
State0, [3:0]
Indicates support for A32 instruction set. This value is:
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
Virtualization
Reserved, [63:32]
Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 221 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
0
GIC CPU interface is disabled, GICCDISABLE is HIGH, or not implemented.
1
GIC CPU interface is implemented and enabled, GICCDISABLE is LOW.
Virt_frac, [27:24]
0
No features from the Armv7 Virtualization Extensions are implemented.
Sec_frac, [23:20]
0
No features from the Armv7 Virtualization Extensions are implemented.
GenTimer, [19:16]
Generic Timer support:
1
Generic Timer supported.
Virtualization, [15:12]
Virtualization support:
0
Virtualization not implemented.
MProgMod, [11:8]
M profile programmers model support:
0
Not supported.
Security, [7:4]
Security support:
0
Security not implemented.
ProgMod, [3:0]
Indicates support for the standard programmers model for Armv4 and later.
Model must support User, FIQ, IRQ, Supervisor, Abort, Undefined, and System modes:
0
Not supported.
Configurations
There are no configuration notes.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 222 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 7 4 3 0
RES0
Reserved, [63:32]
Reserved.
RES0, [31:8]
RES0
Reserved.
SSBS, [7:4]
1
AArch32 provides the PSTATE.SSBS mechanism to mark regions that are Speculative
Store Bypassing Safe (SSBS).
CSV3, [3:0]
1
Data that are loaded under speculation with a permission or domain fault cannot be
used to form an address or generate condition codes to be used by instructions newer
than the load in the speculative sequence. This is the reset value.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 223 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Configurations
There are no configuration notes.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual for A-profile architecture.
63 4 3 2 1 0
DS
EN
RES0
RES0, [63:4]
Reserved, RES0.
DS, [3:2]
Descriptor Select. Number that selects the current LORegion descriptor that is accessed by
the LORSA_EL1, LOREA_EL1, and LORN_EL1 registers.
RES0, [1]
Reserved, RES0.
EN, [0]
Enable. The possible values are:
Configurations
RW fields in this register reset to architecturally UNKNOWN values.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 224 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 24 23 16 15 8 7 0
LD LR
RES0
RES0, [63:24]
Reserved, RES0.
LD, [23:16]
Number of LORegion descriptors supported by the implementation, expressed as binary 8-bit
number. The value is:
RES0, [15:8]
Reserved, RES0.
LR, [7:0]
Number of LORegions supported by the implementation, expressed as a binary 8-bit number.
The value is:
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 225 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 2 1 0
Num
RES0
RES0, [63:2]
Reserved, RES0.
Num, [1:0]
Indicates the LORegion number.
Configurations
RW fields in this register reset to architecturally UNKNOWN values.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 226 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 22 21 20 19 18 17 16 15 14 13 11 10 9 8 7 6 5 0
Reserved
Reserved, [63:32]
Reserved.
RES0, [31:22]
RES0 Reserved.
EPMAD, [21]
External debugger access to Performance Monitors registers disabled. This disables access to
these registers by an external debugger. The possible values are:
EDAD, [20]
External debugger access to breakpoint and watchpoint registers disabled. This disables
access to these registers by an external debugger. The possible values are:
SPME, [17]
Secure performance monitors enable. This enables event counting exceptions from Secure
state. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 227 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
SPD32, [15:14]
RES0
Reserved.
TDOSA, [10]
Trap accesses to the OS Debug system registers, OSLAR_EL1, OSLSR_EL1, OSDLR_EL1, and
DBGPRCR_EL1 OS.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 228 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 24 23 20 19 16 15 4 3 0
Reserved, [63:32]
Reserved.
Implementer, [31:24]
Indicates the implementer code. This value is:
Variant, [23:20]
Indicates the variant number of the core. This is the major revision number x in the rx part of
the rxpy description of the product revision status. This value is:
0x4 r4p1.
Architecture, [19:16]
Indicates the architecture code. This value is:
PartNum, [15:4]
Indicates the primary part number. This value is:
Revision, [3:0]
Indicates the minor revision number of the core. This is the minor revision number y in the py
part of the rxpy description of the product revision status. This value is:
0x1 r4p1.
Configurations
The MIDR_EL1 is architecturally mapped to external MIDR_EL1 register.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 229 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 40 39 32 31 30 29 25 24 23 16 15 11 10 8 7 0
MT
RES1
RES0
RES0, [63:40]
RES0 Reserved.
Aff3, [39:32]
Affinity level 3. Highest level affinity field.
CLUSTERID
Indicates the value read in the CLUSTERIDAFF3 configuration signal.
RES1, [31]
RES1 Reserved.
U, [30]
Indicates a single core system, as distinct from core 0 in a cluster. This value is:
RES0, [29:25]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 230 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
MT, [24]
Indicates whether the lowest level of affinity consists of logical cores that are implemented
using a multithreading type approach. This value is:
Aff2, [23:16]
Affinity L2. Second highest level affinity field.
CLUSTERID
Indicates the value read in the CLUSTERIDAFF2 configuration signal.
Aff1, [15:11]
Part of Affinity L1. Third highest level affinity field.
RAZ Read-As-Zero.
Aff1, [10:8]
Part of Affinity L1. Third highest level affinity field.
Aff0, [7:0]
Affinity level 0. The level identifies individual threads within a multithreaded core. The
Cortex®‑A76 core is single-threaded, so this field has the value 0x00.
Configurations
MPIDR_EL1[31:0] is mapped to external register EDDEVAFF0.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 231 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 56 55 40 39 12 11 10 9 8 7 6 1 0
ATTR PA SH F
LPAE
IMP DEF
NS
res0
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 232 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 32 31 0
Reserved, [63:32]
Reserved.
IMPLEMENTATION DEFINED.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 2 1 0
RR
res1
res0
RES0, [63:2]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 233 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
RR, [1]
Reset Request. The possible values are:
RES1 Reserved.
Configurations
There are no configuration notes.
Details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual for A-profile architecture.
63 0
Reset Vector Base Address
RVBA, [63:0]
Reset Vector Base Address. The address that execution starts from after reset when
executing in 64-bit state. Bits[1:0] of this register are 0b00, as this address must be aligned,
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 234 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
and bits [63:40] are 0x000000 because the address must be within the physical address size
supported by the core.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 45 44 43 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
I C A M
RES0
RES0, [63:45]
RES0 Reserved
DSSBS, [44]
DSSBS is used to set the new PSTATE bit, SSBS (Speculative Store Bypassing Safe).
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 235 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
RES0, [43:30]
RES0 Reserved
RES1, [29:28]
RES1 Reserved
RES0, [27]
RES0 Reserved
EE, [25]
Exception endianness. The value of this bit controls the endianness for explicit data accesses
at EL1. This value also indicates the endianness of the translation table data for translation
table lookups. The possible values of this bit are:
0 Little-endian.
1 Big-endian.
ITD, [7]
This field is RAZ/WI.
RES0, [6]
RES0 Reserved
CP15BEN, [5]
CP15 barrier enable. The possible values are:
M, [0]
MMU enable. The possible values are:
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 236 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 45 44 43 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 6 5 4 3 2 1 0
I C A M
DSSBS EE IESB SA
WXN
RES1
RES0
Reserved.
DSSBS, [44]
DSSBS is used to set the new PSTATE bit, SSBS (Speculative Store Bypassing Safe).
Configurations
If EL2 is not implemented, this register is RES0 from EL3.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 237 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 45 44 43 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 6 5 4 3 2 1 0
I C A M
RES1
RES0
RES0, [63:45]
RES0 Reserved
DSSBS, [44]
DSSBS is used to set the new PSTATE bit, SSBS (Speculative Store Bypassing Safe).
RES0, [43:30]
RES0 Reserved
RES1, [29:28]
RES1 Reserved
RES0, [27:26]
RES0 Reserved
EE, [25]
Exception endianness. This bit controls the endianness for:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 238 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
0 Little-endian
1 Big-endian
C, [2]
Global enable for data and unified caches. The possible values are:
M, [0]
Global enable for the EL3 MMU. The possible values are:
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 239 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 32
IPS
HWU162 AS
HWU161 TBI0
HWU160 TBI1
HA
HD
HPD0
HPD1
HWU059
HWU060
HWU061
HWU062
HWU159
31 30 29 28 27 26 25 24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 0
ORGN1 EPD
IRGN1 IRGN0
EPD ORGN0
RES0
HD, [40]
Hardware management of dirty state in stage 1 translations from EL0 and EL1. The possible
values are:
HA, [39]
Hardware Access flag update in stage 1 translations from EL0 and EL1. The possible values
are:
Configurations
RW fields in this register reset to UNKNOWN values.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 240 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 30 29 28 25 24 23 22 21 20 19 18 16 15 14 13 12 11 10 9 8 7 6 5 0
IRGN0
TBI ORGN0
HA
RES0
HD
RES1 HPD
HD, [22]
Dirty bit update. The possible values are:
HA, [21]
Stage 1 Access flag update. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 241 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Configurations
When the Virtualization Host Extension is activated, TCR_EL2 has the same bit assignments
as TCR_EL1.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 16 15 14 13 12 11 10 9 8 7 6 5 0
IRGN0
TBI ORGN0
HA
HD
HPD
HWU59
HWU60
HWU61
HWU62
RES0
RES1
Reserved, [63:32]
Reserved.
HD, [22]
Dirty bit update. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 242 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
HA, [21]
Stage 1 Access flag update. The possible values are:
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 48 47 1 0
ASID BADDR[47:x]
CnP
ASID, [63:48]
An ASID for the translation table base address. The TCR_EL1.A1 field selects either
TTBR0_EL1.ASID or TTBR1_EL1.ASID.
BADDR[47:x], [47:1]
Translation table base address, bits[47:x]. Bits [x-1:1] are RES0.
x is based on the value of TCR_EL1.T0SZ, the stage of translation, and the memory
translation granule size.
For instructions on how to calculate it, see the Arm® Architecture Reference Manual for A-
profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 243 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
The value of x determines the required alignment of the translation table, that must be
aligned to 2x bytes.
If bits [x-1:1] are not all zero, this is a misaligned translation table base address. Its effects
are CONSTRAINED UNPREDICTABLE, where bits [x-1:1] are treated as if all the bits are zero. The
value read back from those bits is the value that is written.
CnP, [0]
Common not Private. The possible values are:
0
CnP is not supported.
1
CnP is supported.
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
TTBR0_EL2 is a 64-bit register, and is part of the Virtual memory control registers functional group.
63 48 47 1 0
BADDR[47:x]
CnP
RES0
RES0, [63:48]
RES0
Reserved.
BADDR, [47:1]
Translation table base address, bits[47:x]. Bits [x-1:1] are RES0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 244 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
x is based on the value of TCR_EL2.T0SZ, the stage of translation, and the memory
translation granule size.
For instructions on how to calculate it, see the Arm® Architecture Reference Manual Arm®v8,
for Arm®v8-A architecture profile.
The value of x determines the required alignment of the translation table, that must be
aligned to 2x bytes.
If bits [x-1:1] are not all zero, this is a misaligned translation table base address. Its effects
are CONSTRAINED UNPREDICTABLE, where bits [x-1:1] are treated as if all the bits are zero. The
value read back from those bits is the value that is written.
CnP, [0]
Common not Private. The possible values are:
0
CnP is not supported.
1
CnP is supported.
Configurations
When the Virtualization Host Extension is activated, TTBR0_EL2 has the same bit
assignments as TTBR0_EL1.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 48 47 1 0
BADDR[47:x]
CnP
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 245 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
[63:48]
Reserved, RES0.
BADDR[47:x], [47:1]
Translation table base address, bits[47:x]. Bits [x-1:1] are RES0.
x is based on the value of TCR_EL1.T0SZ, the stage of translation, and the memory
translation granule size.
For instructions on how to calculate it, see the Arm® Architecture Reference Manual for A-
profile architecture.
The value of x determines the required alignment of the translation table, that must be
aligned to 2x bytes.
If bits [x-1:1] are not all zero, this is a misaligned translation table base address. Its effects
are CONSTRAINED UNPREDICTABLE, where bits [x-1:1] are treated as if all the bits are zero. The
value read back from those bits is the value that is written.
CnP, [0]
Common not Private. The possible values are:
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 246 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
63 48 47 1 0
ASID BADDR[47:x]
CnP
ASID, [63:48]
An ASID for the translation table base address. The TCR_EL1.A1 field selects either
TTBR0_EL1.ASID or TTBR1_EL1.ASID.
BADDR[47:x], [47:1]
Translation table base address, bits[47:x]. Bits [x-1:0] are RES0.
x is based on the value of TCR_EL1.T0SZ, the stage of translation, and the memory
translation granule size.
For instructions on how to calculate it, see the Arm® Architecture Reference Manual for A-
profile architecture.
The value of x determines the required alignment of the translation table, that must be
aligned to 2x bytes.
If bits [x-1:1] are not all zero, this is a misaligned Translation Table Base Address. Its effects
are CONSTRAINED UNPREDICTABLE, where bits [x-1:1] are treated as if all the bits are zero. The
value read back from those bits is the value that is written.
CnP, [0]
Common not Private. The possible values are:
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
See 13.105 TTBR1_EL1, Translation Table Base Register 1, EL1 on page 246.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 247 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
The following figure shows the VDISR_EL2 bit assignments when written at EL1 using AArch64:
63 32 31 30 25 24 23 0
A ISS
IDS
RES0
RES0, [63:32]
RES0 Reserved.
A, [31]
Set to 1 when ESB defers an asynchronous SError interrupt.
RES0, [30:25]
RES0 Reserved.
IDS, [24]
Contains the value from VSESR_EL2.IDS.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 248 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
ISS, [23:0]
Contains the value from VSESR_EL2, bits[23:0].
If the virtual SError interrupt is taken to EL1, VSESR_EL2 provides the syndrome value that is
reported in ESR_EL1.
63 25 24 23 0
ISS
IDS
RES0
RES0, [63:25]
RES0 Reserved.
IDS, [24]
Indicates whether the deferred SError interrupt was of an IMPLEMENTATION DEFINED type. See
ESR_EL1.IDS for a description of the functionality.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 249 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 16 15 14 13 12 11 10 9 8 7 6 5 0
HWU62
HWU61 HD ORGN0
RES1 HWU60 HA IRGN0
HWU59 VS
RES0
Reserved, [63:32]
Reserved.
TG0, [15:14]
TTBR0_EL2 granule size. The possible values are:
00 4KB.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 250 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 System registers
01 64KB.
10 16KB.
11 Reserved.
Configurations
RW fields in this register reset to architecturally UNKNOWN values.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
63 48 47 4 3 1 0
VMID BADDR
CnP
RES0
CnP, [0]
Common not Private. The possible values are:
Configurations
There are no configuration notes.
Bit fields and details that are not provided in this description are architecturally defined. See
the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 251 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
For those registers that are not described in this chapter, see the Arm® Architecture Reference
Manual for A-profile architecture.
The following table describes the error record registers that are IMPLEMENTATION DEFINED.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 252 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
63 62 40 39 0
PADDR
NS
RES0
NS, [63]
Non-secure attribute. The possible values are:
RES0, [62:40]
RES0 Reserved.
PADDR, [39:0]
Physical address.
Configurations
ERR0ADDR resets to UNKNOWN.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 253 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
ERR0CTLR resets to CFI [8], FI [3], UI [2], and ED[0] are UNKNOWN. The rest of the register is RES0.
63 9 8 7 4 3 2 1 0
CFI
FI
UI
ED
RES0
RES0, [63:9]
RES0 Reserved.
CFI, [8]
Fault handling interrupt for corrected errors enable.
The fault handling interrupt is generated when one of the standard CE counters on
ERR0MISC0 overflows and the overflow bit is set. The possible values are:
The interrupt is generated even if the error status is overwritten because the error record
already records a higher priority error.
RES0, [7:4]
RES0 Reserved.
FI, [3]
Fault handling interrupt enable.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 254 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
The fault handling interrupt is generated for all detected Deferred errors and Uncorrected
errors. The possible values are:
UI, [2]
Uncorrected error recovery interrupt enable. When enabled, the error recovery interrupt is
generated for all detected Uncorrected errors that are not deferred. The possible values are:
RES0, [1]
RES0 Reserved.
ED, [0]
Error Detection and correction enable. The possible values are:
Configurations
This register is accessible from the following registers when ERRSELR.SEL==0:
13.45 ERXCTLR_EL1, Selected Error Record Control Register, EL1 on page 167.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 255 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
63 20 19 18 17 16 15 14 12 11 10 9 8 7 6 5 4 3 2 1 0
RP
RES0
RES0, [63:20]
RES0
Reserved.
CEO, [19:18]
Corrected Error Overwrite. The value is:
DUI, [17:16]
Error recovery interrupt for deferred errors. The value is:
RP, [15]
Repeat counter. The value is:
CEC, [14:12]
Corrected Error Counter. The value is:
CFI, [11:10]
Fault handling interrupt for corrected errors. The value is:
UE, [9:8]
In-band uncorrected error reporting. The value is:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 256 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
FI, [7:6]
Fault handling interrupt. The value is:
UI, [5:4]
Error recovery interrupt for uncorrected errors. The value is:
RES0, [3:2]
RES0
Reserved.
ED, [1:0]
Error detection and correction. The value is:
Configurations
ERR0FR resets to 0x000000000000A9A2
ERR0FR is accessible from the following registers when ERRSELR.SEL==0:
13.46 ERXFR_EL1, Selected Error Record Feature Register, EL1 on page 167.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 257 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
63 48 47 46 40 39 38 32 31 28 27 26 25 24 23 22 19 18 6 5 4 3 0
RES0
RES0, [63:48]
Reserved, RES0.
OFO, [47]
Sticky overflow bit, other. The possible values of this bit are:
The fault handling interrupt is generated when the corrected fault handling interrupt is
enabled and either overflow bit is set to 1.
CECO, [46:40]
Corrected error count, other. Incremented for each Corrected error that does not match the
recorded syndrome.
This field resets to an IMPLEMENTATION DEFINED which might be UNKNOWN on a Cold reset.
If the reset value is UNKNOWN, then the value of this field remains UNKNOWN until software
initializes it.
OFR, [39]
Sticky overflow bit, repeat. The possible values of this bit are:
The fault handling interrupt is generated when the corrected fault handling interrupt is
enabled and either overflow bit is set to 1.
CECR, [38:32]
Corrected error count, repeat. Incremented for the first recorded error, which also records
other syndromes, and then again for each Corrected error that matches the recorded
syndrome.
This field resets to an IMPLEMENTATION DEFINED which might be UNKNOWN on a Cold reset.
If the reset value is UNKNOWN, then the value of this field remains UNKNOWN until software
initializes it.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 258 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
WAY, [31:28]
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
L1 Indicates which Tag RAM way or data RAM way detected the error.
Data Upper 2 bits are unused.
Cache
L2 Indicates which RAM has an error. The possible values are 0 (RAM 1)
TLB to 9 (RAM 10).
L1 Indicates which way has the error. Upper 2 bits are unused.
Instruction
Cache
RES0, [27:26]
Reserved, RES0.
SUBBANK, [25]
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
L1 Indicates which subbank has the error, valid for instruction data
Instruction cache. For Tag errors, this field is zero.
Cache
BANK, [24:23]
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
SUBARRAY, [22:19]
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
INDEX, [18:6]
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 259 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
L2 Indicates which index detected the error. Upper bits of the index are
Cache unused depending on the cache size.
L1 Indicates which index detected the error. Upper bits of the index are
Data unused depending on the cache size.
Cache
L2 Index of TLB RAM. Upper 4 bits are unused.
TLB
L1 Indicates which index has the error. Upper bits of the index are
Instruction unused depending on the cache size.
Cache
ARRAY, [5:4]
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
L2 Indicates which array has the error. The possible values are:
Cache
0b00 L2 Tag RAM.
0b01 L2 Data RAM.
0b10 TQ Data RAM.
0b11 CHI Completer Error.
L1 Indicates which array detected the error. The possible values are:
Data
Cache 0b00 LS0 copy of Tag RAM.
0b01 LS1 copy of Tag RAM.
0b10 LS Data RAM.
L1 Indicates which array that detected the error, Data Array has higher
Instruction priority. The possible values are:
Cache
0b0 Tag.
0b1 Data.
UNIT, [3:0]
Indicates the unit which detected the error. The possible values are:
0b1000 L2 Cache.
0b0100 L1 Data Cache.
0b0010 L2 TLB.
0b0001 L1 Instruction Cache.
Configurations
ERR0MISC0 resets to [63:32] is 0x00000000, [31:0] is UNKNOWN.
This register is accessible from the following registers when ERRSELR_EL1.SEL==0:
• 13.47 ERXMISC0_EL1, Selected Error Record Miscellaneous Register 0, EL1 on page
167.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 260 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
Configurations
When ERRSELR.SEL==0, ERR0MISC1 is accessible from 13.48 ERXMISC1_EL1, Selected Error
Record Miscellaneous Register 1, EL1 on page 168.
31 0
CDN
CDN, [31:0]
Count Down value. The reset value of the Error Generation Counter is used for the
countdown.
Configurations
There are no configuration options.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 261 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
31 30 29 7 6 5 4 2 1 0
R CE
CDNEN DE
UC
RES0
CDNEN, [31]
Count down enable. This bit controls transfers from the value that is held in the
ERR0PFGCDN into the Error Generation Counter and enables this counter to start counting
down. The possible values are:
R, [30]
Restartable bit. When it reaches 0, the Error Generation Counter restarts from the
ERR0PFGCDN value or stops. The possible values are:
RES0, [29:7]
Reserved, RES0.
CE, [6]
Corrected error generation enable. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 262 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
DE, [5]
Deferred Error generation enable. The possible values are:
This bit is RES0 if the node does not support this control.
This bit resets to an architecturally UNKNOWN value on a Cold reset. This bit is preserved on
an Error Recovery reset.
RES0, [4:2]
Reserved, RES0.
UC, [1]
Uncontainable error generation enable. The possible values are:
RES0, [0]
Reserved, RES0.
Configurations
There are no configuration notes.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 263 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
31 30 29 7 6 5 4 3 2 1 0
R CE
PFG DE
UEO
UER
UEU
UC
RES0
PFG, [31]
Pseudo Fault Generation. The value is:
R, [30]
Restartable bit. When it reaches zero, the Error Generation Counter restarts from the
ERR0PFGCDN value or stops. The value is:
RES0, [29:7]
RES0 Reserved.
CE, [6]
Corrected Error generation. The value is:
DE, [5]
Deferred Error generation. The value is:
UEO, [4]
Latent or Restartable Error generation. The value is:
UER, [3]
Signaled or Recoverable Error generation. The value is:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 264 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
UEU, [2]
Unrecoverable Error generation. The value is:
UC, [1]
Uncontainable Error generation. The value is:
[0]
RES0 Reserved.
Configurations
There are no configuration notes.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 265 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
31 30 29 28 27 26 25 24 23 22 21 20 19 5 4 0
CE SERR
AV UET
V PN
UE DE
ER
OF
MV
res0
AV, [31]
Address Valid. The possible values are:
V, [30]
Status Register valid. The possible values are:
UE, [29]
Uncorrected error. The possible values are:
ER, [28]
Error reported. The possible values are:
OF, [27]
Overflow. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 266 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
MV, [26]
Miscellaneous Registers Valid. The possible values are:
CE, [25:24]
Corrected error. The possible values are:
DE, [23]
Deferred error. The possible values are:
PN, [22]
Poison. The value is:
UET, [21:20]
Uncorrected Error Type. The value is:
0b00 Uncontainable.
RES0, [19:5]
RES0.
Reserved.
SERR, [4:0]
Primary error code. The possible values are:
0x0 No error.
0x1 Errors due to fault injection.
0x2 ECC error from internal data buffer.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 267 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Error System registers
Configurations
There are no configuration notes.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 268 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
The Cortex®‑A76 core only supports System register access to the GIC CPU interface registers.
The following table lists the three types of GIC CPU interface System registers supported in the
Cortex®‑A76 core.
Table 15-1: GIC CPU interface System register types supported in the Cortex®‑A76 core.
Register prefix Register type
ICC Physical GIC CPU interface System registers.
ICV Virtual GIC CPU interface System registers.
ICH Virtual interface control System registers.
Access to virtual GIC CPU interface System registers is only possible at Non-secure EL1.
Access to ICC registers or the equivalent ICV registers is determined by HCR_EL2. See 13.57
HCR_EL2, Hypervisor Configuration Register, EL2 on page 177.
For more information on the CPU interface, see the Arm® Generic Interrupt Controller Architecture
Specification, GIC architecture version 3 and version 4 .
See the Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and
version 4 for more information and a complete list of AArch64 physical GIC CPU interface System
registers.
Table 15-2: AArch64 physical GIC CPU interface System register summary
Name Op0 Op1 CRn CRm Op2 Type Description
ICC_AP0R0_EL1 3 0 12 8 4 RW 15.3 ICC_AP0R0_EL1, Interrupt Controller Active Priorities Group 0 Register 0, EL1
on page 270
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 269 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
Bit descriptions
This register is a 32-bit register and is part of:
• The GIC System registers functional group.
• The GIC control registers functional group.
The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of
the register. The possible values for each bit are:
Details that are not provided in this description are architecturally defined. See the Arm® Generic
Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 270 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
Bit descriptions
This register is a 32-bit register and is part of:
• The GIC System registers functional group.
• The GIC control registers functional group.
The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of
the register. The possible values for each bit are:
Details that are not provided in this description are architecturally defined. See the Arm® Generic
Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 271 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
31 3 2 0
BinaryPoint
RES0
RES0, [31:3]
RES0 Reserved.
BinaryPoint, [2:0]
The value of this field controls how the 8-bit interrupt priority field is split into a group
priority field, that determines interrupt preemption, and a subpriority field. The minimum
value that is implemented is:
0x2
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 272 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
31 3 2 0
BinaryPoint
RES0
RES0, [31:3]
RES0 Reserved.
BinaryPoint, [2:0]
The value of this field controls how the 8-bit interrupt priority field is split into a group
priority field, that determines interrupt preemption, and a subpriority field.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 273 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
31 16 15 14 13 11 10 8 7 6 5 2 1 0
IDbits PRIbits
CBPR
EOImode
PMHE
SEIS
A3V
RES0
RES0, [31:16]
RES0 Reserved.
A3V, [15]
Affinity 3 Valid. The value is:
SEIS, [14]
SEI Support. The value is:
0 The CPU interface logic does not support local generation of SEIs.
IDbits, [13:11]
Identifier bits. The value is:
0x4 The core supports 32 levels of physical priority with 5 priority bits.
RES0, [7]
RES0 Reserved.
PMHE, [6]
Priority Mask Hint Enable. This bit is read-only and is an alias of ICC_CTLR_EL3.PMHE. The
possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 274 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
RES0, [5:2]
RES0 Reserved.
EOImode, [1]
End of interrupt mode for the current Security state. The possible values are:
CBPR, [0]
Common Binary Point Register. Control whether the same register is used for interrupt
preemption of both Group 0 and Group 1 interrupt. The possible values are:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 275 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
31 18 17 16 15 14 13 11 10 8 7 6 5 4 3 2 1 0
IDbits PRIbits
CBPR_EL1S
CBPR_EL1NS
EOImode_EL3
EOImode_EL1S
EOImode_EL1NS
RES0 RM
PMHE
SEIS
A3V
nDS
RES0, [31:18]
RES0 Reserved.
nDS, [17]
Disable Security not supported. Read-only and writes are IGNORED. The value is:
1 The CPU interface logic does not support disabling of security, and
requires that security is not disabled.
RES0, [16]
RES0 Reserved.
A3V, [15]
SEIS, [14]
SEI Support. The value is:
IDbits, [13:11]
Identifier bits. The value is:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 276 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
PRIbits, [10:8]
Priority bits. The value is:
0x4 The core supports 32 levels of physical priority with 5 priority bits.
RES0, [7]
Reserved, RES0.
PMHE, [6]
Priority Mask Hint Enable. The possible values are:
RM, [5]
EOImode_EL1NS, [4]
EOI mode for interrupts handled at Non-secure EL1 and EL2.
Controls whether a write to an End of Interrupt register also deactivates the interrupt.
EOImode_EL1S, [3]
EOI mode for interrupts handled at Secure EL1.
Controls whether a write to an End of Interrupt register also deactivates the interrupt.
EOImode_EL3, [2]
EOI mode for interrupts handled at EL3.
Controls whether a write to an End of Interrupt register also deactivates the interrupt.
CBPR_EL1NS, [1]
Common Binary Point Register, EL1 Non-secure.
Control whether the same register is used for interrupt preemption of both Group 0 and
Group 1 Non-secure interrupts at EL1 and EL2.
CBPR_EL1S, [0]
Common Binary Point Register, EL1 Secure.
Control whether the same register is used for interrupt preemption of both Group 0 and
Group 1 Secure interrupt at EL1.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 277 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
31 3 2 1 0
SRE
DFB
DIB
RES0
RES0, [31:3]
RES0 Reserved.
DIB, [2]
Disable IRQ bypass. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 278 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
0x1 The System register interface for the current Security state is
enabled.
This bit is RAO/WI. The core only supports a System register interface to the GIC CPU
interface.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
31 4 3 2 1 0
SRE
DFB
DIB
Enable
RES0
RES0, [31:4]
RES0 Reserved.
Enable, [3]
Enables lower Exception level access to ICC_SRE_EL1. The value is:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 279 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
DIB, [2]
Disable IRQ bypass. The possible values are:
0x1 The System register interface for the current Security state is
enabled.
This bit is RAO/WI. The core only supports a System register interface to the GIC CPU
interface.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 280 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
31 4 3 2 1 0
SRE
DFB
DIB
Enable
RES0
RES0, [31:4]
RES0 Reserved.
Enable, [3]
Enables lower Exception level access to ICC_SRE_EL1 and ICC_SRE_EL2. The value is:
DFB, [1]
Disable FIQ bypass. The possible values are:
SRE, [0]
System Register Enable. The value is:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 281 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
This bit is RAO/WI. The core only supports a System register interface to the GIC CPU
interface.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
See the Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and
version 4 for more information and a complete list of AArch64 virtual GIC CPU interface System
registers.
Bit descriptions
This register is a 32-bit register and is part of the virtual GIC System registers functional group.
The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of
the register. The possible values for each bit are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 282 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
...
0x80000000 Interrupt active for priority 0xF8.
Details that are not provided in this description are architecturally defined. See the Arm® Generic
Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Bit descriptions
This register is a 32-bit register and is part of the virtual GIC System registers functional group.
The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of
the register. The possible values for each bit are:
Details that are not provided in this description are architecturally defined. See the Arm® Generic
Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 283 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
31 3 2 0
BinaryPoint
RES0
RES0, [31:3]
Reserved, RES0.
BinaryPoint, [2:0]
The value of this field controls how the 8-bit interrupt priority field is split into a group
priority field, that determines interrupt preemption, and a subpriority field. The minimum
value that is implemented is:
0x2
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 284 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
31 3 2 0
BinaryPoint
RES0
RES0, [31:3]
RES0 Reserved.
BinaryPoint, [2:0]
The value of this field controls how the 8-bit interrupt priority field is split into a group
priority field, that determines interrupt preemption, and a subpriority field.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 285 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
31 16 15 14 13 11 10 8 7 2 1 0
IDbits PRIbits
A3V VCBPR
SEIS VEOImode
RES0
RES0, [31:16]
RES0 Reserved.
A3V, [15]
Affinity 3 Valid. The value is:
0x1 The virtual CPU interface logic supports nonzero values of Affinity 3
in SGI generation System registers.
SEIS, [14]
SEI Support. The value is:
0x0 The virtual CPU interface logic does not support local generation of
SEIs.
IDbits, [13:11]
Identifier bits. The value is:
PRIbits, [10:8]
Priority bits. The value is:
RES0, [7:2]
RES0 Reserved.
VEOImode, [1]
Virtual EOI mode. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 286 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
VCBPR, [0]
Common Binary Point Register. Controls whether the same register is used for interrupt
preemption of both virtual Group 0 and virtual Group 1 interrupts. The possible values are:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
See the Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and
version 4 for more information and a complete list of AArch64 virtual interface control System
registers.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 287 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of
the register. The possible values for each bit are:
Details that are not provided in this description are architecturally defined. See the Arm® Generic
Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
The core implements 5 bits of priority with 32 priority levels, corresponding to the 32 bits [31:0] of
the register. The possible values for each bit are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 288 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
Details that are not provided in this description are architecturally defined. See the Arm® Generic
Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
31 27 26 15 14 13 12 11 10 8 7 6 5 4 3 2 1 0
EOIcount
TDIR En
TSEI UIE
TALL1 LRENPIE
TALL0 NPIE
TC VGrp0EIE
RES0 VGrp0DIE
VGrp1EIE
VGrp1DIE
EOIcount, [31:27]
RES0, [26:15]
RES0 Reserved.
TDIR, [14]
Trap Non-secure EL1 writes to ICC_DIR_EL1 and ICV_DIR_EL1. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 289 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
TSEI, [13]
Trap all locally generated SEIs. The value is:
TALL1, [12]
Trap all Non-secure EL1 accesses to ICC_* and ICV_* System registers for Group 1 interrupts
to EL2. The possible values are:
0x0 Non-secure EL1 accesses to ICC_* and ICV_* registers for Group 1
interrupts proceed as normal.
0x1 Non-secure EL1 accesses to ICC_* and ICV_* registers for Group 1
interrupts trap to EL2.
TALL0, [11]
Trap all Non-secure EL1 accesses to ICC_* and ICV_* System registers for Group 0 interrupts
to EL2. The possible values are:
0x0 Non-secure EL1 accesses to ICC_* and ICV_* registers for Group 0
interrupts proceed as normal.
0x1 Non-secure EL1 accesses to ICC_* and ICV_* registers for Group 0
interrupts trap to EL2.
TC, [10]
Trap all Non-secure EL1 accesses to System registers that are common to Group 0 and Group
1 to EL2. The possible values are:
RES0, [9:8]
RES0 Reserved.
VGrp1DIE, [7]
VM Group 1 Disabled Interrupt Enable. The possible values are:
VGrp1EIE, [6]
VM Group 1 Enabled Interrupt Enable. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 290 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
VGrp0DIE, [5]
VM Group 0 Disabled Interrupt Enable. The possible values are:
VGrp0EIE, [4]
VM Group 0 Enabled Interrupt Enable. The possible values are:
NPIE, [3]
No Pending Interrupt Enable. The possible values are:
LRENPIE, [2]
List Register Entry Not Present Interrupt Enable. The possible values are:
UIE, [1]
Underflow Interrupt Enable. The possible values are:
En, [0]
Enable. The possible values are:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 291 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
31 24 23 21 20 18 17 10 9 8 5 4 3 2 1 0
VENG0
VENG1
VFIQEn
VCBPR
RES0
VEOIM
VPMR, [31:24]
Virtual Priority Mask.
VBPR0, [23:21]
Virtual Binary Point Register, Group 0. The minimum value is:
VBPR1, [20:18]
Virtual Binary Point Register, Group 1. The minimum value is:
RES0, [17:10]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 292 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
VEOIM, [9]
Virtual EOI mode. The possible values are:
RES0 Reserved.
VCBPR, [4]
Virtual Common Binary Point Register. The possible values are:
VFIQEn, [3]
Virtual FIQ enable. The value is:
RES0, [2]
RES0 Reserved.
VENG1, [1]
Virtual Group 1 interrupt enable. The possible values are:
VENG0, [0]
Virtual Group 0 interrupt enable. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 293 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
31 29 28 26 25 23 22 21 20 19 18 5 4 0
TDS
nV4
A3V
SEIS
RES0
PRIbits, [31:29]
Priority bits. The number of virtual priority bits implemented, minus one.
PREbits, [28:26]
The number of virtual preemption bits implemented, minus one. The value is:
IDbits, [25:23]
The number of virtual interrupt identifier bits supported. The value is:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 294 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
GIC registers
SEIS, [22]
SEI Support. The value is:
0x0 The virtual CPU interface logic does not support generation of SEIs.
A3V, [21]
Affinity 3 Valid. The value is:
0x1 The virtual CPU interface logic supports nonzero values of Affinity 3
in SGI generation System registers.
nV4, [20]
Direct injection of virtual interrupts not supported. The value is:
0x0 The CPU interface logic supports direct injection of virtual interrupts.
TDS, [19]
Separate trapping of Non-secure EL1 writes to ICV_DIR_EL1 supported. The value is:
RES0, [18:5]
RES0 Reserved.
ListRegs, [4:0]
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 295 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
The following table gives a summary of the Cortex®‑A76 core Advanced SIMD and floating-point
System registers in the AArch64 Execution state.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 296 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
31 27 26 25 24 23 22 21 20 19 18 0
AHP FZ16
DN
FZ
RMode
RES0
RES0, [31:27]
RES0
Reserved.
AHP, [26]
Alternative half-precision control bit. The possible values are:
0
IEEE half-precision format selected. This is the reset value.
1
Alternative half-precision format selected.
DN, [25]
Default NaN mode control bit. The possible values are:
0
NaN operands propagate through to the output of a floating-point operation. This is
the reset value.
1
Any operation involving one or more NaNs returns the Default NaN.
FZ, [24]
Flush-to-zero mode control bit. The possible values are:
0
Flush-to-zero mode disabled. Behavior of the floating-point system is fully compliant
with the IEEE 754 standard. This is the reset value.
1
Flush-to-zero mode enabled.
RMode, [23:22]
Rounding Mode control field. The encoding of this field is:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 297 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
RES0, [21:20]
RES0
Reserved.
FZ16, [19]
Flush-to-zero mode control bit on half-precision data-processing instructions. The possible
values are:
0
Flush-to-zero mode disabled. Behavior of the floating-point system is fully compliant
with the IEEE 754 standard. This is the default value.
1
Flush-to-zero mode enabled.
RES0, [18:0]
RES0
Reserved.
Configurations
The named fields in this register map to the equivalent fields in the AArch32 FPSCR. See
16.8 FPSCR, Floating-Point Status and Control Register on page 306.
Usage constraints
Accessing the FPCR
To access the FPCR:
Accessibility
This register is accessible as follows:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 298 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
31 30 29 28 27 26 8 7 6 5 4 3 2 1 0
QC IDC
V
C IXC
Z UFC
N OFC
DZC
IOC
RES 0
N, [31]
Negative condition flag for AArch32 floating-point comparison operations. AArch64 floating-
point comparisons set the PSTATE.N flag instead.
Z, [30]
Zero condition flag for AArch32 floating-point comparison operations. AArch64 floating-
point comparisons set the PSTATE.Z flag instead.
C, [29]
Carry condition flag for AArch32 floating-point comparison operations. AArch64 floating-
point comparisons set the PSTATE.C flag instead
V, [28]
Overflow condition flag for AArch32 floating-point comparison operations. AArch64 floating-
point comparisons set the PSTATE.V flag instead.
QC, [27]
Cumulative saturation bit. This bit is set to 1 to indicate that an Advanced SIMD integer
operation has saturated since a 0 was last written to this bit.
RES0, [26:8]
Reserved, RES0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 299 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
IDC, [7]
Input Denormal cumulative exception bit. This bit is set to 1 to indicate that the Input
Denormal exception has occurred since 0 was last written to this bit.
RES0, [6:5]
Reserved, RES0.
IXC, [4]
Inexact cumulative exception bit. This bit is set to 1 to indicate that the Inexact exception has
occurred since 0 was last written to this bit.
UFC, [3]
Underflow cumulative exception bit. This bit is set to 1 to indicate that the Underflow
exception has occurred since 0 was last written to this bit.
OFC, [2]
Overflow cumulative exception bit. This bit is set to 1 to indicate that the Overflow exception
has occurred since 0 was last written to this bit.
DZC, [1]
Division by Zero cumulative exception bit. This bit is set to 1 to indicate that the Division by
Zero exception has occurred since 0 was last written to this bit.
IOC, [0]
Invalid Operation cumulative exception bit. This bit is set to 1 to indicate that the Invalid
Operation exception has occurred since 0 was last written to this bit.
Configurations
The named fields in this register map to the equivalent fields in the AArch32 FPSCR. See
16.8 FPSCR, Floating-Point Status and Control Register on page 306.
Usage constraints
Accessing the FPSR
To access the FPSR:
Accessibility
This register is accessible as follows:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 300 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
FPRound, [31:28]
Indicates the rounding modes supported by the floating-point hardware:
0x1
All rounding modes supported.
FPShVec, [27:24]
Indicates the hardware support for floating-point short vectors:
0x0
Not supported.
FPSqrt, [23:20]
Indicates the hardware support for floating-point square root operations:
0x1
Supported.
FPDivide, [19:16]
Indicates the hardware support for floating-point divide operations:
0x1
Supported.
FPTrap, [15:12]
Indicates whether the floating-point hardware implementation supports exception trapping:
0x0
Not supported.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 301 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
FPDP, [11:8]
Indicates the hardware support for floating-point double-precision operations:
0x2
Supported, VFPv3 or greater.
See the Arm® Architecture Reference Manual for A-profile architecture for more information.
FPSP, [7:4]
Indicates the hardware support for floating-point single-precision operations:
0x2
Supported, VFPv3 or greater.
See the Arm® Architecture Reference Manual for A-profile architecture for more information.
SIMDReg, [3:0]
Indicates support for the Advanced SIMD register bank:
See the Arm® Architecture Reference Manual for A-profile architecture for more information.
Configurations
There are no configuration notes.
Usage constraints
Accessing the MVFR0_EL1
To access the MVFR0_EL1:
Accessibility
This register is accessible as follows:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 302 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
SIMDFMAC, [31:28]
Indicates whether the Advanced SIMD and floating-point unit supports fused multiply
accumulate operations:
1
Implemented.
FPHP, [27:24]
Indicates whether the Advanced SIMD and floating-point unit supports half-precision
floating-point conversion instructions:
3
Floating-point half-precision conversion and data processing instructions implemented.
SIMDHP, [23:20]
Indicates whether the Advanced SIMD and floating-point unit supports half-precision
floating-point conversion operations:
2
Advanced SIMD half-precision conversion and data processing instructions
implemented.
SIMDSP, [19:16]
Indicates whether the Advanced SIMD and floating-point unit supports single-precision
floating-point operations:
1
Implemented.
SIMDInt, [15:12]
Indicates whether the Advanced SIMD and floating-point unit supports integer operations:
1
Implemented.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 303 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
SIMDLS, [11:8]
Indicates whether the Advanced SIMD and floating-point unit supports load/store
instructions:
1
Implemented.
FPDNaN, [7:4]
Indicates whether the floating-point hardware implementation supports only the Default
NaN mode:
1
Hardware supports propagation of NaN values.
FPFtZ, [3:0]
Indicates whether the floating-point hardware implementation supports only the Flush-to-
zero mode of operation:
1
Hardware supports full denormalized number arithmetic.
Configurations
There are no configuration notes.
Usage constraints
Accessing the MVFR1_EL1
To access the MVFR1_EL1:
Accessibility
This register is accessible as follows:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 304 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
31 8 7 4 3 0
FPMisc SIMDMisc
RES 0
RES0, [31:8]
RES0
Reserved.
FPMisc, [7:4]
Indicates support for miscellaneous floating-point features.
0x4 Supports:
• Floating-point selection.
• Floating-point Conversion to Integer with Directed rounding
modes.
• Floating-point Round to Integral Floating-point.
• Floating-point MaxNum and MinNum.
SIMDMisc, [3:0]
Indicates support for miscellaneous Advanced SIMD features.
0x3 Supports:
• Floating-point Conversion to Integer with Directed rounding
modes.
• Floating-point Round to Integral Floating-point.
• Floating-point MaxNum and MinNum.
Configurations
There are no configuration notes.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 305 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
Usage constraints
Accessing the MVFR2_EL1
To access the MVFR2_EL1:
Accessibility
This register is accessible as follows:
The following table gives a summary of the Cortex®‑A76 core Advanced SIMD and floating-point
System registers in the AArch32 Execution state.
See the Arm® Architecture Reference Manual for A-profile architecture for information on permitted
accesses to the Advanced SIMD and floating-point System registers.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 306 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
31 30 29 28 27 26 25 24 23 22 21 20 19 18 16 15 8 7 6 5 4 3 2 1 0
N Z C V Len
RES0
N, [31]
Floating-point Negative condition code flag.
This bit is set to 1 to indicate that an Advanced SIMD integer operation has saturated after 0
was last written to this bit.
AHP, [26]
Alternative Half-Precision control bit:
0
IEEE half-precision format selected. This is the reset value.
1
Alternative half-precision format selected.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 307 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
DN, [25]
Default NaN mode control bit:
0
NaN operands propagate through to the output of a floating-point operation. This is
the reset value.
1
Any operation involving one or more NaNs returns the Default NaN.
The value of this bit only controls floating-point arithmetic. AArch32 Advanced SIMD
arithmetic always uses the Default NaN setting, regardless of the value of the DN bit.
FZ, [24]
Flush-to-zero mode control bit:
0
Flush-to-zero mode disabled. Behavior of the floating-point system is fully compliant
with the IEEE 754 standard. This is the reset value.
1
Flush-to-zero mode enabled.
The value of this bit only controls floating-point arithmetic. AArch32 Advanced SIMD
arithmetic always uses the Flush-to-zero setting, regardless of the value of the FZ bit.
RMode, [23:22]
Rounding Mode control field:
0b00
Round to Nearest (RN) mode. This is the reset value.
0b01
Round towards Plus Infinity (RP) mode.
0b10
Round towards Minus Infinity (RM) mode.
0b11
Round towards Zero (RZ) mode.
The specified rounding mode is used by almost all floating-point instructions. AArch32
Advanced SIMD arithmetic always uses the Round to Nearest setting, regardless of the value
of the RMode bits.
Stride, [21:20]
RES0
Reserved.
FZ16, [19]
Flush-to-zero mode control bit on half-precision data-processing instructions:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 308 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
0
Flush-to-zero mode disabled. Behavior of the floating-point system is fully compliant
with the IEEE 754 standard.
1
Flush-to-zero mode enabled.
Len, [18:16]
RES0
Reserved.
RES0, [15:8]
RES0
Reserved.
IDC, [7]
Input Denormal cumulative exception bit. This bit is set to 1 to indicate that the Input
Denormal exception has occurred since 0 was last written to this bit.
RES0, [6:5]
RES0
Reserved.
IXC, [4]
Inexact cumulative exception bit. This bit is set to 1 to indicate that the Inexact exception has
occurred since 0 was last written to this bit.
UFC, [3]
Underflow cumulative exception bit. This bit is set to 1 to indicate that the Underflow
exception has occurred since 0 was last written to this bit.
OFC, [2]
Overflow cumulative exception bit. This bit is set to 1 to indicate that the Overflow exception
has occurred since 0 was last written to this bit.
DZC, [1]
Division by Zero cumulative exception bit. This bit is set to 1 to indicate that the Division by
Zero exception has occurred since 0 was last written to this bit.
IOC, [0]
Invalid Operation cumulative exception bit. This bit is set to 1 to indicate that the Invalid
Operation exception has occurred since 0 was last written to this bit.
Configurations
There is one copy of this register that is used in both Secure and Non-secure states.
The named fields in this register map to the equivalent fields in the AArch64 FPCR and FPSR.
See 16.2 FPCR, Floating-point Control Register on page 296 and 16.3 FPSR, Floating-point
Status Register on page 299
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 309 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Advanced SIMD and floating-point registers
Usage constraints
Accessing the FPSCR
To access the FPSCR:
The Cortex®‑A76 core implementation does not support the deprecated VFP short
vector feature. Attempts to execute the associated VFP data-processing instructions
result in an UNDEFINED Instruction exception.
Accessibility
This register is accessible as follows:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 310 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Debug
17. Debug
This chapter describes the Cortex®‑A76 core Debug registers and shows examples of how to use
them.
Debug host
A computer, for example a personal computer, that is running a software debugger such
as the DS-5 Debugger. With the debug host, you can issue high-level commands, such as
setting a breakpoint at a certain location or examining the contents of a memory address.
Protocol converter
The debug host sends messages to the debug target using an interface such as Ethernet.
However, the debug target typically implements a different interface protocol. A device such
as DSTREAM is required to convert between the two protocols.
Debug target
The lowest level of the system implements system support for the protocol converter to
access the debug unit using the Advanced Peripheral Bus (APB) completer interface. An
example of a debug target is a development system with a test chip or a silicon part with a
core.
Debug unit
Helps debugging software that is running on the core:
• Hardware systems that are based on the core.
• Operating systems.
• Application software.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 311 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Debug
For self-hosted debug, the debug target runs additional debug monitor software that runs on the
Cortex®‑A76 core itself. This way, it does not require expensive interface hardware to connect a
second host computer.
The Cortex®‑A76 core implements the Armv8 Debug architecture and debug events as described
in the Arm® Architecture Reference Manual for A-profile architecture. It also implements improvements
to Debug introduced in Armv8.1 and Armv8.2.
The external debug interface enables both external and self-hosted debug agents to access Debug
registers. Access to the Debug registers is partitioned as follows:
Debug registers
This function is System register based and memory-mapped. You can access the Debug
register map using the APB completer port.
Performance monitor
This function is System register based and memory-mapped. You can access the performance
monitor registers using the APB completer port.
Activity monitor
This function is System register based and memory-mapped. You can access the activity
monitor registers using the APB completer port.
Trace registers
This function is memory-mapped.
ELA registers
This function is memory-mapped.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 312 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Debug
Related information
External debug interface on page 315
A breakpoint consists of a breakpoint control register and a breakpoint value register. These two
registers are referred to as a Breakpoint Register Pair (BRP).
Four of the breakpoints (BRP 0-3) match only to virtual address and the other two (BRP 4 and
5) match against either virtual address or context ID, or VMID. All the watchpoints can be linked
to two breakpoints (BRP 4 and 5) to enable a memory request to be trapped in a given process
context.
nCPUPORESET
This signal initializes the core processing logic, including the debug, ETM trace unit,
breakpoint, watchpoint logic, and performance monitors logic. This maps to a Cold reset that
covers reset of the core processing logic and the integrated debug functionality.
nCORERESET
This signal resets some of the debug and performance monitor logic. This maps to a Warm
reset that covers reset of the core processing logic.
The following table describes the core response to accesses through the external debug interface.
If debug power is off, then all external debug and memory-mapped register accesses return
an error.
DLK DoubleLockStatus() == TRUE OS Double Lock is locked.
(EDPRSR.DLK is 1)
OSLK OSLSR_EL1.OSLK is 1 OS Lock is locked.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 313 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Debug
The following table shows an example of external register access condition codes for access to
a performance monitor register. To determine the access permission for the register, scan the
columns from left to right. Stop at the first column a condition is true, the entry gives the access
permission of the register and scanning stops.
See the Arm® Architecture Reference Manual for A-profile architecture for more information about the
debug events.
Related information
External debug interface on page 315
About clocks, resets, and input synchronization on page 34
Memory hint instructions and cache clean operations, except DC ZVA and DC IVAC, do not generate
watchpoint debug events. Store exclusive instructions generate a watchpoint debug event even
when the check for the control of exclusive monitor fails. Atomic CAS instructions generate a
watchpoint debug event even when the compare operation fails.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 314 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Debug
For normal behavior of debug events and Debug register accesses, Debug OS Lock must be
cleared. For more information, see the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 315 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Performance Monitoring Unit
The PMU provides six event counters. Each counter can count any of the events available in
the core. The absolute counts that are recorded might vary because of pipeline effects. This has
negligible effect except in cases where the counters are enabled for a very short time.
Related information
PMU events on page 317
The behavior is specific to each register and is not described in this document. For a detailed
description of these features and their effects on the registers, see the Arm® Architecture Reference
Manual Arm®v8, for Arm®v8-A architecture profile.
The register descriptions that are provided in this manual describe whether each register is read/
write or read-only.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 317 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Performance Monitoring Unit
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 318 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Performance Monitoring Unit
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 319 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Performance Monitoring Unit
This event counts for any cacheable read transaction returning data from the SCU
for which the data source was outside the cluster. Transactions such as ReadUnique
are counted here as 'read' transactions, even though they can be generated by store
instructions.
Prefetches and stashes that target the L3 cache are not counted.
0x2B [160] L3D_CACHE_RD Attributable L3 unified cache access.
This event counts for any cacheable read transaction returning data from the SCU, or
for any cacheable write to the SCU.
0x2D [49] L2D_TLB_REFILL Attributable L2 data or unified TLB refill. This event counts on any refill of the L2 TLB,
caused by either an instruction or data access. This event does not count if the MMU
is disabled.
0x2F [51:50] L2D_TLB Attributable L2 data or unified TLB access. This event counts on any access to the L2
TLB (caused by a refill of any of the L1 TLBs). This event does not count if the MMU
is disabled.
0x31 [161] REMOTE_ACCESS Access to another socket in a multi-socket system.
0x34 [52] DTLB_WALK Access to data TLB that caused a page table walk. This event counts on any data
access which causes L2D_TLB_REFILL to count.
0x35 [53] ITLB_WALK Access to instruction TLB that caused a page table walk. This event counts on any
instruction access which causes L2D_TLB_REFILL to count.
0x36 [163:162] LL_CACHE_RD Last level cache access, read.
• If CPUECTLR.EXTLLC is set: This event counts any cacheable read transaction
which returns a data source of 'interconnect cache'.
• If CPUECTLR.EXTLLC is not set: This event is a duplicate of the L*D_CACHE_RD
event corresponding to the last level of cache implemented – L3D_CACHE_RD if
both per-core L2 and cluster L3 are implemented, L2D_CACHE_RD if only one is
implemented, or L1D_CACHE_RD if neither is implemented.
0x37 [165:164] LL_CACHE_MISS_RD Last level cache miss, read.
• If CPUECTLR.EXTLLC is set: This event counts any cacheable read transaction
which returns a data source of 'DRAM', 'remote' or 'inter-cluster peer'.
• If CPUECTLR.EXTLLC is not set: This event is a duplicate of the
L*D_CACHE_REFILL_RD event corresponding to the last level of cache
implemented – L3D_CACHE_REFILL_RD if both per-core L2 and cluster L3
are implemented, L2D_CACHE_REFILL_RD if only one is implemented, or
L1D_CACHE_REFILL_RD if neither is implemented.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 320 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Performance Monitoring Unit
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 321 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Performance Monitoring Unit
• Instruction fetches.
• Prefetches.
0x67 [95:94] MEM_ACCESS_WR Data memory access, write. This event counts memory accesses due to store
instructions.
• Prefetches.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 322 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Performance Monitoring Unit
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 323 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Performance Monitoring Unit
You can route this signal to an external interrupt controller for prioritization and masking. This is the
only mechanism that signals this interrupt to the core.
This interrupt is also driven as a trigger input to the CTI. See the Arm® DynamIQ™ Shared Unit
Technical Reference Manual for more information.
The PMUEVENT bus is not exported to external components. This is because the
event bus cannot safely cross an asynchronous boundary when events can be
generated on every cycle.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 324 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Activity Monitor Unit
The activity monitors provide useful information for system power management and persistent
monitoring. The activity monitors are read-only in operation and their configuration is limited to the
highest Exception level implemented.
The Cortex®‑A76 core implements five counters, 0-4, and activity monitoring is only implemented
in AArch64.
• The System register interface for both AArch64 and AArch32 states.
• Read-only memory-mapped access using the debug APB interface.
In the Cortex®‑A76 core, the AMEN[4] bit in registers ACTLR_EL2 and ACTLR_EL3 controls the
activity monitor registers enable.
In the Cortex®‑A76 core, the AMEN[4] bit is RES0 in ACTLR and HACTLR. Activity
monitors are not implemented in AArch32.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 325 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Activity Monitor Unit
In this case, the AMU registers provide debug information and are read-only.
• All events are counted in 64-bit wrapping counters that overflow when they wrap. There is no
support for overflow status indication or interrupts.
• Any change in clock frequency, including when a WFI and WFE instruction stops the clock, can
affect any counter.
• Events 0, 1, 2, 3, and 4 are fixed, and the AMEVTYPER<n> evtCount bits are read-only.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 326 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Activity Monitor Unit
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 327 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Embedded Trace Macrocell
See the Arm® Embedded Trace Macrocell Architecture Specification ETMv4 for more information.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 328 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Embedded Trace Macrocell
Description Configuration
Stall control support Not implemented
Support for overflow avoidance Not implemented
Support for using CONTEXTIDR_EL2 in VMID comparator Implemented
The following table shows the resources that are implemented in the Cortex®‑A76 ETM trace unit.
The following figure shows the main functional blocks of the ETM trace unit.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 329 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Embedded Trace Macrocell
ETM
CORECLK
Core interface
This block monitors the behavior of the core and generates P0 elements that are essentially
executed branches and exceptions traced in program order.
Trace generation
The trace generation block generates various trace packets based on P0 elements.
Filtering and triggering resources
You can limit the amount of trace data generated by the ETM through the process of filtering.
For example, generating trace only in a certain address range. More complicated logic
analyzer style filtering options are also available.
The ETM trace unit can also generate a trigger that is a signal to the Trace Capture Device to
stop capturing trace.
FIFO
The trace generated by the ETM trace unit is in a highly-compressed form.
The FIFO enables trace bursts to be flattened out. When the FIFO becomes full, the FIFO
signals an overflow. The trace generation logic does not generate any new trace until the
FIFO is emptied. This causes a gap in the trace when viewed in the debugger.
Trace out
Trace from FIFO is output on the AMBA ATB interface.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 330 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Embedded Trace Macrocell
The ETM trace unit is not reset when Warm reset is applied to the core so that tracing through
Warm core reset is possible.
If the ETM trace unit is reset, tracing stops until the ETM trace unit is reprogrammed and re-
enabled. However, if the core is reset using Warm reset, the last few instructions that are provided
by the core before the reset might not be traced.
The core does not have to be in debug state when you program the ETM trace unit registers.
When you are programming the ETM trace unit registers, you must enable all the changes at the
same time. Otherwise, if you program the counter, it might start to count based on incorrect events
before the correct setup is in place for the trigger condition.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 331 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Embedded Trace Macrocell
Start
No
Read TRCSTATR
Is TRCSTATR Idle
0b1?
Yes
No
Read TRCSTATR
Is TRCSTATR Idle
0b0?
Yes
End
See the Arm® Embedded Trace Macrocell Architecture Specification ETMv4 for information on the
behaviors on register accesses for different trace unit states and the different access mechanisms.
Related information
External debug interface on page 315
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 332 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Embedded Trace Macrocell
See the Arm® Architecture Reference Manual for A-profile architecture for more information about
PMU events.
The ETM trace unit uses four extended external input selectors to access the PMU events. Each
selector can independently select one of the PMU events, that are then active for the cycles
where the relevant events occur. These selected events can then be accessed by any of the event
registers within the ETM trace unit. The PMU event table describes the PMU events.
Related information
PMU events on page 317
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 333 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 debug registers
For those registers that are not described in this chapter, see the Arm® Architecture Reference
Manual Arm®v8, for Arm®v8-A architecture profile.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 334 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 Debug registers
These registers, listed in the following table, are accessed by the MRS and MSR instructions in the
order of Op0, CRn, Op1, CRm, Op2.
See 23.1 Memory-mapped Debug register summary on page 344 for a complete list of registers
accessible from the external debug interface. The 64-bit registers cover two addresses on the
external memory interface. For those registers that are not described in this chapter, see the Arm®
Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 335 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 Debug registers
31 24 23 20 19 16 15 14 13 12 9 8 5 4 3 2 1 0
HMC
res0
RES0, [31:24]
RES0
Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 336 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 Debug registers
BT, [23:20]
Breakpoint Type. This field controls the behavior of Breakpoint debug event generation. This
includes the meaning of the value held in the associated DBGBVRn_EL1, indicating whether
it is an instruction address match or mismatch, or a Context match. It also controls whether
the breakpoint is linked to another breakpoint. The possible values are:
0b0000
Unlinked instruction address match.
0b0001
Linked instruction address match.
0b0010
Unlinked Context ID match.
0b0011
Linked Context ID match.
0b0100
Unlinked instruction address mismatch.
0b0101
Linked instruction address mismatch.
0b0110
Unlinked CONTEXTIDR_EL1 match.
0b0111
Linked CONTEXTIDR_EL1 match.
0b1000
Unlinked VMID match.
0b1001
Linked VMID match.
0b1010
Unlinked VMID + Conext ID match.
0b1011
Linked VMID + Context ID match.
0b1100
Unlinked CONTEXTIDR_EL2 match.
0b1101
Linked CONTEXTIDR_EL2 match.
0b1110
Unlinked Full Context ID match.
0b1111
Linked Full Context ID match.
• BT[3:1]: Base type. If the breakpoint is not context-aware, these bits are RES0. Otherwise,
the possible values are:
This field must be interpreted with the Higher Mode Control (HMC), and Privileged Mode
Control (PMC), fields to determine the mode and Security states that can be tested.
See the Arm® Architecture Reference Manual for A-profile architecture for possible values of the
HMC and PMC fields.
HMC, [13]
Hyp Mode Control bit. Determines the debug perspective for deciding when a breakpoint
debug event for breakpoint n is generated.
This bit must be interpreted with the SSC and PMC fields to determine the mode and
Security states that can be tested.
See the Arm® Architecture Reference Manual for A-profile architecture for possible values of the
SSC and PMC fields.
RES0, [12:9]
RES0
Reserved.
BAS, [8:5]
Byte Address Select. Defines which halfwords a regular breakpoint matches, regardless of the
instruction set and Execution state. A debugger must program this field as follows:
0x3
Match the T32 instruction at DBGBVRn_EL1.
0xC
Match the T32 instruction at DBGBVRn_EL1+2.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 338 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 Debug registers
0xF
Match the A64 or A32 instruction at DBGBVRn_EL1, or context match.
The Arm®v8‑A architecture does not support direct execution of Java bytecodes. BAS[3] and
BAS[1] ignore writes and on reads return the values of BAS[2] and BAS[0] respectively.
See the Arm® Architecture Reference Manual for A-profile architecture for more information on
how the BAS field is interpreted by hardware.
RES0, [4:3]
RES0
Reserved.
PMC, [2:1]
Privileged Mode Control. Determines the Exception level or levels that a breakpoint debug
event for breakpoint n is generated.
This field must be interpreted with the SSC and HMC fields to determine the mode and
Security states that can be tested.
See the Arm® Architecture Reference Manual for A-profile architecture for possible values of the
SSC and HMC fields.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 339 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 Debug registers
31 8 7 0
CLAIM
res0
RES0, [31:8]
RES0
Reserved.
CLAIM, [7:0]
Claim set bits.
Writing a 1 to one of these bits sets the corresponding CLAIM bit to 1. This is an indirect
write to the CLAIM bits.
A single write operation can set multiple bits to 1. Writing 0 to one of these bits has no
effect.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 340 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 Debug registers
31 29 28 24 23 21 20 19 16 15 14 13 12 5 4 3 2 1 0
WT HMC
res0
RES0, [31:29]
RES0
Reserved.
MASK, [28:24]
Address mask. Only objects up to 2GB can be watched using a single mask.
0b00000 No mask.
0b00001 Reserved.
0b00010 Reserved.
Other values mask the corresponding number of address bits, from 0b00011 masking
3 address bits (0x00000007 mask for address) to 0b11111 masking 31 address bits
(0x7FFFFFFF mask for address).
RES0, [23:21]
RES0
Reserved.
WT, [20]
Watchpoint type. Possible values are:
0b0
Unlinked data address match.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 341 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 Debug registers
0b1
Linked data address match.
All other values are reserved, but must behave as if the watchpoint is disabled. Software
must not rely on this property because the behavior of reserved values might change in a
future revision of the architecture.
IGNORED
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 342 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 Debug registers
PAC, [2:1]
Privilege of access control. Determines the Exception level or levels at which a watchpoint
debug event for watchpoint n is generated. This field must be interpreted along with the SSC
and HMCfields.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 343 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
For those registers that are not described in this chapter, see the Arm® Architecture Reference
Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 344 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 345 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 346 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
31 8 7 0
PRMBL_0
res0
RES0, [31:8]
RES0
Reserved.
PRMBL_0, [7:0]
0x0D
Preamble byte 0.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The EDCIDR0 can be accessed through the external debug interface, offset 0xFF0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 347 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
31 8 7 4 3 0
CLASS PRMBL_1
res0
RES0, [31:8]
RES0
Reserved.
CLASS, [7:4]
0x9
Debug component.
PRMBL_1, [3:0]
0x0
Preamble.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The EDCIDR1 can be accessed through the external debug interface, offset 0xFF4.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 348 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
31 8 7 0
PRMBL_2
res0
RES0, [31:8]
RES0
Reserved.
PRMBL_2, [7:0]
0x05
Preamble byte 2.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The EDCIDR2 can be accessed through the external debug interface, offset 0xFF8.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 349 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
31 8 7 0
PRMBL_3
res0
RES0, [31:8]
RES0
Reserved.
PRMBL_3, [7:0]
0xB1
Preamble byte 3.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The EDCIDR3 can be accessed through the external debug interface, offset 0xFFC.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 350 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
31 28 27 24 23 0
AuxRegs
res0
RES0, [31:28]
RES0
Reserved.
AuxRegs, [27:24]
Indicates support for Auxiliary registers:
0x0
None supported.
RES0, [23:0]
RES0
Reserved.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The EDDEVID can be accessed through the external debug interface, offset 0xFC8.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 351 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
31 0
res0
RES0, [31:0]
RES0
Reserved.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The EDDEVID1 can be accessed through the external debug interface, offset 0xFC4.
31 8 7 0
Part_0
res0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 352 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
RES0, [31:8]
RES0
Reserved.
Part_0, [7:0]
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The EDPIDR0 can be accessed through the external debug interface, offset 0xFE0.
31 8 7 4 3 0
DES_0 Part_1
res0
RES0, [31:8]
RES0
Reserved.
DES_0, [7:4]
0xB
Arm Limited. This is the least significant nibble of JEP106 ID code.
Part_1, [3:0]
0xD
Most significant nibble of the debug part number.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 353 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
The EDPIDR1 can be accessed through the external debug interface, offset 0xFE4.
31 8 7 4 3 2 0
Revision DES_1
JEDEC
RES0
RES0, [31:8]
RES0 Reserved.
Revision, [7:4]
0x5 r4p1.
JEDEC, [3]
DES_1, [2:0]
0b011 Arm Limited. This is the most significant nibble of JEP106 ID code.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The EDPIDR2 can be accessed through the external debug interface, offset 0xFE8.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 354 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
31 8 7 4 3 0
REVAND CMOD
res0
RES0, [31:8]
RES0
Reserved.
REVAND, [7:4]
0x0
Part minor revision.
CMOD, [3:0]
0x0
Customer modified.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The EDPIDR3 can be accessed through the external debug interface, offset 0xFEC.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 355 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
31 8 7 4 3 0
SIZE DES_2
res0
RES0, [31:8]
RES0
Reserved.
SIZE, [7:4]
0x0
Size of the component. Log2 the number of 4KB pages from the start of the
component to the end of the component ID registers.
DES_2, [3:0]
0x4
Arm Limited This is the least significant nibble JEP106 continuation code.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The EDPIDR4 can be accessed through the external debug interface, offset 0xFD0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 356 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CSPA
RES0 CSE
RES0, [31:4]
RES0
Reserved.
CSPA, [3]
Clear Sticky Pipeline Advance. This bit is used to clear the EDSCR.PipeAdv bit to 0. The
actions on writing to this bit are:
0
No action.
1
Clear the EDSCR.PipeAdv bit to 0.
CSE, [2]
Clear Sticky Error. Used to clear the EDSCR cumulative error bits to 0. The actions on writing
to this bit are:
0
No action
1
Clear the EDSCR.{TXU, RXO, ERR} bits, and, if the core is in Debug state, the
EDSCR.ITO bit, to 0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 357 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped Debug registers
RES0, [1:0]
RES0
Reserved.
The EDRCR can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x090.
Usage constraints
This register is accessible as follows:
Configurations
EDRCR is in the Core power domain.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 358 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 PMU registers
The following table gives a summary of the Cortex®‑A76 PMU registers in the AArch32 Execution
state. For those registers that are not described in this chapter, see the Arm® Architecture Reference
Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 359 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 PMU registers
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID[31:0]
ID[31:0], [31:0]
Common architectural and microarchitectural feature events that can be counted by the
PMU event counters.
The following table shows the PMCEID0 bit assignments with event implemented or not
implemented when the associated bit is set to 1 or 0. See the Arm® Architecture Reference
Manual for A-profile architecture for more information about these events.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 360 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 PMU registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 361 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 PMU registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 362 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 PMU registers
The PMU events implemented in the above table can be found in Table 18-1: PMU
Events on page 317.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
31 24 23 0
ID[55:32]
RES0
RES0, [31:24]
RES0
Reserved.
ID[55:32], [23:0]
Common architectural and microarchitectural feature events that can be counted by the
PMU event counters.
For each bit described in the following table, the event is implemented if the bit is set to 1, or
not implemented if the bit is set to 0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 363 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 PMU registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 364 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 PMU registers
The PMU events implemented in the above table can be found in Table 18-1: PMU
Events on page 317.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
31 24 23 16 15 11 10 7 6 5 4 3 2 1 0
IMP IDCODE N X D C P E
DP
LC
res0
IMP, [31:24]
Indicates the implementer code. The value is:
IDCODE, [23:16]
Identification code. The value is:
N, [15:11]
Identifies the number of event counters implemented.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 365 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 PMU registers
RES0, [10:7]
RES0 Reserved.
LC, [6]
Long cycle count enable. Determines which PMCCNTR bit generates an overflow recorded in
PMOVSR[31]. The overflow event is generated on a 32-bit or 64-bit boundary. The possible
values are:
X, [4]
Export enable. This bit permits events to be exported to another debug device, such as a
trace macrocell, over an event bus. The possible values are:
This field does not affect the generation of Performance Monitors overflow interrupt
requests or signaling to a cross-trigger interface (CTI) that can be implemented as signals
exported from the PE.
When this register has an architecturally defined reset value, if this field is implemented as an
RW field, it resets to 0.
D, [3]
Clock divider. The possible values are:
0b0 When enabled, counter CCNT counts every clock cycle. This is the
reset value.
0b1 When enabled, counter CCNT counts once every 64 clock cycles.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 366 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 PMU registers
Resetting PMCCNTR does not clear the PMCCNTR overflow bit to 0. See the Arm®
Architecture Reference Manual for A-profile architecture for more information.
P, [1]
Event counter reset. This bit is WO. The effects of writing to this bit are:
In Non-secure EL0 and EL1, a write of 1 to this bit does not reset event counters that
HDCR.HPMN or MDCR_EL2.HPMN reserves for EL2 use.
In EL2 and EL3, a write of 1 to this bit resets all the event counters.
Resetting the event counters does not clear any overflow bits to 0.
E, [0]
Enable. The possible values are:
This bit does not affect the operation of event counters that HDCR.HPMN or
MDCR_EL2.HPMN reserves for EL2 use.
When this register has an architecturally defined reset value, this field resets to 0.
Configurations
AArch32 System register PMCR is architecturally mapped to AArch64 System register
PMCR_EL0. See 25.4 PMCR_EL0, Performance Monitors Control Register, EL0 on page
375.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 367 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch32 PMU registers
AArch32 System register PMCR bits [6:0] are architecturally mapped to External register
PMCR_EL0[6:0].
There is one instance of this register that is used in both Secure and Non-secure states.
This register is in the Warm reset domain. Some or all RW fields of this register have defined
reset values. On a Warm or Cold reset these apply only if the PE resets into an Exception
level that is using AArch32. Otherwise, on a Warm or Cold reset RW fields in this register
reset to architecturally UNKNOWN values.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 368 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 PMU registers
The following table gives a summary of the Cortex®‑A76 PMU registers in the AArch64 Execution
state. For those registers that are not described in this chapter, see the Arm® Architecture Reference
Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 369 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 PMU registers
Related information
PMU events on page 317
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 370 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 PMU registers
63 32 31 0
ID[31:0]
RES0
RES0, [63:32]
RES0 Reserved.
ID[31:0], [31:0]
Common architectural and microarchitectural feature events that can be counted by the
PMU event counters.
For each bit described in the following table, the event is implemented if the bit is set to 1, or
not implemented if the bit is set to 0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 371 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 PMU registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 372 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 PMU registers
The PMU events implemented in the above table can be found in Table 18-1: PMU
Events on page 317.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 373 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 PMU registers
63 24 23 0
ID[55:32]
RES0
RES0, [63:24]
RES0 Reserved.
ID[55:32], [23:0]
Common architectural and microarchitectural feature events that can be counted by the
PMU event counters.
For each bit described in the following table, the event is implemented if the bit is set to 1, or
not implemented if the bit is set to 0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 374 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 PMU registers
The PMU events implemented in the above table can be found in Table 18-1: PMU
Events on page 317.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 375 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 PMU registers
31 24 23 16 15 11 10 7 6 5 4 3 2 1 0
IMP IDCODE N LC DP X D C P E
RES0
IMP, [31:24]
Implementer code:
0x41 Arm.
0x0B Cortex®‑A76.
RES0, [10:7]
RES0 Reserved.
LC, [6]
Long cycle count enable. Determines which PMCCNTR_EL0 bit generates an overflow
recorded in PMOVSR[31]. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 376 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 PMU registers
DP, [5]
Disable cycle counter, PMCCNTR_EL0 when event counting is prohibited:
This bit is read/write and does not affect the generation of Performance Monitors interrupts
on the nPMUIRQ pin.
D, [3]
Clock divider:
Resetting PMCCNTR_EL0 does not clear the PMCCNTR_EL0 overflow bit to 0. See the
Arm® Architecture Reference Manual for A-profile architecture for more information.
P, [1]
Event counter reset. This bit is WO. The effects of writing to this bit are:
In Non-secure EL0 and EL1, a write of 1 to this bit does not reset event counters that
MDCR_EL2.HPMN reserves for EL2 use.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 377 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 PMU registers
In EL2 and EL3, a write of 1 to this bit resets all the event counters.
Resetting the event counters does not clear any overflow bits to 0.
E, [0]
Enable. The possible values of this bit are:
In Non-secure EL0 and EL1, this bit does not affect the operation of event counters that
MDCR_EL2.HPMN reserves for EL2 use.
Configurations
AArch64 System register PMCR_EL0 is architecturally mapped to AArch32 System register
PMCR.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 378 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
These registers are listed in the following table. For those registers that are not described in this
chapter, see the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 379 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 380 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 381 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
31 17 16 15 14 13 8 7 0
Size N
CC
RES0 CCD
EX
RES0, [31:17]
RES0 Reserved.
EX, [16]
Export supported. The value is:
CCD, [15]
Cycle counter has pre-scale. The value is:
1 PMCR_EL0.D is read/write.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 382 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
CC, [14]
Dedicated cycle counter supported. The value is:
Size, [13:8]
Counter size. The value is:
N, [7:0]
Number of event counters. The value is:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The PMCFGR can be accessed through the external debug interface, offset 0xE00.
31 8 7 0
PRMBL_0
RES0
RES0, [31:8]
RES0
Reserved.
PRMBL_0, [7:0]
0x0D
Preamble byte 0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 383 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The PMCIDR0 can be accessed through the external debug interface, offset 0xFF0.
31 8 7 4 3 0
CLASS PRMBL_1
RES0
RES0, [31:8]
RES0
Reserved.
CLASS, [7:4]
0x9
Debug component.
PRMBL_1, [3:0]
0x0
Preamble byte 1.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The PMCIDR1 can be accessed through the external debug interface, offset 0xFF4.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 384 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
31 8 7 0
PRMBL_2
RES0
RES0, [31:8]
RES0
Reserved.
PRMBL_2, [7:0]
0x05
Preamble byte 2.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The PMCIDR2 can be accessed through the external debug interface, offset 0xFF8.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 385 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
31 8 7 0
PRMBL_3
RES0
RES0, [31:8]
RES0
Reserved.
PRMBL_3, [7:0]
0xB1
Preamble byte 3.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The PMCIDR3 can be accessed through the external debug interface, offset 0xFFC.
31 8 7 0
Part_0
RES0
RES0, [31:8]
RES0
Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 386 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
Part_0, [7:0]
0x0B
Least significant byte of the performance monitor part number.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The PMPIDR0 can be accessed through the external debug interface, offset 0xFE0.
31 8 7 4 3 0
DES_0 Part_1
RES0
RES0, [31:8]
RES0
Reserved.
DES_0, [7:4]
0xB
Arm Limited. This is the least significant nibble of JEP106 ID code.
Part_1, [3:0]
0xD
Most significant nibble of the performance monitor part number.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The PMPIDR1 can be accessed through the external debug interface, offset 0xFE4.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 387 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
31 8 7 4 3 2 0
Revision DES_1
JEDEC
RES0
RES0, [31:8]
RES0
Reserved.
Revision, [7:4]
0x5
r4p1.
JEDEC, [3]
0b1
RAO. Indicates a JEP106 identity code is used.
DES_1, [2:0]
0b011
Arm Limited. This is the most significant nibble of JEP106 ID code.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The PMPIDR2 can be accessed through the external debug interface, offset 0xFE8.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 388 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
31 8 7 4 3 0
REVAND CMOD
RES0
RES0, [31:8]
RES0
Reserved.
REVAND, [7:4]
0x0
Part minor revision.
CMOD, [3:0]
0x0
Customer modified.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The PMPIDR3 can be accessed through the external debug interface, offset 0xFEC.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 389 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped PMU registers
31 8 7 4 3 0
Size DES_2
RES0
RES0, [31:8]
RES0
Reserved.
Size, [7:4]
0x0
Size of the component. Log2 the number of 4KB pages from the start of the
component to the end of the component ID registers.
DES_2, [3:0]
0x4
Arm Limited. This is the least significant nibble JEP106 continuation code.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual for A-profile architecture.
The PMPIDR4 can be accessed through the external debug interface, offset 0xFD0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 390 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
PMU snapshot registers
The following table describes the PMU snapshot registers implemented in the core.
However, unlike the other view of PMPCSR, it is not sensitive to reads. That is, reads of PMPCSSR
through the PMU snapshot view do not cause a new sample capture and do not change
PMCID1SR, PMCID2SR, or PMVIDSR.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 391 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
PMU snapshot registers
63 62 61 60 56 55 0
EL PC
NS
RES0
NS, [63]
Non-secure sample.
EL, [62:61]
Exception level sample.
RES0, [60:56]
Reserved, RES0.
PC, [55:0]
Sampled PC.
Configurations
There are no configuration notes.
Usage constraints
Any access to PMPCSSR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.
Configurations
There are no configuration notes.
Usage constraints
Any access to PMCIDSSR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 392 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
PMU snapshot registers
Configurations
There are no configuration notes.
Usage constraints
Any access to PMCID2SSR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.
31 1 0
NC
RES0
RES0, [31:1]
Reserved, RES0.
NC, [0]
No capture. This bit indicates whether the PMU event counters have been captured. The
possible values are:
If there is a security violation, the core does not capture the event counters. The external
monitor is responsible for keeping track of whether it managed to capture the snapshot
registers from the core.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 393 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
PMU snapshot registers
This bit does not reflect the status of the captured Program Counter Sample registers.
The core resets this bit to 1 by a Warm reset but MPSSSR.NC is overwritten at the first
capture.
Configurations
There are no configuration notes.
Usage constraints
Any access to PMSSSR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.
Configurations
There are no configuration notes.
Usage constraints
Any access to PMOVSSR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.
Configurations
There are no configuration notes.
Usage constraints
Any access to PMCCNTSR returns an error if any of the following occurs:
• The Core power domain is off.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 394 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
PMU snapshot registers
• DoubleLockStatus() == TRUE.
Configurations
There are no configuration notes.
Usage constraints
Any access to PMSSEVCNTRn returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.
31 1 0
SS
RES0
RES0, [31:1]
Reserved, RES0.
SS, [0]
Capture now. The possible values are:
0 IGNORED.
1 Initiate a capture immediately.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 395 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
PMU snapshot registers
Configurations
There are no configuration notes.
Usage constraints
Any access to PMSSCR returns an error if any of the following occurs:
• The Core power domain is off.
• DoubleLockStatus() == TRUE.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 396 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 AMU registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 397 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 AMU registers
31 5 4 3 0
RAZ/WI P<n>
P<n>, bit[n]
AMEVCNTRn disable bit for n=0-4. The possible values are:
Configurations
There are no configuration notes.
Usage constraints
Accessing the AMCNTENCLR_EL0
To access the AMCNTENCLR_EL0:
The AMCNTENCLR_EL0 can be accessed through the external debug interface, offset
0xC20. In this case, it is read-only.
If ACTLR_EL3.AMEN is 0, then accesses to this register from EL0, EL1, and EL2 are trapped
to EL3.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 398 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 AMU registers
If AMUSERENR_EL0.EN is 0, then accesses to this register from EL0 are trapped to EL1.
31 5 4 3 0
RAZ/WI P<n>
P<n>, bit[n]
AMEVCNTRn enable bit for n=0-4. The possible values are:
Configurations
There are no configuration notes.
Usage constraints
Accessing the AMCNTENSET_EL0
To access the AMCNTENSET_EL0:
The AMCNTENSET_EL0 can be accessed through the external debug interface, offset
0xC00. In this case, it is read-only.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 399 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 AMU registers
If ACTLR_EL3.AMEN is 0, then accesses to this register from EL0, EL1, and EL2 are trapped
to EL3.
If AMUSERENR_EL0.EN is 0, then accesses to this register from EL0 are trapped to EL1.
31 14 13 8 7 0
SIZE N
res0
RES0, [31:14]
Reserved, RES0.
SIZE, [13:8]
Size of counters, minus one.
This field defines the size of the largest counter that is implemented by the activity monitors.
In the Armv8-A architecture, the largest counter has 64 bits, therefore the value of this field
is 0b111111.
N, [7:0]
Number of activity counters that are implemented, where the number of counters is N+1.
The Cortex®‑A76 core implements five counters, therefore the value is 0x04.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 400 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 AMU registers
Configurations
There are no configuration notes.
Usage constraints
Accessing the AMCFGR_EL0
To access the AMCFGR_EL0:
The AMCFGR_EL0 can be accessed through the external debug interface, offset 0xE00. In
this case, it is read-only.
If ACTLR_EL3.AMEN is 0, then accesses to this register from EL0, EL1, and EL2 are trapped
to EL3.
If AMUSERENR_EL0.EN is 0, then accesses to this register from EL0 are trapped to EL1.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 401 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 AMU registers
31 1 0
EN
RES0
RES0, [31:1]
Reserved, RES0.
EN, [0]
Traps EL0 accesses to the activity monitor registers to EL1. The possible values are:
Configurations
There are no configuration notes.
Usage constraints
Accessing the AMUSERENR_EL0
To access the AMUSERENR_EL0:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 402 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 AMU registers
If ACTLR_EL3.AMEN is 0, then accesses to this register from EL0, EL1, and EL2 are trapped
to EL3.
63 0
ACNT
ACNT, [63:0]
Value of the activity counter AMEVCNTRn_EL0.
This bit field resets to zero and the counters monitoring cycle events do not increment when
the core is in WFI or WFE.
Configurations
Counters might have fixed event allocation.
Usage constraints
Accessing the AMEVCNTRn_EL0
To access the AMEVCNTRn_EL0:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 403 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 AMU registers
If ACTLR_EL3.AMEN is 0, then accesses to this register from EL0, EL1, and EL2 are trapped
to EL3.
If AMUSERENR_EL0.EN is 0, then accesses to this register from EL0 are trapped to EL1.
31 10 9 0
evtCount
RES0
RES0, [31:10]
Reserved, RES0.
evtCount, bits[9:0]
The event the counter monitors might be fixed at implementation. In this case, the field is
read-only. See 19.4 AMU events on page 326.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 404 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
AArch64 AMU registers
Configurations
Counters might have fixed event allocation.
If ACTLR_EL3.AMEN is 0, then accesses to this register from EL0, EL1, and EL2 are trapped to
EL3.
If AMUSERENR_EL0.EN is 0, then accesses to this register from EL0 are trapped to EL1.
Usage constraints
Accessing the AMEVTYPERn_EL0
To access the AMEVTYPERn_EL0:
This register can also be accessed through the external memory-mapped interface, offset
0x400+4n. In this case, it is read-only.
If ACTLR_EL3.AMEN is 0, then accesses to this register from EL0, EL1, and EL2 are trapped
to EL3.
If AMUSERENR_EL0.EN is 0, then accesses to this register from EL0 are trapped to EL1.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 405 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Memory-mapped AMU registers
The memory-mapped AMU registers are listed in the following table. For those registers that are
not described in this chapter, see the Arm® Architecture Reference Manual for A-profile architecture.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 406 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
All ETM trace unit registers are 32-bit wide. The description of each register includes its offset
from a base address. The base address is defined by the system integrator when placing the ETM
trace unit in the Debug-APB memory map.
The following table lists all of the ETM trace unit registers.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 407 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 408 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 409 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
63 16 15 12 11 8 7 3 2 1 0
TYPE
EXLEVEL_NS CONTEXTTYPE
RES0 EXLEVEL_S
RES0, [63:16]
RES0 Reserved
EXLEVEL_NS, [15:12]
Each bit controls whether a comparison can occur in Non-secure state for the corresponding
Exception level. The possible values are:
EXLEVEL_S, [11:8]
Each bit controls whether a comparison can occur in Secure state for the corresponding
Exception level. The possible values are:
RES0, [7:4]
RES0 Reserved
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 410 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
TYPE, [1:0]
Type of comparison:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCACATRn registers can be accessed through the external debug interface, offset
0x480-0x4B8.
63 0
ADDRESS
ADDRESS, [63:0]
The address value to compare against
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 411 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
The TRCACVRn can be accessed through the external debug interface, offset 0x400-0x43C.
31 8 7 6 5 4 3 2 1 0
RES0 SNID
SID
NSNID
NSID
RES0, [31:8]
RES0 Reserved.
SNID, [7:6]
Secure Non-invasive Debug:
SID, [5:4]
Secure Invasive Debug:
NSNID, [3:2]
Non-secure Non-invasive Debug:
NSID, [1:0]
Non-secure Invasive Debug:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 412 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCAUTHSTATUS can be accessed through the external debug interface, offset 0xFB8.
31 9 8 7 6 5 4 3 2 1 0
DBGFLUSHOVERRIDE
RES0 CIFOVERRIDE
INOVFLOWEN
FLUSHOVERRIDE
TSIOVERRIDE
SYNCOVERRIDE
FRSYNCOVFLOW
IDLEACKOVERRIDE
AFREADYOVERRIDE
RES0, [31:9]
RES0 Reserved.
DBGFLUSHOVERRIDE, [8]
Override trace flush on debug state entry. The possible values are:
CIFOVERRIDE, [7]
Override core interface register repeater clock enable. The possible values are:
INOVFLOWEN, [6]
Allow overflows of the core interface buffer, removing any rare impact that the trace unit
might have on the core's speculation when enabled. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 413 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
When this bit is set to 1, the trace start/stop logic might deviate from architecturally-
specified behavior.
FLUSHOVERRIDE, [5]
Override ETM flush behavior. The possible values are:
0 ETM trace unit FIFO is flushed and ETM trace unit enters idle state
when DBGEN or NIDEN is LOW.
1 ETM trace unit FIFO is not flushed and ETM trace unit does not
enter idle state when DBGEN or NIDEN is LOW.
When this bit is set to 1, the trace unit behavior deviates from architecturally-specified
behavior.
TSIOVERRIDE, [4]
Override TS packet insertion behavior. The possible values are:
0 Timestamp packets are inserted into FIFO only when trace activity is
LOW.
1 Timestamp packets are inserted into FIFO irrespective of trace
activity.
SYNCOVERRIDE, [3]
Override SYNC packet insertion behavior. The possible values are:
0 SYNC packets are inserted into FIFO only when trace activity is low.
1 SYNC packets are inserted into FIFO irrespective of trace activity.
FRSYNCOVFLOW, [2]
Force overflows to output synchronization packets. The possible values are:
When this bit is set to 1, the trace unit behavior deviates from architecturally-specified
behavior.
IDLEACKOVERRIDE, [1]
Force ETM idle acknowledge. The possible values are:
0 ETM trace unit idle acknowledge is asserted only when the ETM
trace unit is in idle state.
1 ETM trace unit idle acknowledge is asserted irrespective of the ETM
trace unit idle state.
When this bit is set to 1, trace unit behavior deviates from architecturally-specified behavior.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 414 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
AFREADYOVERRIDE, [0]
Force assertion of AFREADYM output. The possible values are:
0 ETM trace unit AFREADYM output is asserted only when the ETM
trace unit is in idle state or when all the trace bytes in FIFO before a
flush request are output.
1 ETM trace unit AFREADYM output is always asserted HIGH.
When this bit is set to 1, trace unit behavior deviates from architecturally-specified behavior.
The TRCAUXCTLR can be accessed through the internal memory-mapped interface and the
external debug interface, offset 0x018.
Configurations
Available in all configurations.
31 9 8 7 0
RANGE
MODE
RES0
RES0, [31:9]
RES0 Reserved
MODE, [8]
Mode bit:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 415 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RANGE, [7:0]
Address range field.
Selects which address range comparator pairs are in use with branch broadcasting. Each bit
represents an address range comparator pair, so bit[n] controls the selection of address range
comparator pair n. If bit[n] is:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCBBCTLR can be accessed through the external debug interface, offset 0x03C.
31 12 11 0
THRESHOLD
RES0
RES0, [31:12]
RES0 Reserved.
THRESHOLD, [11:0]
Instruction trace cycle count threshold.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 416 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCCCTLR can be accessed through the external debug interface, offset 0x038.
31 4 3 0
COMP0
RES0
RES0, [31:4]
RES0 Reserved.
COMP0, [3:0]
Controls the mask value that the trace unit applies to TRCCIDCVR0. Each bit in this field
corresponds to a byte in TRCCIDCVR0. When a bit is:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCIDCCTLR0 can be accessed through the external debug interface, offset 0x680.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 417 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
63 32 31 0
Value
RES0
RES0, [63:32]
RES0 Reserved.
VALUE, [31:0]
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCIDCVR0 can be accessed through the external debug interface, offset 0x600.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 418 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 8 7 0
PRMBL_0
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_0, [7:0]
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCIDR0 can be accessed through the external debug interface, offset 0xFF0.
31 8 7 4 3 0
CLASS PRMBL_1
RES0
RES0, [31:8]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 419 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
CLASS, [7:4]
PRMBL_1, [3:0]
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCIDR1 can be accessed through the external debug interface, offset 0xFF4.
31 8 7 0
PRMBL_2
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_2, [7:0]
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCIDR2 can be accessed through the external debug interface, offset 0xFF8.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 420 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 8 7 0
PRMBL_3
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_3, [7:0]
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCIDR3 can be accessed through the external debug interface, offset 0xFFC.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 421 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 4 3 0
CLR
RES0
RES0, [31:4]
RES0 Reserved.
CLR, [3:0]
On reads, for each bit:
0 Has no effect.
1 Clears the relevant bit of the claim tag.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCLAIMCLR can be accessed through the external debug interface, offset 0xFA4.
31 4 3 0
SET
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 422 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RES0, [31:4]
RES0 Reserved.
SET, [3:0]
On reads, for each bit:
0 Has no effect.
1 Sets the relevant bit of the claim tag.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCLAIMSET can be accessed through the external debug interface, offset 0xFA0.
31 17 16 15 14 12 11 8 7 6 4 3 0
RLDSEL CNTSEL
RLDSELF CNTTYPE
RES0 RLDTYPE
RES0, [31:17]
RES0 Reserved.
RLDSELF, [16]
Defines whether the counter reloads when it reaches zero:
0 The counter does not reload when it reaches zero. The counter only
reloads based on RLDTYPE and RLDSEL.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 423 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
1 The counter reloads when it reaches zero and the resource selected
by CNTTYPE and CNTSEL is also active. The counter also reloads
based on RLDTYPE and RLDSEL.
RLDTYPE, [15]
Selects the resource type for the reload:
RES0, [14:12]
RES0 Reserved.
RLDSEL, [11:8]
Selects the resource number, based on the value of RLDTYPE:
When RLDTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When RLDTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].
CNTTYPE, [7]
Selects the resource type for the counter:
RES0, [6:4]
RES0 Reserved.
CNTSEL, [3:0]
Selects the resource number, based on the value of CNTTYPE:
When CNTTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When CNTTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by
bits[2:0].
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCNTCTLR0 can be accessed through the external debug interface, offset 0x150.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 424 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 18 17 16 15 14 12 11 8 7 6 4 3 0
RLDSEL CNTSEL
CNTCHAIN CNTTYPE
RES0 RLDSELF
RLDTYPE
RES0, [31:18]
RES0 Reserved.
CNTCHAIN, [17]
Defines whether the counter decrements when the counter reloads. This enables two
counters to be used in combination to provide a larger counter:
RLDSELF, [16]
Defines whether the counter reloads when it reaches zero:
0 The counter does not reload when it reaches zero. The counter only
reloads based on RLDTYPE and RLDSEL.
1 The counter reloads when it is zero and the resource selected by
CNTTYPE and CNTSEL is also active. The counter also reloads based
on RLDTYPE and RLDSEL.
RLDTYPE, [15]
Selects the resource type for the reload:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 425 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RES0, [14:12]
RES0 Reserved.
RLDSEL, [11:8]
Selects the resource number, based on the value of RLDTYPE:
When RLDTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When RLDTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].
CNTTYPE, [7]
Selects the resource type for the counter:
RES0, [6:4]
RES0 Reserved.
CNTSEL, [3:0]
Selects the resource number, based on the value of CNTTYPE:
When CNTTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When CNTTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by
bits[2:0].
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCNTCTLR1 can be accessed through the external debug interface, offset 0x154.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 426 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 16 15 0
VALUE
RES0
RES0, [31:16]
RES0 Reserved
VALUE, [15:0]
Defines the reload value for the counter. This value is loaded into the counter each time the
reload event occurs.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCNTRLDVRn registers can be accessed through the external debug interface, offsets:
TRCCNTRLDVR0
0x140
TRCCNTRLDVR1
0x144
31 16 15 0
VALUE
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 427 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RES0, [31:16]
RES0 Reserved
VALUE, [15:0]
Contains the current counter value.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCNTVRn registers can be accessed through the external debug interface, offsets:
TRCCNTVR0
0x160
TRCCNTVR1
0x164
31 18 17 16 15 14 13 12 11 10 8 7 6 5 4 3 2 1 0
QE COND
DV VMID
RES1 DA CID
RES0 VMIDOPT CCI
RS BB
TS INSTP0
RES0, [31:18]
RES0 Reserved.
DV, [17]
Enables data value tracing. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 428 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
DA, [16]
Enables data address tracing. The possible values are:
VMIDOPT, [15]
Configures the Virtual context identifier value that is used by the trace unit, both for trace
generation and in the Virtual context identifier comparators. The possible values are:
QE, [14:13]
Enables Q element. The possible values are:
RS, [12]
Enables the return stack. The possible values are:
TS, [11]
Enables global timestamp tracing. The possible values are:
COND, [10:8]
Enables conditional instruction tracing. The possible values are:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 429 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
VMID, [7]
Enables VMID tracing. The possible values are:
CID, [6]
Enables context ID tracing. The possible values are:
RES0, [5]
RES0 Reserved.
CCI, [4]
Enables cycle counting instruction trace. The possible values are:
BB, [3]
Enables branch broadcast mode. The possible values are:
INSTP0, [2:1]
Controls whether load and store instructions are traced as P0 instructions. The possible
values are:
RES1, [0]
RES1 Reserved.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCCONFIGR can be accessed through the external debug interface, offset 0x010.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 430 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 21 20 19 16 15 0
PRESENT
ARCHITECT, [31:21]
Defines the architect of the component:
PRESENT, [20]
Indicates the presence of this register:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 431 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
REVISION, [19:16]
Architecture revision:
ARCHID, [15:0]
Architecture ID:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCDEVARCH can be accessed through the external debug interface, offset 0xFBC.
31 0
DEVID
DEVID, [31:0]
RAZ. There are no component-defined capabilities.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCDEVID can be accessed through the external debug interface, offset 0xFC8.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 432 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 8 7 4 3 0
SUB MAJOR
RES0
RES0, [31:8]
RES0 Reserved.
SUB, [7:4]
The sub-type of the component:
MAJOR, [3:0]
The main type of the component:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCDEVTYPE can be accessed through the external debug interface, offset 0xFCC.
31 30 28 27 24 23 22 20 19 16 15 14 12 11 8 7 6 4 3 0
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 433 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
TYPE3, [31]
Selects the resource type for trace event 3:
RES0, [30:28]
RES0 Reserved.
SEL3, [27:24]
Selects the resource number, based on the value of TYPE3:
When TYPE3 is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When TYPE3 is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].
TYPE2, [23]
Selects the resource type for trace event 2:
RES0, [22:20]
RES0 Reserved.
SEL2, [19:16]
Selects the resource number, based on the value of TYPE2:
When TYPE2 is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When TYPE2 is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].
TYPE1, [15]
Selects the resource type for trace event 1:
RES0, [14:12]
RES0 Reserved.
SEL1, [11:8]
Selects the resource number, based on the value of TYPE1:
When TYPE1 is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When TYPE1 is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 434 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
TYPE0, [7]
Selects the resource type for trace event 0:
RES0, [6:4]
RES0 Reserved.
SEL0, [3:0]
Selects the resource number, based on the value of TYPE0:
When TYPE0 is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When TYPE0 is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCEVENTCTL0R can be accessed through the external debug interface, offset 0x020.
31 13 12 11 10 8 7 5 4 3 0
EN
RES0 ATB
LPOVERRIDE
RES0, [31:13]
RES0 Reserved.
LPOVERRIDE, [12]
Low-power state behavior override:
ATB, [11]
ATB trigger enable:
RES0, [10:4]
RES0 Reserved.
EN, [3:0]
One bit per event, to enable generation of an event element in the instruction trace stream
when the selected event occurs:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCEVENTCTL1R can be accessed through the external debug interface, offset 0x024.
31 24 23 16 15 8 7 0
SEL3, [31:24]
Selects an event from the external input bus for External Input Resource 3.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 436 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
SEL2, [23:16]
Selects an event from the external input bus for External Input Resource 2.
SEL1, [15:8]
Selects an event from the external input bus for External Input Resource 1.
SEL0, [7:0]
Selects an event from the external input bus for External Input Resource 0.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCEXTINSELR can be accessed through the external debug interface, offset 0x120.
31 30 29 28 24 23 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TSSIZE
RES0, [31:30]
RES0 Reserved.
COMMOPT, [29]
Indicates the meaning of the commit field in some packets:
1 Commit mode 1.
TSSIZE, [28:24]
Global timestamp size field:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 437 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RES0, [23:17]
RES0 Reserved.
QSUPP, [16:15]
Indicates Q element support:
QFILT, [14]
Indicates Q element filtering support:
CONDTYPE, [13:12]
Indicates how conditional results are traced:
NUMEVENT, [11:10]
Number of events supported in the trace, minus 1:
RETSTACK, [9]
Return stack support:
RES0, [8]
RES0 Reserved.
TRCCCI, [7]
Support for cycle counting in the instruction trace:
TRCCOND, [6]
Support for conditional instruction tracing:
TRCBB, [5]
Support for branch broadcast tracing:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 438 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
TRCDATA, [4:3]
Conditional tracing field:
INSTP0, [2:1]
P0 tracing support field:
RES1, [0]
RES1 Reserved.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR0 can be accessed through the external debug interface, offset 0x1E0.
31 24 23 16 15 12 11 8 7 4 3 0
DESIGNER REVISION
TRCARCHMAJ
RES1 TRCARCHMIN
RES0
DESIGNER, [31:24]
Indicates which company designed the trace unit:
0x41 Arm.
RES0, [23:16]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 439 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RES1, [15:12]
RES1 Reserved.
TRCARCHMAJ, [11:8]
Major trace unit architecture version number:
0x4 ETMv4.
TRCARCHMIN, [7:4]
Minor trace unit architecture version number:
0x2 ETMv4.2
REVISION, [3:0]
Trace unit implementation revision number:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR1 can be accessed through the external debug interface, offset 0x1E4.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 440 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 29 28 25 24 20 19 15 14 10 9 5 4 0
VMIDOPT
RES0
RES0, [31]
RES0
Reserved.
VMIDOPT, [30:29]
Indicates the options for observing the Virtual context identifier:
0x1
VMIDOPT is implemented.
CCSIZE, [28:25]
Size of the cycle counter in bits minus 12:
0x0
The cycle counter is 12 bits in length.
DVSIZE, [24:20]
Data value size in bytes:
0x00
Data value tracing is not implemented.
DASIZE, [19:15]
Data address size in bytes:
0x00
Data address tracing is not implemented.
VMIDSIZE, [14:10]
Virtual Machine ID size:
0x4
Maximum of 32-bit Virtual Machine ID size.
CIDSIZE, [9:5]
Context ID size in bytes:
0x4
Maximum of 32-bit Context ID size.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 441 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
IASIZE, [4:0]
Instruction address size in bytes:
0x8
Maximum of 64-bit address size.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR2 can be accessed through the external debug interface, offset 0x1E8.
31 30 28 27 26 25 24 23 20 19 16 15 12 11 5 4 0
CCITMIN
EXLEVEL_S
EXLEVEL_NS
TRCERR
SYNCPR
STALLCTL
SYSSTALL
NUMPROC
NOOVERFLOW
RES0
NOOVERFLOW, [31]
Indicates whether TRCSTALLCTLR.NOOVERFLOW is implemented:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 442 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
NUMPROC, [30:28]
Indicates the number of cores available for tracing:
0b000 The trace unit can trace one core, ETM trace unit sharing not
supported.
SYSSTALL, [27]
Indicates whether stall control is implemented:
STALLCTL, [26]
Indicates whether TRCSTALLCTLR is implemented:
TRCERR, [24]
Indicates whether TRCVICTLR.TRCERR is implemented:
1 TRCVICTLR.TRCERR is implemented.
EXLEVEL_NS, [23:20]
Each bit controls whether instruction tracing in Non-secure state is implemented for the
corresponding Exception level:
0b0111 Instruction tracing is implemented for Non-secure EL0, EL1, and EL2
Exception levels.
EXLEVEL_S, [19:16]
Each bit controls whether instruction tracing in Secure state is implemented for the
corresponding Exception level:
0b1011 Instruction tracing is implemented for Secure EL0, EL1, and EL3
Exception levels.
RES0, [15:12]
RES0 Reserved.
CCITMIN, [11:0]
The minimum value that can be programmed in TRCCCCTLR.THRESHOLD:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 443 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR3 can be accessed through the external debug interface, offset 0x1EC.
31 28 27 24 23 20 19 16 15 12 11 9 8 7 4 3 0
NUMVMIDC, [31:28]
Indicates the number of VMID comparators available for tracing:
NUMCIDC, [27:24]
Indicates the number of CID comparators available for tracing:
NUMSSCC, [23:20]
Indicates the number of single-shot comparator controls available for tracing:
NUMRSPAIRS, [19:16]
Indicates the number of resource selection pairs available for tracing:
NUMPC, [15:12]
Indicates the number of core comparator inputs available for tracing:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 444 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RES0, [11:9]
RES0 Reserved.
SUPPDAC, [8]
Indicates whether the implementation supports data address comparisons: This value is:
NUMDVC, [7:4]
Indicates the number of data value comparators available for tracing:
NUMACPAIRS, [3:0]
Indicates the number of address comparator pairs available for tracing:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR4 can be accessed through the external debug interface, offset 0x1F0.
31 30 28 27 25 24 23 22 21 16 15 12 11 9 8 0
TRACEIDSIZE NUMEXTIN
ATBTRIG NUMEXTINSEL
LPOVERRIDE
NUMSEQSTATE
NUMCNTR
REDFUNCNTR
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 445 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
REDFUNCNTR, [31]
Reduced Function Counter implemented:
NUMCNTR, [30:28]
Number of counters implemented:
NUMSEQSTATE, [27:25]
Number of sequencer states implemented:
RES0, [24]
RES0 Reserved.
LPOVERRIDE, [23]
Low-power state override support:
ATBTRIG, [22]
ATB trigger support:
TRACEIDSIZE, [21:16]
Number of bits of trace ID:
RES0, [15:12]
RES0 Reserved.
NUMEXTINSEL, [11:9]
Number of external input selectors implemented:
NUMEXTIN, [8:0]
Number of external inputs implemented:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 446 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR5 can be accessed through the external debug interface, offset 0x1F4.
31 0
MAXSPEC
MAXSPEC, [31:0]
The maximum number of P0 elements in the trace stream that can be Speculative at any
time.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR8 can be accessed through the external debug interface, offset 0x180.
31 0
NUMP0KEY
NUMP0KEY, [31:0]
The number of P0 right-hand keys that the trace unit can use.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 447 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR9 can be accessed through the external debug interface, offset 0x184.
31 0
NUMP1KEY
NUMP1KEY, [31:0]
The number of P1 right-hand keys that the trace unit can use.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR10 can be accessed through the external debug interface, offset 0x188.
31 0
NUMP1SPC
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 448 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
NUMP1SPC, [31:0]
The number of special P1 right-hand keys that the trace unit can use.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR11 can be accessed through the external debug interface, offset 0x18C.
31 0
NUMCONDKEY
NUMCONDKEY, [31:0]
The number of conditional instruction right-hand keys that the trace unit can use, including
normal and special keys.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR12 can be accessed through the external debug interface, offset 0x190.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 449 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 0
NUMCONDSPC
NUMCONDSPC, [31:0]
The number of special conditional instruction right-hand keys that the trace unit can use,
including normal and special keys.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIDR13 can be accessed through the external debug interface, offset 0x194.
31 4 3 0
RES0 SUPPORT
RES0, [31:4]
RES0
Reserved.
SUPPORT, [3:0]
0
No IMPLEMENTATION SPECIFIC extensions are supported.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 450 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCIMSPEC0 can be accessed through the external debug interface, offset 0x1C0.
31 10 9 8 7 2 1 0
ATBYTESM[1:0] AFREADYM
RES0 ATVALIDM
ATBYTESM[1:0], [9:8]
Drives the ATBYTESM outputs.
AFREADYM, [1]
Drives the AFREADYM output.
ATVALIDM, [0]
Drives the ATVALIDM output.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCITATBCTR0 register can be accessed through the internal memory-mapped interface and
the external debug interface, offset 0xEF8.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 451 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 7 6 0
ATIDM[6:0]
RES0
ATIDM[6:0], [6:0]
Drives the ATIDM[6:0] outputs.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCITATBCTR1 register can be accessed through the internal memory-mapped interface and
the external debug interface, offset 0xEF4.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 452 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 2 1 0
RES0 AFVALIDM
ATREADYM
AFVALIDM, [1]
Returns the value of AFVALIDM input.
ATREADYM, [0]
Returns the value of ATREADYM input. To sample ATREADYM correctly from the processor
signals, ATVALIDM must be asserted.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCITATBCTR2 register can be accessed through the internal memory-mapped interface and
the external debug interface, offset 0xEF0.
31 5 4 3 2 1 0
ATDATAM[31]
RES0 ATDATAM[23]
ATDATAM[15]
ATDATAM[7]
ATDATAM[0]
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 453 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCITATBDATA0 register can be accessed through the internal memory-mapped interface and
the external debug interface, offset 0xEEC.
IME
res0
IME, [0]
Integration mode enable bit. The possible values are:
Usage constraints
• Accessible only from the memory-mapped interface or from an external agent such as a
debugger.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 454 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
• If the IME bit changes from one to zero then Arm recommends that the trace unit is
reset. Otherwise the trace unit might generate incorrect or corrupt trace and the trace
unit resources might behave unexpectedly.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCITCTRL register can be accessed through the internal memory-mapped interface and the
external debug interface, offset 0xF00.
31 4 3 0
RES0 ETMEXTIN[3:0]
ETMEXTIN[3:0], [3:0]
Returns the value of the ETMEXTIN[3:0] inputs.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCITMISCIN register can be accessed through the internal memory-mapped interface and
the external debug interface, offset 0xEE0.
31 12 11 8 7 0
res0 ETMEXTOUT[3:0]
ETMEXTOUT[3:0], [11:8]
Drives the EXTOUT[3:0] outputs.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCITMISCOUT register can be accessed through the internal memory-mapped interface and
the external debug interface, offset 0xEDC.
31 0
RAZ/WI
RAZ/WI, [31:0]
Read-As-Zero, write ignore.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCLAR can be accessed through the external debug interface, offset 0xFB0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 456 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 0
RAZ/WI
RAZ/WI, [31:0]
Read-As-Zero, write ignore.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCLSR can be accessed through the external debug interface, offset 0xFB4.
31 1 0
RES0 OSLK
RES0, [31:1]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 457 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
OSLK, [0]
OS Lock key value:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCOSLAR can be accessed through the external debug interface, offset 0x300.
31 4 3 2 1 0
RES0 OSLM[1]
nTT
OSLK
OSLM[0]
RES0, [31:4]
RES0 Reserved.
OSLM[1], [3]
OS Lock model [1] bit. This bit is combined with OSLM[0] to form a two-bit field that
indicates the OS Lock model is implemented.
The value of this field is always 0b10, indicating that the OS Lock is implemented.
nTT, [2]
This bit is RAZ, that indicates that software must perform a 32-bit write to update the
TRCOSLAR.
OSLK, [1]
OS Lock status bit:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 458 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
0 OS Lock is unlocked.
1 OS Lock is locked.
OSLM[0], [0]
OS Lock model [0] bit. This bit is combined with OSLM[1] to form a two-bit field that
indicates the OS Lock model is implemented.
The value of this field is always 0b10, indicating that the OS Lock is implemented.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCOSLSR can be accessed through the external debug interface, offset 0x304.
31 4 3 2 0
PU
RES0
RES0, [31:4]
RES0 Reserved.
PU, [3]
Powerup request, to request that power to the ETM trace unit and access to the trace
registers is maintained:
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 459 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCPDCR can be accessed through the external debug interface, offset 0x310.
31 6 5 4 2 1 0
OSLK
RES0 STICKYPD
POWER
RES0, [31:6]
RES0 Reserved.
OSLK, [5]
OS lock status.
RES0, [4:2]
RES0 Reserved.
STICKYPD, [1]
Sticky power down state.
0 Trace register power has not been removed since the TRCPDSR was
last read.
1 Trace register power has been removed since the TRCPDSR was last
read.
This bit is set to 1 when power to the ETM trace unit registers is removed, to indicate that
programming state has been lost. It is cleared after a read of the TRCPDSR.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 460 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
POWER, [0]
Indicates the ETM trace unit is powered:
0 ETM trace unit is not powered. The trace registers are not accessible
and they all return an error response.
1 ETM trace unit is powered. All registers are accessible.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCPDSR can be accessed through the external debug interface, offset 0x314.
31 8 7 0
Part_0
RES0
RES0, [31:8]
RES0 Reserved.
Part_0, [7:0]
0x0B Least significant byte of the ETM trace unit part number.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCPIDR0 can be accessed through the external debug interface, offset 0xFE0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 461 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 8 7 4 3 0
DES_0 Part_1
RES0
RES0, [31:8]
RES0 Reserved.
DES_0, [7:4]
Part_1, [3:0]
0xD Most significant four bits of the ETM trace unit part number.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCPIDR1 can be accessed through the external debug interface, offset 0xFE4.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 462 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 8 7 4 3 2 0
Revision DES_1
JEDEC
RES0
RES0, [31:8]
RES0 Reserved.
Revision, [7:4]
0x5 r4p1.
JEDEC, [3]
DES_1, [2:0]
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCPIDR2 can be accessed through the external debug interface, offset 0xFE8.
31 8 7 4 3 0
REVAND CMOD
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 463 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RES0, [31:8]
RES0 Reserved.
REVAND, [7:4]
CMOD, [3:0]
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCPIDR3 can be accessed through the external debug interface, offset 0xFEC.
31 8 7 4 3 0
Size DES_2
RES0
RES0, [31:8]
RES0 Reserved.
Size, [7:4]
0x0 Size of the component. Log2 the number of 4KB pages from the start
of the component to the end of the component ID registers.
DES_2, [3:0]
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 464 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCPIDR4 can be accessed through the external debug interface, offset 0xFD0.
31 1 0
RES0 EN
RES0, [31:1]
RES0 Reserved.
EN, [0]
Trace program enable:
0 The ETM trace unit interface in the core is disabled, and clocks are
enabled only when necessary to process APB accesses, or drain any
already generated trace. This is the reset value.
1 The ETM trace unit interface in the core is enabled, and clocks are
enabled. Writes to most trace registers are IGNORED.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 465 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
The TRCPRGCTLR can be accessed through the external debug interface, offset 0x004.
31 22 21 20 19 18 16 15 8 7 0
GROUP SELECT
PAIRINV INV
RES0
RES0, [31:22]
RES0 Reserved
PAIRINV, [21]
Inverts the result of a combined pair of resources.
This bit is implemented only on the lower register for a pair of resource selectors.
INV, [20]
Inverts the selected resources:
RES0, [19]
RES0 Reserved
GROUP, [18:16]
Selects a group of resources. See the Arm® ETM Architecture Specification, ETMv4 for more
information.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 466 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RES0, [15:8]
RES0 Reserved
SELECT, [7:0]
Selects one or more resources from the required group. One bit is provided for each resource
from the group.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCRSCTLRn registers can be accessed through the external debug interface, offset
0x208-0x023C.
31 16 15 14 12 11 8 7 6 4 3 0
B SEL F SEL
B TYPE F TYPE
RES0
RES0, [31:16]
RES0 Reserved
B TYPE, [15]
Selects the resource type to move backwards to this state from the next state:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 467 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RES0, [14:12]
RES0 Reserved
B SEL, [11:8]
Selects the resource number, based on the value of B TYPE:
When B TYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When B TYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].
F TYPE, [7]
Selects the resource type to move forwards from this state to the next state:
RES0, [6:4]
RES0 Reserved
F SEL, [3:0]
Selects the resource number, based on the value of F TYPE:
When F TYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When F TYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCSEQEVRn registers can be accessed through the external debug interface, offsets:
TRCSEQEVR0
0x100
TRCSEQEVR1
0x104
TRCSEQEVR2
0x108
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 468 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 8 7 6 4 3 0
RESETSEL
RESETTYPE
RES0
RES0, [31:8]
RES0 Reserved.
RESETTYPE, [7]
Selects the resource type to move back to state 0:
RES0, [6:4]
RES0 Reserved.
RESETSEL, [3:0]
Selects the resource number, based on the value of RESETTYPE:
When RESETTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When RESETTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by
bits[2:0].
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCSEQRSTEVR can be accessed through the external debug interface, offset 0x118.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 469 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 2 1 0
STATE
RES0
RES0, [31:2]
RES0 Reserved.
STATE, [1:0]
Current sequencer state:
0b00 State 0.
0b01 State 1.
0b10 State 2.
0b11 State 3.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCSEQSTR can be accessed through the external debug interface, offset 0x11C.
31 25 24 23 20 19 16 15 8 7 0
ARC SAC
RST
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 470 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RES0, [31:25]
RES0 Reserved.
RST, [24]
Enables the single-shot comparator resource to be reset when it occurs, to enable another
comparator match to be detected:
RES0, [23:20]
RES0 Reserved.
ARC, [19:16]
Selects one or more address range comparators for single-shot control.
RES0 Reserved.
SAC, [7:0]
Selects one or more single address comparators for single-shot control.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCSSCCR0 can be accessed through the external debug interface, offset 0x280.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 471 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 30 3 2 1 0
STATUS DV
DA
RES0
INST
STATUS, [31]
Single-shot status. This indicates whether any of the selected comparators have matched:
When programming the ETM trace unit, if TRCSSCCRn.RST is b0, the STATUS bit must be
explicitly written to 0 to enable this single-shot comparator control.
RES0, [30:3]
RES0 Reserved.
DV, [2]
Data value comparator support:
DA, [1]
Data address comparator support:
INST, [0]
Instruction address comparator support:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCSSCSR0 can be accessed through the external debug interface, offset 0x2A0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 472 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 2 1 0
PMSTABLE
RES0 IDLE
RES0, [31:2]
RES0 Reserved.
PMSTABLE, [1]
Indicates whether the ETM trace unit registers are stable and can be read:
IDLE, [0]
Idle status:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCSTATR can be accessed through the external debug interface, offset 0x00C.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 473 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 5 4 0
PERIOD
RES0
RES0, [31:5]
RES0 Reserved.
PERIOD, [4:0]
Defines the number of bytes of trace between synchronization requests as a total of the
number of bytes generated by both the instruction and data streams. The number of bytes is
2N where N is the value of this field:
• A value of zero disables these periodic synchronization requests, but does not disable
other synchronization requests.
• The minimum value that can be programmed, other than zero, is 8, providing a minimum
synchronization period of 256 bytes.
• The maximum value is 20, providing a maximum synchronization period of 220 bytes.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCSYNCPR can be accessed through the external debug interface, offset 0x034.
31 7 6 0
TRACEID
RES0
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 474 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
RES0, [31:7]
RES0 Reserved.
TRACEID, [6:0]
Trace ID value. When only instruction tracing is enabled, this provides the trace ID.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCTRACEIDR can be accessed through the external debug interface, offset 0x040.
31 8 7 6 4 3 0
SEL
TYPE
RES0
RES0, [31:8]
RES0 Reserved
TYPE, [7]
Single or combined resource selector.
RES0, [6:4]
RES0 Reserved
SEL, [3:0]
Identifies the resource selector to use.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 475 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
The TRCTSCTLR can be accessed through the external debug interface, offset 0x030.
31 24 23 20 19 16 15 12 11 10 9 8 7 6 4 3 0
SEL
EXLEVEL_S TYPE
RES0 EXLEVEL_NS SSSTATUS
TRCRESET
TRCERR
RES0, [31:24]
RES0 Reserved.
EXLEVEL_NS, [23:20]
In Non-secure state, each bit controls whether instruction tracing is enabled for the
corresponding Exception level:
EXLEVEL_S, [19:16]
In Secure state, each bit controls whether instruction tracing is enabled for the corresponding
Exception level:
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 476 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
1 Trace unit does not generate instruction trace, in Secure state, for
Exception level n.
RES0, [15:12]
RES0 Reserved.
TRCERR, [11]
Selects whether a system error exception must always be traced:
TRCRESET, [10]
Selects whether a reset exception must always be traced:
SSSTATUS, [9]
Indicates the current status of the start/stop logic:
RES0, [8]
RES0 Reserved.
TYPE, [7]
Selects the resource type for the viewinst event:
RES0, [6:4]
RES0 Reserved.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 477 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
SEL, [3:0]
Selects the resource number to use for the viewinst event, based on the value of TYPE:
When TYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0].
When TYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0].
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCVICTLR can be accessed through the external debug interface, offset 0x080.
31 20 19 16 15 4 3 0
EXCLUDE INCLUDE
RES0
RES0, [31:20]
RES0 Reserved.
EXCLUDE, [19:16]
Defines the address range comparators for ViewInst exclude control. One bit is provided for
each implemented Address Range Comparator.
RES0, [15:4]
RES0 Reserved.
INCLUDE, [3:0]
Defines the address range comparators for ViewInst include control.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 478 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
Selecting no include comparators indicates that all instructions must be included. The exclude
control indicates which ranges must be excluded.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCVIIECTLR can be accessed through the external debug interface, offset 0x084.
31 24 23 16 15 8 7 0
STOP START
RES0
RES0, [31:24]
RES0 Reserved.
STOP, [23:16]
Defines the single address comparators to stop trace with the ViewInst Start/Stop control.
RES0 Reserved.
START, [7:0]
Defines the single address comparators to start trace with the ViewInst Start/Stop control.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 479 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
The TRCVISSCTLR can be accessed through the external debug interface, offset 0x088.
63 32 31 0
VALUE
RES0
RES0, [63:32]
RES0 Reserved.
VALUE, [31:0]
The TRCVMIDCVR0 can be accessed through the internal memory-mapped interface and the
external debug interface, offset 0x640.
Usage constraints
Accepts writes only when the trace unit is disabled.
Configurations
Available in all configurations.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 480 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
ETM registers
31 4 3 0
COMP0
RES0
RES0, [31:4]
RES0 Reserved.
COMP0, [3:0]
Controls the mask value that the trace unit applies to TRCVMIDCVR0. Each bit in this field
corresponds to a byte in TRCVMIDCVR0. When a bit is:
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Embedded Trace Macrocell Architecture Specification ETMv4 .
The TRCVMIDCCTLR0 can be accessed through the external debug interface, offset 0x688.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 481 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Cortex®‑A76 Core AArch32 unpredictable behaviors
The Cortex®‑A76 core does not implement a Read 0 or Ignore Write policy on UNPREDICTABLE use of
R15 by instruction. Instead, the Cortex®‑A76 core takes an UNDEFINED exception trap.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 482 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Cortex®‑A76 Core AArch32 unpredictable behaviors
◦ No alignment fault.
◦ The access is split into two loads.
◦ Each load uses the memory type and Shareability attributes that are associated with
its own address.
• Load crossing a page boundary (Device to Normal and Normal to Device):
◦ The instruction will generate an alignment fault.
This section does not describe the behavior when a topic only has a single option
and the core implements the preferred behavior.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 483 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Cortex®‑A76 Core AArch32 unpredictable behaviors
Scenario Behavior
Execute instruction at a given EL when the corresponding The core behaves as follows:
EDECCR bit is 1 and Halting is allowed • Generates debug event and Halt no later than the instruction following
the next Context Synchronization operation (CSO) excluding ISB instruction.
H > N or H = 0 at Non-secure EL1 and EL0, including The core implements:
value read from PMCR_EL0.N A simple implementation where all of HPMN[4:0] are implemented, and
•
In Non-secure EL1 and EL0:
◦ If H > N then M = N.
◦ If H = 0 then M = 0.
H > N or H = 0: value read back in MDCR_EL2.HPMN The core implements:
• A simple implementation where all of HPMN[4:0] are implemented and
for reads of MDCR_EL2.HPMN, return H.
P ≥ M and P ≠ 31: reads and writes of PM The core implements:
XEVTYPER_EL0 and PMXEVCNTR_EL0 A simple implementation where all of SEL[4:0] are implemented, and if P
•
≥ M and P ≠ 31 then the register is RES0.
P ≥ M and P ≠ 31: value read in PMSELR_EL0.SEL The core implements:
• A simple implementation where all of SEL[4:0] are implemented, and if P
≥ M and P ≠ 31 then the register is RES0.
P = 31: reads and writes of PMXEVCNTR_EL0 The core implements:
• RES0.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 484 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Cortex®‑A76 Core AArch32 unpredictable behaviors
Scenario Behavior
Accessing reserved Debug registers The core deviates from preferred behavior because the hardware cost to
decode some of these addresses in Debug power domain is significantly high.
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 485 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Cortex®‑A76 Core AArch32 unpredictable behaviors
Scenario Description
HDCR.HPMN is set to 0, or to a value If HDCR.HPMN is set to 0, or to a value larger than PMCR.N, then the behavior in Non-secure
larger than PMCR.N. EL0 and EL1 is CONSTRAINED UNPREDICTABLE, and one of the following must happen:
• The number of counters accessible is an UNKNOWN nonzero value less than PMCR.N.
• There is no access to any counters.
For reads of HDCR.HPMN by EL2 or higher, if this field is set to 0 or to a value larger than
PMCR.N, the core must return a CONSTRAINED UNPREDICTABLE value that is one of:
• PMCR.N.
• The value that was written to HDCR.HPMN.
• (The value that was written to HDCR.HPMN) modulo 2h, where h is the smallest number of
bits required for a value in the range 0 to PMCR.N.
CRC32 or CRC32C instruction with On read of the instruction, the behavior is CONSTRAINED UNPREDICTABLE, and the instruction
size==64. executes with the additional decode: size==32.
CRC32 or CRC32C instruction with The core implements the following option:
cond!=1110 in the A1 encoding. Executed unconditionally.
•
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 486 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Revisions
Appendix B Revisions
This appendix describes the technical changes between released issues of this document.
B.1 Revisions
This appendix describes the technical changes between released issues of this book
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 487 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Revisions
Change Location
Fixed typographical errors. Throughout document
Added information for L1 Prefetch History Table 9-1: Cache protection behavior on page 81
Table.
Updated ATCR_EL12 description. Table 13-3: AArch64 IMPLEMENTATION DEFINED registers on page 98
Updated reset value for ID_AA64PFR0_EL1. 13.4 AArch64 registers by functional group on page 99
Updated reset value for ID_PFR0_EL1. 13.4 AArch64 registers by functional group on page 99
Added new register ID_PFR2_EL1. 13.4 AArch64 registers by functional group on page 99
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 488 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Revisions
Change Location
Modified the following registers: 24. AArch32 PMU registers on page 359
• PMCEID0
• PMCEID1
• PMCEID0_EL0
• PMCEID1_EL0
Modified the following registers: 25. AArch64 PMU registers on page 369
• PMCEID0_EL0
• PMCEID1_EL0
Modified the following registers: 26. Memory-mapped PMU registers on page 379
• PMPIDR2
Modified the following register: 30. ETM registers on page 407
• TRCIDR5
Added Memory-mapped AMU registers. 29. Memory-mapped AMU registers on page 406
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 489 of 490
Arm® Cortex®‑A76 Core Technical Reference Manual Document ID: 100798_0401_01_en
Issue: 01
Revisions
Copyright © 2016–2020, 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 490 of 490