Arm Cortex A78 TRM 101430 0101 05 en
Arm Cortex A78 TRM 101430 0101 05 en
Arm Cortex A78 TRM 101430 0101 05 en
Revision: r1p1
Document History
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.
THIS DOCUMENT IS PROVIDED “AS IS”. ARM PROVIDES NO REPRESENTATIONS AND NO WARRANTIES,
EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, SATISFACTORY QUALITY, NON-INFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE
WITH RESPECT TO THE 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, third party 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.
If any of the provisions contained in these terms conflict with any of the provisions of any click through or signed written
agreement covering this document with Arm, then the click through or signed written agreement prevails over and supersedes the
conflicting provisions of these terms. 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
subsidiaries) 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 http://www.arm.com/company/policies/
trademarks.
Copyright © 2018–2020 Arm Limited (or its affiliates). All rights reserved.
(LES-PRE-20349)
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.
Preface
About this book ..................................................... ..................................................... 18
Feedback .................................................................................................................... 23
Appendix B Revisions
B.1 Revisions .................................................. .................................................. Appx-B-688
This preface introduces the Arm® Cortex®‑A78 Core Technical Reference Manual.
It contains the following:
• About this book on page 18.
• Feedback on page 23.
Intended audience
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.
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.
See the Arm® Glossary for more information.
Typographic conventions
italic
Introduces special terminology, denotes cross-references, and citations.
bold
Highlights interface elements, such as menu names. Denotes signal names. Also used for terms
in descriptive lists, where appropriate.
monospace
Denotes text that you can enter at the keyboard, such as commands, file and program names,
and source code.
monospace
Denotes a permitted abbreviation for a command or option. You can enter the underlined text
instead of the full command or option name.
monospace italic
Denotes arguments to monospace text where the argument is to be replaced by a specific value.
monospace bold
Denotes language keywords when used outside example code.
<and>
Encloses replaceable terms for assembler syntax where they appear in code or code fragments.
For example:
MRC p15, 0, <Rd>, <CRn>, <CRm>, <Opcode_2>
SMALL CAPITALS
Used in body text for a few terms that have specific technical meanings, that are defined in the
Arm® Glossary. For example, IMPLEMENTATION DEFINED, IMPLEMENTATION SPECIFIC, UNKNOWN, and
UNPREDICTABLE.
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.
Clock
HIGH to LOW
Transient
HIGH/LOW to HIGH
Bus stable
Bus change
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.
Additional reading
This book contains information that is specific to this product. See the following documents for other
relevant information.
Arm publications
• Arm® Architecture Reference Manual Armv8, for Armv8-A architecture profile (DDI 0487).
• Arm® Cortex®‑A78 Core Cryptographic Extension Technical Reference Manual (101432).
• Arm® Cortex®‑A78 Core Configuration and Integration Manual (101431).
• Arm® DynamIQ™ Shared Unit Integration Manual (100455).
• Arm® DynamIQ™ Shared Unit Technical Reference Manual (100453).
• Arm® DynamIQ™ Shared Unit Configuration and Sign-off Guide (100454).
• Arm® CoreSight™ ELA-500 Embedded Logic Analyzer Technical Reference Manual
(100127).
• AMBA® AXI and ACE Protocol Specification (IHI 0022).
• AMBA® APB Protocol Version 2.0 Specification (IHI 0024).
• AMBA® 5 CHI Architecture Specification (IHI 0050).
• Arm® CoreSight™ Architecture Specification v3.0 (IHI 0029).
• Arm® Debug Interface Architecture Specification, ADIv5.0 to ADIv5.2 (IHI 0031).
• AMBA® 4 ATB Protocol Specification (IHI 0032).
• Arm® Generic Interrupt Controller Architecture Specification, GIC architecture version 3
and version 4 (IHI 0069).
• Arm® Embedded Trace Macrocell Architecture Specification ETMv4 (IHI 0064).
• AMBA® Low Power Interface Specification Arm® Q-Channel and P-Channel Interfaces (IHI
0068).
• Arm® Reliability, Availability, and Serviceability (RAS) Specification, Armv8, for the Armv8-
A architecture profile (DDI 0587A).
Other publications
• ANSI/IEEE Std 754-2008, IEEE Standard for Binary Floating-Point Arithmetic.
Note
Arm floating-point terminology is largely based on the earlier ANSI/IEEE Std 754-1985
issue of the standard. See the Arm® Architecture Reference Manual Armv8, for Armv8-A
architecture profile for more information.
Feedback
Feedback on content
If you have comments on content then send an e-mail to [email protected]. Give:
• The title Arm Cortex‑A78 Core Technical Reference Manual.
• The number 101430_0101_05_en.
• If applicable, the page number(s) to which your comments refer.
• A concise explanation of your comments.
Arm also welcomes general suggestions for additions and improvements.
Note
Arm tests the PDF only in Adobe Acrobat and Acrobat Reader, and cannot guarantee the quality of the
represented document when used with any other PDF reader.
This chapter provides an overview of the Cortex‑A78 core and its features.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A1-27
reserved.
Non-Confidential
A1 Introduction
A1.1 About the core
DynamIQ™ Cluster
Interrupt interface
Core 1
Core 3
CoreSight infrastructure
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A1-28
reserved.
Non-Confidential
A1 Introduction
A1.2 Features
A1.2 Features
The features of the Cortex‑A78 core are categorized as core, cache, or debug features.
Core features
• Full implementation of the Armv8.2-A A64, A32, and T32 instruction sets
• Armv8.4-A Dot Product instruction support
• AArch32 Execution state at Exception level EL0 only. AArch64 Execution state at all Exception
levels (EL0 to EL3)
• Support for Arm TrustZone® technology
• A Memory Management Unit (MMU)
• Superscalar, variable-length, out-of-order pipeline
• 40-bit Physical Address (PA)
• An integrated execution unit that implements the Advanced SIMD and floating-point architecture
support
• Optional Cryptographic Extension
• 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
• Reliability, Availability, and Serviceability (RAS) Extension
• Support for Page-Based Hardware Attributes (PBHA)
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 all
RAM instances which affect functionality
Debug features
• Armv8.2 debug logic
• Performance Monitoring Unit (PMU)
• Embedded Trace Macrocell (ETM) that supports instruction trace only
• Statistical Profiling Extension (SPE)
• Optional Coresight Embedded Logic Analyzer (ELA)
See the Arm® Architecture Reference Manual Armv8, for Armv8-A architecture profile for more
information.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A1-29
reserved.
Non-Confidential
A1 Introduction
A1.3 Implementation options
L2 transaction queue size • 48 entries There are two identical L2 banks in the
• 56 entries Cortex‑A78 core that can be configured
• 62 entries with 24, 28 or 31 L2 transaction queue
entries per L2 bank.
L1 and L2 ECC or parity protection Can be included or not included. L1 and L2 error protection can only be
enabled if L3 cache error protection is
enabled.
Core bus width 128-bit, 256-bit This specifies the bus width between the
core and the DSU CPU bridge. The legal
core bus width and master bus width
combinations are:
• If the core bus width is 128 bits, the
master bus interface can be any of the
following options:
— Single 128-bit wide ACE interface
— Dual 128-bit wide ACE interfaces
— Single 128-bit wide CHI interface
— Single 256-bit wide CHI interface
— Dual 256-bit wide CHI interface
• If the core bus width is 256 bits, the
master bus interface is a single or dual
256-bit wide CHI interface.
CoreSight Embedded Logic Analyzer (ELA) Optional support Support for integrating CoreSight
ELA-500. CoreSight ELA-500 is a
separately licensable product.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A1-30
reserved.
Non-Confidential
A1 Introduction
A1.3 Implementation options
Note
Cache indices are determined such that the physical address and set number may not be directly
correlated. A software flush using set and way operations that walk the entire space will work. Targeted
operations that assume a relationship between the physical address and set number cannot be used. This
is compliant with the Armv8‑A architecture.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A1-31
reserved.
Non-Confidential
A1 Introduction
A1.4 Supported standards and specifications
Arm architecture Armv8‑A • AArch32 execution state at Exception level EL0 only. AArch64
execution state at all Exception levels (EL0-EL3).
• A64, A32, and T32 instruction sets
Arm architecture • Armv8.1-A extensions • The Cortex‑A78 core implements the LDAPR instructions
extensions • Armv8.2-A extensions introduced in the Armv8.3-A extensions.
• Cryptographic extension • The Cortex‑A78 core implements the SDOT and UDOT
• RAS extension instructions introduced in the Armv8.4-A extensions.
• Armv8.3-A extensions • The Cortex‑A78 core implements the PSTATE Speculative
• Armv8.4-A dot product Store Bypass Safe (SSBS) bit introduced in the Armv8.5‑A
instructions extension.
• Armv8.5‑A extensions
Generic Timer Armv8‑A 64-bit external system counter with timers within each core
PMU PMUv3 -
Debug Armv8‑A With support for the debug features added by the Armv8.2-A
extensions
CoreSight CoreSightv3 -
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A1-32
reserved.
Non-Confidential
A1 Introduction
A1.5 Test features
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A1-33
reserved.
Non-Confidential
A1 Introduction
A1.6 Design tasks
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A1-34
reserved.
Non-Confidential
A1 Introduction
A1.7 Product revisions
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A1-35
reserved.
Non-Confidential
A1 Introduction
A1.7 Product revisions
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. A1-36
Non-Confidential
Chapter A2
Technical overview
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A2-37
reserved.
Non-Confidential
A2 Technical overview
A2.1 Components
A2.1 Components
In a standalone configuration, there can be up to four Cortex‑A78 cores and a DynamIQ Shared Unit
(DSU) that connects the cores to an external memory system.
For more information about the DSU components, see Components in the Arm® DynamIQ™ Shared Unit
Technical Reference Manual.
The main components of the Cortex‑A78 core are:
• Instruction fetch
• Instruction decode
• Register rename
• Instruction issue
• Execution pipelines
• L1 data memory system
• L2 memory system
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A2-38
reserved.
Non-Confidential
A2 Technical overview
A2.1 Components
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
Note
There are multiple asynchronous bridges between the Cortex‑A78 core and the DSU. Only the coherent
interface between the Cortex‑A78 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A2-39
reserved.
Non-Confidential
A2 Technical overview
A2.1 Components
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A2-40
reserved.
Non-Confidential
A2 Technical overview
A2.1 Components
Related references
Chapter A5 Memory Management Unit on page A5-65
Chapter A6 L1 memory system on page A6-75
Chapter A7 L2 memory system on page A7-103
Chapter A9 Generic Interrupt Controller CPU interface on page A9-117
Chapter C1 Debug on page C1-403
Chapter C2 Performance Monitoring Unit on page C2-409
Chapter C4 Embedded Trace Macrocell on page C4-429
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A2-41
reserved.
Non-Confidential
A2 Technical overview
A2.2 Interfaces
A2.2 Interfaces
The Cortex‑A78 core has several interfaces to connect it to a SoC. The DynamIQ Shared Unit (DSU)
manages all interfaces.
For information on the interfaces, see Technical overview in the Arm® DynamIQ™ Shared Unit Technical
Reference Manual.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A2-42
reserved.
Non-Confidential
A2 Technical overview
A2.3 About system control
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A2-43
reserved.
Non-Confidential
A2 Technical overview
A2.4 About the Generic Timer
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A2-44
reserved.
Non-Confidential
Chapter A3
Clocks, resets, and input synchronization
This chapter describes the clocks, resets, and input synchronization of the Cortex‑A78 core.
It contains the following sections:
• A3.1 About clocks, resets, and input synchronization on page A3-46.
• A3.2 Asynchronous interface on page A3-47.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A3-45
reserved.
Non-Confidential
A3 Clocks, resets, and input synchronization
A3.1 About clocks, resets, and input synchronization
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A3-46
reserved.
Non-Confidential
A3 Clocks, resets, and input synchronization
A3.2 Asynchronous interface
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A3-47
reserved.
Non-Confidential
A3 Clocks, resets, and input synchronization
A3.2 Asynchronous interface
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. A3-48
Non-Confidential
Chapter A4
Power management
This chapter describes the power domains and the power modes in the Cortex‑A78 core.
It contains the following sections:
• A4.1 About power management on page A4-50.
• A4.2 Voltage domains on page A4-51.
• A4.3 Power domains on page A4-52.
• A4.4 Architectural clock gating modes on page A4-54.
• A4.5 Power control on page A4-56.
• A4.6 Core power modes on page A4-57.
• A4.7 Encoding for power modes on page A4-60.
• A4.8 Power domain states for power modes on page A4-61.
• A4.9 Core powerup and powerdown sequences on page A4-62.
• A4.10 Debug over powerdown on page A4-63.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-49
reserved.
Non-Confidential
A4 Power management
A4.1 About power management
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-50
reserved.
Non-Confidential
A4 Power management
A4.2 Voltage domains
DSU
VCPU0 VCPU2
VCPU1 VCPU3
VSYS
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-51
reserved.
Non-Confidential
A4 Power management
A4.3 Power domains
The following figure shows an example of how the voltage and power domains are organized.
Core
L1
L2
Asynchronous bridge
CPU domain
Asynchronous bridge
SYS domain
The following table describes the power domains that the Cortex‑A78 core supports.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-52
reserved.
Non-Confidential
A4 Power management
A4.3 Power domains
PDCPU<n> u_vcpu The domain includes the Advanced SIMD and floating-point block, the L1 and L2 TLBs, L1 and
L2 cache RAMs, and Debug registers that are associated with the Cortex‑A78 core.
<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 Top-level The domain is the interface between Cortex‑A78 and the DSU. It contains the cluster clock domain
hierarchy and logic of the CPU bridge. The CPU bridge contains all asynchronous bridges for crossing clock
everything domains, and is split with one half of each bridge in the core clock domain and the other half in the
outside u_vcpu relevant cluster domain. All core I/O signals go through the CPU bridge and the SYS power
domain.
The domain is shared between the DSU and Cortex‑A78 hierarchies, and contains the following:
• Anything outside of the Core power domain (u_vcpu hierarchy)
• u_cb_sys
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‑A78 cores can vary, and the number of domains
increases based on the number of Cortex‑A78 cores present. This example only shows four Cortex‑A78
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.
Cluster
PDCPU[0] domain PDCPU[1] domain PDCPU[2] domain PDCPU[3] domain
L2 L2 L2 L2
PDSYS
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-53
reserved.
Non-Confidential
A4 Power management
A4.4 Architectural clock gating modes
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-54
reserved.
Non-Confidential
A4 Power management
A4.4 Architectural clock gating modes
For more information, see the Arm® Architecture Reference Manual Armv8, for Armv8-A architecture
profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-55
reserved.
Non-Confidential
A4 Power management
A4.5 Power control
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-56
reserved.
Non-Confidential
A4 Power management
A4.6 Core power modes
Core
dynamic
retention
On
Debug
Emulated off recovery
Off
From any
power mode
The blue modes indicate the modes the channel can be initialized into.
A4.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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-57
reserved.
Non-Confidential
A4 Power management
A4.6 Core power modes
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-58
reserved.
Non-Confidential
A4 Power management
A4.6 Core power modes
memory system transactions at the time of the reset, then these might complete after the reset when
the core is not expecting them and cause a system deadlock.
• If the system sends a snoop to the cluster during this mode, then depending on the cluster state, the
snoop might get a response and disturb the contents of the caches, or it might not get a response and
cause a system deadlock.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-59
reserved.
Non-Confidential
A4 Power management
A4.7 Encoding for power modes
Power mode Short name PACTIVE bit PSTATE value Power mode description
number
Core debug recovery DEBUG_RECOV - 0b001010 Logic is off (or in reset), RAM state is retained
mode and not invalidated when transitioning to On
mode.
Core dynamic retention FULL_RET 5 0b000101 Logic and RAM state are inoperable but
mode retained.
Emulated off mode OFF_EMU 1 0b000001 On with Warm reset asserted, debug state is
retained and accessible.
a 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 Arm® Q-
Channel and P-Channel Interfaces.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-60
reserved.
Non-Confidential
A4 Power management
A4.8 Power domain states for power modes
Caution
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.
On On Core on
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-61
reserved.
Non-Confidential
A4 Power management
A4.9 Core powerup and powerdown sequences
Core powerdown
To take a core out of coherence ready for core powerdown, the following steps must be performed:
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.
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.
Note
Executing any WFI instruction when the CPUPWRCTLR.CORE_PWRDN_EN bit is set automatically
masks out all interrupts and wake-up events in the core. If executed when the
CPUPWRCTLR.CORE_PWRDN_EN bit is set the WFI never wakes up and the core needs to be reset to
restart.
For information about cluster powerdown, see Power management in the Arm® DynamIQ™ Shared Unit
Technical Reference Manual.
Core powerup
To bring a core into coherence after reset, no software steps are required.
Related references
B2.44 CPUPWRCTLR_EL1, Power Control Register, EL1 on page B2-221
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-62
reserved.
Non-Confidential
A4 Power management
A4.10 Debug over powerdown
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A4-63
reserved.
Non-Confidential
A4 Power management
A4.10 Debug over powerdown
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. A4-64
Non-Confidential
Chapter A5
Memory Management Unit
This chapter describes the Memory Management Unit (MMU) of the Cortex‑A78 core.
It contains the following sections:
• A5.1 About the MMU on page A5-66.
• A5.2 TLB organization on page A5-68.
• A5.3 TLB match process on page A5-69.
• A5.4 Translation table walks on page A5-70.
• A5.5 MMU memory accesses on page A5-71.
• A5.6 Specific behaviors on aborts and memory attributes on page A5-72.
• A5.7 Page-based hardware attributes on page A5-74.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A5-65
reserved.
Non-Confidential
A5 Memory Management Unit
A5.1 About the MMU
Component Description
Translation table prefetcher Detects access to contiguous translation tables and prefetches the next one. This prefetcher can be
disabled in the ECTLR register.
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.
AArch64
Address translation The Armv8 address translation system resembles an extension to the Long descriptor format address
system translation system to support the expanded virtual and physical address space.
Translation granule 4KB, 16KB, or 64KB for Armv8 AArch64 Virtual Memory System Architecture (VMSAv8-64).
Using a larger granule size can reduce the maximum required number of levels of address lookup.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A5-66
reserved.
Non-Confidential
A5 Memory Management Unit
A5.1 About the MMU
AArch64
The Cortex‑A78 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 Armv8, for Armv8-A architecture profile for more
information on concatenated translation tables and for address translation formats.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A5-67
reserved.
Non-Confidential
A5 Memory Management Unit
A5.2 TLB organization
A5.2.3 L2 TLB
The L2 TLB structure is shared by instruction and data. It handles misses from the instruction and data
L1 TLBs.
The following table describes the L2 TLB characteristics.
Characteristic Note
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 will stall.
Note
Caches in the core are invalidated automatically at reset deassertion unless the core power mode is
initialized to Debug recovery mode. See Power management in the Arm® DynamIQ™ Shared Unit
Technical Reference Manual for more information.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A5-68
reserved.
Non-Confidential
A5 Memory Management Unit
A5.3 TLB match process
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A5-69
reserved.
Non-Confidential
A5 Memory Management Unit
A5.4 Translation table walks
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A5-70
reserved.
Non-Confidential
A5 Memory Management Unit
A5.5 MMU memory accesses
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 IRGN bit contain
different attributes, or if the encoding of the ORGN and IRGN bits is Write-Through or Non-cacheable.
Note
Hardware management of dirty state can only be enabled if hardware management of the Access flag is
enabled.
To support the hardware management of dirty state, the Dirty Bit Modifier (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
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A5-71
reserved.
Non-Confidential
A5 Memory Management Unit
A5.6 Specific behaviors on aborts and memory attributes
MMU responses
When one of the following translation is completed, the Memory Management Unit (MMU) generates a
response to the requester:
• A L1 TLB hit
• A L2 TLB hit
• A translation table walk
The response from the MMU contains the following information:
• The PA corresponding to the translation
• A set of permissions
• Secure or Non-secure
• All the information required to report aborts
For more information, see the Arm® Architecture Reference Manual Armv8, for Armv8-A architecture
profile.
In the Cortex‑A78 core, a page is cacheable only if the inner memory attribute and outer memory
attribute are Write Back. In all other cases, all pages are downgraded to Non-cacheable Normal memory.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A5-72
reserved.
Non-Confidential
A5 Memory Management Unit
A5.6 Specific behaviors on aborts and memory attributes
When the 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 Armv8, for Armv8-A architecture profile for more
information on translation table formats.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A5-73
reserved.
Non-Confidential
A5 Memory Management Unit
A5.7 Page-based hardware attributes
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A5-74
reserved.
Non-Confidential
Chapter A6
L1 memory system
This chapter describes the L1 instruction cache and data cache that make up the L1 memory system.
It contains the following sections:
• A6.1 About the L1 memory system on page A6-76.
• A6.2 Cache behavior on page A6-77.
• A6.3 L1 instruction memory system on page A6-79.
• A6.4 L1 data memory system on page A6-81.
• A6.5 Data prefetching on page A6-83.
• A6.6 Direct access to internal memory on page A6-84.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-75
reserved.
Non-Confidential
A6 L1 memory system
A6.1 About the L1 memory system
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-76
reserved.
Non-Confidential
A6 L1 memory system
A6.2 Cache behavior
Note
Caches in the core are invalidated automatically at reset deassertion unless the core power mode is
initialized to Debug recovery mode. See the Power management section in the Arm® DynamIQ™ Shared
Unit Technical Reference Manual for more information.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-77
reserved.
Non-Confidential
A6 L1 memory system
A6.2 Cache behavior
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-78
reserved.
Non-Confidential
A6 L1 memory system
A6.3 L1 instruction memory system
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.
The following instructions cause a return stack push if predicted:
• BL r14
• BLX (immediate) in AArch32 state
• BLX (register) in AArch32 state
• BLR in AArch64 state
• MOV pc,r14
In AArch32 state, the following instructions cause a return stack pop if predicted:
• BX
• LDR pc, [r13], #imm
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-79
reserved.
Non-Confidential
A6 L1 memory system
A6.3 L1 instruction memory system
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-80
reserved.
Non-Confidential
A6 L1 memory system
A6.4 L1 data memory system
Atomic instructions
The Cortex‑A78 core supports the atomic instructions 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, it allocates the
line into the L3 cache. This depends on whether the 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.
Finally, for load atomics, the CPUECTLR can be programmed such that these atomics will always be
performed near, regardless of whether the line is original in the L1 memory system or not. One cache fill
will be made on an atomic. If the cache line is lost before the atomic operation can be made, it will be
sent as a far atomic.
The Cortex‑A78 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 will result in an abort.
For more information on the CPUECTLR register, see B2.34 CPUECTLR_EL1, CPU Extended Control
Register, EL1 on page B2-195.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-81
reserved.
Non-Confidential
A6 L1 memory system
A6.4 L1 data memory system
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.
See the Arm® Architecture Reference Manual Armv8, for Armv8-A architecture profile for more
information about these instructions.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-82
reserved.
Non-Confidential
A6 L1 memory system
A6.5 Data prefetching
Preload instructions
The Cortex‑A78 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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-83
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
A6.6.1 Encoding for L1 instruction cache tag, L1 instruction cache data, L1 BTB, L1 GHB, L1 BIM,
L1 TLB instruction, and L0 macro-op cache data
The following tables show the encoding required to select a given cache line.
[23:20] Reserved
[19:18] Way
[17:14] Reserved
[5:0] Reserved
[23:20] Reserved
[19:18] Way
[17:14] Reserved
[2:0] Reserved
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-84
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
[23:15] Reserved
[3:0] Reserved
[23:14] Reserved
[4:0] Reserved
[23:13] Reserved
[3:0] Reserved
[23:8] Reserved
[23:10] Reserved
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-85
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
[0] Parity
[63:0] 0
[63:0] 0
[63:9] 0
[8] Parity
[63:0] 0
L1 BTB RAM
The following tables show the data that is returned from accessing the L1 BTB RAM.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-86
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
[63:30] 0
[63:0] 0
L1 GHB RAM
The following tables show the data that is returned from accessing the L1 GHB RAM.
[63:0] 0
L1 BIM RAM
The following tables show the data that is returned from accessing the L1 BIM RAM.
[63:16] 0
[63:0] 0
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-87
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
[63:0] 0
[45] Outer-shared
[44] Inner-shared
[38:23] ASID
[22:7] VMID
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-88
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
Table A6-24 L1 instruction TLB cache format for instruction register 0 (continued)
[0] Valid
[60] Non-secure
L0 macro-op RAM
The following tables show the data that is returned from accessing the L0 macro-op RAM.
[63:34] 0
[63:0] 0
A6.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 additional field to locate the appropriate
doubleword in the cache line.
Tag RAM encoding includes an additional field to select which one of the two cache channels must be
used to perform any access.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-89
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
[23:20] Reserved
[19:18] Way
[17:16] Copy
00 Tag RAM associated with Pipe 0
01 Tag RAM associated with Pipe 1
10 Tag RAM associated with Pipe 2
11 Reserved
[15:14] Reserved
[5:0] Reserved
[23:20] Reserved
[19:18] Way
[17:16] BankSel
[15:14] Unused
[5:0] Reserved
[23:6] Reserved
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 shown in the
following tables.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-90
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
Table A6-32 L1 data cache tag format with ECC for data register 0
[63:41] 0
[40:34] ECC
[4:3] Reserved
[2] Transient/WBNA
[1:0] MESI
00 Invalid
01 Shared
10 Exclusive
11 Modified with respect to the L2 cache
Table A6-33 L1 data cache tag format with ECC for data register 1
[63:0] 0
Table A6-34 L1 data cache tag format with ECC for data register 2
[63:0] 0
Table A6-35 L1 data cache tag format without ECC for data register 0
[63:34] 0
[4:3] Reserved
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-91
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
Table A6-35 L1 data cache tag format without ECC for data register 0 (continued)
[2] Transient/WBNA
[1:0] MESI
00 Invalid
01 Shared
10 Exclusive
11 Modified
Table A6-36 L1 data cache tag format without ECC for data register 1
[63:0] 0
Table A6-37 L1 data cache tag format without ECC for data register 2
[63:0] 0
Table A6-38 L1 data cache data format with ECC for data register 0
Table A6-39 L1 data cache data format with ECC for data register 1
Table A6-40 L1 data cache data format with ECC for data register 2
[63:32] 0
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-92
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
Table A6-41 L1 data cache data format without ECC for data register 0
Table A6-42 L1 data cache data format without ECC for data register 1
Table A6-43 L1 data cache data format without ECC for data register 2
[63:0] 0
[58] Outer-shared
[57] Inner-shared
[35] Non-secure
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-93
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
Table A6-44 L1 data TLB cache format for data register 0 (continued)
[32:17] ASID
[16:1] VMID
[0] Valid
[23:21] Reserved
[17:15] Reserved
[5:0] Reserved
[23:21] Reserved
[17:16] Reserved
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-94
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
[5:0] Reserved
[23:21] Reserved
[17:15] Reserved
[3:0] Reserved
[23:21] Reserved
[17:16] Reserved
[3:0] Reserved
[23:17] Reserved
[16:6] Index[16:6]
[5:0] Reserved
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-95
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
Table A6-51 L2 tag format with a 256KB L2 cache size for data register 0
[63:42] 0
[41:35] ECC [6:0] if configured with ECC for a 256KB L2 cache size,
otherwise 0
[4] Shareable
[2:0] L2 State
101 Modified
001 Exclusive
x11 Shared
xx0 Invalid
Table A6-52 L2 tag format with a 256KB L2 cache size for data register 1
[63:0] 0
Table A6-53 L2 tag format with a 256KB L2 cache size for data register 2
[63:0] 0
Table A6-54 L2 tag format with a 512KB L2 cache size for data register 0
[63:41] 0
[40:34] ECC [6:0] if configured with ECC for a 512KB L2 cache size,
otherwise 0
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-96
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
Table A6-54 L2 tag format with a 512KB L2 cache size for data register 0 (continued)
[4] Shareable
[2:0] L2 State
101 Modified
001 Exclusive
x11 Shared
xx0 Invalid
Table A6-55 L2 tag format with a 512KB L2 cache size for data register 1
[63:0] 0
Table A6-56 L2 tag format with a 512KB L2 cache size for data register 2
[63:0] 0
L2 data RAM
The following tables show the data that is returned from accessing the L2 data RAM.
[63:16] 0
L2 victim RAM
The following tables show the data that is returned from accessing the L2 victim RAM.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-97
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
[63:0] 0
[63:0] 0
[23:21] Reserved
[20:18] Way
0b000 way0
0b001 way1
0b010 way2
0b011 way3
[17:8] Reserved
[7:0] Index
L2 TLB
The following tables show the data that is returned from accessing the L2 TLB.
[63] Outer-shared
[62] Inner-shared
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-98
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
[61] Reserved
[57:54] Reserved
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-99
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
[16:7] Reserved
[6] Indicates that the entry is coalesced and holds translations for up
to four contiguous pages
[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] Reserved
b when bit [43] of Instruction register 1 is set, indicating that this is a walk cache entry, the decoding provided in this table is not valid.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-100
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
[13] Reserved
[12] Non-secure
[11:1] Reserved
[0] Non-global
[63:16] Reserved
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A6-101
reserved.
Non-Confidential
A6 L1 memory system
A6.6 Direct access to internal memory
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. A6-102
Non-Confidential
Chapter A7
L2 memory system
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A7-103
reserved.
Non-Confidential
A7 L2 memory system
A7.1 About the L2 memory system
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A7-104
reserved.
Non-Confidential
A7 L2 memory system
A7.2 About the L2 cache
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A7-105
reserved.
Non-Confidential
A7 L2 memory system
A7.3 Support for memory types
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A7-106
reserved.
Non-Confidential
Chapter A8
Reliability, Availability, and Serviceability (RAS)
This chapter describes the RAS features implemented in the Cortex‑A78 core.
It contains the following sections:
• A8.1 Cache ECC and parity on page A8-108.
• A8.2 Cache protection behavior on page A8-109.
• A8.3 Uncorrected errors and data poisoning on page A8-111.
• A8.4 RAS error types on page A8-112.
• A8.5 Error Synchronization Barrier on page A8-113.
• A8.6 Error recording on page A8-114.
• A8.7 Error injection on page A8-115.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A8-107
reserved.
Non-Confidential
A8 Reliability, Availability, and Serviceability (RAS)
A8.1 Cache ECC and parity
Note
For information about SCU-L3 cache protection, see the Implementation options section in the Arm®
DynamIQ™ Shared Unit Technical Reference Manual.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A8-108
reserved.
Non-Confidential
A8 Reliability, Availability, and Serviceability (RAS)
A8.2 Cache protection behavior
L0 macro-op cache SED 48 bits The line that contains the error is invalidated
from the macro-op cache and fetched again
from the L1 instruction cache.
L1 instruction cache tag 1 parity bit 31 bits The line that contains the error is invalidated
from the L1 instruction cache and fetched again
from the subsequent memory system.
L1 instruction cache data SED 72 bits The line that contains the error is invalidated
from the L1 instruction cache and fetched again
from the subsequent memory system.
L1 BTB None - -
L1 GHB None - -
L1 BIM None - -
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A8-109
reserved.
Non-Confidential
A8 Reliability, Availability, and Serviceability (RAS)
A8.2 Cache protection behavior
L1 data cache tag SECDED 34 bits + 7 bits for ECC attached The cache line that contains the error gets
to the word. evicted, corrected in line, and refilled to the
core.
L1 data cache data SECDED 32 bits of data +1 poison bit + 7 The cache line that contains the error gets
bits for ECC attached to the word. evicted, corrected in line, and refilled to the
core.
MMU translation cache 2 interleaved parity 71 bits Entry invalidated, new pagewalk started to
bits refetch it.
L2 cache tag SECDED 256KB L2 - 7 ECC bits for 35 tag Tag is corrected inline.
bits
512KB L2 - 7 ECC bits for 34 tag
bits
L2 cache data SECDED 8 ECC bits for 64 data bits Data is corrected inline.
L2 victim None - -
L2 TQ data SECDED 8 ECC bits for 64 data bits Data is corrected inline.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A8-110
reserved.
Non-Confidential
A8 Reliability, Availability, and Serviceability (RAS)
A8.3 Uncorrected errors and data poisoning
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A8-111
reserved.
Non-Confidential
A8 Reliability, Availability, and Serviceability (RAS)
A8.4 RAS error types
Corrected A Corrected Error (CE) is reported for a single-bit ECC error on any protected RAM.
Deferred A Deferred Error (DE) is reported for a double-bit ECC error that affects the data RAM on either the L1 data cache
or the L2 cache.
Uncorrected An Uncorrected Error (UE) is reported for a double-bit ECC error that affects the tag RAM of either the L1 data
cache or the L2 cache. An Uncorrected Error is also reported for External aborts received in response to a store,
data cache maintenance, instruction cache maintenance, TLBI maintenance, or cache copyback of dirty data.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A8-112
reserved.
Non-Confidential
A8 Reliability, Availability, and Serviceability (RAS)
A8.5 Error Synchronization Barrier
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A8-113
reserved.
Non-Confidential
A8 Reliability, Availability, and Serviceability (RAS)
A8.6 Error recording
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A8-114
reserved.
Non-Confidential
A8 Reliability, Availability, and Serviceability (RAS)
A8.7 Error injection
Note
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.
Corrected A Corrected Error (CE) is generated for a single-bit ECC error on L1 data caches and L2 caches, both on data and tag
RAMs.
Deferred A Deferred Error (DE) is generated for a double-bit ECC error on L1 data caches and L2 caches, but only on data
RAM.
Uncontainable An Uncontainable Error (UC) is generated for a double-bit ECC error on L1 data caches and L2 caches, but only on
tag RAM.
The following table describes the registers that handle error injection in the Cortex‑A78 core.
ERR0PFGFR The ERR Pseudo Fault Generation Feature register defines which errors can be injected.
ERR0PFGCTLR The ERR Pseudo Fault Generation Control register controls the errors that are injected.
ERR0PFGCDNR The ERR Pseudo Fault Generation Count Down register controls the fault injection timing.
Note
This mechanism simulates the corruption of any RAM but the data is not actually corrupted.
Related references
B3.7 ERR0PFGCDNR, Error Pseudo Fault Generation Count Down Register on page B3-340
B3.8 ERR0PFGCTLR, Error Pseudo Fault Generation Control Register on page B3-341
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A8-115
reserved.
Non-Confidential
A8 Reliability, Availability, and Serviceability (RAS)
A8.7 Error injection
B3.9 ERR0PFGFR, Error Pseudo Fault Generation Feature Register on page B3-345
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A8-116
reserved.
Non-Confidential
Chapter A9
Generic Interrupt Controller CPU interface
This chapter describes the Cortex‑A78 core implementation of the Arm Generic Interrupt Controller
(GIC) CPU interface.
It contains the following sections:
• A9.1 About the Generic Interrupt Controller CPU interface on page A9-118.
• A9.2 Bypassing the CPU interface on page A9-119.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A9-117
reserved.
Non-Confidential
A9 Generic Interrupt Controller CPU interface
A9.1 About the Generic Interrupt Controller CPU interface
Note
This chapter describes only features that are specific to the Cortex‑A78 core implementation. Additional
information specific to the cluster can be found in the Interfaces section of the Arm® DynamIQ™ Shared
Unit Technical Reference Manual.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A9-118
reserved.
Non-Confidential
A9 Generic Interrupt Controller CPU interface
A9.2 Bypassing the CPU interface
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A9-119
reserved.
Non-Confidential
A9 Generic Interrupt Controller CPU interface
A9.2 Bypassing the CPU interface
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. A9-120
Non-Confidential
Chapter A10
Advanced SIMD and floating-point support
This chapter describes the Advanced SIMD and floating-point features and registers in the Cortex‑A78
core. The unit in charge of handling the Advanced SIMD and floating-point features is also referred to as
the data engine in this manual.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A10-121
reserved.
Non-Confidential
A10 Advanced SIMD and floating-point support
A10.1 About the Advanced SIMD and floating-point support
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A10-122
reserved.
Non-Confidential
A10 Advanced SIMD and floating-point support
A10.2 Accessing the feature identification registers
Table A10-1 AArch64 Advanced SIMD and scalar floating-point feature identification registers
MVFR0_EL1 B5.4 MVFR0_EL1, Media and VFP Feature Register 0, EL1 on page B5-391
MVFR1_EL1 B5.5 MVFR1_EL1, Media and VFP Feature Register 1, EL1 on page B5-393
MVFR2_EL1 B5.6 MVFR2_EL1, Media and VFP Feature Register 2, EL1 on page B5-395
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights A10-123
reserved.
Non-Confidential
A10 Advanced SIMD and floating-point support
A10.2 Accessing the feature identification registers
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. A10-124
Non-Confidential
Part B
Register descriptions
Chapter B1
AArch32 system registers
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B1-127
reserved.
Non-Confidential
B1 AArch32 system registers
B1.1 AArch32 architectural system register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B1-128
reserved.
Non-Confidential
Chapter B2
AArch64 system registers
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-129
reserved.
Non-Confidential
B2 AArch64 system registers
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-130
reserved.
Non-Confidential
B2 AArch64 system registers
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-131
reserved.
Non-Confidential
B2 AArch64 system registers
B2.1 AArch64 registers
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-132
reserved.
Non-Confidential
B2 AArch64 system registers
B2.2 AArch64 architectural system register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-133
reserved.
Non-Confidential
B2 AArch64 system registers
B2.2 AArch64 architectural system register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-134
reserved.
Non-Confidential
B2 AArch64 system registers
B2.2 AArch64 architectural system register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-135
reserved.
Non-Confidential
B2 AArch64 system registers
B2.2 AArch64 architectural system register summary
RVBAR_EL3 3 c12 6 c0 1 64 B2.102 RVBAR_EL3, Reset Vector Base Address Register, EL3
on page B2-307
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-136
reserved.
Non-Confidential
B2 AArch64 system registers
B2.2 AArch64 architectural system register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-137
reserved.
Non-Confidential
B2 AArch64 system registers
B2.2 AArch64 architectural system register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-138
reserved.
Non-Confidential
B2 AArch64 system registers
B2.2 AArch64 architectural system register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-139
reserved.
Non-Confidential
B2 AArch64 system registers
B2.3 AArch64 implementation defined register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-140
reserved.
Non-Confidential
B2 AArch64 system registers
B2.3 AArch64 implementation defined register summary
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
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-141
reserved.
Non-Confidential
B2 AArch64 system registers
B2.3 AArch64 implementation defined register summary
CLUSTERPMXEVTYPER_EL1 3 c15 0 c6 1 32-bit Cluster Selected Event Type and Filter Register
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-142
reserved.
Non-Confidential
B2 AArch64 system registers
B2.4 AArch64 registers by functional group
Identification registers
Name Type Reset Description
CLIDR_EL1 RO • 0xC3000123 if L3 cache present B2.24 CLIDR_EL1, Cache Level ID Register, EL1
• 0x82000023 if no L3 cache on page B2-178
CTR_EL0 RO 0x8444C004 B2.46 CTR_EL0, Cache Type Register, EL0 on page B2-225
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-143
reserved.
Non-Confidential
B2 AArch64 system registers
B2.4 AArch64 registers by functional group
(continued)
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-144
reserved.
Non-Confidential
B2 AArch64 system registers
B2.4 AArch64 registers by functional group
(continued)
MPIDR_EL1 RO The reset value depends on B2.98 MPIDR_EL1, Multiprocessor Affinity Register, EL1
CLUSTERIDAFF2[7:0] and on page B2-302
CLUSTERIDAFF3[7:0]. See register
description for details.
VMPIDR_EL2 RW The reset value is the value of Virtualization Multiprocessor ID Register EL2
MPIDR_EL1.
VPIDR_EL2 RW The reset value is the value of Virtualization Core ID Register EL2
MIDR_EL1.
CPACR_EL1 RW B2.25 CPACR_EL1, Architectural Feature Access Control Register, EL1 on page B2-180
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-145
reserved.
Non-Confidential
B2 AArch64 system registers
B2.4 AArch64 registers by functional group
DISR_EL1 RW B2.48 DISR_EL1, Deferred Interrupt Status Register, EL1 on page B2-228
ERRSELR_EL1 RW B2.50 ERRSELR_EL1, Error Record Select Register, EL1 on page B2-231
ERXADDR_EL1 RW B2.51 ERXADDR_EL1, Selected Error Record Address Register, EL1 on page B2-232
ERXCTLR_EL1 RW B2.52 ERXCTLR_EL1, Selected Error Record Control Register, EL1 on page B2-233
ERXFR_EL1 RO B2.53 ERXFR_EL1, Selected Error Record Feature Register, EL1 on page B2-234
ERXMISC0_EL1 RW B2.54 ERXMISC0_EL1, Selected Error Record Miscellaneous Register 0, EL1 on page B2-235
ERXMISC1_EL1 RW B2.55 ERXMISC1_EL1, Selected Error Record Miscellaneous Register 1, EL1 on page B2-236
ERXPFGCDNR_EL1 RW B2.56 ERXPFGCDNR_EL1, Selected Error Pseudo Fault Generation Count Down Register, EL1
on page B2-237
ERXPFCTLR_EL1 RW B2.57 ERXPFGCTLR_EL1, Selected Error Pseudo Fault Generation Control Register, EL1
on page B2-238
ERXPFGFR_EL1 RO B2.58 ERXPFGFR_EL1, Selected Pseudo Fault Generation Feature Register, EL1 on page B2-240
ERXSTATUS_EL1 RW B2.59 ERXSTATUS_EL1, Selected Error Record Primary Status Register, EL1 on page B2-241
VDISR_EL2 RW B2.114 VDISR_EL2, Virtual Deferred Interrupt Status Register, EL2 on page B2-322
VSESR_EL2 RW B2.116 VSESR_EL2, Virtual SError Exception Syndrome Register on page B2-324
AMAIR_EL1 RW B2.15 AMAIR_EL1, Auxiliary Memory Attribute Indirection Register, EL1 on page B2-164
AMAIR_EL2 RW B2.16 AMAIR_EL2, Auxiliary Memory Attribute Indirection Register, EL2 on page B2-165
AMAIR_EL3 RW B2.17 AMAIR_EL3, Auxiliary Memory Attribute Indirection Register, EL3 on page B2-166
ATCR_EL1 RW B2.18 ATCR_EL1, Auxiliary Translation Control Register, EL1 on page B2-167
ATCR_EL2 RW B2.19 ATCR_EL2, Auxiliary Translation Control Register, EL2 on page B2-169
ATCR_EL12 RW B2.20 ATCR_EL12 , Alias to Auxiliary Translation Control Register EL1 on page B2-171
ATCR_EL3 RW B2.21 ATCR_EL3, Auxiliary Translation Control Register, EL3 on page B2-172
AVTCR_EL2 RW B2.22 AVTCR_EL2, Auxiliary Virtualized Translation Control Register, EL2 on page B2-174
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-146
reserved.
Non-Confidential
B2 AArch64 system registers
B2.4 AArch64 registers by functional group
(continued)
TTBR0_EL1 RW B2.109 TTBR0_EL1, Translation Table Base Register 0, EL1 on page B2-317
TTBR0_EL2 RW B2.110 TTBR0_EL2, Translation Table Base Register 0, EL2 on page B2-318
TTBR0_EL3 RW B2.111 TTBR0_EL3, Translation Table Base Register 0, EL3 on page B2-319
TTBR1_EL1 RW B2.112 TTBR1_EL1, Translation Table Base Register 1, EL1 on page B2-320
TTBR1_EL2 RW B2.113 TTBR1_EL2, Translation Table Base Register 1, EL2 on page B2-321
VTTBR_EL2 RW B2.118 VTTBR_EL2, Virtualization Translation Table Base Register, EL2 on page B2-326
Virtualization registers
Name Type Description
AFSR0_EL2 RW B2.9 AFSR0_EL2, Auxiliary Fault Status Register 0, EL2 on page B2-158
AFSR1_EL2 RW B2.12 AFSR1_EL2, Auxiliary Fault Status Register 1, EL2 on page B2-161
AMAIR_EL2 RW B2.16 AMAIR_EL2, Auxiliary Memory Attribute Indirection Register, EL2 on page B2-165
CPTR_EL2 RW B2.26 CPTR_EL2, Architectural Feature Trap Register, EL2 on page B2-181
HACR_EL2 RW B2.63 HACR_EL2, Hyp Auxiliary Configuration Register, EL2 on page B2-245
VSESR_EL2 RW B2.116 VSESR_EL2, Virtual SError Exception Syndrome Register on page B2-324
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-147
reserved.
Non-Confidential
B2 AArch64 system registers
B2.4 AArch64 registers by functional group
(continued)
VTCR_EL2 RW B2.117 VTCR_EL2, Virtualization Translation Control Register, EL2 on page B2-325
VTTBR_EL2 RW B2.118 VTTBR_EL2, Virtualization Translation Table Base Register, EL2 on page B2-326
AFSR0_EL1 RW B2.8 AFSR0_EL1, Auxiliary Fault Status Register 0, EL1 on page B2-157
AFSR0_EL2 RW B2.9 AFSR0_EL2, Auxiliary Fault Status Register 0, EL2 on page B2-158
AFSR0_EL3 RW B2.10 AFSR0_EL3, Auxiliary Fault Status Register 0, EL3 on page B2-159
AFSR1_EL1 RW B2.11 AFSR1_EL1, Auxiliary Fault Status Register 1, EL1 on page B2-160
AFSR1_EL2 RW B2.12 AFSR1_EL2, Auxiliary Fault Status Register 1, EL2 on page B2-161
AFSR1_EL3 RW B2.13 AFSR1_EL3, Auxiliary Fault Status Register 1, EL3 on page B2-162
DISR_EL1 RW B2.48 DISR_EL1, Deferred Interrupt Status Register, EL1 on page B2-228
VDISR_EL2 RW B2.114 VDISR_EL2, Virtual Deferred Interrupt Status Register, EL2 on page B2-322
VSESR_EL2 RW B2.116 VSESR_EL2, Virtual SError Exception Syndrome Register on page B2-324
ATCR_EL1 RW B2.18 ATCR_EL1, Auxiliary Translation Control Register, EL1 on page B2-167
ATCR_EL2 RW B2.19 ATCR_EL2, Auxiliary Translation Control Register, EL2 on page B2-169
ATCR_EL12 RW B2.20 ATCR_EL12 , Alias to Auxiliary Translation Control Register EL1 on page B2-171
ATCR_EL3 RW B2.21 ATCR_EL3, Auxiliary Translation Control Register, EL3 on page B2-172
AVTCR_EL2 RW B2.22 AVTCR_EL2, Auxiliary Virtualized Translation Control Register, EL2 on page B2-174
CPUACTLR_EL1 RW B2.28 CPUACTLR_EL1, CPU Auxiliary Control Register, EL1 on page B2-183
CPUACTLR2_EL1 RW B2.29 CPUACTLR2_EL1, CPU Auxiliary Control Register 2, EL1 on page B2-185
CPUACTLR3_EL1 RW B2.30 CPUACTLR3_EL1, CPU Auxiliary Control Register 3, EL1 on page B2-187
CPUACTLR5_EL1 RW B2.31 CPUACTLR5_EL1, CPU Auxiliary Control Register 5, EL1 on page B2-189
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-148
reserved.
Non-Confidential
B2 AArch64 system registers
B2.4 AArch64 registers by functional group
(continued)
CPUACTLR6_EL1 RW B2.32 CPUACTLR6_EL1, CPU Auxiliary Control Register 6, EL1 on page B2-191
CPUECTLR_EL1 RW B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1 on page B2-195
CPUECTLR2_EL1 RW B2.35 CPUECTLR2_EL1, CPU Extended Control Register2, EL1 on page B2-203
ERXPFGCDNR_EL1 RW B2.56 ERXPFGCDNR_EL1, Selected Error Pseudo Fault Generation Count Down Register, EL1
on page B2-237
ERXPFGCTLR_EL1 RW B2.57 ERXPFGCTLR_EL1, Selected Error Pseudo Fault Generation Control Register, EL1
on page B2-238
ERXPFGFR_EL1 RW B2.58 ERXPFGFR_EL1, Selected Pseudo Fault Generation Feature Register, EL1 on page B2-240
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
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-149
reserved.
Non-Confidential
B2 AArch64 system registers
B2.4 AArch64 registers by functional group
CLUSTERPMXEVTYPER_EL1 3 c15 0 c6 1 32-bit Cluster Selected Event Type and Filter Register
Security
Name Type Description
AFSR0_EL3 RW B2.10 AFSR0_EL3, Auxiliary Fault Status Register 0, EL3 on page B2-159
AFSR1_EL3 RW B2.13 AFSR1_EL3, Auxiliary Fault Status Register 1, EL3 on page B2-162
AMAIR_EL3 RW B2.17 AMAIR_EL3, Auxiliary Memory Attribute Indirection Register, EL3 on page B2-166
CPTR_EL3 RW B2.27 CPTR_EL3, Architectural Feature Trap Register, EL3 on page B2-182
MDCR_EL3 RW B2.96 MDCR_EL3, Monitor Debug Configuration Register, EL3 on page B2-298
RVBAR_EL3 RW B2.102 RVBAR_EL3, Reset Vector Base Address Register, EL3 on page B2-307
Address registers
Name Type Description
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-150
reserved.
Non-Confidential
B2 AArch64 system registers
B2.5 ACTLR_EL1, Auxiliary Control Register, EL1
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-151
reserved.
Non-Confidential
B2 AArch64 system registers
B2.6 ACTLR_EL2, Auxiliary Control Register, EL2
63 31 30 29 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TAM CLUSTERPMUEN
SMEN
TSIDEN
PWREN
ERXPFGEN
ECTLREN
ACTLREN
RES0
RES0, [63:31]
RES0 Reserved
TAM, [30]
Trap Activity Monitor registers. The possible values are:
0 El1 and EL0 accesses to all activity monitor registers are not trapped to EL2. This is
the reset value.
1 EL1 and EL0 accesses to all activity monitor registers are trapped to EL2.
RES0, [29:13]
RES0 Reserved
CLUSTERPMUEN, [12]
Performance Management Registers enable. The possible values are:
0 CLUSTERPM* registers are not write-accessible from a lower Exception level. This is
the reset value.
1 CLUSTERPM* registers are write-accessible from EL1 Non-secure if they are write-
accessible from EL2.
SMEN, [11]
Scheme Management Registers enable. The possible values are:
0 Registers CLUSTERACPSID, CLUSTERSTASHSID, CLUSTERPARTCR,
CLUSTERBUSQOS, and CLUSTERTHREADSIDOVR are not write-accessible from
EL1 Non-secure. This is the reset value.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-152
reserved.
Non-Confidential
B2 AArch64 system registers
B2.6 ACTLR_EL2, Auxiliary Control Register, EL2
TSIDEN, [10]
Thread Scheme ID Register enable. The possible values are:
0 Register CLUSTERTHREADSID is not write-accessible from EL1 Non-secure. This
is the reset value.
1 Register CLUSTERTHREADSID is write-accessible from EL1 Non-secure if they are
write-accessible from EL2.
RES0, [9:8]
RES0 Reserved
PWREN, [7]
Power Control Registers enable. The possible values are:
0 Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,
CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are not write-
accessible from EL1 Non-secure. This is the reset value.
1 Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,
CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are write-accessible
from EL1 Non-secure if they are write-accessible from EL2.
RES0, [6]
RES0 Reserved
ERXPFGEN, [5]
Error Record Registers enable. The possible values are:
0 ERXPFG* are not write-accessible from EL1 Non-secure. This is the reset value.
1 ERXPFG* are write-accessible from EL1 Non-secure if they are write-accessible from
EL2.
RES0, [4:2]
RES0 Reserved
ECTLREN, [1]
Extended Control Registers enable. The possible values are:
0 CPUECTLR* and CLUSTERECTLR are not write-accessible from EL1 Non-secure.
This is the reset value.
1 CPUECTLR* and CLUSTERECTLR are write-accessible from EL1 Non-secure if
they are write-accessible from EL2.
ACTLREN, [0]
Auxiliary Control Registers enable. The possible values are:
0 CPUACTLR*, CPUACTLR2, CPUACTLR3, and CLUSTERACTLR are not write-
accessible from EL1 Non-secure. This is the reset value.
1 CPUACTLR*, CPUACTLR2, CPUACTLR3, and CLUSTERACTLR are write-
accessible from EL1 Non-secure if they are write-accessible from EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-153
reserved.
Non-Confidential
B2 AArch64 system registers
B2.6 ACTLR_EL2, Auxiliary Control Register, EL2
Configurations
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-154
reserved.
Non-Confidential
B2 AArch64 system registers
B2.7 ACTLR_EL3, Auxiliary Control Register, EL3
63 31 30 29 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TAM CLUSTERPMUEN
SMEN
TSIDEN
PWREN
ERXPFGEN
ECTLREN
ACTLREN
RES0
RES0, [63:31]
RES0 Reserved
TAM, [30]
Trap Activity Monitor registers. The possible values are:
0 EL2, EL1, and EL0 accesses to all activity monitor registers are not trapped to EL3.
This is the reset value.
1 EL2, EL1, and EL0 accesses to all activity monitor registers are trapped to EL3.
RES0, [29:13]
RES0 Reserved
CLUSTERPMUEN, [12]
Performance Management Registers enable. The possible values are:
0 CLUSTERPM* registers are not write-accessible from a lower Exception level. This is
the reset value.
1 CLUSTERPM* registers are write-accessible from EL2 and EL1 Secure.
SMEN, [11]
Scheme Management Registers enable. The possible values are:
0 Registers CLUSTERACPSID, CLUSTERSTASHSID, CLUSTERPARTCR,
CLUSTERBUSQOS, and CLUSTERTHREADSIDOVR are not write-accessible from
EL2 and EL1 Secure. This is the reset value.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-155
reserved.
Non-Confidential
B2 AArch64 system registers
B2.7 ACTLR_EL3, Auxiliary Control Register, EL3
TSIDEN, [10]
Thread Scheme ID Register enable. The possible values are:
0 Register CLUSTERTHREADSID is not write-accessible from EL2 and EL1 Secure.
This is the reset value.
1 Register CLUSTERTHREADSID is write-accessible from EL2 and EL1 Secure.
RES0, [9:8]
RES0 Reserved
PWREN, [7]
Power Control Registers enable. The possible values are:
0 Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,
CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are not write-
accessible from EL2 and EL1 Secure. This is the reset value.
1 Registers CPUPWRCTLR, CLUSTERPWRCTLR, CLUSTERPWRDN,
CLUSTERPWRSTAT, CLUSTERL3HIT and CLUSTERL3MISS are write-accessible
from EL2 and EL1 Secure.
RES0, [6]
RES0 Reserved
ERXPFGEN, [5]
Error Record Registers enable. The possible values are:
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.
RES0, [4:2]
RES0 Reserved
ECTLREN, [1]
Extended Control Registers enable. The possible values are:
0 CPUECTLR and CLUSTERECTLR are not write-accessible from EL2 and EL1
Secure. This is the reset value.
1 CPUECTLR and CLUSTERECTLR are write-accessible from EL2 and EL1 Secure.
ACTLREN, [0]
Auxiliary Control Registers enable. The possible values are:
0 CPUACTLR*, CPUACTLR2, CPUACTLR3, and CLUSTERACTLR are not write-
accessible from EL2 and EL1 Secure. This is the reset value.
1 CPUACTLR*, CPUACTLR2, CPUACTLR3, and CLUSTERACTLR are write-
accessible from EL2 and EL1 Secure.
Configurations
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-156
reserved.
Non-Confidential
B2 AArch64 system registers
B2.8 AFSR0_EL1, Auxiliary Fault Status Register 0, EL1
31 0
RES0
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-157
reserved.
Non-Confidential
B2 AArch64 system registers
B2.9 AFSR0_EL2, Auxiliary Fault Status Register 0, EL2
31 0
RES0
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-158
reserved.
Non-Confidential
B2 AArch64 system registers
B2.10 AFSR0_EL3, Auxiliary Fault Status Register 0, EL3
31 0
RES0
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-159
reserved.
Non-Confidential
B2 AArch64 system registers
B2.11 AFSR1_EL1, Auxiliary Fault Status Register 1, EL1
31 0
RES0
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-160
reserved.
Non-Confidential
B2 AArch64 system registers
B2.12 AFSR1_EL2, Auxiliary Fault Status Register 1, EL2
31 0
RES0
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-161
reserved.
Non-Confidential
B2 AArch64 system registers
B2.13 AFSR1_EL3, Auxiliary Fault Status Register 1, EL3
31 0
RES0
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-162
reserved.
Non-Confidential
B2 AArch64 system registers
B2.14 AIDR_EL1, Auxiliary ID Register, EL1
31 0
RES0
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-163
reserved.
Non-Confidential
B2 AArch64 system registers
B2.15 AMAIR_EL1, Auxiliary Memory Attribute Indirection Register, EL1
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-164
reserved.
Non-Confidential
B2 AArch64 system registers
B2.16 AMAIR_EL2, Auxiliary Memory Attribute Indirection Register, EL2
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-165
reserved.
Non-Confidential
B2 AArch64 system registers
B2.17 AMAIR_EL3, Auxiliary Memory Attribute Indirection Register, EL3
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-166
reserved.
Non-Confidential
B2 AArch64 system registers
B2.18 ATCR_EL1, Auxiliary Translation Control Register, EL1
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 Reserved
HWVAL160, [13]
Indicates the value of PBHA[1] on page table walks memory access targeting the base address
defined by TTBR1_EL1 if HWEN160 is set.
HWVAL159, [12]
Indicates the value of PBHA[0] on page table walks memory access targeting the base address
defined by TTBR1_EL1 if HWEN159 is set.
RES0, [11:10]
RES0 Reserved
HWVAL060, [9]
Indicates the value of PBHA[1] page table walks memory access targeting the base address
defined by TTBR0_EL1 if HWEN060 is set.
HWVAL059, [8]
Indicates the value of PBHA[1] page table walks memory access targeting the base address
defined by TTBR0_EL1 if HWEN059 is set.
RES0, [7:6]
RES0 Reserved
HWEN160, [5]
Enables PBHA[1] page table walks memory access targeting the base address defined by
TTBR1_EL1. If this bit is clear, PBHA[1] on page table walks is 0.
HWEN159, [4]
Enables PBHA[0] page table walks memory access targeting the base address defined by
TTBR1_EL1. If this bit is clear, PBHA[0] on page table walks is 0.
RES0, [3:2]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-167
reserved.
Non-Confidential
B2 AArch64 system registers
B2.18 ATCR_EL1, Auxiliary Translation Control Register, EL1
RES0 Reserved
HWEN060, [1]
Enables PBHA[1] page table walks memory access targeting the base address defined by
TTBR0_EL1. If this bit is clear, PBHA[1] on page table walks is 0.
HWEN059, [0]
Enables PBHA[0] page table walks memory access targeting the base address defined by
TTBR0_EL1. If this bit is clear, PBHA[0] on page table walks is 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:
MRS Xt , S< 3 0 c15 c7 0> ; Read ATCR_EL1 into Xt
MSR S < 3 0 c15 c7 0 > , Xt ; Write Xt to ATCR_EL1
This syntax is encoded with the following settings in the instruction encoding:
3 0 c15 c7 0
Accessibility
ATCR_EL1 is accessible as follows:
Control Accessibility
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
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not
possible.
Note
ATCR_EL1 is also accessible using ATCR_EL12 when HCR.EL2.E2H is set. See
B2.20 ATCR_EL12 , Alias to Auxiliary Translation Control Register EL1 on page B2-171.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-168
reserved.
Non-Confidential
B2 AArch64 system registers
B2.19 ATCR_EL2, Auxiliary Translation Control Register, EL2
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 Reserved
HWVAL160, [13]
Indicates the value of PBHA[1] on page table walks memory access targeting the base address
defined by TTBR1_EL2 if HWEN160 is set.
HWVAL159, [12]
Indicates the value of PBHA[0] on page table walks memory access targeting the base address
defined by TTBR1_EL2 if HWEN159 is set.
RES0, [11:10]
RES0 Reserved
HWVAL060, [9]
Indicates the value of PBHA[1] page table walks memory access targeting the base address
defined by TTBR0_EL2 if HWEN060 is set.
HWVAL059, [8]
Indicates the value of PBHA[1] page table walks memory access targeting the base address
defined by TTBR0_EL2 if HWEN059 is set.
RES0, [7:6]
RES0 Reserved
HWEN160, [5]
Enables PBHA[1] page table walks memory access targeting the base address defined by
TTBR1_EL2. If this bit is clear, PBHA[1] on page table walks is 0.
HWEN159, [4]
Enables PBHA[0] page table walks memory access targeting the base address defined by
TTBR1_EL2. If this bit is clear, PBHA[0] on page table walks is 0.
RES0, [3:2]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-169
reserved.
Non-Confidential
B2 AArch64 system registers
B2.19 ATCR_EL2, Auxiliary Translation Control Register, EL2
RES0 Reserved
HWEN060, [1]
Enables PBHA[1] page table walks memory access targeting the base address defined by
TTBR0_EL2. If this bit is clear, PBHA[1] on page table walks is 0.
HWEN059, [0]
Enables PBHA[0] page table walks memory access targeting the base address defined by
TTBR0_EL2. If this bit is clear, PBHA[0] on page table walks is 0.
Configurations
AArch64 ATCR_EL2 register is architecturally mapped to AArch32 register AHTCR.
Usage constraints
Accessing the ATCR_EL2
To access the ATCR_EL2:
MRS Xt, S< 3 4 c15 c7 0> ; Read ATCR_EL2 into Xt
MSR S < 3 4 c15 c7 0 > , Xt ; Write Xt to ATCR_EL2
This syntax is encoded with the following settings in the instruction encoding:
3 4 c15 c7 0
Accessibility
ATCR_EL2 is accessible as follows:
EL0 (NS) EL1 (NS) EL1 (S) EL2 EL3 (SCR.NS=1) EL3 (SCR.NS=0)
- - - RW RW RW
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-170
reserved.
Non-Confidential
B2 AArch64 system registers
B2.20 ATCR_EL12 , Alias to Auxiliary Translation Control Register EL1
Usage constraints
Accessing the ATCR_EL12
To access the ATCR_EL1using the ATCR_EL12 alias:
MRS Xt , S< 3 5 c15 c7 0> ; Read ATCR_EL12/ATCR_EL1 into Xt
MSR S < 3 5 c15 c7 0 > , Xt ; Write Xt to
ATCR_EL12/ATCR_EL1
This syntax is encoded with the following settings in the instruction encoding:
3 5 15 7 0
Accessibility
ATCR_EL12 is accessible as follows:
Control Accessibility
ATCR_EL12 x x 0 - - n/a -
ATCR_EL12 0 0 1 - - - -
ATCR_EL12 0 1 1 - n/a - -
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not
possible.
Traps and enables
All traps associated with the ATCR_EL1 register that apply at EL2 or EL3 also apply to the
ATCR_EL12 alias.
This alias is only accessible when HCR_EL2.E2H == 1.
When HCR_EL2.E2H == 0, access to this alias is UNDEFINED.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-171
reserved.
Non-Confidential
B2 AArch64 system registers
B2.21 ATCR_EL3, Auxiliary Translation Control Register, EL3
63 10 9 8 7 2 1 0
HWVAL60 HWEN59
RES0
HWVAL59 HWEN60
RES0, [63:10]
RES0 Reserved
HWVAL60, [9]
Indicates the value of PBHA[1] page table walks memory access if HWEN60 is set.
HWVAL59, [8]
Indicates the value of PBHA[1] page table walks memory access if HWEN59 is set.
RES0, [7:2]
RES0 Reserved
HWEN60, [1]
Enables PBHA[1] page table walks memory access. If this bit is clear, PBHA[1] on page table
walks is 0.
HWEN59, [0]
Enables PBHA[0] page table walks memory access. If this bit is clear, PBHA[0] on page table
walks is 0.
Configurations
AArch64 register ATCR_EL3 is architecturally mapped to AArch32 register ATCR (S).
Usage constraints
Accessing the ATCR_EL3
To access the ATCR_EL3:
MRS Xt , < 3 6 c15 c7 0> ; Read ATCR_EL3 into Xt
MSR S < 3 6 c15 c7 0 > , Xt ; Write Xt to ATCR_EL3
This syntax is encoded with the following settings in the instruction encoding:
3 6 c15 c7 0
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-172
reserved.
Non-Confidential
B2 AArch64 system registers
B2.21 ATCR_EL3, Auxiliary Translation Control Register, EL3
Accessibility
ATCR_EL3 is accessible as follows:
EL0 EL1 (NS) EL1 (S) EL2 EL3 (SCR.NS=1) EL3 (SCR.NS=0)
- - - - RW RW
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-173
reserved.
Non-Confidential
B2 AArch64 system registers
B2.22 AVTCR_EL2, Auxiliary Virtualized Translation Control Register, EL2
63 10 9 8 7 2 1 0
HWVAL60 HWEN59
RES0
HWVAL59 HWEN60
RES0, [63:10]
RES0 Reserved
HWVAL60, [9]
Indicates the value of PBHA[1] page table walks memory access if HWEN60 is set.
HWVAL59, [8]
Indicates the value of PBHA[1] page table walks memory access if HWEN59 is set.
RES0, [7:2]
RES0 Reserved
HWEN60, [1]
Enables PBHA[1] page table walks memory access. If this bit is clear, PBHA[1] on page table
walks is 0.
HWEN59, [0]
Enables PBHA[0] page table walks memory access. If this bit is clear, PBHA[0] on page table
walks is 0.
Configurations
AArch64 register AVTCR_EL2 is architecturally mapped to AArch32 register AVTCR.
Usage constraints
Accessing the AVTCR_EL2
To access the AVTCR_EL2:
MRS Xt , S< 3 4 c15 c7 1> ; Read AVTCR_EL2 into Xt
MSR S < 3 4 c15 c7 1 > , Xt ; Write Xt to AVTCR_EL2
This syntax is encoded with the following settings in the instruction encoding:
3 4 c15 c7 1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-174
reserved.
Non-Confidential
B2 AArch64 system registers
B2.22 AVTCR_EL2, Auxiliary Virtualized Translation Control Register, EL2
Accessibility
AVTCR_EL2 is accessible as follows:
EL0 EL1 (NS) EL1 (S) EL2 EL3 (SCR.NS=1) EL3 (SCR.NS=0)
- - - RW RW RW
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-175
reserved.
Non-Confidential
B2 AArch64 system registers
B2.23 CCSIDR_EL1, Cache Size ID Register, EL1
NumSets Associativity
WT WA LineSize
WB RA
WT, [31]
Indicates whether the selected cache level supports Write-Through:
0 Cache Write-Through is not supported at any level.
For more information about encoding, see CCSIDR_EL1 encodings on page B2-177.
WB, [30]
Indicates whether the selected cache level supports Write-Back. Permitted values are:
0 Write-Back is not supported.
1 Write-Back is supported.
For more information about encoding, see CCSIDR_EL1 encodings on page B2-177.
RA, [29]
Indicates whether the selected cache level supports read-allocation. Permitted values are:
0 Read-allocation is not supported.
1 Read-allocation is supported.
For more information about encoding, see CCSIDR_EL1 encodings on page B2-177.
WA, [28]
Indicates whether the selected cache level supports write-allocation. Permitted values are:
0 Write-allocation is not supported.
1 Write-allocation is supported.
For more information about encoding, see CCSIDR_EL1 encodings on page B2-177.
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 B2-177.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-176
reserved.
Non-Confidential
B2 AArch64 system registers
B2.23 CCSIDR_EL1, Cache Size ID Register, EL1
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 B2-177.
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 a line length of 32 bytes: Log2(32) = 5, LineSize entry = 1.
For more information about encoding, see CCSIDR_EL1 encodings on page B2-177.
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 Armv8, for Armv8-A architecture profile.
CCSIDR_EL1 encodings
The following table shows the individual bit field and complete register encodings for the CCSIDR_EL1.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-177
reserved.
Non-Confidential
B2 AArch64 system registers
B2.24 CLIDR_EL1, Cache Level ID Register, EL1
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:
0b010 L2 cache is the highest inner level.
0b011 L3 cache is the highest inner level.
LoUU, [29:27]
Indicates the Level of Unification Uniprocessor for the cache hierarchy:
0b000 No levels of cache need to cleaned or invalidated when cleaning or invalidating to the
Point of Unification. This is the value if no caches are configured.
LoC, [26:24]
Indicates the Level of Coherency for the cache hierarchy:
0b010 L3 cache is not implemented.
0b011 L3 cache is implemented.
LoUIS, [23:21]
Indicates the Level of Unification Inner Shareable (LoUIS) for the cache hierarchy.
0b000 No cache level needs cleaning to Point of Unification.
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 L3:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-178
reserved.
Non-Confidential
B2 AArch64 system registers
B2.24 CLIDR_EL1, Cache Level ID Register, EL1
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 L2:
0b100 Either per-core L2 or cluster L2 cache is present.
0b000 All other options
Ctype1, [2:0]
Indicates the type of cache implemented at L1:
0b011 Separate instruction and data caches at L1
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-179
reserved.
Non-Confidential
B2 AArch64 system registers
B2.25 CPACR_EL1, Architectural Feature Access Control Register, EL1
31 28 22 21 20 19 0
TTA FPEN
RES0
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-180
reserved.
Non-Confidential
B2 AArch64 system registers
B2.26 CPTR_EL2, Architectural Feature Trap Register, EL2
31 30 21 20 19 14 13 12 11 10 9 0
RES1
RES0
TTA, [20]
Trap Trace Access
This bit is not implemented. RES0.
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-181
reserved.
Non-Confidential
B2 AArch64 system registers
B2.27 CPTR_EL3, Architectural Feature Trap Register, EL3
31 30 21 20 19 11 10 9 0
TTA
TCPAC
TFP
RES0
TTA, [20]
Trap Trace Access
Not implemented. RES0.
TFP, [10]
Traps all accesses to SVE, Advanced SIMD and floating-point functionality to EL3. This
applies to all Exception levels, both Security states, and both Execution states. The possible
values are:
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-182
reserved.
Non-Confidential
B2 AArch64 system registers
B2.28 CPUACTLR_EL1, CPU Auxiliary Control Register, EL1
63 0
Reserved
Reserved, [63:0]
Reserved for Arm internal use.
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 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 is accessible as follows:
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_0_C15_C1_0 x x 0 - RW n/a RW
S3_0_C15_C1_0 x 0 1 - RW RW RW
S3_0_C15_C1_0 x 1 1 - n/a RW RW
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-183
reserved.
Non-Confidential
B2 AArch64 system registers
B2.28 CPUACTLR_EL1, CPU Auxiliary Control Register, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-184
reserved.
Non-Confidential
B2 AArch64 system registers
B2.29 CPUACTLR2_EL1, CPU Auxiliary Control Register 2, EL1
63 0
Reserved
Reserved, [63:0]
Reserved for Arm internal use.
Configurations
CPUACTLR2_EL1 is common to the Secure and Non-secure states.
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_0_C15_C1_1 x x 0 - RW n/a RW
S3_0_C15_C1_1 x 0 1 - RW RW RW
S3_0_C15_C1_1 x 1 1 - n/a RW RW
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-185
reserved.
Non-Confidential
B2 AArch64 system registers
B2.29 CPUACTLR2_EL1, CPU Auxiliary Control Register 2, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-186
reserved.
Non-Confidential
B2 AArch64 system registers
B2.30 CPUACTLR3_EL1, CPU Auxiliary Control Register 3, EL1
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_0_C15_C1_2 x x 0 - RW n/a RW
S3_0_C15_C1_2 x 0 1 - RW RW RW
S3_0_C15_C1_2 x 1 1 - n/a RW RW
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-187
reserved.
Non-Confidential
B2 AArch64 system registers
B2.30 CPUACTLR3_EL1, CPU Auxiliary Control Register 3, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-188
reserved.
Non-Confidential
B2 AArch64 system registers
B2.31 CPUACTLR5_EL1, CPU Auxiliary Control Register 5, EL1
63 0
Reserved
Reserved, [63:0]
Reserved for Arm internal use.
Configurations
CPUACTLR5_EL1 is common to the Secure and Non-secure states.
Usage constraints
Accessing the CPUACTLR5_EL1
The CPUACTLR5_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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_0_C15_C9_0 x x 0 - RW n/a RW
S3_0_C15_C9_0 x 0 1 - RW RW RW
S3_0_C15_C9_0 x 1 1 - n/a RW RW
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-189
reserved.
Non-Confidential
B2 AArch64 system registers
B2.31 CPUACTLR5_EL1, CPU Auxiliary Control Register 5, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-190
reserved.
Non-Confidential
B2 AArch64 system registers
B2.32 CPUACTLR6_EL1, CPU Auxiliary Control Register 6, EL1
63 0
Reserved
Reserved, [63:0]
Reserved for Arm internal use.
Configurations
CPUACTLR6_EL1 is common to the Secure and Non-secure states.
Usage constraints
Accessing the CPUACTLR6_EL1
The CPUACTLR6_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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_0_C15_C9_1 x x 0 - RW n/a RW
S3_0_C15_C9_1 x 0 1 - RW RW RW
S3_0_C15_C9_1 x 1 1 - n/a RW RW
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-191
reserved.
Non-Confidential
B2 AArch64 system registers
B2.32 CPUACTLR6_EL1, CPU Auxiliary Control Register 6, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-192
reserved.
Non-Confidential
B2 AArch64 system registers
B2.33 CPUCFR_EL1, CPU Configuration Register, EL1
ECC
RES0
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 Armv8, for Armv8-A architecture profile.
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:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-193
reserved.
Non-Confidential
B2 AArch64 system registers
B2.33 CPUCFR_EL1, CPU Configuration Register, EL1
S3_0_C15_C0_0 x x 0 - RO n/a RO
S3_0_C15_C0_0 x 0 1 - RO RO RO
S3_0_C15_C0_0 x 1 1 - n/a RO RO
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-194
reserved.
Non-Confidential
B2 AArch64 system registers
B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1
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
CMC_MIN_WAYS ATOMIC_ACQ_NEAR
L2_INST_PART ATOMIC_LD_FORCE_NEAR
L2_DATA_PART 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
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 10 9 8 7 6 5 4 3 2 1 0
ATOMIC_ST_NEAR EXTLLC
ATOMIC_REL_NEAR
ATOMIC_LD_NEAR RPF_LO_CONF
RPF_MODE
TLD_PRED_DIS PF_MODE
TLD_PRED_AGGR
DTLB_CABT_EN
WS_THR_L2 PF_STI_DIS
WS_THR_L3
PF_STS_DIS
WS_THR_L4
WS_THR_DRAM PF_SS_L2_DIST
PF_DIS
RES0
CMC_MIN_WAYS, [63:61]
Limits how many ways of L2 can be used by Correlated Miss Caching (CMC) data prefetcher.
The possible values are:
000 CMC disabled
001 Reserved
010 Reserved
011 Reserved
100 Reserved
101 CMC must leave at least 5 ways for data in L2. This is the reset value.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-195
reserved.
Non-Confidential
B2 AArch64 system registers
B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1
L2_INST_PART, [60:58]
Partition the L2 cache for instruction.c The possible values are:
000 No ways reserved for instruction. This is the reset value.
001 Reserve 1 way for instructions. Only instruction fetches can allocate way [7].
010 Reserve 2 ways for instructions. Only instruction fetches can allocate ways [7:6].
011 Reserve 3 ways for instructions. Only instruction fetches can allocate ways [7:5].
100 Reserve 4 ways for instructions. Only instruction fetches can allocate ways [7:4].
101 Reserve 5 ways for instructions. Only instruction fetches can allocate ways [7:3].
110 Reserve 6 ways for instructions. Only instruction fetches can allocate ways [7:2].
111 Reserve 7 ways for instructions. Only instruction fetches can allocate ways [7:1].
L2_DATA_PART, [57:55]
Partition the L2 cache for data.c The possible values are:
000 No ways reserved for data. This is the reset value.
001 Reserve 1 way for data. Only data accesses can allocate way [0].
010 Reserve 2 ways for data. Only data accesses can allocate ways [1:0].
011 Reserve 3 ways for data. Only data accesses can allocate ways [2:0].
100 Reserve 4 ways for data. Only data accesses can allocate ways [3:0].
101 Reserve 5 ways for data. Only data accesses can allocate ways [4:0].
110 Reserve 6 ways for data. Only data accesses can allocate ways [5:0].
111 Reserve 7 ways for data. Only data accesses can allocate ways [6:0].
MM_VMID_THR, [54]
VMID filter threshold. The possible values are:
0 Flush VMID filter after 16 unique VMID allocations to the Memory Management Unit
(MMU) Translation Cache. This is the reset value.
1 Flush VMID filter after 32 unique VMID allocations to the MMU Translation Cache.
MM_ASP_EN, [53]
Disables allocation of splintered pages in L2 TLB. The possible values are:
0 Enables allocation of splintered pages in the L2 TLB. This is the reset value.
1 Disables allocation of splintered pages in the L2 TLB.
MM_CH_DIS, [52]
Disables use of contiguous hint. The possible values are:
0 Enables use of contiguous hint. This is the reset value.
1 Disables use of contiguous hint.
MM_TLBPF_DIS, [51]
Disables L2 TLB prefetcher. The possible values are:
0 Enables L2 TLB prefetcher. This is the reset value.
c If any ways are left unselected by the settings of L2_INST_PART and L2_DATA_PART, then those ways can be used for either instruction or data allocation. If any
ways selected by the settings of L2_INST_PART and L2_DATA_PART overlap, then those ways will not be used for either instruction or data allocation.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-196
reserved.
Non-Confidential
B2 AArch64 system registers
B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1
RES0, [50:48]
RES0 Reserved
HPA_L1_DIS, [47]
Disables HPA in L1 TLBs (but continues to use HPA in L2 TLB). The possible values are:
0 Enables hardware page aggregation in L1 TLBs. This is the reset value.
1 Disables hardware page aggregation in L1 TLBs.
HPA_DIS, [46]
Disables hardware page aggregation. The possible values are:
0 Enables hardware page aggregation. This is the reset value.
1 Disables hardware page aggregation.
RES0, [45:44]
RES0 Reserved
L2_FLUSH, [43]
Allocation behavior of copybacks 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:
0 L2 cache flushes and invalidates by set/way do not allocate in the L3 cache. Cache
lines in the UniqueDirty state cause Write-Back transactions with the allocation hint
cleared, while cache lines in UniqueClean or SharedClean states cause address-only
Evict transactions. This is the reset value.
1 L2 cache flushes by set/way allocate in the L3 cache. Cache lines in the UniqueDirty
or UniqueClean state cause WriteBackFull or WriteEvictFull transactions,
respectively, both with the allocation hint set. Cache lines in the SharedClean state
cause address-only Evict transactions.
RES0, [42]
RES0 Reserved
PFT_MM, [41:40]
DRAM prefetch using PrefetchTgt transactions for table walk requests. The possible values are:
00 Disable PrefetchTgt generation for requests from the MMU. This is the reset value.
01 Conservatively generate PrefetchTgt for cacheable requests from the MMU, always
generate for Non-cacheable.
10 Aggressively generate PrefetchTgt for cacheable requests from the MMU, always
generate for Non-cacheable.
11 Always generate PrefetchTgt for cacheable requests from the MMU, always generate
for Non-cacheable.
PFT_LS, [39:38]
DRAM prefetch using PrefetchTgt transactions for load and store requests. The possible values
are:
00 Disable PrefetchTgt generation for requests from the Load-Store unit (LS). This is the
reset value.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-197
reserved.
Non-Confidential
B2 AArch64 system registers
B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1
01 Conservatively generate PrefetchTgt for cacheable requests from the LS, always
generate for Non-cacheable.
10 Aggressively generate PrefetchTgt for cacheable requests from the LS, always
generate for Non-cacheable.
11 Always generate PrefetchTgt for cacheable requests from the LS, always generate for
Non-cacheable.
PFT_IF, [37:36]
DRAM prefetch using PrefetchTgt transactions for instruction fetch requests. The possible
values are:
00 Disable PrefetchTgt generation for requests from the Instruction Fetch unit (IF). This
is the reset value.
01 Conservatively generate PrefetchTgt for cacheable requests from the IF, always
generate for Non-cacheable.
10 Aggressively generate PrefetchTgt for cacheable requests from the IF, always generate
for Non-cacheable.
11 Always generate PrefetchTgt for cacheable requests from the IF, always generate for
Non-cacheable.
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 additional level of cache below the CPU's L2 cache. The possible values are:
0 Disables sending data with UniqueClean evictions.
1 Enables sending data with UniqueClean evictions. This is the reset value.
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:
0 Enables sending Evict transactions. This is the reset value.
1 Disables sending Evict transactions.
ATOMIC_LD_FORCE_NEAR, [33]
A load atomic (including SWP and CAS) instruction to WB memory will be performed near.
The possible values are:
0 Load-atomic is near if cache line is already exclusive, otherwise make far atomic
request.
1 Load-atomic will be performed near by bringing the line into the L1D Cache. This is
the reset value.
ATOMIC_ACQ_NEAR, [32]
An atomic instruction to WB memory with acquire semantics that does not hit in the cache in
Exclusive state, may make up to one fill request. The possible values are:
0 Acquire-atomic is near if cache line is already Exclusive, otherwise make far atomic
request.
1 Acquire-atomic will make up to 1 fill request to perform near. This is the reset value.
ATOMIC_ST_NEAR, [31]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-198
reserved.
Non-Confidential
B2 AArch64 system registers
B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1
A store atomic instruction to WB memory that does not hit in the cache in Exclusive state, may
make up to one fill request. The possible values are:
0 Store-atomic is near if cache line is already Exclusive, otherwise make far atomic
request. This is the reset value.
1 Store-atomic will make up to 1 fill request to perform near.
ATOMIC_REL_NEAR, [30]
An atomic instruction to WB memory with release semantics that does not hit in the cache in
Exclusive state, may make up to one fill request. The possible values are:
0 Release-atomic is near if cache line is already Exclusive, otherwise make far atomic
request.
1 Release-atomic will make up to 1 fill request to perform near. This is the reset value.
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, may make up to one fill request. The possible values are:
0 Load-atomic is near if cache line is already Exclusive, otherwise make far atomic
request. This is the reset value.
1 Load-atomic will make up to 1 fill request to perform near.
TLD_PRED_DIS, [28]
Disables Transient Load Prediction. The possible values are:
0 Enables transient load prediction. This is the reset value.
1 Disables transient load prediction.
TLD_PRED_AGGR, [27]
Enables aggressive transient load prediction. The possible values are:
0 Transient load prediction uses more conservative threshold. This is the reset value.
1 Transient load prediction uses more aggressive threshold.
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. This is the reset value.
01 4KB
10 8KB
11 Disables direct stream to L2 cache on store.
WS_THR_L3, [23:22]
Threshold for direct stream to L3 cache on store. Once the threshold is met, consecutive
streaming writes will not allocate in the L1 or L2 cache. The possible values are:
00 128KB
01 256KB. This is the reset value.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-199
reserved.
Non-Confidential
B2 AArch64 system registers
B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1
10 512KB
11 Disables direct stream to L3 cache on store.
WS_THR_L4, [21:20]
Threshold for direct stream to L4 cache on store. Once the threshold is met, consecutive
streaming writes will not allocate in the L1, L2, or L3 cache. d The possible values are:
00 256KB
01 512KB. This is the reset value.
10 1MB
11 Disables direct stream to L4 cache on store.
WS_THR_DRAM, [19:18]
Threshold for direct stream to DRAM on store.d The possible values are:
00 512KB
01 1MB. This is the reset value.
10 2MB
11 Disables direct stream to DRAM on store.
RES0, [17:16]
RES0 Reserved
PF_DIS, [15]
Disables data-side hardware prefetching. The possible values are:
0 Enables hardware prefetching. This is the reset value.
1 Disables hardware prefetching.
RES0, [14]
RES0 Reserved
PF_SS_L2_DIST, [13:12]
Single cache line stride prefetching L2 distance. The possible values are:
00 22
01 40
10 60
11 Dynamically managed by hardware. This is the reset value.
RES0, [11:10]
RES0 Reserved
PF_STS_DIS, [9]
Disable store-stride prefetches. The possible values are:
0 Enables store prefetching. This is the reset value.
1 Disables store prefetching.
PF_STI_DIS, [8]
Disables store prefetches at issue. The possible values are:
d If the PE detects that it is the only active requestor in the DSU cluster, then it may scale these to larger thresholds.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-200
reserved.
Non-Confidential
B2 AArch64 system registers
B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1
PF_MODE, [7:6]
General prefetcher aggressibility. The possible values are:
00 Dynamic aggressiveness. This is the reset value.
01 Conservative prefetching
10 Very conservative prefetching
11 Most conservative prefetching
RPF_MODE, [5:4]
Region prefetcher aggressibility. The possible values are:
00 Dynamic region prefetch aggressiveness. This is the reset value.
01 Conservative region prefetching
10 Very conservative region prefetching
11 Most conservative region prefetching. This will disable the region prefetcher.
RPF_LO_CONF, [3]
Region prefetcher single accesses training behavior. The possible values are:
0 Limited training for PHT on single accesses. This is the reset value.
1 Always train the PHT on single accesses, which results in fewer prefetch requests.
RES0, [2:1]
RES0 Reserved
EXTLLC, [0]
Internal or external Last-level cache (LLC) in the system. The possible values are:
0 Indicates that an internal Last-level cache is present in the system, and that the
DataSource field on the master CHI interface indicates when data is returned from the
LLC. This is used to control how the LL_CACHE* PMU events count. This is the
reset value.
1 Indicates that an external Last-level cache is present in the system, and that the
DataSource field on the master CHI interface indicates when data is returned from the
LLC. This is used to control how the LL_CACHE* PMU events count. Additionally,
the core makes performance optimizations based on the LLC DataSource.
Configurations
This register has no configuration options.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-201
reserved.
Non-Confidential
B2 AArch64 system registers
B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
CPUECTLR_EL1 x x 0 - RW n/a RW
CPUECTLR_EL1 x 0 1 - RW RW RW
CPUECTLR_EL1 x 1 1 - n/a RW RW
'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 Armv8, for Armv8-A architecture
profile for exceptions taken to AArch64 state.
Access to this register depends on bit[1] of ACTLR_EL2 and ACTLR_EL3.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-202
reserved.
Non-Confidential
B2 AArch64 system registers
B2.35 CPUECTLR2_EL1, CPU Extended Control Register2, EL1
63 0
RES0
RES0, [63:0]
RES0 Reserved
Configurations
This register has no configuration options.
Usage constraints
Accessing the CPUECTLR2_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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
CPUECTLR2_EL1 x x 0 - RW n/a RW
CPUECTLR2_EL1 x 0 1 - RW RW RW
CPUECTLR2_EL1 x 1 1 - n/a RW RW
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-203
reserved.
Non-Confidential
B2 AArch64 system registers
B2.35 CPUECTLR2_EL1, CPU Extended Control Register2, EL1
'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 Armv8, for Armv8-A architecture
profile for exceptions taken to AArch64 state.
Access to this register depends on bit[1] of ACTLR_EL2 and ACTLR_EL3.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-204
reserved.
Non-Confidential
B2 AArch64 system registers
B2.36 CPUPCR_EL3, CPU Private Control Register, EL3
63 0
Reserved
Reserved, [63:0]
Reserved for Arm internal use.
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.
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 is accessible as follows:
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_6_C15_8_1 x x 0 - - n/a RW
S3_6_C15_8_1 x 0 1 - - - RW
S3_6_C15_8_1 x 1 1 - n/a - RW
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-205
reserved.
Non-Confidential
B2 AArch64 system registers
B2.36 CPUPCR_EL3, CPU Private Control Register, EL3
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-206
reserved.
Non-Confidential
B2 AArch64 system registers
B2.37 CPUPFR_EL3, CPU Private Flag Register, EL3
63 0
Reserved
Reserved, [63:0]
Reserved for Arm internal use.
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.
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 is accessible as follows:
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_6_C15_8_6 x x 0 - - n/a RW
S3_6_C15_8_6 x 0 1 - - - RW
S3_6_C15_8_6 x 1 1 - n/a - RW
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-207
reserved.
Non-Confidential
B2 AArch64 system registers
B2.37 CPUPFR_EL3, CPU Private Flag Register, EL3
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-208
reserved.
Non-Confidential
B2 AArch64 system registers
B2.38 CPUPMR_EL3, CPU Private Mask Register, EL3
63 0
Reserved
Reserved, [63:0]
Reserved for Arm internal use.
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 is accessible as follows:
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_6_C15_8_3 x x 0 - - n/a RW
S3_6_C15_8_3 x 0 1 - - - RW
S3_6_C15_8_3 x 1 1 - n/a - RW
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-209
reserved.
Non-Confidential
B2 AArch64 system registers
B2.38 CPUPMR_EL3, CPU Private Mask Register, EL3
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-210
reserved.
Non-Confidential
B2 AArch64 system registers
B2.39 CPUPMR2_EL3, CPU Private Mask Register 2, EL3
63 0
Reserved
Reserved, [63:0]
Reserved for Arm internal use.
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 is accessible as follows:
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_6_C15_8_5 x x 0 - - n/a RW
S3_6_C15_8_5 x 0 1 - - - RW
S3_6_C15_8_5 x 1 1 - n/a - RW
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-211
reserved.
Non-Confidential
B2 AArch64 system registers
B2.39 CPUPMR2_EL3, CPU Private Mask Register 2, EL3
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-212
reserved.
Non-Confidential
B2 AArch64 system registers
B2.40 CPUPOR_EL3, CPU Private Operation Register, EL3
63 0
Reserved
Reserved, [63:0]
Reserved for Arm internal use.
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.
This register is accessible as follows:
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_6_C15_8_2 x x 0 - - n/a RW
S3_6_C15_8_2 x 0 1 - - - RW
S3_6_C15_8_2 x 1 1 - n/a - RW
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-213
reserved.
Non-Confidential
B2 AArch64 system registers
B2.40 CPUPOR_EL3, CPU Private Operation Register, EL3
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-214
reserved.
Non-Confidential
B2 AArch64 system registers
B2.41 CPUPOR2_EL3, CPU Private Operation Register 2, EL3
63 0
Reserved
Reserved, [63:0]
Reserved for Arm internal use.
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.
This register is accessible as follows:
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_6_C15_8_4 x x 0 - - n/a RW
S3_6_C15_8_4 x 0 1 - - - RW
S3_6_C15_8_4 x 1 1 - n/a - RW
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-215
reserved.
Non-Confidential
B2 AArch64 system registers
B2.41 CPUPOR2_EL3, CPU Private Operation Register 2, EL3
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-216
reserved.
Non-Confidential
B2 AArch64 system registers
B2.42 CPUPPMCR_EL3, CPU Power Performance Management Configuration Register, EL3
63 0
Reserved
Reserved, [63:0]
Reserved for Arm internal use.
Configurations
CPUPMR_EL3 is only accessible in Secure state.
Usage constraints
Accessing the CPUPPMCR_EL3
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 is accessible as follows:
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_6_C15_C2_0 x x 0 - - n/a RW
S3_6_C15_C2_0 x 0 1 - - - RW
S3_6_C15_C2_0 x 1 1 - n/a - RW
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-217
reserved.
Non-Confidential
B2 AArch64 system registers
B2.42 CPUPPMCR_EL3, CPU Power Performance Management Configuration Register, EL3
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-218
reserved.
Non-Confidential
B2 AArch64 system registers
B2.43 CPUPSELR_EL3, CPU Private Selection Register, EL3
31 0
Reserved
Reserved, [31:0]
Reserved for Arm internal use.
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 is accessible as follows:
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:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_6_C15_8_0 x x 0 - - n/a RW
S3_6_C15_8_0 x 0 1 - - - RW
S3_6_C15_8_0 x 1 1 - n/a - RW
'n/a' Not accessible. The core cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-219
reserved.
Non-Confidential
B2 AArch64 system registers
B2.43 CPUPSELR_EL3, CPU Private Selection Register, EL3
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-220
reserved.
Non-Confidential
B2 AArch64 system registers
B2.44 CPUPWRCTLR_EL1, Power Control Register, EL1
31 13 12 10 9 7 6 4 3 1 0
SIMD_RET_CTRL
WFE_RET_CTRL
WFI_RET_CTRL
CORE_PWRDN_EN
RES0
RES0, [31:10]
RES0 Reserved
SIMD_RET_CTRL, [12:10]
Advanced SIMD and floating-point retention control:
000 Disable the retention circuit. This is the default value, see Table B2-7 CPUPWRCTLR
Retention Control Field on page B2-222 for more retention control options.
WFE_RET_CTRL, [9:7]
CPU WFE retention control:
000 Disable the retention circuit. This is the default value, see Table B2-7 CPUPWRCTLR
Retention Control Field on page B2-222 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 B2-7 CPUPWRCTLR
Retention Control Field on page B2-222 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.
0 No power down requested. This is the reset value.
1 A power down is requested.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-221
reserved.
Non-Confidential
B2 AArch64 system registers
B2.44 CPUPWRCTLR_EL1, Power Control Register, EL1
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>
This register can be written using MSR with the following syntax:
MSR <systemreg>, <Xt>
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_0_C15_C2_7 x x 0 - RW n/a RW
S3_0_C15_C2_7 x 0 1 - RW RW RW
S3_0_C15_C2_7 x 1 1 - n/a RW RW
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not possible.
e 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-222
reserved.
Non-Confidential
B2 AArch64 system registers
B2.44 CPUPWRCTLR_EL1, Power Control Register, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-223
reserved.
Non-Confidential
B2 AArch64 system registers
B2.45 CSSELR_EL1, Cache Size Selection Register, EL1
31 4 3 1 0
Level
InD
RES0
RES0, [31:4]
RES0 Reserved
Level, [3:1]
Cache level of required cache:
000 L1
001 L2
010 L3, if present
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-224
reserved.
Non-Confidential
B2 AArch64 system registers
B2.46 CTR_EL0, Cache Type Register, EL0
31 30 29 28 27 24 23 20 19 16 15 14 13 4 3 0
IDC
RES1
RES0
RES1, [31]
RES1 Reserved
RES0, [30:29]
RES0 Reserved
IDC, [28]
Data cache clean requirements for instruction to data coherence:
0 Data cache clean to the point of unification is required for instruction to data
coherence, unless CLIDR_EL1.LoC == 0b000 or (CLIDR_EL1.LoUIS == 0b000 &&
CLIDR_EL1.LoUU == 0b000). .
1 Data cache clean to the point of unification is not required for instruction to data
coherence.
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:
0100 Exclusive reservation granule size is 16 words.
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:
0100 Smallest data cache line size is 16 words.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-225
reserved.
Non-Confidential
B2 AArch64 system registers
B2.46 CTR_EL0, Cache Type Register, EL0
L1Ip, [15:14]
Instruction cache policy. Indicates the indexing and tagging policy for the L1 Instruction cache:
11 Physically Indexed Physically Tagged (PIPT).
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.
0100 Smallest instruction cache line size is 16 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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-226
reserved.
Non-Confidential
B2 AArch64 system registers
B2.47 DCZID_EL0, Data Cache Zero ID Register, EL0
31 5 4 3 0
BlockSize
DZP
RES0
RES0, [31:5]
RES0 Reserved
BlockSize, [3:0]
Log2 of the block size in words:
0100 The block size is 16 words.
Configurations
There are no configuration notes.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-227
reserved.
Non-Confidential
B2 AArch64 system registers
B2.48 DISR_EL1, Deferred Interrupt Status Register, EL1
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:
0 Deferred error uses architecturally-defined format.
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:
000 Uncontainable error (UC)
001 Unrecoverable error (UEU)
Note
The recovery software must also examine any implemented fault records to determine the
location and extent of the error.
EA, [9]
RES0 Reserved
RES0, [8:6]
RES0 Reserved
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-228
reserved.
Non-Confidential
B2 AArch64 system registers
B2.48 DISR_EL1, Deferred Interrupt Status Register, EL1
DFSC, [5:0]
Data Fault Status Code. The possible values of this field are:
010001 Asynchronous SError interrupt
Note
In AArch32 the 010001 code previously meant an Asynchronous External Abort on
memory access. With the RAS extension, it extends to include any asynchronous
SError interrupt. The Parity Error codes are not used in the RAS extension.
Configurations
There are no configuration notes.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-229
reserved.
Non-Confidential
B2 AArch64 system registers
B2.49 ERRIDR_EL1, Error ID Register, EL1
31 16 15 0
NUM
RES0
RES0, [31:16]
RES0 Reserved
NUM, [15:0]
Number of records that can be accessed through the Error Record system registers.
0x0002 Two records present, if L3 cache is present.
Configurations
There are no configuration notes.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-230
reserved.
Non-Confidential
B2 AArch64 system registers
B2.50 ERRSELR_EL1, Error Record Select Register, EL1
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 L1 and L2 RAMs located on the
Cortex‑A78 core.
1 Select error record 1 containing errors from L3 RAMs located on the DSU.
Configurations
There are no configuration notes.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-231
reserved.
Non-Confidential
B2 AArch64 system registers
B2.51 ERXADDR_EL1, Selected Error Record Address Register, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-232
reserved.
Non-Confidential
B2 AArch64 system registers
B2.52 ERXCTLR_EL1, Selected Error Record Control Register, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-233
reserved.
Non-Confidential
B2 AArch64 system registers
B2.53 ERXFR_EL1, Selected Error Record Feature Register, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-234
reserved.
Non-Confidential
B2 AArch64 system registers
B2.54 ERXMISC0_EL1, Selected Error Record Miscellaneous Register 0, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-235
reserved.
Non-Confidential
B2 AArch64 system registers
B2.55 ERXMISC1_EL1, Selected Error Record Miscellaneous Register 1, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-236
reserved.
Non-Confidential
B2 AArch64 system registers
B2.56 ERXPFGCDNR_EL1, Selected Error Pseudo Fault Generation Count Down Register, EL1
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:
S3_0_C15_C2_2 x x 0 - RW n/a RW
S3_0_C15_C2_2 x 0 1 - RW RW RW
S3_0_C15_C2_2 x 1 1 - n/a RW RW
'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 Armv8, for Armv8-A architecture profile 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.
ERXPFGCDNR_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 B2.6 ACTLR_EL2, Auxiliary Control
Register, EL2 on page B2-152 and B2.7 ACTLR_EL3, Auxiliary Control Register, EL3
on page B2-155.
ERXPFGCDNR_EL1 is UNDEFINED at EL0.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-237
reserved.
Non-Confidential
B2 AArch64 system registers
B2.57 ERXPFGCTLR_EL1, Selected Error Pseudo Fault Generation Control Register, EL1
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:
S3_0_C15_C2_1 x x 0 - RW n/a RW
S3_0_C15_C2_1 x 0 1 - RW RW RW
S3_0_C15_C2_1 x 1 1 - n/a RW RW
'n/a' Not accessible. The PE cannot be executing at this Exception level, so this access is not possible.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-238
reserved.
Non-Confidential
B2 AArch64 system registers
B2.57 ERXPFGCTLR_EL1, Selected Error Pseudo Fault Generation Control Register, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-239
reserved.
Non-Confidential
B2 AArch64 system registers
B2.58 ERXPFGFR_EL1, Selected Pseudo Fault Generation Feature Register, EL1
This syntax is encoded with the following settings in the instruction encoding:
Accessibility
This register is accessible in software as follows:
S3_0_C15_C2_0 x x 0 - RO n/a RO
S3_0_C15_C2_0 x 0 1 - RO RO RO
S3_0_C15_C2_0 x 1 1 - n/a RO RO
'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 Armv8, for Armv8-A architecture profile 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.
ERXPFGR_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 B2.6 ACTLR_EL2, Auxiliary Control
Register, EL2 on page B2-152 and B2.7 ACTLR_EL3, Auxiliary Control Register, EL3
on page B2-155.
ERXPFGR_EL1 is UNDEFINED at EL0.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-240
reserved.
Non-Confidential
B2 AArch64 system registers
B2.59 ERXSTATUS_EL1, Selected Error Record Primary Status Register, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-241
reserved.
Non-Confidential
B2 AArch64 system registers
B2.60 ESR_EL1, Exception Syndrome Register, EL1
EC ISS
IL
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
When reporting a virtual SEI, bits[24:0] take the value of VSESRL_EL2[24:0].
When reporting a physical SEI, the following occurs:
• IDS==0 (architectural syndrome)
• AET always reports an uncontainable error (UC) with value 0b000 or an unrecoverable error (UEU)
with value 0b001.
• EA is RES0.
When reporting a synchronous data abort, EA is RES0.
See B2.116 VSESR_EL2, Virtual SError Exception Syndrome Register on page B2-324.
Configurations
This register has no configuration options.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-242
reserved.
Non-Confidential
B2 AArch64 system registers
B2.61 ESR_EL2, Exception Syndrome Register, EL2
EC ISS
IL
EC, [31:26]
Exception Class. Indicates the reason for the exception that this register holds information
about. See the Arm® Architecture Reference Manual Armv8, for Armv8-A architecture profile 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 Armv8, for Armv8-A architecture profile for more
information.
ISS, [24:0]
Syndrome information. See the Arm® Architecture Reference Manual Armv8, for Armv8-A
architecture profile for more information.
When reporting a virtual SEI, bits[24:0] take the value of VSESRL_EL2[24:0].
When reporting a physical SEI, the following occurs:
• IDS==0 (architectural syndrome)
• AET always reports an uncontainable error (UC) with value 0b000 or an unrecoverable error
(UEU) with value 0b001.
• EA is RES0.
When reporting a synchronous Data Abort, EA is RES0.
See B2.116 VSESR_EL2, Virtual SError Exception Syndrome Register on page B2-324.
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-243
reserved.
Non-Confidential
B2 AArch64 system registers
B2.62 ESR_EL3, Exception Syndrome Register, EL3
EC ISS
IL
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 0x0 Exception Class.
ISS, [24:0]
Syndrome information
When reporting a virtual SEI, bits[24:0] take the value of VSESRL_EL2[24:0].
When reporting a physical SEI, the following occurs:
• IDS==0 (architectural syndrome)
• AET always reports an uncontainable error (UC) with value 0b000 or an unrecoverable error (UEU)
with value 0b001.
• EA is RES0.
When reporting a synchronous data abort, EA is RES0.
See B2.116 VSESR_EL2, Virtual SError Exception Syndrome Register on page B2-324.
Configurations
RW fields in this register reset to architecturally UNKNOWN values.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-244
reserved.
Non-Confidential
B2 AArch64 system registers
B2.63 HACR_EL2, Hyp Auxiliary Configuration Register, EL2
31 0
RES0
RES0, [31:0]
RES0 Reserved
Configurations
There are no configuration notes.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-245
reserved.
Non-Confidential
B2 AArch64 system registers
B2.64 HCR_EL2, Hypervisor Configuration Register, EL2
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
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-246
reserved.
Non-Confidential
B2 AArch64 system registers
B2.64 HCR_EL2, Hypervisor Configuration Register, EL2
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.
• An exception return to EL1 is treated as an illegal exception return.
HCR_EL2.TGE must not be cached in a TLB.
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:
0 ID group 3 register accesses are not trapped.
1 Reads to ID group 3 registers executed from Non-secure EL1 are trapped to EL2.
See the Arm® Architecture Reference Manual Armv8, for Armv8-A architecture profile for the
registers covered by this setting.
Configurations
If EL2 is not implemented, this register is RES0 from EL3.
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-247
reserved.
Non-Confidential
B2 AArch64 system registers
B2.65 ID_AA64AFR0_EL1, AArch64 Auxiliary Feature Register 0
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-248
reserved.
Non-Confidential
B2 AArch64 system registers
B2.66 ID_AA64AFR1_EL1, AArch64 Auxiliary Feature Register 1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-249
reserved.
Non-Confidential
B2 AArch64 system registers
B2.67 ID_AA64DFR0_EL1, AArch64 Debug Feature Register 0, EL1
63 36 35 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
RES0
RES0, [63:36]
RES0 Reserved
PMSVer, [35:32]
Statistical Profiling Extension version:
0x1 Version 1 of the Statistical Profiling extension is present.
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:
0x4 Performance monitor system registers are implemented, PMUv3.
TraceVer, [7:4]
Trace extension:
0x0 Trace system registers are not implemented.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-250
reserved.
Non-Confidential
B2 AArch64 system registers
B2.67 ID_AA64DFR0_EL1, AArch64 Debug Feature Register 0, EL1
DebugVer, [3:0]
Debug architecture version:
0x8 Armv8‑A debug architecture is 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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-251
reserved.
Non-Confidential
B2 AArch64 system registers
B2.68 ID_AA64DFR1_EL1, AArch64 Debug Feature Register 1, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-252
reserved.
Non-Confidential
B2 AArch64 system registers
B2.69 ID_AA64ISAR0_EL1, AArch64 Instruction Set Attribute Register 0, EL1
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.
0x1 UDOT, SDOT instructions are implemented.
RES0, [43:32]
RES0 Reserved
RDM, [31:28]
Indicates whether SQRDMLAH and SQRDMLSH instructions in AArch64 are implemented.
0x1 SQRDMLAH and SQRDMLSH instructions 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:
0x1 CRC32 instructions are implemented.
SHA2, [15:12]
Indicates whether SHA2 instructions are implemented. The possible values are:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-253
reserved.
Non-Confidential
B2 AArch64 system registers
B2.69 ID_AA64ISAR0_EL1, AArch64 Instruction Set Attribute Register 0, EL1
0x0 No SHA2 instructions are implemented. This is the value if the core implementation
does not include the Cryptographic Extension.
0x1 SHA256H, SHA256H2, SHA256U0, and SHA256U1 implemented. This is the value if the
core implementation includes the Cryptographic Extension.
SHA1, [11:8]
Indicates whether SHA1 instructions are implemented. The possible values are:
0x0 No SHA1 instructions implemented. This is the value if the core implementation does
not include the Cryptographic Extension.
0x1 SHA1C, SHA1P, SHA1M, SHA1SU0, and SHA1SU1 implemented. This is the value if the
core implementation includes the Cryptographic Extension.
AES, [7:4]
Indicates whether AES instructions are implemented. The possible values are:
0x0 No AES instructions implemented. This is the value if the core implementation does
not include the Cryptographic Extension.
0x2 AESE, AESD, AESMC, and AESIMC implemented, plus PMULL and PMULL2 instructions
operating on 64-bit data. This is the value if the core implementation includes the
Cryptographic Extension.
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-254
reserved.
Non-Confidential
B2 AArch64 system registers
B2.70 ID_AA64ISAR1_EL1, AArch64 Instruction Set Attribute Register 1, EL1
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.
0x1 The LDAPRB, LDAPRH, and LDAPR instructions are implemented in AArch64.
RES0, [19:4]
RES0 Reserved
DC CVAP, [3:0]
Indicates whether Data Cache, Clean to the Point of Persistence (DC CVAP) instructions are
implemented.
0x1 DC CVAP supported in AArch64
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-255
reserved.
Non-Confidential
B2 AArch64 system registers
B2.71 ID_AA64MMFR0_EL1, AArch64 Memory Model Feature Register 0, EL1
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 16KB granule supported
BigEndEL0, [19:16]
Mixed-endian support only at EL0:
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
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-256
reserved.
Non-Confidential
B2 AArch64 system registers
B2.71 ID_AA64MMFR0_EL1, AArch64 Memory Model Feature Register 0, EL1
PARange, [3:0]
Physical address range supported:
0x2 40 bits, 1TB
The supported Physical Address Range is 40-bits. Other cores in the 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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-257
reserved.
Non-Confidential
B2 AArch64 system registers
B2.72 ID_AA64MMFR1_EL1, AArch64 Memory Model Feature Register 1, EL1
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 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 page table descriptor (bits[62:59] of the page 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
VH, [11:8]
Indicates whether Virtualization Host Extensions supported.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-258
reserved.
Non-Confidential
B2 AArch64 system registers
B2.72 ID_AA64MMFR1_EL1, AArch64 Memory Model Feature Register 1, EL1
VMIDBits, [7:4]
Indicates the number of VMID bits supported.
0x2 16 bits 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 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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-259
reserved.
Non-Confidential
B2 AArch64 system registers
B2.73 ID_AA64MMFR2_EL1, AArch64 Memory Model Feature Register 2, EL1
63 20 19 16 15 12 11 8 7 4 3 0
RES0
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 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 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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-260
reserved.
Non-Confidential
B2 AArch64 system registers
B2.74 ID_AA64PFR0_EL1, AArch64 Processor Feature Register 0, EL1
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 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:
0x0 RAS extension is not present. This is the value if the core implementation does not
have ECC present.
0x1 Version 1 of the RAS extension is present. This is the value if the core implementation
has ECC 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.
AdvSIMD, [23:20]
Advanced SIMD. The possible values are:
0x1 Advanced SIMD, including Half-precision support, is implemented.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-261
reserved.
Non-Confidential
B2 AArch64 system registers
B2.74 ID_AA64PFR0_EL1, AArch64 Processor Feature Register 0, EL1
FP, [19:16]
Floating-point. The possible values are:
0x1 Floating-point, including Half-precision support, is implemented.
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-262
reserved.
Non-Confidential
B2 AArch64 system registers
B2.75 ID_AA64PFR1_EL1, AArch64 Processor Feature Register 1, EL1
63 8 7 4 3 0
PSTATE.SSBS
RES0
RES0, [63:8]
RES0 Reserved
SSBS, [7:4]
AArch64 provides the PSTATE.SSBS mechanism to mark regions that are Speculative Store
Bypassing Safe (SSBS).
0x01 AArch64 provides the PSTATE.SSBS mechanism to mark regions that are Speculative
Store Bypassing Safe, but does not implement the MSR/MRS instructions to directly
read and write the PSTATE.SSBS field.
RES0, [3:0]
RES0 Reserved
Configurations
There are no configuration notes.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-263
reserved.
Non-Confidential
B2 AArch64 system registers
B2.76 ID_AFR0_EL1, AArch32 Auxiliary Feature Register 0, EL1
31 0
RES0
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-264
reserved.
Non-Confidential
B2 AArch64 system registers
B2.77 ID_DFR0_EL1, AArch32 Debug Feature Register 0, EL1
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
RES0
RES0, [31:28]
RES0 Reserved
PerfMon, [27:24]
Indicates support for performance monitor model:
4 Support for Performance Monitoring Unit version 3 (PMUv3) system registers, with a
16-bit evtCount field
MProfDbg, [23:20]
Indicates support for memory-mapped debug model for M profile cores:
0 This product does not support M profile Debug architecture.
MMapTrc, [19:16]
Indicates support for memory-mapped trace model:
1 Support for Arm trace architecture, with memory-mapped access
In the Trace registers, the ETMIDR gives more information about the implementation.
CopTrc, [15:12]
Indicates support for coprocessor-based trace model:
0 This product does not support Arm trace architecture.
RES0, [11:8]
RES0 Reserved
CopSDbg, [7:4]
Indicates support for coprocessor-based Secure debug model:
8 This product supports the Armv8.2 Debug architecture.
CopDbg, [3:0]
Indicates support for coprocessor-based debug model:
8 This product supports the Armv8.2 Debug architecture.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-265
reserved.
Non-Confidential
B2 AArch64 system registers
B2.77 ID_DFR0_EL1, AArch32 Debug Feature Register 0, EL1
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-266
reserved.
Non-Confidential
B2 AArch64 system registers
B2.78 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
RES0
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:
0x0 None implemented, except for instructions separately attributed by the architecture to
provide access to AArch32 System registers and System instructions
CmpBranch, [15:12]
Indicates the implemented combined Compare and Branch instructions in the T32 instruction
set:
0x1 CBNZ and CBZ
Bitfield, [11:8]
Indicates the implemented bit field instructions:
0x1 BFC, BFI, SBFX, and UBFX
BitCount, [7:4]
Indicates the implemented Bit Counting instructions:
0x1 CLZ
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-267
reserved.
Non-Confidential
B2 AArch64 system registers
B2.78 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1
Swap, [3:0]
Indicates the implemented Swap instructions in the A32 instruction set:
0x0 None implemented
Configurations
In an AArch64-only implementation, this register is UNKNOWN.
Must be interpreted with ID_ISAR1_EL1, ID_ISAR2_EL1, ID_ISAR3_EL1, ID_ISAR4_EL1,
ID_ISAR5_EL1, and ID_ISAR6_EL1. See:
• B2.79 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1 on page B2-269
• B2.80 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1 on page B2-271
• B2.81 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1 on page B2-273
• B2.82 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1 on page B2-275
• B2.83 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1 on page B2-277
• B2.84 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1 on page B2-279
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-268
reserved.
Non-Confidential
B2 AArch64 system registers
B2.79 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1
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:
0x1 The IT instructions, and the IT bits in the PSRs
Extend, [15:12]
Indicates the implemented Extend instructions:
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:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-269
reserved.
Non-Confidential
B2 AArch64 system registers
B2.79 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1
0x1 The LDM (exception return), LDM (user registers), and STM (user registers) instruction
versions
Endian, [3:0]
Indicates the implemented Endian instructions:
0x1 The SETEND instruction, and the E bit in the PSRs
Configurations
In an AArch64-only implementation, this register is UNKNOWN.
Must be interpreted with ID_ISAR0_EL1, ID_ISAR2_EL1, ID_ISAR3_EL1, ID_ISAR4_EL1,
ID_ISAR5_EL1, and ID_ISAR6_EL1. See:
• B2.78 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1 on page B2-267
• B2.80 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1 on page B2-271
• B2.81 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1 on page B2-273
• B2.82 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1 on page B2-275
• B2.83 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1 on page B2-277
• B2.84 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1 on page B2-279
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-270
reserved.
Non-Confidential
B2 AArch64 system registers
B2.80 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1
MultiAccessInt
Reversal, [31:28]
Indicates the implemented Reversal instructions:
0x2 The REV, REV16, REVSH, and RBIT 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
The exception return forms of the data-processing instructions are:
• In the A32 instruction set, data-processing instructions with the PC as the destination and the
S bit set
• In the T32 instruction set, the SUBSPC, LR, #N instruction
MultU, [23:20]
Indicates the implemented advanced unsigned Multiply instructions:
0x2 The UMULL, UMLAL, and UMAAL instructions
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:
0x2 The MUL, MLA and MLS instructions
MultiAccessInt, [11:8]
Indicates the support for interruptible multi-access instructions:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-271
reserved.
Non-Confidential
B2 AArch64 system registers
B2.80 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1
0x0 No support. This means the LDM and STM instructions are not interruptible.
MemHint, [7:4]
Indicates the implemented memory hint instructions:
0x4 The PLD, PLI, and PLDWinstructions
LoadStore, [3:0]
Indicates the implemented additional load/store instructions:
0x2 The LDRD and STRD 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.
Must be interpreted with ID_ISAR0_EL1, ID_ISAR1_EL1, ID_ISAR3_EL1, ID_ISAR4_EL1,
ID_ISAR5_EL1, and ID_ISAR6_EL1. See:
• B2.78 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1 on page B2-267
• B2.79 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1 on page B2-269
• B2.81 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1 on page B2-273
• B2.82 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1 on page B2-275.
• B2.83 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1 on page B2-277
• B2.84 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1 on page B2-279
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-272
reserved.
Non-Confidential
B2 AArch64 system registers
B2.81 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
T32EE, [31:28]
Indicates the implemented T32EE instructions:
0x0 None implemented
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:
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.
0x1 The TBB and TBH instructions
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:
0x1 The SVC instruction
SIMD, [7:4]
Indicates the implemented Single Instruction Multiple Data (SIMD) instructions.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-273
reserved.
Non-Confidential
B2 AArch64 system registers
B2.81 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1
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:
0x1 The QADD, QDADD, QDSUB, QSUB Q bit in the PSRs
Configurations
In an AArch64-only implementation, this register is UNKNOWN.
Must be interpreted with ID_ISAR0_EL1, ID_ISAR1_EL1, ID_ISAR2_EL1, ID_ISAR4_EL1,
ID_ISAR5_EL1, and ID_ISAR6_EL1. See:
• B2.78 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1 on page B2-267
• B2.79 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1 on page B2-269
• B2.80 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1 on page B2-271
• B2.82 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1 on page B2-275
• B2.83 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1 on page B2-277
• B2.84 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1 on page B2-279
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-274
reserved.
Non-Confidential
B2 AArch64 system registers
B2.82 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
SynchPrim_frac
SWP_frac, [31:28]
Indicates support for the memory system locking the bus for SWP or SWPB instructions:
0x0 SWP and SWPB instructions not implemented
PSR_M, [27:24]
Indicates the implemented M profile instructions to modify the PSRs:
0x0 None implemented
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:
0x1 The DMB, DSB, and ISB barrier instructions
SMC, [15:12]
Indicates the implemented SMC instructions:
0x0 None implemented
WriteBack, [11:8]
Indicates the support for Write-Back addressing modes:
0x1 Core supports all the Write-Back addressing modes as defined in Armv8‑A
WithShifts, [7:4]
Indicates the support for instructions with shifts:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-275
reserved.
Non-Confidential
B2 AArch64 system registers
B2.82 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1
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.
Must be interpreted with ID_ISAR0_EL1, ID_ISAR1_EL1, ID_ISAR2_EL1, ID_ISAR3_EL1,
ID_ISAR5_EL1, and ID_ISAR6_EL1. See:
• B2.78 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1 on page B2-267
• B2.79 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1 on page B2-269
• B2.80 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1 on page B2-271
• B2.81 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1 on page B2-273
• B2.83 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1 on page B2-277
• B2.84 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1 on page B2-279
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-276
reserved.
Non-Confidential
B2 AArch64 system registers
B2.83 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
RES0
RES0, [31:28]
RES0 Reserved
RDM, [27:24]
VQRDMLAH and VQRDMLSH instructions in AArch32. The value is:
0x1 VQRDMLAH and VQRDMLSH instructions are implemented.
RES0, [23:20]
RES0 Reserved
CRC32, [19:16]
Indicates whether CRC32 instructions are implemented in AArch32 state. The value is:
0x1 CRC32B, CRC32H, CRC32W, CRC32CB, CRC32CH, and CRC32CW instructions are
implemented.
SHA2, [15:12]
Indicates whether SHA2 instructions are implemented in AArch32 state. The possible values
are:
0x0 No SHA2 instructions implemented. This is the value when the Cryptographic
Extensions are not implemented or are disabled.
0x1 SHA256H, SHA256H2, SHA256SU0, and SHA256SU1 instructions are implemented. This is
the value when the Cryptographic Extensions are implemented and enabled.
SHA1, [11:8]
Indicates whether SHA1 instructions are implemented in AArch32 state. The possible values
are:
0x0 No SHA1 instructions implemented. This is the value when the Cryptographic
Extensions are not implemented or are disabled.
0x1 SHA1C, SHA1P, SHA1M, SHA1H, SHA1SU0, and SHA1SU1 instructions are implemented.
This is the value when the Cryptographic Extensions are implemented and enabled.
AES, [7:4]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-277
reserved.
Non-Confidential
B2 AArch64 system registers
B2.83 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1
Indicates whether AES instructions are implemented in AArch32 state. The possible values are:
0x0 No AES instructions implemented. This is the value when the Cryptographic
Extensions are not implemented or are disabled.
0x2 • AESE, AESD, AESMC, and AESIMC implemented
• PMULL and PMULL2 instructions operating on 64-bit data
This is the value when the Cryptographic Extensions are implemented and enabled.
SEVL, [3:0]
Indicates whether the SEVL instruction is implemented:
0x1 SEVL implemented to send event local
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:
• B2.78 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1 on page B2-267
• B2.79 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1 on page B2-269
• B2.80 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1 on page B2-271
• B2.81 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1 on page B2-273
• B2.82 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1 on page B2-275
• B2.84 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1 on page B2-279
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-278
reserved.
Non-Confidential
B2 AArch64 system registers
B2.84 ID_ISAR6_EL1, AArch32 Instruction Set Attribute Register 6, EL1
31 8 7 4 3 0
DP
RES0
RES0, [31:8]
RES0 Reserved
DP, [7:4]
UDOT and SDOT instructions. The value is:
0b0001 UDOT and SDOT instructions are implemented.
RES0, [3:0]
RES0 Reserved
Configurations
There is one copy of this register that is used in both Secure and Non-secure states.
ID_ISAR6_EL1 must be interpreted with ID_ISAR0_EL1, ID_ISAR1_EL1, ID_ISAR2_EL1,
ID_ISAR3_EL1, ID_ISAR4_EL1, and ID_ISAR5_EL1. See:
• B2.78 ID_ISAR0_EL1, AArch32 Instruction Set Attribute Register 0, EL1 on page B2-267
• B2.79 ID_ISAR1_EL1, AArch32 Instruction Set Attribute Register 1, EL1 on page B2-269
• B2.80 ID_ISAR2_EL1, AArch32 Instruction Set Attribute Register 2, EL1 on page B2-271
• B2.81 ID_ISAR3_EL1, AArch32 Instruction Set Attribute Register 3, EL1 on page B2-273
• B2.82 ID_ISAR4_EL1, AArch32 Instruction Set Attribute Register 4, EL1 on page B2-275
• B2.83 ID_ISAR5_EL1, AArch32 Instruction Set Attribute Register 5, EL1 on page B2-277
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-279
reserved.
Non-Confidential
B2 AArch64 system registers
B2.85 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1
InnerShr, [31:28]
Indicates the innermost shareability domain implemented:
0x1 Implemented with hardware coherency support
FCSE, [27:24]
Indicates support for Fast Context Switch Extension (FCSE):
0x0 Not supported
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:
0x0 Not supported
ShareLvl, [15:12]
Indicates the number of shareability levels implemented:
0x1 Two levels of shareability implemented
OuterShr, [11:8]
Indicates the outermost shareability domain implemented:
0x1 Implemented with hardware coherency support
PMSA, [7:4]
Indicates support for a Protected Memory System Architecture (PMSA):
0x0 Not supported
VMSA, [3:0]
Indicates support for a Virtual Memory System Architecture (VMSA).
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-280
reserved.
Non-Confidential
B2 AArch64 system registers
B2.85 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1
Configurations
Must be interpreted with ID_MMFR1_EL1, ID_MMFR2_EL1, ID_MMFR3_EL1, and
ID_MMFR4_EL1. See:
• B2.86 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1 on page B2-282
• B2.87 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1 on page B2-284
• B2.88 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1 on page B2-286
• B2.89 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1 on page B2-288
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-281
reserved.
Non-Confidential
B2 AArch64 system registers
B2.86 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1
BPred, [31:28]
Indicates branch predictor management requirements:
0x4 For execution correctness, branch predictor requires no flushing at any time.
L1TstCln, [27:24]
Indicates the supported L1 Data cache test and clean operations, for Harvard or unified cache
implementation:
0x0 None supported
L1Uni, [23:20]
Indicates the supported entire L1 cache maintenance operations, for a unified cache
implementation:
0x0 None supported
L1Hvd, [19:16]
Indicates the supported entire L1 cache maintenance operations, for a Harvard cache
implementation:
0x0 None supported
L1UniSW, [15:12]
Indicates the supported L1 cache line maintenance operations by set/way, for a unified cache
implementation:
0x0 None supported
L1HvdSW, [11:8]
Indicates the supported L1 cache line maintenance operations by set/way, for a Harvard cache
implementation:
0x0 None supported
L1UniVA, [7:4]
Indicates the supported L1 cache line maintenance operations by MVA, for a unified cache
implementation:
0x0 None supported
L1HvdVA, [3:0]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-282
reserved.
Non-Confidential
B2 AArch64 system registers
B2.86 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1
Indicates the supported L1 cache line maintenance operations by MVA, for a Harvard cache
implementation:
0x0 None supported
Configurations
Must be interpreted with ID_MMFR0_EL1, ID_MMFR2_EL1, ID_MMFR3_EL1, and
ID_MMFR4_EL1. See:
• B2.85 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1 on page B2-280
• B2.87 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1 on page B2-284
• B2.88 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1 on page B2-286
• B2.89 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1 on page B2-288
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-283
reserved.
Non-Confidential
B2 AArch64 system registers
B2.87 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1
HWAccFlg, [31:28]
Hardware access flag. Indicates support for a hardware access flag, as part of the VMSAv7
implementation:
0x0 Not supported
WFIStall, [27:24]
Wait For Interrupt Stall. Indicates the support for Wait For Interrupt (WFI) stalling:
0x1 Support for WFI stalling
MemBarr, [23:20]
Memory Barrier. Indicates the supported CP15 memory barrier operations.
0x2 Supported CP15 memory barrier operations are:
• Data Synchronization Barrier (DSB)
• Instruction Synchronization Barrier (ISB)
• Data Memory Barrier (DMB)
UniTLB, [19:16]
Unified TLB. Indicates the supported TLB maintenance operations, for a unified TLB
implementation.
0x6 Supported unified TLB maintenance operations are:
• Invalidate all entries in the TLB
• Invalidate TLB entry by MVA
• Invalidate TLB entries by ASID match
• Invalidate instruction TLB and data TLB entries by MVA All ASID. This is a
shared unified TLB operation.
• Invalidate Hyp mode unified TLB entry by MVA
• Invalidate entire Non-secure EL1 and EL0 unified TLB
• Invalidate entire Hyp mode unified TLB
• TLBIMVALIS, TLBIMVAALIS, TLBIMVALHIS, TLBIMVAL, TLBIMVAAL, and TLBIMVALH
• TLBIIPAS2IS, TLBIIPAS2LIS, TLBIIPAS2, and TLBIIPAS2L
HvdTLB, [15:12]
Harvard TLB. Indicates the supported TLB maintenance operations, for a Harvard TLB
implementation:
0x0 Not supported
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-284
reserved.
Non-Confidential
B2 AArch64 system registers
B2.87 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1
LL1HvdRng, [11:8]
L1 Harvard cache Range. Indicates the supported L1 cache maintenance range operations, for a
Harvard cache implementation:
0x0 Not supported
L1HvdBG, [7:4]
L1 Harvard cache Background fetch. Indicates the supported L1 cache background prefetch
operations, for a Harvard cache implementation:
0x0 Not supported
L1HvdFG, [3:0]
L1 Harvard cache Foreground fetch. Indicates the supported L1 cache foreground prefetch
operations, for a Harvard cache implementation:
0x0 Not supported
Configurations
Must be interpreted with ID_MMFR0_EL1, ID_MMFR1_EL1, ID_MMFR3_EL1, and
ID_MMFR4_EL1. See:
• B2.85 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1 on page B2-280
• B2.86 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1 on page B2-282
• B2.88 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1 on page B2-286
• B2.89 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1 on page B2-288
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-285
reserved.
Non-Confidential
B2 AArch64 system registers
B2.88 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
Supersec, [31:28]
Supersections. Indicates support for supersections:
0x0 Supersections supported
CMemSz, [27:24]
Cached memory size. Indicates the size of physical memory supported by the core caches:
0x2 1TByte or more, corresponding to a 40-bit or larger physical address range
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:
0x2 Cache, TLB, and branch predictor operations affect structures according to
shareability and defined behavior of instructions.
BPMaint, [11:8]
Branch predictor maintenance. Indicates the supported branch predictor maintenance operations:
0x2 Supported branch predictor maintenance operations are:
• Invalidate all branch predictors
• Invalidate branch predictors by MVA
CMaintSW, [7:4]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-286
reserved.
Non-Confidential
B2 AArch64 system registers
B2.88 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1
Cache maintenance by set/way. Indicates the supported cache maintenance operations by set/
way:
0x1 Supported hierarchical cache maintenance operations by set/way are:
• Invalidate data cache by set/way
• Clean data cache by set/way
• Clean and invalidate data cache by set/way
CMaintVA, [3:0]
Cache maintenance by Virtual Address (VA). Indicates the supported cache maintenance
operations by VA:
0x1 Supported hierarchical cache maintenance operations by VA are:
• Invalidate data cache by VA
• Clean data cache by VA
• Clean and invalidate data cache by VA
• Invalidate instruction cache by VA
• Invalidate all instruction cache entries
Configurations
Must be interpreted with ID_MMFR0_EL1, ID_MMFR1_EL1, ID_MMFR2_EL1, and
ID_MMFR4_EL1. See:
• B2.85 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1 on page B2-280
• B2.86 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1 on page B2-282
• B2.87 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1 on page B2-284
• B2.89 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1 on page B2-288
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-287
reserved.
Non-Confidential
B2 AArch64 system registers
B2.89 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1
31 24 23 20 19 16 15 12 11 8 7 4 3 0
RAZ, [31:24]
Read-As-Zero
LSM, [23:20]
Load/Store Multiple. Indicates whether adjacent loads or stores can be combined. The value is:
0x0 LSMAOE and nTLSMD bit not supported
HPDS, [19:16]
Presence of Hierarchical Disables. Enables an operating system or hypervisor to hand over up to
4 bits of the last level page table descriptor (bits[62:59] of the page 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
CNP, [15:12]
Common Not Private. Indicates support for selective sharing of TLB entries across multiple
PEs. The value is:
0x1 CnP bit supported
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:
0x1 EL0/EL1 execute control distinction at stage2 bit supported
AC2, [7:4]
Indicates the extension of the ACTLR and HACTLR registers using ACTLR2 and HACTLR2.
The value is:
0x1 ACTLR2 and HACTLR2 implemented
SpecSEI, [3:0]
Describes whether the core can generate SError interrupt exceptions from speculative reads of
memory, including speculative instruction fetches. The value is:
0x0 The core never generates an SError interrupt due to an external abort on a speculative
read.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-288
reserved.
Non-Confidential
B2 AArch64 system registers
B2.89 ID_MMFR4_EL1, AArch32 Memory Model Feature Register 4, EL1
Configurations
There is one copy of this register that is used in both Secure and Non-secure states.
Must be interpreted with ID_MMFR0_EL1, ID_MMFR1_EL1, ID_MMFR2_EL1, and
ID_MMFR3_EL1. See:
• B2.85 ID_MMFR0_EL1, AArch32 Memory Model Feature Register 0, EL1 on page B2-280
• B2.86 ID_MMFR1_EL1, AArch32 Memory Model Feature Register 1, EL1 on page B2-282
• B2.87 ID_MMFR2_EL1, AArch32 Memory Model Feature Register 2, EL1 on page B2-284
• B2.88 ID_MMFR3_EL1, AArch32 Memory Model Feature Register 3, EL1 on page B2-286
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-289
reserved.
Non-Confidential
B2 AArch64 system registers
B2.90 ID_PFR0_EL1, AArch32 Processor Feature Register 0, EL1
31 28 27 20 19 16 15 12 11 8 7 4 3 0
RES0
RAS, [31:28]
RAS extension version. The value is:
0x1 Version 1 of the RAS extension is present.
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:
0x0 Core does not support the T32EE instruction set.
State2, [11:8]
Indicates support for Jazelle. This value is:
0x1 Core supports trivial implementation of Jazelle.
State1, [7:4]
Indicates support for T32 instruction set. This value is:
0x3 Core supports T32 encoding after the introduction of Thumb-2 technology, and for all
16-bit and 32-bit T32 basic instructions.
State0, [3:0]
Indicates support for A32 instruction set. This value is:
0x1 A32 instruction set implemented
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-290
reserved.
Non-Confidential
B2 AArch64 system registers
B2.90 ID_PFR0_EL1, AArch32 Processor Feature Register 0, EL1
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-291
reserved.
Non-Confidential
B2 AArch64 system registers
B2.91 ID_PFR1_EL1, AArch32 Processor Feature Register 1, EL1
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
Virtualization
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
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-292
reserved.
Non-Confidential
B2 AArch64 system registers
B2.91 ID_PFR1_EL1, AArch32 Processor Feature Register 1, EL1
Configurations
There are no configuration notes.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-293
reserved.
Non-Confidential
B2 AArch64 system registers
B2.92 ID_PFR2_EL1, AArch32 Processor Feature Register 2, EL1
31 7 4 3 0
SSBS CSV3
RES0
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 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.
Configurations
There are no configuration notes.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-294
reserved.
Non-Confidential
B2 AArch64 system registers
B2.93 LORC_EL1, LORegion Control Register, EL1
63 4 3 2 1 0
DS
EN
RES0
RES0, [63:4]
RES0 Reserved
DS, [3:2]
Descriptor Select. Number that selects the current LORegion descriptor accessed by the
LORSA_EL1, LOREA_EL1, and LORN_EL1 registers.
RES0, [1]
RES0 Reserved
EN, [0]
Enable. The possible values are:
0 Disabled. This is the reset value.
1 Enabled
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-295
reserved.
Non-Confidential
B2 AArch64 system registers
B2.94 LORID_EL1, LORegion ID Register, EL1
63 24 23 16 15 8 7 0
LD LR
RES0
RES0, [63:24]
RES0 Reserved
LD, [23:16]
Number of LORegion descriptors supported by the implementation, expressed as binary 8-bit
number. The value is:
0x04 Four LORegion descriptors supported
RES0, [15:8]
RES0 Reserved
LR, [7:0]
Number of LORegions supported by the implementation, expressed as a binary 8-bit number.
The value is:
0x04 Four LORegions 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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-296
reserved.
Non-Confidential
B2 AArch64 system registers
B2.95 LORN_EL1, LORegion Number Register, EL1
63 2 1 0
Num
RES0
RES0, [63:2]
RES0 Reserved
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-297
reserved.
Non-Confidential
B2 AArch64 system registers
B2.96 MDCR_EL3, Monitor Debug Configuration Register, EL3
31 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 0
RES0
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:
0 Access to Performance Monitors registers from external debugger is permitted.
1 Access to Performance Monitors registers from external debugger is disabled, unless
overridden by authentication interface.
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:
0 Access to breakpoint and watchpoint registers from external debugger is permitted.
1 Access to breakpoint and watchpoint registers from external debugger is disabled,
unless overridden by authentication interface.
SPME, [17]
Secure performance monitors enable. This enables event counting exceptions from Secure state.
The possible values are:
0 Event counting prohibited in Secure state
1 Event counting allowed in Secure state
SPD32, [15:14]
RES0
Reserved
NSPB, [13:12]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-298
reserved.
Non-Confidential
B2 AArch64 system registers
B2.96 MDCR_EL3, Monitor Debug Configuration Register, EL3
Non-secure Profiling Buffer. Controls the owning translation regime and accesses to Statistical
Profiling and Profiling Buffer control registers. The possible values are:
00 Profiling Buffer uses Secure Virtual Addresses. Statistical Profiling enabled in Secure
state and disabled in Non-secure state. Accesses to Statistical Profiling and Profiling
Buffer controls at EL2 and EL1 in both security states generate Trap exceptions to
EL3.
01 Profiling Buffer uses Secure Virtual Addresses. Statistical Profiling enabled in Secure
state and disabled in Non-secure state. Accesses to Statistical Profiling and Profiling
Buffer controls in Non-secure state generate Trap exceptions to EL3.
10 Profiling Buffer uses Non-secure Virtual Addresses. Statistical Profiling enabled in
Non-secure state and disabled in Secure state. Accesses to Statistical Profiling and
Profiling Buffer controls at EL2 and EL1 in both security states generate Trap
exceptions to EL3.
11 Profiling Buffer uses Non-secure Virtual Addresses. Statistical Profiling enabled in
Non-secure state and disabled in Secure state. Accesses to Statistical Profiling and
Profiling Buffer controls at Secure EL1 generate Trap exceptions to EL3.
RES0, [11]
RES0 Reserved
TDOSA, [10]
Trap accesses to the OS debug system registers, OSLAR_EL1, OSLSR_EL1, OSDLR_EL1, and
DBGPRCR_EL1 OS.
0 Accesses are not trapped.
1 Accesses to the OS debug system registers are trapped to EL3.
TPM, [6]
Trap Performance Monitors accesses. The possible values are:
0 Accesses are not trapped.
1 Accesses to the Performance Monitor registers are trapped to EL3.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-299
reserved.
Non-Confidential
B2 AArch64 system registers
B2.96 MDCR_EL3, Monitor Debug Configuration Register, EL3
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-300
reserved.
Non-Confidential
B2 AArch64 system registers
B2.97 MIDR_EL1, Main ID Register, EL1
Implementer, [31:24]
Indicates the implementer code. This value is:
0x41 ASCII character 'A' - implementer is Arm Limited.
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:
0x1 r1p1
Architecture, [19:16]
Indicates the architecture code. This value is:
0xF Defined by CPUID scheme
PartNum, [15:4]
Indicates the primary part number. This value is:
0xD41 Cortex‑A78 core
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 r1p1
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-301
reserved.
Non-Confidential
B2 AArch64 system registers
B2.98 MPIDR_EL1, Multiprocessor Affinity Register, EL1
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:
0 Core is part of a multiprocessor system. This is the value for implementations with
more than one core, and for implementations with an ACE or CHI master interface.
RES0, [29:25]
RES0 Reserved
MT, [24]
Indicates whether the lowest level of affinity consists of logical cores that are implemented
using a multithreading type approach. This value is:
1 Performance of PEs at the lowest affinity level is very interdependent.
Affinity0 represents threads. Cortex‑A78 is not multithreaded, but may be in a system
with other cores that are multithreaded.
Aff2, [23:16]
Affinity level 2. Second highest level affinity field.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-302
reserved.
Non-Confidential
B2 AArch64 system registers
B2.98 MPIDR_EL1, Multiprocessor Affinity Register, EL1
CLUSTERID
Indicates the value read in the CLUSTERIDAFF2 configuration signal.
Aff1, [15:11]
Part of Affinity level 1. Third highest level affinity field.
RAZ Read-As-Zero
Aff1, [10:8]
Part of Affinity level 1. Third highest level affinity field.
CPUID Identification number for each CPU in the cluster:
Aff0, [7:0]
Affinity level 0. The level identifies individual threads within a multithreaded core. The
Cortex‑A78 core is single-threaded, so this field has the value 0x00.
Configurations
MPIDR_EL1[31:0] is mapped to external register EDDEVAFF0.
MPIDR_EL1[63:32] is mapped to external register EDDEVAFF1.
Bit fields and details that are not provided in this description are architecturally defined. See the
Arm® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-303
reserved.
Non-Confidential
B2 AArch64 system registers
B2.99 PAR_EL1, Physical Address Register, EL1
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-304
reserved.
Non-Confidential
B2 AArch64 system registers
B2.100 REVIDR_EL1, Revision ID Register, EL1
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-305
reserved.
Non-Confidential
B2 AArch64 system registers
B2.101 RMR_EL3, Reset Management Register
31 2 1 0
RR
RES1
RES0
RES0, [31:2]
RES0 Reserved
RR, [1]
Reset Request. The possible values are:
0 This is the reset value on both a Warm and a Cold reset.
1 Requests a Warm reset.
Configurations
There are no configuration notes.
Details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-306
reserved.
Non-Confidential
B2 AArch64 system registers
B2.102 RVBAR_EL3, Reset Vector Base Address Register, EL3
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, 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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-307
reserved.
Non-Confidential
B2 AArch64 system registers
B2.103 SCTLR_EL1, System Control Register, EL1
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).
0x0 PSTATE.SSBS is set to 0 on an exception taken to this Exception level. This is the
reset value.
0x1 PSTATE.SSBS is set to 1 on an exception taken to this Exception level.
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
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-308
reserved.
Non-Confidential
B2 AArch64 system registers
B2.103 SCTLR_EL1, System Control Register, EL1
ITD, [7]
This field is RAZ/WI.
RES0, [6]
RES0 Reserved
CP15BEN, [5]
CP15 barrier enable. The possible values are:
0 CP15 barrier operations disabled. Their encodings are UNDEFINED.
1 CP15 barrier operations are enabled.
M, [0]
MMU enable. The possible values are:
0 EL1 and EL0 stage 1 MMU disabled
1 EL1 and EL0 stage 1 MMU enabled
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-309
reserved.
Non-Confidential
B2 AArch64 system registers
B2.104 SCTLR_EL2, System Control Register, EL2
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 WXN SA
RES1
RES0
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-310
reserved.
Non-Confidential
B2 AArch64 system registers
B2.105 SCTLR_EL3, System Control Register, EL3
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).
0x0 PSTATE.SSBS is set to 0 on an exception taken to this Exception level. This is the
reset value.
0x1 PSTATE.SSBS is set to 1 on an exception taken to this Exception level.
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:
• Explicit data accesses at EL3
• Stage 1 translation table walks at EL3
The possible values are:
0x0 Little endian
0x1 Big endian
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-311
reserved.
Non-Confidential
B2 AArch64 system registers
B2.105 SCTLR_EL3, System Control Register, EL3
C, [2]
Global enable for data and unifies caches. The possible values are:
0x0 Disables data and unified caches. This is the reset value.
0x1 Enables data and unified caches.
M, [0]
Global enable for the EL3 MMU. The possible values are:
0x0 Disables EL3 MMU. This is the reset value.
0x1 Enables EL3 MMU.
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-312
reserved.
Non-Confidential
B2 AArch64 system registers
B2.106 TCR_EL1, Translation Control Register, EL1
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
Note
Bits[50:39], architecturally defined, are implemented in the core.
HD, [40]
Hardware management of dirty state in stage 1 translations from EL0 and EL1. The possible
values are:
0 Stage 1 hardware management of dirty state is disabled.
1 Stage 1 hardware management of dirty state is enabled, only if the HA bit is also set to
1.
HA, [39]
Hardware Access flag update in stage 1 translations from EL0 and EL1. The possible values are:
0 Stage 1 Access flag update is disabled.
1 Stage 1 Access flag update is enabled.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-313
reserved.
Non-Confidential
B2 AArch64 system registers
B2.106 TCR_EL1, Translation Control Register, EL1
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-314
reserved.
Non-Confidential
B2 AArch64 system registers
B2.107 TCR_EL2, Translation Control Register, EL2
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
Note
Bits[28:21], architecturally defined, are implemented in the core.
HD, [22]
Dirty bit update. The possible values are:
0 Dirty bit update is disabled.
1 Dirty bit update is enabled.
HA, [21]
Stage 1 Access flag update. The possible values are:
0 Stage 1 Access flag update is disabled.
1 Stage 1 Access flag update is enabled.
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-315
reserved.
Non-Confidential
B2 AArch64 system registers
B2.108 TCR_EL3, Translation Control Register, EL3
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
Note
Bits[28:21], architecturally defined, are implemented in the core.
HD, [22]
Dirty bit update. The possible values are:
0 Dirty bit update is disabled.
1 Dirty bit update is enabled.
HA, [21]
Stage 1 Access flag update. The possible values are:
0 Stage 1 Access flag update is disabled.
1 Stage 1 Access flag update is enabled.
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-316
reserved.
Non-Confidential
B2 AArch64 system registers
B2.109 TTBR0_EL1, Translation Table Base Register 0, EL1
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 Armv8, for
Armv8-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 written.
CnP, [0]
Common not Private. The possible values are:
0 CnP not supported
1 CnP 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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-317
reserved.
Non-Confidential
B2 AArch64 system registers
B2.110 TTBR0_EL2, Translation Table Base Register 0, EL2
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.
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 written.
CnP, [0]
Common not Private. The possible values are:
0 CnP not supported
1 CnP 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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-318
reserved.
Non-Confidential
B2 AArch64 system registers
B2.111 TTBR0_EL3, Translation Table Base Register 0, EL3
63 48 47 1 0
BADDR[47:x]
CnP
RES0
RES0, [63:48]
RES0 Reserved
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 Armv8, for
Armv8-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 written.
CnP, [0]
Common not Private. The possible values are:
0 CnP not supported
1 CnP 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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-319
reserved.
Non-Confidential
B2 AArch64 system registers
B2.112 TTBR1_EL1, Translation Table Base Register 1, EL1
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 Armv8, for
Armv8-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 written.
CnP, [0]
Common not Private. The possible values are:
0 CnP not supported
1 CnP supported
Configurations
There are no configuration notes.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-320
reserved.
Non-Confidential
B2 AArch64 system registers
B2.113 TTBR1_EL2, Translation Table Base Register 1, EL2
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-321
reserved.
Non-Confidential
B2 AArch64 system registers
B2.114 VDISR_EL2, Virtual Deferred Interrupt Status Register, EL2
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-322
reserved.
Non-Confidential
B2 AArch64 system registers
B2.115 VDISR_EL2 at EL1
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
ISS, [23:0]
Contains the value from VSESR_EL2, bits[23:0]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-323
reserved.
Non-Confidential
B2 AArch64 system registers
B2.116 VSESR_EL2, Virtual SError Exception Syndrome Register
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.
On taking a virtual SError interrupt to EL1 using AArch64 because HCR_EL2.VSE == 1,
ESR_EL1[24] is set to VSESR_EL2.IDS.
ISS, [23:0]
Syndrome information. See ESR_EL1.ISS for a description of the functionality.
On taking a virtual SError interrupt to EL1 using AArch32 due to HCR_EL2.VSE == 1,
ESR_EL1 [23:0] is set to VSESR_EL2.ISS.
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 Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-324
reserved.
Non-Confidential
B2 AArch64 system registers
B2.117 VTCR_EL2, Virtualization Translation Control Register, EL2
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 IRGN0
HWU61 ORGN0
HWU60
HWU59
HD
HA
VS
RES1
RES0
Note
Bits[28:25] and bits[22:21], architecturally defined, are implemented in the core.
TG0, [15:14]
TTBR0_EL2 granule size. The possible values are:
00 4KB
01 64KB
10 16KB
11 Reserved
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-325
reserved.
Non-Confidential
B2 AArch64 system registers
B2.118 VTTBR_EL2, Virtualization Translation Table Base Register, EL2
63 48 47 4 3 1 0
VMID BADDR
CnP
RES0
CnP, [0]
Common not Private. The possible values are:
0 CnP not supported
1 CnP supported
Configurations
There are no configuration notes.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B2-326
reserved.
Non-Confidential
Chapter B3
Error system registers
This chapter describes the error registers accessed by the AArch64 error registers.
It contains the following sections:
• B3.1 Error system register summary on page B3-328.
• B3.2 ERR0ADDR, Error Record Address Register on page B3-329.
• B3.3 ERR0CTLR, Error Record Control Register on page B3-330.
• B3.4 ERR0FR, Error Record Feature Register on page B3-332.
• B3.5 ERR0MISC0, Error Record Miscellaneous Register 0 on page B3-334.
• B3.6 ERR0MISC1, Error Record Miscellaneous Register 1 on page B3-339.
• B3.7 ERR0PFGCDNR, Error Pseudo Fault Generation Count Down Register on page B3-340.
• B3.8 ERR0PFGCTLR, Error Pseudo Fault Generation Control Register on page B3-341.
• B3.9 ERR0PFGFR, Error Pseudo Fault Generation Feature Register on page B3-345.
• B3.10 ERR0STATUS, Error Record Primary Status Register on page B3-348.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-327
reserved.
Non-Confidential
B3 Error system registers
B3.1 Error system register summary
ERR0ADDR 64 B3.2 ERR0ADDR, Error Record Address B2.51 ERXADDR_EL1, Selected Error Record Address
Register on page B3-329 Register, EL1 on page B2-232
ERR0CTLR 64 B3.3 ERR0CTLR, Error Record Control B2.52 ERXCTLR_EL1, Selected Error Record Control
Register on page B3-330 Register, EL1 on page B2-233
ERR0FR 64 B3.4 ERR0FR, Error Record Feature Register B2.53 ERXFR_EL1, Selected Error Record Feature
on page B3-332 Register, EL1 on page B2-234
ERR0MISC0 64 B3.5 ERR0MISC0, Error Record B2.54 ERXMISC0_EL1, Selected Error Record
Miscellaneous Register 0 on page B3-334 Miscellaneous Register 0, EL1 on page B2-235
ERR0MISC1 64 B3.6 ERR0MISC1, Error Record B2.55 ERXMISC1_EL1, Selected Error Record
Miscellaneous Register 1 on page B3-339 Miscellaneous Register 1, EL1 on page B2-236
ERR0STATUS 32 B3.10 ERR0STATUS, Error Record Primary B2.59 ERXSTATUS_EL1, Selected Error Record Primary
Status Register on page B3-348 Status Register, EL1 on page B2-241
The following table describes the error record registers that are IMPLEMENTATION DEFINED.
ERR0PFGCDNR 32 B3.7 ERR0PFGCDNR, Error Pseudo Fault B2.56 ERXPFGCDNR_EL1, Selected Error Pseudo
Generation Count Down Register Fault Generation Count Down Register, EL1
on page B3-340 on page B2-237
ERR0PFGCTLR 32 B3.8 ERR0PFGCTLR, Error Pseudo Fault B2.57 ERXPFGCTLR_EL1, Selected Error Pseudo
Generation Control Register on page B3-341 Fault Generation Control Register, EL1
on page B2-238
ERR0PFGFR 32 B3.9 ERR0PFGFR, Error Pseudo Fault B2.58 ERXPFGFR_EL1, Selected Pseudo Fault
Generation Feature Register on page B3-345 Generation Feature Register, EL1 on page B2-240
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-328
reserved.
Non-Confidential
B3 Error system registers
B3.2 ERR0ADDR, Error Record Address Register
63 62 40 39 0
PADDR
NS
RES0
NS, [63]
Non-secure attribute. The possible values are:
0 The physical address is Secure.
1 The physical address is Non-secure.
RES0, [62:40]
RES0 Reserved
PADDR, [39:0]
Physical address
Configurations
ERR0ADDR resets to UNKNOWN.
When ERRSELR.SEL==0, this register is accessible from B2.51 ERXADDR_EL1, Selected
Error Record Address Register, EL1 on page B2-232
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-329
reserved.
Non-Confidential
B3 Error system registers
B3.3 ERR0CTLR, Error Record Control Register
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:
0 Fault handling interrupt not generated for corrected errors.
1 Fault handling interrupt generated for corrected errors.
The interrupt is generated even if the error status is overwritten because the error record already
records a higher priority error.
Note
This applies to both reads and writes.
RES0, [7:4]
RES0 Reserved
FI, [3]
Fault handling interrupt enable.
The fault handling interrupt is generated for all detected Deferred errors and Uncorrected errors.
The possible values are:
0 Fault handling interrupt disabled
1 Fault handling interrupt enabled
UI, [2]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-330
reserved.
Non-Confidential
B3 Error system registers
B3.3 ERR0CTLR, Error Record Control Register
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:
0 Error recovery interrupt disabled
1 Error recovery interrupt enabled
Note
Applies to both reads and writes.
RES0, [1]
RES0 Reserved
ED, [0]
Error Detection and correction enable. The possible values are:
0 Error detection and correction disabled
1 Error detection and correction enabled
Configurations
This register is accessible from the following registers when ERRSELR.SEL==0:
B2.52 ERXCTLR_EL1, Selected Error Record Control Register, EL1 on page B2-233
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-331
reserved.
Non-Confidential
B3 Error system registers
B3.4 ERR0FR, Error Record Feature Register
63 26 25 24 23 22 21 20 19 18 17 16 15 14 12 11 10 9 8 7 6 5 4 3 2 1 0
RP
RES0
RES0, [63:26]
RES0 Reserved
TS, [25:24]
Timestamp Extension. The value is:
0b00 The node does not support a timestamp register.
CI, [23:22]
Critical error interrupt. Indicates whether the critical error interrupt and associated controls are
implemented. The value is:
0b00 Does not support feature.
INJ, [21:20]
Fault Injection Extension. Indicates whether the standard fault injection mechanism is
implemented. The value is:
0b00 The node does not support a standard fault injection mechanism.
CEO, [19:18]
Corrected Error Overwrite. The value is:
0b00 Counts CE if a counter is implemented and keeps the previous error status. If the
counter overflows, ERR0STATUS.OF is set to 1.
DUI, [17:16]
Error recovery interrupt for deferred errors. The value is:
0b00 The core does not support this feature.
RP, [15]
Repeat counter. The value is:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-332
reserved.
Non-Confidential
B3 Error system registers
B3.4 ERR0FR, Error Record Feature Register
0b1 A first repeat counter and a second other counter are implemented. The repeat counter
is the same size as the primary error counter.
CEC, [14:12]
Corrected Error Counter. The value is:
0b010 The node implements an 8-bit standard CE counter in ERR0MISC0[39:32].
CFI, [11:10]
Fault handling interrupt for corrected errors. The value is:
0b10 The node implements a control for enabling fault handling interrupts on corrected
errors.
UE, [9:8]
In-band uncorrected error reporting. The value is:
0b01 The node implements in-band uncorrected error reporting, that is external aborts.
FI, [7:6]
Fault handling interrupt. The value is:
0b10 The node implements a fault handling interrupt and implements controls for enabling
and disabling.
UI, [5:4]
Error recovery interrupt for uncorrected errors. The value is:
0b10 The node implements an error recovery interrupt and implements controls for enabling
and disabling.
DE, [3:2]
Defers errors. The value is:
0b00
Defers errors is always enabled for the node.
ED, [1:0]
Error detection and correction. The value is:
0b10 The node implements controls for enabling or disabling error detection and correction.
Configurations
ERR0FR resets to 0x000000000000A9A2
ERR0FR is accessible from the following registers when ERRSELR.SEL==0:
B2.53 ERXFR_EL1, Selected Error Record Feature Register, EL1 on page B2-234.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-333
reserved.
Non-Confidential
B3 Error system registers
B3.5 ERR0MISC0, Error Record Miscellaneous Register 0
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]
RES0 Reserved
OFO, [47]
Sticky overflow bit, other. The possible values of this bit are:
0 Other counter has not overflowed.
1 Other counter has overflowed.
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:
0 Repeat counter has not overflowed.
1 Repeat counter has overflowed.
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.
WAY, [31:28]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-334
reserved.
Non-Confidential
B3 Error system registers
B3.5 ERR0MISC0, Error Record Miscellaneous Register 0
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
L1 Instruction
Indicates which way of the Instruction Cache TAG RAM detected the error.
Cache Tag Upper two bits are unused.
L1 Instruction
Indicates which way of the Instruction Cache Data RAM detected the error.
Data Cache Upper two bits are unused.
L0 Mop Indicates which way of the Mop Cache RAM detected the error. Upper two
Cache bits are unused.
L1 Data Indicates which way of the L1 Data Cache Data RAM detected the error.
Cache Data Upper two bits are unused.
L1 Data Indicates which way of the Instruction Cache Tag RAM detected the error.
Cache Tag Upper two bits are unused.
L2 TLB Indicates which way of the L2 TLB RAM detected the error. Upper 1 bit is
unused.
L2 Tag Indicates the way of the L2 Tag RAM that detected the error. Upper 1 bit is
unused.
L2 Data Unused
L2 TQ Unused
L2 CHI Slave Unused
RES0, [27:26]
RES0 Reserved
SUBBANK, [25]
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
L1 Instruction Indicates which subbank has the error, valid for Instruction Data Cache,
Cache unused otherwise.
BANK, [24:23]
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
L1 Instruction Unused
Cache Tag
L1 Instruction Indicates which bank (bank0 - bank3) detected the error.
Data Cache
L0 Mop Indicates which bank (bank0 - bank3) detected the error.
Cache
L1 Data Unused
Cache Data
L1 Data Unused
Cache Tag
L2 TLB Unused
L2 Tag Indicates which bank detected the error.
L2 Data Indicates which bank detected the error.
L2 TQ Indicates which bank detected the error.
L2 CHI Slave Indicates which bank detected the error.
SUBARRAY, [22:19]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-335
reserved.
Non-Confidential
B3 Error system registers
B3.5 ERR0MISC0, Error Record Miscellaneous Register 0
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
L1 Instruction Unused
Cache Tag
L1 Instruction Unused
Data Cache
L0 Mop Unused
Cache
L1 Data Indicates the word that detected the error. Upper 1 bit is unused.
Cache Data
0b000
Word0
0b001
Word1
0b010
Word2
0b011
Word3
0b100
Word4
0b101
Word5
0b110
Word6
0b111
Word7
L1 Data Indicates the bank that detected the error. Upper 1 bit is unused.
Cache Tag
0b0000
bank0
0b0001
bank1
L2 TLB Unused
L2 Tag Unused
L2 Data Indicates which double word detected the error. Upper 1 bit is unused.
0b000
DW0
0b001
DW1
0b010
DW2
0b011
DW3
0b100
DW4
0b101
DW5
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-336
reserved.
Non-Confidential
B3 Error system registers
B3.5 ERR0MISC0, Error Record Miscellaneous Register 0
0b110
DW6
0b111
DW7
L2 TQ Indicates which double word detected the error. Upper 1 bit is unused.
0b000
DW0
0b001
DW1
0b010
DW2
0b011
DW3
0b100
DW4
0b101
DW5
0b110
DW6
0b111
DW7
L2 CHI Slave 0b0000
Copyback error response.
0b0001
Undeferrable error when ECC is disabled.
INDEX, [18:6]
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
L1 Instruction Indicates which index of the cache reported the error. Upper bits are unused.
Cache Tag
L1 Instruction Indicates which index of the cache reported the error. Upper bits are unused.
Data Cache
L0 Mop Indicates which index of the cache reported the error. Upper bits are unused.
Cache
L1 Data Indicates which index of the cache reported the error. Upper bits are unused.
Cache Data
L1 Data Indicates which index of the cache reported the error. Upper bits are unused.
Cache Tag
L2 TLB Indicates which index of the cache reported the error. Upper bits are unused.
L2 Tag Indicates which index of the cache reported the error. Upper bits are unused.
L2 Data Indicates which index of the data RAM reported the error. Software reading
this error record must decode this field as follows, where
L2_CACHE_SIZE_LOG = CLOG2(L2_CACHE_SIZE):
1. INDEX[18 : (L2_CACHE_SIZE_LOG + 3 + 6)] : RES0
2. INDEX[L2_CACHE_SIZE_LOG +2 + 6 : 6] : Indicates the index of the
cache line that reported the error.
L2 TQ Indicates which entry of the L2TQ reported the error. Upper 8 bits are unused.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-337
reserved.
Non-Confidential
B3 Error system registers
B3.5 ERR0MISC0, Error Record Miscellaneous Register 0
ARRAY, [5:4]
The encoding depends on the unit from which the error being recorded was detected. The
possible values are:
L2 Cache Indicates which array has the error. The possible values are:
0b00 L2 Tag RAM
0b01 L2 Data RAM
0b10 TQ Data RAM
0b11 CHI Slave Error
L1 Data Indicates which array detected the error. The possible values are:
Cache
0b00 LS0 copy of Tag RAM
0b01 LS1 copy of Tag RAM
0b10 LS Data RAM
0b11 LS2 copy of Tag RAM
L1 Instruction Indicates which array that detected the error, Data Array has higher priority.
Cache The possible values are:
0b00 Tag
0b01 Data
0b10 Mop cache
UNIT, [3:0]
Indicates the unit which detected the error. The possible values are:
0b0001 L1 Instruction Cache (Tag, Data, or Mop Cache)
0b0010 L2 TLB
0b0100 L1 Data Cache (Tag or Data)
0b1000 L2 Cache (Tag, Data, TQ, or CHI slave)
Configurations
ERR0MISC0 resets to [63:32] is 0x00000000, [31:0] is UNKNOWN.
This register is accessible from the following register when ERRSELR.SEL==0:
• B2.54 ERXMISC0_EL1, Selected Error Record Miscellaneous Register 0, EL1
on page B2-235.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-338
reserved.
Non-Confidential
B3 Error system registers
B3.6 ERR0MISC1, Error Record Miscellaneous Register 1
Configurations
When ERRSELR.SEL==0, ERR0MISC1 is accessible from B2.55 ERXMISC1_EL1, Selected Error
Record Miscellaneous Register 1, EL1 on page B2-236.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-339
reserved.
Non-Confidential
B3 Error system registers
B3.7 ERR0PFGCDNR, Error Pseudo Fault Generation Count Down Register
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.
ERR0PFGCDNR resets to UNKNOWN.
When ERRSELR.SEL==0, ERR0PFGCDNR is accessible from B2.56 ERXPFGCDNR_EL1,
Selected Error Pseudo Fault Generation Count Down Register, EL1 on page B2-237.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-340
reserved.
Non-Confidential
B3 Error system registers
B3.8 ERR0PFGCTLR, Error Pseudo Fault Generation Control Register
31 30 29 12 11 10 9 8 7 6 5 4 3 2 1 0
R MV
CDNEN AV
PN
ER
CI
CE
RES0 DE
UEO
UER
UEU
UC
OF
CDNEN, [31]
Count down enable. This bit controls transfers from the value that is held in the
ERR0PFGCDNR into the Error Generation Counter and enables this counter to start counting
down. The possible values are:
0 The Error Generation Counter is disabled.
1 The value that is held in the ERR0PFGCDNR register is transferred into the
Error Generation Counter. The Error Generation Counter counts down.
R, [30]
Restartable bit. When it reaches 0, the Error Generation Counter restarts from the
ERR0PFGCDNR value or stops. The possible values are:
0 When it reaches 0, the counter stops.
1 When it reaches 0, the counter reloads the value that is stored in ERR0PFGCDNR
and starts counting down again.
RES0, [29:13]
RES0 Reserved
MV, [12]
Miscellaneous syndrome. The value written to ERR<n>STATUS.MV when an injected error is
recorded. The possible values of this bit are:
0 ERR<n>STATUS.MV is set to 0 when an injected error is recorded.
1 ERR<n>STATUS.MV is set to 0 when an injected error is recorded.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-341
reserved.
Non-Confidential
B3 Error system registers
B3.8 ERR0PFGCTLR, Error Pseudo Fault Generation Control Register
This bit reads-as-one if the node always records some syndrome in ERR<n>MISC<m>, setting
ERR<n>STATUS.MV to 1, when an injected error is recorded. 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.
AV, [11]
Address syndrome. The value written to ERR<n>STATUS.AV when an injected error is
recorded. The possible values of this bit are:
0 ERR<n>STATUS.AV is set to 0 when an injected error is recorded.
1 ERR<n>STATUS.AV is set to 0 when an injected error is recorded.
This bit reads-as-one if the node always sets ERR<n>STATUS<m> to 1 when an injected error
is recorded. 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.
PN, [10]
Address syndrome. The value written to ERR<n>STATUS.PN when an injected error is
recorded. The possible values of this bit are:
0 ERR<n>STATUS.PN is set to 0 when an injected error is recorded.
1 ERR<n>STATUS.PN is set to 0 when an injected error is recorded.
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.
ER, [9]
Address syndrome. The value written to ERR<n>STATUS.PN when an injected error is
recorded. The possible values of this bit are:
0 ERR<n>STATUS.ER is set to 0 when an injected error is recorded.
1 ERR<n>STATUS.ER is set to 0 when an injected error is recorded.
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.
CI, [8]
Address syndrome. The value written to ERR<n>STATUS.CI when an injected error is
recorded. The possible values of this bit are:
0 ERR<n>STATUS.CI is set to 0 when an injected error is recorded.
1 ERR<n>STATUS.CI is set to 0 when an injected error is recorded.
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.
CE, [7:6]
Corrected error generation enable. Controls the type of Corrected Error condition that might be
generated. The possible values are:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-342
reserved.
Non-Confidential
B3 Error system registers
B3.8 ERR0PFGCTLR, Error Pseudo Fault Generation Control Register
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.
UEO, [4]
Latent or Restartable Error generation enable. Controls whether this type of error condition
might be generated. It is IMPLEMENTATION DEFINED whether the error is generated if the data is not
consumed The possible values are:
0 No error of this type will be generated.
1 An error of this type might be generated when the Error Generation Counter
decrements to zero.
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.
UER, [3]
Signaled or Recoverable Error generation enable. Controls whether this type of error condition
might be generated. It is IMPLEMENTATION DEFINED whether the error is generated if the data is not
consumed The possible values are:
0 No error of this type will be generated.
1 An error of this type might be generated when the Error Generation Counter
decrements to zero.
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.
UEU, [2]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-343
reserved.
Non-Confidential
B3 Error system registers
B3.8 ERR0PFGCTLR, Error Pseudo Fault Generation Control Register
Unrecoverable Error generation enable. Controls whether this type of error condition might be
generated. It is IMPLEMENTATION DEFINED whether the error is generated if the data is not consumed
The possible values are:
0 No error of this type will be generated.
1 An error of this type might be generated when the Error Generation Counter
decrements to zero.
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.
UC, [1]
Uncontainable error generation enable. The possible values are:
0 No uncontainable error is generated.
1 An uncontainable error might be generated when the Error Generation Counter is
triggered.
OF, [0]
Overflow flag. The value written to ERR<n>STATUS.OF when an injected error is recorded.
The possible values of this bit are:
0 ERR<n>STATUS.OF is set to 0 when an injected error is recorded.
1 ERR<n>STATUS.OF is set to 0 when an injected error is recorded.
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.
Configurations
There are no configuration notes.
ERR0PFGCTLR resets to 0x00000000.
ERR0PFGCTLR is accessible from the following registers when ERRSELR.SEL==0:
• B2.57 ERXPFGCTLR_EL1, Selected Error Pseudo Fault Generation Control Register, EL1
on page B2-238
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-344
reserved.
Non-Confidential
B3 Error system registers
B3.9 ERR0PFGFR, Error Pseudo Fault Generation Feature Register
31 30 29 28 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SYN MV
CE
R AV
DE
PN
UEO
ER
CI UER
UEU
RES0 UC
OF
RES0, [31]
RES0 Reserved
R, [30]
Restartable bit. When it reaches zero, the Error Generation Counter restarts from the
ERR0PFGCDNR value or stops. The value is:
1 This feature is controllable.
SYN, [29]
Syndrome. Fault syndrome injection. The value is:
0 When an injected error is recorded, the node sets ERR<n>STATUS.{IERR, SERR} to
IMPLEMENTATION DEFINED values. ERR<n>STATUS.{IERR, SERR} are UNKNOWN when
ERR<n>STATUS.V is set to 0.
RES0, [28:13]
RES0 Reserved
MV, [12]
Miscellaneous syndrome. Additional syndrome injection. Defines whether software can control
all or part of the syndrome recorded in the ERR<n>MISC<m> registers when an injected error
is recorded. It is IMPLEMENTATION DEFINED which syndrome fields in ERR<n>MISC<m> this
refers to, as some fields might always be recorded by an error, for example, a Corrected Error
counter. The value is:
0 When an injected error is recorded, the node might record IMPLEMENTATION DEFINED
additional syndrome in ERR<n>MISC<m>. If any syndrome is recorded in
ERR<n>MISC<m>, then ERR<n>STATUS.MV is set to 1.
AV, [11]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-345
reserved.
Non-Confidential
B3 Error system registers
B3.9 ERR0PFGFR, Error Pseudo Fault Generation Feature Register
PN, [10]
Poison flag. Describes how the fault generation feature of the node sets the
ERR<n>STATUS.PN status flag. The value is:
0 When an injected error is recorded, the node sets ERR<n>STATUS.PN to 0.
ER, [9]
Error Reported flag. Describes how the fault generation feature of the node sets the
ERR<n>STATUS.ER status flag. The value is:
0 When an injected error is recorded, the node sets ERR<n>STATUS.ER according to
the architecture-defined rules for setting the ER bit.
CI, [8]
The value is:
0 When an injected error is recorded, it is IMPLEMENTATION DEFINED whether the node sets
ERR<n>STATUS.CI to 1.
CE, [7:6]
Corrected Error generation. The value is:
1 This feature is controllable.
DE, [5]
Deferred Error generation. The value is:
1 This feature is controllable.
UEO, [4]
Latent or Restartable Error generation. The value is:
0 The node does not support this feature.
UER, [3]
Signaled or Recoverable Error generation. The value is:
0 The node does not support this feature.
UEU, [2]
Unrecoverable Error generation. The value is:
0 The node does not support this feature.
UC, [1]
Uncontainable Error generation. The value is:
1 This feature is controllable.
OF, [0]
Overflow flag. The value is:
0 When an injected error is recorded, the node sets ERR<n>STATUS.OF according to
the architecture-defined rules for setting the OF bit.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-346
reserved.
Non-Confidential
B3 Error system registers
B3.9 ERR0PFGFR, Error Pseudo Fault Generation Feature Register
Configurations
There are no configuration notes.
ERR0PFGFR resets to 0xC0000062.
When ERRSELR.SEL==0, ERR0PFGFR is accessible from B2.58 ERXPFGFR_EL1, Selected
Pseudo Fault Generation Feature Register, EL1 on page B2-240.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-347
reserved.
Non-Confidential
B3 Error system registers
B3.10 ERR0STATUS, Error Record Primary Status Register
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:
0 ERR0ADDR is not valid.
1 ERR0ADDR contains an address associated with the highest priority error recorded by this
record.
V, [30]
Status Register valid. The possible values are:
0 ERR0STATUS is not valid.
1 ERR0STATUS is valid. At least one error has been recorded.
UE, [29]
Uncorrected error. The possible values are:
0 No error that could not be corrected or deferred has been detected.
1 At least one error that could not be corrected or deferred has been detected. If error recovery
interrupts are enabled, then the interrupt signal is asserted until this bit is cleared.
ER, [28]
Error reported. The possible values are:
0 No external abort has been reported.
1 The node has reported an external abort to the master that is in access or making a
transaction.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-348
reserved.
Non-Confidential
B3 Error system registers
B3.10 ERR0STATUS, Error Record Primary Status Register
OF, [27]
Overflow. The possible values are:
0 • If UE == 1, then no error status for an Uncorrected error has been discarded.
• If UE == 0 and DE == 1, then no error status for a Deferred error has been discarded.
• If UE == 0, DE == 0, and CE !== 0b00, then:
The corrected error counter has not overflowed.
1 More than one error has occurred and so details of the other error have been discarded.
MV, [26]
Miscellaneous Registers Valid. The possible values are:
0 ERR0MISC0 and ERR0MISC1 are not valid.
1 This bit indicates that ERR0MISC0 contains additional information about any error that is
recorded by this record.
CE, [25:24]
Corrected error. The possible values are:
0b00 No corrected error recorded
0b10 At least one corrected error recorded
DE, [23]
Deferred error. The possible values are:
0 No errors deferred
1 At least one error not corrected and deferred by poisoning
PN, [22]
Poison. The value is:
0 The Cortex‑A78 core cannot distinguish a poisoned value from a corrupted value.
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
0x6 ECC error on cache data RAM
0x7 ECC error on cache tag or dirty RAM
0x8 Parity error on TLB data RAM
0x12 Error response for a cache copyback
0x15 Deferred error from slave not supported at the consumer. For example, poisoned data
received from a slave by a master that cannot defer the error further.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-349
reserved.
Non-Confidential
B3 Error system registers
B3.10 ERR0STATUS, Error Record Primary Status Register
Configurations
There are no configuration notes.
ERR0STATUS resets to 0x00000000.
When ERRSELR.SEL==0, ERR0STATUS is accessible from B2.59 ERXSTATUS_EL1, Selected
Error Record Primary Status Register, EL1 on page B2-241
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B3-350
reserved.
Non-Confidential
Chapter B4
GIC registers
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-351
reserved.
Non-Confidential
B4 GIC registers
• B4.19 ICH_AP0R0_EL2, Interrupt Controller Hyp Active Priorities Group 0 Register 0, EL2
on page B4-376.
• B4.20 ICH_AP1R0_EL2, Interrupt Controller Hyp Active Priorities Group 1 Register 0, EL2
on page B4-377.
• B4.21 ICH_HCR_EL2, Interrupt Controller Hyp Control Register, EL2 on page B4-378.
• B4.22 ICH_VMCR_EL2, Interrupt Controller Virtual Machine Control Register, EL2
on page B4-381.
• B4.23 ICH_VTR_EL2, Interrupt Controller VGIC Type Register, EL2 on page B4-383.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-352
reserved.
Non-Confidential
B4 GIC registers
B4.1 CPU interface registers
Table B4-1 GIC CPU interface system register types supported in the Cortex-A78 core.
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
B2.64 HCR_EL2, Hypervisor Configuration Register, EL2 on page B2-246.
For more information on the CPU interface, see the Arm® Generic Interrupt Controller Architecture
Specification, GIC architecture version 3 and version 4.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-353
reserved.
Non-Confidential
B4 GIC registers
B4.2 AArch64 physical GIC CPU interface system register summary
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 B4-2 AArch64 physical GIC CPU interface system register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-354
reserved.
Non-Confidential
B4 GIC registers
B4.3 ICC_AP0R0_EL1, Interrupt Controller Active Priorities Group 0 Register 0, EL1
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:
0x00000000 No interrupt active. This is the reset value.
0x00000001 Interrupt active for priority 0x0
0x00000002 Interrupt active for priority 0x8
...
0x80000000 Interrupt active for priority 0xF8
Details not provided in this description are architecturally defined. See the Arm® Generic Interrupt
Controller Architecture Specification, GIC architecture version 3 and version 4.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-355
reserved.
Non-Confidential
B4 GIC registers
B4.4 ICC_AP1R0_EL1, Interrupt Controller Active Priorities Group 1 Register 0 EL1
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:
0x00000000 No interrupt active. This is the reset value.
0x00000001 Interrupt active for priority 0x0
0x00000002 Interrupt active for priority 0x8
...
0x80000000 Interrupt active for priority 0xF8
Details not provided in this description are architecturally defined. See the Arm® Generic Interrupt
Controller Architecture Specification, GIC architecture version 3 and version 4.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-356
reserved.
Non-Confidential
B4 GIC registers
B4.5 ICC_BPR0_EL1, Interrupt Controller Binary Point Register 0, EL1
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-357
reserved.
Non-Confidential
B4 GIC registers
B4.6 ICC_BPR1_EL1, Interrupt Controller Binary Point Register 1, EL1
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 implemented of ICC_BPR1_EL1 Secure register is 0x2.
The minimum value implemented of ICC_BPR1_EL1 Non-secure register is 0x3.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-358
reserved.
Non-Confidential
B4 GIC registers
B4.7 ICC_CTLR_EL1, Interrupt Controller Control Register, EL1
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:
1 The CPU interface logic supports non-zero values of Affinity 3 in SGI generation
System registers.
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:
0 The number of physical interrupt identifier bits supported is 16 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:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-359
reserved.
Non-Confidential
B4 GIC registers
B4.7 ICC_CTLR_EL1, Interrupt Controller Control Register, EL1
RES0, [5:2]
RES0 Reserved
EOImode, [1]
End of interrupt mode for the current security state. The possible values are:
0 ICC_EOIR0 and ICC_EOIR1 provide both priority drop and interrupt deactivation
functionality. Accesses to ICC_DIR are UNPREDICTABLE.
1 ICC_EOIR0 and ICC_EOIR1 provide priority drop functionality only. ICC_DIR
provides interrupt deactivation functionality.
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:
0 ICC_BPR0 determines the preemption group for Group 0 interrupts.
ICC_BPR1 determines the preemption group for Group 1 interrupts.
1 ICC_BPR0 determines the preemption group for Group 0 and Group 1 interrupts.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-360
reserved.
Non-Confidential
B4 GIC registers
B4.8 ICC_CTLR_EL3, Interrupt Controller Control Register, EL3
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]
1
IDbits, [13:11]
Identifier bits. The value is:
0x0 The number of physical interrupt identifier bits supported is 16 bits.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-361
reserved.
Non-Confidential
B4 GIC registers
B4.8 ICC_CTLR_EL3, Interrupt Controller Control Register, EL3
PRIbits, [10:8]
Priority bits. The value is:
0x4 The core supports 32 levels of physical priority with 5 priority bits.
Accesses to ICC_AP0R{1—3} and ICC_AP1R{1—3} are UNDEFINED.
RES0, [7]
RES0 Reserved
PMHE, [6]
Priority Mask Hint Enable. The possible values are:
0 Disables use of ICC_PMR as a hint for interrupt distribution.
1 Enables use of ICC_PMR as a hint for interrupt distribution.
RM, [5]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-362
reserved.
Non-Confidential
B4 GIC registers
B4.9 ICC_SRE_EL1, Interrupt Controller System Register Enable Register, EL1
31 3 2 1 0
SRE
DFB
DIB
RES0
RES0, [31:3]
RES0 Reserved
DIB, [2]
Disable IRQ bypass. The possible values are:
0x0 IRQ bypass enabled
0x1 IRQ bypass disabled
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-363
reserved.
Non-Confidential
B4 GIC registers
B4.10 ICC_SRE_EL2, Interrupt Controller System Register Enable register, EL2
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:
0x1 Non-secure EL1 accesses to ICC_SRE_EL1 do not trap to EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-364
reserved.
Non-Confidential
B4 GIC registers
B4.10 ICC_SRE_EL2, Interrupt Controller System Register Enable register, EL2
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-365
reserved.
Non-Confidential
B4 GIC registers
B4.11 ICC_SRE_EL3, Interrupt Controller System Register Enable register, EL3
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:
1 • Secure EL1 accesses to Secure ICC_SRE_EL1 do not trap to EL3.
• EL2 accesses to Non-secure ICC_SRE_EL1 and ICC_SRE_EL2 do not trap to
EL3.
• Non-secure EL1 accesses to ICC_SRE_EL1 do not trap to EL3.
DFB, [1]
Disable FIQ bypass. The possible values are:
0 FIQ bypass enabled
1 FIQ bypass disabled
SRE, [0]
System Register Enable. The value is:
1 The System register interface for the current Security state is enabled.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-366
reserved.
Non-Confidential
B4 GIC registers
B4.11 ICC_SRE_EL3, Interrupt Controller System Register Enable register, EL3
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-367
reserved.
Non-Confidential
B4 GIC registers
B4.12 AArch64 virtual GIC CPU interface register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-368
reserved.
Non-Confidential
B4 GIC registers
B4.13 ICV_AP0R0_EL1, Interrupt Controller Virtual Active Priorities Group 0 Register 0, EL1
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:
0x00000000 No interrupt active. This is the reset value.
0x00000001 Interrupt active for priority 0x0
0x00000002 Interrupt active for priority 0x8
...
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-369
reserved.
Non-Confidential
B4 GIC registers
B4.14 ICV_AP1R0_EL1, Interrupt Controller Virtual Active Priorities Group 1 Register 0, EL1
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:
0x00000000 No interrupt active. This is the reset value.
0x00000001 Interrupt active for priority 0x0
0x00000002 Interrupt active for priority 0x8
...
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-370
reserved.
Non-Confidential
B4 GIC registers
B4.15 ICV_BPR0_EL1, Interrupt Controller Virtual Binary Point Register 0, EL1
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-371
reserved.
Non-Confidential
B4 GIC registers
B4.16 ICV_BPR1_EL1, Interrupt Controller Virtual Binary Point Register 1, EL1
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 of ICV_BPR1_EL1 Secure register is 0x2.
The minimum value that is implemented of ICV_BPR1_EL1 Non-secure register is 0x3.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-372
reserved.
Non-Confidential
B4 GIC registers
B4.17 ICV_CTLR_EL1, Interrupt Controller Virtual Control Register, EL1
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 non-zero 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:
0x0 The number of physical interrupt identifier bits supported is 16 bits.
PRIbits, [10:8]
Priority bits. The value is:
0x4 Support 32 levels of physical priority (5 priority bits).
RES0, [7:2]
RES0 Reserved
VEOImode, [1]
Virtual EOI mode. The possible values are:
0x0 ICV_EOIR0_EL1 and ICV_EOIR1_EL1 provide both priority drop and interrupt
deactivation functionality. Accesses to ICV_DIR_EL1 are UNPREDICTABLE.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-373
reserved.
Non-Confidential
B4 GIC registers
B4.17 ICV_CTLR_EL1, Interrupt Controller Virtual Control Register, EL1
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:
0 ICV_BPR0_EL1 determines the preemption group for virtual Group 0 interrupts
only.
ICV_BPR1_EL1 determines the preemption group for virtual Group 1 interrupts.
1 ICV_BPR0_EL1 determines the preemption group for both virtual Group 0 and
virtual Group 1 interrupts.
Reads of ICV_BPR1_EL1 return ICV_BPR0_EL1 plus one, saturated to 111. Writes
to ICV_BPR1_EL1 are IGNORED.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-374
reserved.
Non-Confidential
B4 GIC registers
B4.18 AArch64 virtual interface control system register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-375
reserved.
Non-Confidential
B4 GIC registers
B4.19 ICH_AP0R0_EL2, Interrupt Controller Hyp Active Priorities Group 0 Register 0, EL2
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-376
reserved.
Non-Confidential
B4 GIC registers
B4.20 ICH_AP1R0_EL2, Interrupt Controller Hyp Active Priorities Group 1 Register 0, EL2
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-377
reserved.
Non-Confidential
B4 GIC registers
B4.21 ICH_HCR_EL2, Interrupt Controller Hyp Control Register, EL2
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]
Number of outstanding deactivates
RES0, [26:15]
RES0 Reserved
TDIR, [14]
Trap Non-secure EL1 writes to ICC_DIR_EL1 and ICV_DIR_EL1. The possible values are:
0x0 Non-secure EL1 writes of ICC_DIR_EL1 and ICV_DIR_EL1 are not trapped to
EL2, unless trapped by other mechanisms.
0x1 Non-secure EL1 writes of ICC_DIR_EL1 and ICV_DIR_EL1 are trapped to EL2.
TSEI, [13]
Trap all locally generated SEIs. The value is:
0 Locally generated SEIs do not cause a trap to EL2.
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:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-378
reserved.
Non-Confidential
B4 GIC registers
B4.21 ICH_HCR_EL2, Interrupt Controller Hyp Control Register, EL2
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:
0x0 Non-secure EL1 accesses to common registers proceed as normal.
0x1 Non-secure EL1 accesses to common registers trap to EL2.
RES0, [9:8]
RES0 Reserved
VGrp1DIE, [7]
VM Group 1 Disabled Interrupt Enable. The possible values are:
0 Maintenance interrupt disabled
1 Maintenance interrupt signaled when ICH_VMCR_EL2.VENG1 is 0.
VGrp1EIE, [6]
VM Group 1 Enabled Interrupt Enable. The possible values are:
0 Maintenance interrupt disabled
1 Maintenance interrupt signaled when ICH_VMCR_EL2.VENG1 is 1.
VGrp0DIE, [5]
VM Group 0 Disabled Interrupt Enable. The possible values are:
0 Maintenance interrupt disabled
1 Maintenance interrupt signaled when ICH_VMCR_EL2.VENG0 is 0.
VGrp0EIE, [4]
VM Group 0 Enabled Interrupt Enable. The possible values are:
0 Maintenance interrupt disabled
1 Maintenance interrupt signaled when ICH_VMCR_EL2.VENG0 is 1.
NPIE, [3]
No Pending Interrupt Enable. The possible values are:
0 Maintenance interrupt disabled
1 Maintenance interrupt signaled while the List registers contain no interrupts in the
pending state.
LRENPIE, [2]
List Register Entry Not Present Interrupt Enable. The possible values are:
0 Maintenance interrupt disabled
1 Maintenance interrupt is asserted while the EOIcount field is not 0.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-379
reserved.
Non-Confidential
B4 GIC registers
B4.21 ICH_HCR_EL2, Interrupt Controller Hyp Control Register, EL2
UIE, [1]
Underflow Interrupt Enable. The possible values are:
0 Maintenance interrupt disabled
1 Maintenance interrupt is asserted if none, or only one, of the List register entries is
marked as a valid interrupt.
En, [0]
Enable. The possible values are:
0 Virtual CPU interface operation disabled
1 Virtual CPU interface operation enabled
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-380
reserved.
Non-Confidential
B4 GIC registers
B4.22 ICH_VMCR_EL2, Interrupt Controller Virtual Machine Control Register, EL2
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
This field is an alias of ICV_PMR_EL1.Priority.
VBPR0, [23:21]
Virtual Binary Point Register, Group 0. The minimum value is:
0x2 This field is an alias of ICV_BPR0_EL1.BinaryPoint.
VBPR1, [20:18]
Virtual Binary Point Register, Group 1. The minimum value is:
0x3 This field is an alias of ICV_BPR1_EL1.BinaryPoint.
RES0, [17:10]
RES0 Reserved
VEOIM, [9]
Virtual EOI mode. The possible values are:
0x0 ICV_EOIR0_EL1 and ICV_EOIR1_EL1 provide both priority drop and interrupt
deactivation functionality. Accesses to ICV_DIR_EL1 are UNPREDICTABLE.
0x1 ICV_EOIR0_EL1 and ICV_EOIR1_EL1 provide priority drop functionality only.
ICV_DIR_EL1 provides interrupt deactivation functionality.
VCBPR, [4]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-381
reserved.
Non-Confidential
B4 GIC registers
B4.22 ICH_VMCR_EL2, Interrupt Controller Virtual Machine Control Register, EL2
VFIQEn, [3]
Virtual FIQ enable. The value is:
0x1 Group 0 virtual interrupts are presented as virtual FIQs.
RES0, [2]
RES0 Reserved
VENG1, [1]
Virtual Group 1 interrupt enable. The possible values are:
0x0 Virtual Group 1 interrupts are disabled.
0x1 Virtual Group 1 interrupts are enabled.
VENG0, [0]
Virtual Group 0 interrupt enable. The possible values are:
0x0 Virtual Group 0 interrupts are disabled.
0x1 Virtual Group 0 interrupts are enabled.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-382
reserved.
Non-Confidential
B4 GIC registers
B4.23 ICH_VTR_EL2, Interrupt Controller VGIC Type Register, EL2
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.
0x4 Priority implemented is 5-bit.
PREbits, [28:26]
The number of virtual preemption bits implemented, minus one. The value is:
0x4 Virtual preemption implemented is 5-bit.
IDbits, [25:23]
The number of virtual interrupt identifier bits supported. The value is:
0x0 Virtual interrupt identifier bits that are implemented is 16-bit.
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 non-zero 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]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-383
reserved.
Non-Confidential
B4 GIC registers
B4.23 ICH_VTR_EL2, Interrupt Controller VGIC Type Register, EL2
Separate trapping of Non-secure EL1 writes to ICV_DIR_EL1 supported. The value is:
0x1 Implementation supports ICH_HCR_EL2.TDIR.
RES0, [18:5]
RES0 Reserved
ListRegs, [4:0]
0x3 The number of implemented List registers, minus one.
The core implements 4 list registers. Accesses to ICH_LR_EL2[x] (x>3) in
AArch64 are UNDEFINED.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B4-384
reserved.
Non-Confidential
Chapter B5
Advanced SIMD and floating-point registers
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-385
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.1 AArch64 register summary
MVFR0_EL1 RO 0x10110222 B5.4 MVFR0_EL1, Media and VFP Feature Register 0, EL1
on page B5-391
MVFR1_EL1 RO 0x13211111 B5.5 MVFR1_EL1, Media and VFP Feature Register 1, EL1
on page B5-393
MVFR2_EL1 RO 0x00000043 B5.6 MVFR2_EL1, Media and VFP Feature Register 2, EL1
on page B5-395
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-386
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.2 FPCR, Floating-point Control Register
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.
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:
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
RES0, [21:20]
RES0 Reserved
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-387
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.2 FPCR, Floating-point Control Register
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
B5.8 FPSCR, Floating-Point Status and Control Register on page B5-398.
Usage constraints
Accessing the FPCR
To access the FPCR:
MRS <Xt>, FPCR ; Read FPCR into Xt
MSR FPCR, <Xt> ; Write Xt to FPCR
Accessibility
This register is accessible as follows:
RW RW RW RW RW RW
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-388
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.3 FPSR, Floating-point Status Register
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
RES0
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]
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
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-389
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.3 FPSR, Floating-point Status Register
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
B5.8 FPSCR, Floating-Point Status and Control Register on page B5-398.
Usage constraints
Accessing the FPSR
To access the FPSR:
MRS <Xt>, FPSR; Read FPSR into Xt
MSR FPSR, <Xt>; Write Xt to FPSR
Accessibility
This register is accessible as follows:
RW RW RW RW RW RW
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-390
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.4 MVFR0_EL1, Media and VFP Feature Register 0, EL1
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
FPDP, [11:8]
Indicates the hardware support for floating-point double-precision operations:
0x2 Supported, VFPv3 or greater
See the Arm® Architecture Reference Manual Armv8, for Armv8-A architecture profile 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 Armv8, for Armv8-A architecture profile for more
information.
SIMDReg, [3:0]
Indicates support for the Advanced SIMD register bank:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-391
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.4 MVFR0_EL1, Media and VFP Feature Register 0, EL1
See the Arm® Architecture Reference Manual Armv8, for Armv8-A architecture profile for more
information.
Configurations
There are no configuration notes.
Usage constraints
Accessing the MVFR0_EL1
To access the MVFR0_EL1:
MRS <Xt>, MVFR0_EL1 ; Read MVFR0_EL1 into Xt
Accessibility
This register is accessible as follows:
- RO RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-392
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.5 MVFR1_EL1, Media and VFP Feature Register 1, EL1
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
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]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-393
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.5 MVFR1_EL1, Media and VFP Feature Register 1, EL1
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:
MRS <Xt>, MVFR1_EL1 ; Read MVFR1_EL1 into Xt
Accessibility
This register is accessible as follows:
- RO RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-394
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.6 MVFR2_EL1, Media and VFP Feature Register 2, EL1
31 8 7 4 3 0
FPMisc SIMDMisc
RES0
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.
Usage constraints
Accessing the MVFR2_EL1
To access the MVFR2_EL1:
MRS <Xt>, MVFR2_EL1 ; Read MVFR2_EL1 into Xt
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-395
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.6 MVFR2_EL1, Media and VFP Feature Register 2, EL1
Accessibility
This register is accessible as follows:
- RO RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-396
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.7 AArch32 register summary
See the Arm® Architecture Reference Manual Armv8, for Armv8-A architecture profile for information on
permitted accesses to the Advanced SIMD and floating-point System registers.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-397
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.8 FPSCR, Floating-Point Status and Control Register
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
Set to 1 if a floating-point comparison operation produces a less than result.
Z, [30]
Floating-point Zero condition code flag
Set to 1 if a floating-point comparison operation produces an equal result.
C, [29]
Floating-point Carry condition code flag
Set to 1 if a floating-point comparison operation produces an equal, greater than, or unordered
result.
V, [28]
Floating-point Overflow condition code flag
Set to 1 if a floating-point comparison operation produces an unordered result.
QC, [27]
Cumulative saturation bit
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.
DN, [25]
Default NaN mode control bit:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-398
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.8 FPSCR, Floating-Point Status and Control Register
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:
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-399
reserved.
Non-Confidential
B5 Advanced SIMD and floating-point registers
B5.8 FPSCR, Floating-Point Status and Control Register
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 B5.2 FPCR, Floating-point Control Register on page B5-387 and B5.3 FPSR, Floating-
point Status Register on page B5-389.
Usage constraints
Accessing the FPSCR
To access the FPSCR:
VMRS <Rt>, FPSCR ; Read FPSCR into Rt
VMSR FPSCR, <Rt> ; Write Rt to FPSCR
spec_reg
0001
Note
The Cortex‑A78 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:
Config RW - - - - -
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights B5-400
reserved.
Non-Confidential
Part C
Debug descriptions
Chapter C1
Debug
This chapter describes the Cortex‑A78 core debug registers and shows examples of how to use them.
It contains the following sections:
• C1.1 About debug methods on page C1-404.
• C1.2 Debug register interfaces on page C1-405.
• C1.3 Debug events on page C1-407.
• C1.4 External debug interface on page C1-408.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C1-403
reserved.
Non-Confidential
C1 Debug
C1.1 About debug methods
Debug host
A computer, for example a personal computer, that is running a software 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) slave 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.
With the debug unit, you can:
• Stop program execution.
• Examine and alter process and coprocessor state.
• Examine and alter memory and the state of the input or output peripherals.
• Restart the core.
For self-hosted debug, the debug target runs additional debug monitor software that runs on the
Cortex‑A78 core itself. This way, it does not require expensive interface hardware to connect a second
host computer.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C1-404
reserved.
Non-Confidential
C1 Debug
C1.2 Debug register interfaces
Debug registers
This function is system register based and memory-mapped. You can access the debug register
map using the APB slave port. The external debug interface enables both external and self-
hosted debug agents to access debug registers.
Performance monitor
This function is system register based and memory-mapped. You can access the performance
monitor registers using the APB slave port.
Activity monitor
This function is system register based and memory-mapped. You can access the activity monitor
registers using the APB slave port.
Trace registers
This function is memory-mapped.
ELA registers
This function is memory-mapped.
Related references
C1.4 External debug interface on page C1-408
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C1-405
reserved.
Non-Confidential
C1 Debug
C1.2 Debug register interfaces
Off EDPRSR.PU is 0 Core power domain is completely off, or in a low-power state where the
core power domain registers cannot be accessed.
If debug power is off, then all external debug and memory-mapped register
accesses return an error.
EDAD AllowExternalDebugAccess() ==FALSE External debug access is disabled. When an error is returned because of an
EDAD condition code, and this is the highest priority error condition,
EDPRSR.SDAD is set to 1. Otherwise SDAD is unchanged.
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.
- - - - RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C1-406
reserved.
Non-Confidential
C1 Debug
C1.3 Debug events
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C1-407
reserved.
Non-Confidential
C1 Debug
C1.4 External debug interface
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C1-408
reserved.
Non-Confidential
Chapter C2
Performance Monitoring Unit
This chapter describes the Performance Monitoring Unit (PMU) and the registers that it uses.
It contains the following sections:
• C2.1 About the PMU on page C2-410.
• C2.2 PMU functional description on page C2-411.
• C2.3 PMU events on page C2-412.
• C2.4 PMU interrupts on page C2-421.
• C2.5 Exporting PMU events on page C2-422.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-409
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.1 About the PMU
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-410
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.2 PMU functional description
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-411
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.3 PMU events
0x2 [02] L1I_TLB_REFILL L1 instruction TLB refill. This event counts any refill of the
instruction L1 TLB from the L2 TLB. This includes refills that
result in a translation fault.
The following instructions are not counted:
• TLB maintenance instructions
This event counts regardless of whether the MMU is enabled.
0x3 [03] L1D_CACHE_REFILL L1 data cache refill. This event counts any load or store
operation or page table walk access which causes data to be read
from outside the L1, including accesses which do not allocate
into L1.
The following instructions are not counted:
• Cache maintenance instructions and prefetches
• Stores of an entire cache line, even if they make a coherency
request outside the L1
• Partial cache line writes which do not allocate into the L1
cache
• Non-cacheable accesses.
This event counts the sum of L1D_CACHE_REFILL_RD and
L1D_CACHE_REFILL_WR.
0x4 [06:04] L1D_CACHE L1 data cache access. This event counts any load or store
operation or page table walk access which looks up in the L1
data cache. In particular, any access which could count the
L1D_CACHE_REFILL event causes this event to count.
The following instructions are not counted:
• Cache maintenance instructions and prefetches
• Non-cacheable accesses
This event counts the sum of L1D_CACHE_RD and
L1D_CACHE_WR.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-412
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.3 PMU events
0x8 [13:9] INST_RETIRED Instruction architecturally executed. This event counts all retired
instructions, including those that fail their condition check.
0x13 [23:21] MEM_ACCESS Data memory access. This event counts memory accesses due to
load or store instructions.
The following instructions are not counted:
• Instruction fetches
• Cache maintenance instructions
• Translation table walks or prefetches
This event counts the sum of MEM_ACCESS_RD and
MEM_ACCESS_WR.
0x14 [24] L1I_CACHE L1 instruction cache access or L0 Macro-op cache access. This
event counts any instruction fetch which accesses the L1
instruction cache or L0 Macro-op cache.
The following instructions are not counted:
• Cache maintenance instructions
• Non-cacheable accesses
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-413
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.3 PMU events
0x16 [29:26] L2D_CACHE L2 unified cache access. This event counts any transaction from
L1 which looks up in the L2 cache, and any write-back from the
L1 to the L2. Snoops from outside the core and cache
maintenance operations are not counted.
0x17 [33:30] L2D_CACHE_REFILL L2 unified cache refill. This event counts any Cacheable
transaction from L1 which causes data to be read from outside
the core. L2 refills caused by stashes and prefetches that target
this level of cache, should not be counted.
0x18 [37:34] L2D_CACHE_WB L2 unified cache write-back. This event counts any write-back of
data from the L2 cache to outside the core. This includes snoops
to the L2 which return data, regardless of whether they cause an
invalidation. Invalidations from the L2 which do not write data
outside of the core and snoops which return data from the L1 are
not counted.
0x19 [39:38] BUS_ACCESS Bus access. This event counts for every beat of data transferred
over the data channels between the core and the SCU. If both
read and write data beats are transferred on a given cycle, this
event is counted twice on that cycle. This event counts the sum
of BUS_ACCESS_RD and BUS_ACCESS_WR.
0x1A [40] MEMORY_ERROR Local memory error. This event counts any correctable or
uncorrectable memory error (ECC or parity) in the protected core
RAMs.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-414
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.3 PMU events
0x20 [51:49] CACHE_ALLOCATE L2 unified cache allocation without refill. This event counts any
full cache line write into the L2 cache which does not cause a
linefill, including write-backs from L1 to L2 and full-line writes
which do not allocate into L1.
0x21 [55:52] BR_RETIRED Instruction architecturally executed, branch. This event counts all
branches, taken or not. This excludes exception entries, debug
entries and CCFAIL branches.
0x23 [60] STALL_FRONTEND No operation issued because of the frontend. The counter counts
on any cycle when there are no fetched instructions available to
dispatch.
0x24 [61] STALL_BACKEND No operation issued because of the backend. The counter counts
on any cycle fetched instructions are not dispatched due to
resource constraints.
0x25 [64:62] L1D_TLB L1 data TLB access. This event counts any load or store
operation which accesses the data L1 TLB. If both a load and a
store are executed on a cycle, this event counts twice. This event
counts regardless of whether the MMU is enabled.
0x26 [65] L1I_TLB L1 instruction TLB access. This event counts any instruction
fetch which accesses the instruction L1 TLB. This event counts
regardless of whether the MMU is enabled.
0x29 [66] L3D_CACHE_ALLOCATE Attributable L3 unified cache allocation without refill. This event
counts any full cache line write into the L3 cache which does not
cause a linefill, including write-backs from L2 to L3 and full-line
writes which do not allocate into L2.
0x2A [69:67] L3D_CACHE_REFILL Attributable L3 unified cache refill.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-415
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.3 PMU events
0x2F [73:72] L2TLB_REQ Attributable L2 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.
0x35 [76] ITLB_WLK Access to instruction TLB that caused a page table walk. This
event counts on any instruction access which causes
L2D_TLB_REFILL to count.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-416
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.3 PMU events
0x41 [86:85] L1D_CACHE_WR L1 data cache access, write. This event counts any store
operation which looks up in the L1 data cache. In particular, any
access which could count the L1D_CACHE_REFILL_WR event
causes this event to count.
The following instructions are not counted:
• Cache maintenance instructions and prefetches
• Non-cacheable accesses
0x42 [87] L1D_CACHE_REFILL_RD L1 data cache refill, read. This event counts any load operation
or page table walk access which causes data to be read from
outside the L1, including accesses which do not allocate into L1.
The following instructions are not counted:
• Cache maintenance instructions and prefetches
• Non-cacheable accesses
0x43 [88] L1D_CACHE_REFILL_WR L1 data cache refill, write. This event counts any store operation
which causes data to be read from outside the L1, including
accesses which do not allocate into L1.
The following instructions are not counted:
• Cache maintenance instructions and prefetches
• Stores of an entire cache line, even if they make a coherency
request outside the L1
• Partial cache line writes which do not allocate into the L1
cache
• Non-cacheable accesses
0x44 [89] L1D_CACHE_REFILL_INNER L1 data cache refill, inner. This event counts any L1 data cache
linefill (as counted by L1D_CACHE_REFILL) which hits in the
L2 cache, L3 cache or another core in the cluster.
0x45 [90] L1D_CACHE_REFILL_OUTER L1 data cache refill, outer. This event counts any L1 data cache
linefill (as counted by L1D_CACHE_REFILL) which does not
hit in the L2 cache, L3 cache or another core in the cluster, and
instead obtains data from outside the cluster.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-417
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.3 PMU events
0x51 [105:103] CACHE_ACCESS_WR L2 unified cache access, write. This event counts any write
transaction from L1 which looks up in the L2 cache or any write-
back from L1 which allocates into the L2 cache.
Snoops from outside the core are not counted.
0x52 [108:106] CACHE_RD_REFILL L2 unified cache refill, read. This event counts any cacheable
read transaction from L1 which causes data to be read from
outside the core. L2 refills caused by stashes into L2 should not
be counted. Transactions such as ReadUnique are counted here
as 'read' transactions, even though they can be generated by store
instructions.
0x53 [111:109] CACHE_WR_REFILL L2 unified cache refill, write. This event counts any write
transaction from L1 which causes data to be read from outside
the core. L2 refills caused by stashes into L2 should not be
counted. Transactions such as ReadUnique are not counted as
write transactions.
0x61 [127] BUS_ACCESS_RETRY Bus access write. This event counts for every beat of data
transferred over the write data channel between the core and the
SCU.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-418
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.3 PMU events
0x67 [131:130] MEM_ACCESS_WR Data memory access, write. This event counts memory accesses
due to store instructions.
The following instructions are not counted:
• Instruction fetches
• Cache maintenance instructions
• Translation table walks
• Prefetches
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-419
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.3 PMU events
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-420
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.4 PMU interrupts
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-421
reserved.
Non-Confidential
C2 Performance Monitoring Unit
C2.5 Exporting PMU events
Note
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C2-422
reserved.
Non-Confidential
Chapter C3
Activity Monitor Unit
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C3-423
reserved.
Non-Confidential
C3 Activity Monitor Unit
C3.1 About the AMU
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C3-424
reserved.
Non-Confidential
C3 Activity Monitor Unit
C3.2 Accessing the activity monitors
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C3-425
reserved.
Non-Confidential
C3 Activity Monitor Unit
C3.3 AMU counters
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C3-426
reserved.
Non-Confidential
C3 Activity Monitor Unit
C3.4 AMU events
AMEVCNTR03 STALL_BACKEND_MEM 0x4005 Memory stall cycles. The counter counts cycles in which
the core is unable to dispatch instructions from the frontend
to the backend due to a backend stall caused by a miss in
the last level of cache within the core clock domain.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C3-427
reserved.
Non-Confidential
C3 Activity Monitor Unit
C3.4 AMU events
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. C3-428
Non-Confidential
Chapter C4
Embedded Trace Macrocell
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C4-429
reserved.
Non-Confidential
C4 Embedded Trace Macrocell
C4.1 About the ETM
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C4-430
reserved.
Non-Confidential
C4 Embedded Trace Macrocell
C4.2 ETM trace unit generation options and resources
Description Configuration
Support for tracing of load and store instructions as P0 elements Not implemented
The following table shows the resources implemented in the Cortex‑A78 ETM trace unit.
Description Configuration
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C4-431
reserved.
Non-Confidential
C4 Embedded Trace Macrocell
C4.2 ETM trace unit generation options and resources
Description Configuration
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C4-432
reserved.
Non-Confidential
C4 Embedded Trace Macrocell
C4.3 ETM trace unit functional description
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 Trace Bus (ATB) interface.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C4-433
reserved.
Non-Confidential
C4 Embedded Trace Macrocell
C4.4 Resetting the ETM
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C4-434
reserved.
Non-Confidential
C4 Embedded Trace Macrocell
C4.5 Programming and reading ETM trace unit registers
Read TRCSTATR
No
Is TRCSTATR Idle
0b1?
Yes
Read TRCSTATR
No
Is TRCSTATR Idle
0b0?
Yes
End
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C4-435
reserved.
Non-Confidential
C4 Embedded Trace Macrocell
C4.6 ETM trace unit register interfaces
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C4-436
reserved.
Non-Confidential
C4 Embedded Trace Macrocell
C4.7 Interaction with the PMU and Debug
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C4-437
reserved.
Non-Confidential
C4 Embedded Trace Macrocell
C4.7 Interaction with the PMU and Debug
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. C4-438
Non-Confidential
Chapter C5
Statistical Profiling Extension
This chapter describes the Statistical Profiling Extension (SPE) for the Cortex‑A78 core.
It contains the following sections:
• C5.1 About the statistical profiling extension on page C5-440.
• C5.2 SPE functional description on page C5-441.
• C5.3 IMPLEMENTATION DEFINED features of SPE on page C5-442.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C5-439
reserved.
Non-Confidential
C5 Statistical Profiling Extension
C5.1 About the statistical profiling extension
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C5-440
reserved.
Non-Confidential
C5 Statistical Profiling Extension
C5.2 SPE functional description
Unlike trace information, SPE profiles are written to memory using a Virtual Address (VA), which means
that writes of profiles must have access to the MMU in order to translate a VA to a Physical Address
(PA), and must have a means to be written to memory.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C5-441
reserved.
Non-Confidential
C5 Statistical Profiling Extension
C5.3 IMPLEMENTATION DEFINED features of SPE
Events definition
The Cortex‑A78 core includes a 32-bit event packet which is defined in the following table.
Bit Definition
[31:13] Reserved
12 Late prefetch
10 Remote access
7 Branch mispredicted
6 Not taken
5 DTLB walk
4 TLB access
1 Architecturally retired
0 Generated exception
Value Name
0b0000 L1 data cache
0b1000 L2 cache
0b1101 Remote
0b1110 DRAM
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights C5-442
reserved.
Non-Confidential
Part D
Debug registers
Chapter D1
AArch32 debug registers
This chapter describes the debug registers in the AArch32 Execution state and shows examples of how to
use them.
It contains the following section:
• D1.1 AArch32 debug register summary on page D1-446.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D1-445
reserved.
Non-Confidential
D1 AArch32 debug registers
D1.1 AArch32 debug register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D1-446
reserved.
Non-Confidential
Chapter D2
AArch64 debug registers
This chapter describes the debug registers in the AArch64 Execution state and shows examples of how to
use them.
It contains the following sections:
• D2.1 AArch64 debug register summary on page D2-448.
• D2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1 on page D2-450.
• D2.3 DBGCLAIMSET_EL1, Debug Claim Tag Set Register, EL1 on page D2-453.
• D2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1 on page D2-454.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D2-447
reserved.
Non-Confidential
D2 AArch64 debug registers
D2.1 AArch64 debug register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D2-448
reserved.
Non-Confidential
D2 AArch64 debug registers
D2.1 AArch64 debug register summary
DBGCLAIMSET_EL1 RW 0x000000FF 32 D2.3 DBGCLAIMSET_EL1, Debug Claim Tag Set Register, EL1
on page D2-453
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D2-449
reserved.
Non-Confidential
D2 AArch64 debug registers
D2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1
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.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D2-450
reserved.
Non-Confidential
D2 AArch64 debug registers
D2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1
BAS, [8:5]
Byte Address Select. Defines which half-words 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.
0xF Match the A64 or A32 instruction at DBGBVRn_EL1, or context match.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D2-451
reserved.
Non-Confidential
D2 AArch64 debug registers
D2.2 DBGBCRn_EL1, Debug Breakpoint Control Registers, EL1
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 Armv8, for Armv8-A architecture profile for
possible values of the SSC and HMC fields.
Bits[2:1] have no effect for accesses made in Hyp mode.
E, [0]
Enable breakpoint. This bit enables the BRP:
0 BRP disabled.
1 BRP enabled.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D2-452
reserved.
Non-Confidential
D2 AArch64 debug registers
D2.3 DBGCLAIMSET_EL1, Debug Claim Tag Set Register, EL1
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D2-453
reserved.
Non-Confidential
D2 AArch64 debug registers
D2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1
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.
0b1 Linked data address match.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D2-454
reserved.
Non-Confidential
D2 AArch64 debug registers
D2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1
HMC, [13]
Higher mode control. Determines the debug perspective for deciding when a watchpoint debug
event for watchpoint n is generated. This field must be interpreted along with the SSC and PAC
fields.
On Cold reset, the field reset value is architecturally UNKNOWN.
BAS, [12:5]
Byte address select. Each bit of this field selects whether a byte from within the word or double-
word addressed by DBGWVRn_EL1 is being watched. See the Arm® Architecture Reference
Manual Armv8, for Armv8-A architecture profile for more information.
LSC, [4:3]
Load/store access control. This field enables watchpoint matching on the type of access being
made. The possible values are:
0b01 Match instructions that load from a watchpoint address.
0b10 Match instructions that store to a watchpoint address.
0b11 Match instructions that load from or store to a watchpoint address.
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 if E is 0.
On Cold reset, the field reset value is architecturally UNKNOWN.
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.
On Cold reset, the field reset value is architecturally UNKNOWN.
E, [0]
Enable watchpoint n. Possible values are:
0b0 Watchpoint disabled.
0b1 Watchpoint enabled.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D2-455
reserved.
Non-Confidential
D2 AArch64 debug registers
D2.4 DBGWCRn_EL1, Debug Watchpoint Control Registers, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. D2-456
Non-Confidential
Chapter D3
Memory-mapped debug registers
This chapter describes the memory-mapped debug registers and shows examples of how to use them.
It contains the following sections:
• D3.1 Memory-mapped debug register summary on page D3-458.
• D3.2 EDCIDR0, External Debug Component Identification Register 0 on page D3-462.
• D3.3 EDCIDR1, External Debug Component Identification Register 1 on page D3-463.
• D3.4 EDCIDR2, External Debug Component Identification Register 2 on page D3-464.
• D3.5 EDCIDR3, External Debug Component Identification Register 3 on page D3-465.
• D3.6 EDDEVID, External Debug Device ID Register 0 on page D3-466.
• D3.7 EDDEVID1, External Debug Device ID Register 1 on page D3-467.
• D3.8 EDPIDR0, External Debug Peripheral Identification Register 0 on page D3-468.
• D3.9 EDPIDR1, External Debug Peripheral Identification Register 1 on page D3-469.
• D3.10 EDPIDR2, External Debug Peripheral Identification Register 2 on page D3-470.
• D3.11 EDPIDR3, External Debug Peripheral Identification Register 3 on page D3-471.
• D3.12 EDPIDR4, External Debug Peripheral Identification Register 4 on page D3-472.
• D3.13 EDPIDRn, External Debug Peripheral Identification Registers 5-7 on page D3-473.
• D3.14 EDRCR, External Debug Reserve Control Register on page D3-474.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-457
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.1 Memory-mapped debug register summary
0x0A4 - - - Reserved
0x0A8 - - - Reserved
0x0AC - - - Reserved
0x0B0-0x2FC - - - Reserved
0x300 OSLAR_EL1 WO 32 OS Lock Access Register
0x304-0x30C - - - Reserved
0x310 EDPRCR RW 32 External Debug Power/Reset Control Register
0x314 EDPRSR RO 32 External Debug Processor Status Register
0x318-0x3FC - - - Reserved
0x400 DBGBVR0_EL1[31:0] RW 64 Debug Breakpoint Value Register 0
0x404 DBGBVR0_EL1[63:32]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-458
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.1 Memory-mapped debug register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-459
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.1 Memory-mapped debug register summary
0xFB4 - - - Reserved
0xFB8 DBGAUTHSTATUS_EL1 RO 32 Debug Authentication Status Register
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-460
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.1 Memory-mapped debug register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-461
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.2 EDCIDR0, External Debug Component Identification Register 0
31 8 7 0
PRMBL_0
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_0, [7:0]
0x0D Preamble byte 0.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDCIDR0 can be accessed through the external debug interface, offset 0xFF0.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-462
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.3 EDCIDR1, External Debug Component Identification Register 1
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDCIDR1 can be accessed through the external debug interface, offset 0xFF4.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-463
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.4 EDCIDR2, External Debug Component Identification Register 2
31 8 7 0
PRMBL_2
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_2, [7:0]
0x05 Preamble byte 2.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDCIDR2 can be accessed through the external debug interface, offset 0xFF8.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-464
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.5 EDCIDR3, External Debug Component Identification Register 3
31 8 7 0
PRMBL_3
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_3, [7:0]
0xB1 Preamble byte 3.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDCIDR3 can be accessed through the external debug interface, offset 0xFFC.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-465
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.6 EDDEVID, External Debug Device ID Register 0
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDDEVID can be accessed through the external debug interface, offset 0xFC8.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-466
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.7 EDDEVID1, External Debug Device ID Register 1
31 0
RES0
RES0, [31:0]
RES0 Reserved.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDDEVID1 can be accessed through the external debug interface, offset 0xFC4.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-467
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.8 EDPIDR0, External Debug Peripheral Identification Register 0
31 8 7 0
Part_0
RES0
RES0, [31:8]
RES0 Reserved.
Part_0, [7:0]
0x41 Least significant byte of the debug part number.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDPIDR0 can be accessed through the external debug interface, offset 0xFE0.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-468
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.9 EDPIDR1, External Debug Peripheral Identification Register 1
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDPIDR1 can be accessed through the external debug interface, offset 0xFE4.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-469
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.10 EDPIDR2, External Debug Peripheral Identification Register 2
31 8 7 4 3 2 0
Revision DES_1
JEDEC
RES0
RES0, [31:8]
RES0 Reserved
Revision, [7:4]
2 r1p1
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDPIDR2 can be accessed through the external debug interface, offset 0xFE8.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-470
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.11 EDPIDR3, External Debug Peripheral Identification Register 3
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDPIDR3 can be accessed through the external debug interface, offset 0xFEC.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-471
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.12 EDPIDR4, External Debug Peripheral Identification Register 4
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDPIDR4 can be accessed through the external debug interface, offset 0xFD0.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-472
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.13 EDPIDRn, External Debug Peripheral Identification Registers 5-7
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-473
reserved.
Non-Confidential
D3 Memory-mapped debug registers
D3.14 EDRCR, External Debug Reserve Control Register
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.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D3-474
reserved.
Non-Confidential
Chapter D4
AArch32 PMU registers
This chapter describes the AArch32 PMU registers and shows examples of how to use them.
It contains the following sections:
• D4.1 AArch32 PMU register summary on page D4-476.
• D4.2 PMCEID0, Performance Monitors Common Event Identification Register 0 on page D4-478.
• D4.3 PMCEID1, Performance Monitors Common Event Identification Register 1 on page D4-481.
• D4.4 PMCEID2, Performance Monitors Common Event Identification Register 2 on page D4-484.
• D4.5 PMCR, Performance Monitors Control Register on page D4-486.
• D4.6 PMMIR, Performance Monitors Machine Identification Register on page D4-489.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-475
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.1 AArch32 PMU register summary
The following table gives a summary of the Cortex‑A78 PMU registers in the AArch32 Execution state.
For those registers not described in this chapter, see the Arm® Architecture Reference Manual Armv8, for
Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-476
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.1 AArch32 PMU register summary
Table D4-1 PMU register summary in the AArch32 Execution state (continued)
c14 0 c15 7 PMCCFILTR RW 32 UNK Performance Monitors Cycle Count Filter Register
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-477
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.2 PMCEID0, Performance Monitors Common Event Identification Register 0
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 Armv8, for Armv8-A architecture profile for more information about these events.
[30] CHAIN Chain. For odd-numbered counters, counts once for each overflow of the preceding even-
numbered counter. For even-numbered counters, does not count:
1 This event is implemented.
[28] TTBR_WRITE_RETIRED TTBR write, architecturally executed, condition check pass - write to translation table base:
1 This event is implemented.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-478
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.2 PMCEID0, Performance Monitors Common Event Identification Register 0
[15] UNALIGNED_LDST_RETIRED Instruction architecturally executed, condition check pass - unaligned load or store:
[14] BR_RETURN_RETIRED Instruction architecturally executed, condition check pass - procedure return:
0 This event is not implemented.
[12] PC_WRITE_RETIRED Instruction architecturally executed, condition check pass - software change of the PC:
0 This event is not implemented.
[11] CID_WRITE_RETIRED Instruction architecturally executed, condition check pass - write to CONTEXTIDR:
1 This event is implemented.
[10] EXC_RETURN Instruction architecturally executed, condition check pass - exception return:
1 This event is implemented.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-479
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.2 PMCEID0, Performance Monitors Common Event Identification Register 0
[0] SW_INCR Instruction architecturally executed, condition check pass - software increment:
1 This event is implemented.
Note
The PMU events implemented in the above table can be found in Table C2-1 PMU Events
on page C2-412.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-480
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.3 PMCEID1, Performance Monitors Common Event Identification Register 1
31 0
ID
ID[63:32], [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.
[30] STALL_SLOT_FRONTEND No operation sent for execution on a slot due to the frontend.
1 This event is implemented.
[29] STALL_SLOT_BACKEND No operation sent for execution on a slot due to the backend.
1 This event is implemented.
[24] REMOTE_ACCESS_RD Attributable memory read access to another socket in a multi-socket system.
0 This event is not implemented.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-481
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.3 PMCEID1, Performance Monitors Common Event Identification Register 1
[21] ITLB_WALK Attributable instruction TLB access with at least one translation table walk.
1 This event is implemented.
[20] DTLB_WALK Attributable data or unified TLB access with at least one translation table walk.
1 This event is implemented.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-482
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.3 PMCEID1, Performance Monitors Common Event Identification Register 1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-483
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.4 PMCEID2, Performance Monitors Common Event Identification Register 2
31 12 11 0
ID[11:0]
RES0
RES0, [31:16]
RES0 Reserved
ID, [11: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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-484
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.4 PMCEID2, Performance Monitors Common Event Identification Register 2
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-485
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.5 PMCR, Performance Monitors Control Register
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:
0x41 ASCII character 'A' - implementer is Arm Limited.
IDCODE, [23:16]
Identification code. The value is:
0x21 Cortex‑A78 core.
N, [15:11]
Identifies the number of event counters implemented.
0b00110 The core implements six event counters.
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:
0b0 Overflow event is generated on a 32-bit boundary, when an increment changes
PMCCNTR[31] from 1 to 0. This is the reset value.
0b1 Overflow event is generated on a 64-bit boundary, when an increment changes
PMCCNTR[63] from 1 to 0.
X, [4]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-486
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.5 PMCR, Performance Monitors Control Register
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:
0b0 Export of events is disabled. This is the reset value.
0b1 Export of events is enabled.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-487
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.5 PMCR, Performance Monitors Control Register
Configurations
AArch32 System register PMCR is architecturally mapped to AArch64 System register
PMCR_EL0. See D5.4 PMCR_EL0, Performance Monitors Control Register, EL0
on page D5-501.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-488
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.6 PMMIR, Performance Monitors Machine Identification Register
31 8 7 0
SLOTS
RES0
RES0, [31:8]
RES0 Reserved.
SLOTS, [7:0]
0x06 Operation width. The largest value by which the STALL_SLOT event might
increment by in a single cycle. If the STALL_SLOT event is not implemented,
this field might read as zero.
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D4-489
reserved.
Non-Confidential
D4 AArch32 PMU registers
D4.6 PMMIR, Performance Monitors Machine Identification Register
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. D4-490
Non-Confidential
Chapter D5
AArch64 PMU registers
This chapter describes the AArch64 PMU registers and shows examples of how to use them.
It contains the following sections:
• D5.1 AArch64 PMU register summary on page D5-492.
• D5.2 PMCEID0_EL0, Performance Monitors Common Event Identification Register 0, EL0
on page D5-494.
• D5.3 PMCEID1_EL0, Performance Monitors Common Event Identification Register 1, EL0
on page D5-498.
• D5.4 PMCR_EL0, Performance Monitors Control Register, EL0 on page D5-501.
• D5.5 CPUPMMIR_EL1, Performance Monitors Machine Identification Register, EL1
on page D5-503.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-491
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.1 AArch64 PMU register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-492
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.1 AArch64 PMU register summary
Table D5-1 PMU register summary in the AArch64 Execution state (continued)
PMEVCNTR2_EL0 RW 32 UNK
PMEVCNTR3_EL0 RW 32 UNK
PMEVCNTR4_EL0 RW 32 UNK
PMEVCNTR5_EL0 RW 32 UNK
PMEVTYPER2_EL0 RW 32 UNK
PMEVTYPER3_EL0 RW 32 UNK
PMEVTYPER4_EL0 RW 32 UNK
PMEVTYPER5_EL0 RW 32 UNK
Related references
C2.3 PMU events on page C2-412
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-493
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.2 PMCEID0_EL0, Performance Monitors Common Event Identification Register 0, EL0
63 44 43 0
ID[43:0]
RES0
RES0, [63:44]
RES0 Reserved
ID, [43: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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-494
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.2 PMCEID0_EL0, Performance Monitors Common Event Identification Register 0, EL0
[30] CHAIN Chain. For odd-numbered counters, counts once for each overflow of the preceding even-
numbered counter. For even-numbered counters, does not count:
1 This event is implemented.
[28] TTBR_WRITE_RETIRED TTBR write, architecturally executed, condition check pass - write to translation table base:
1 This event is implemented.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-495
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.2 PMCEID0_EL0, Performance Monitors Common Event Identification Register 0, EL0
[15] UNALIGNED_LDST_RETIRED Instruction architecturally executed, condition check pass - unaligned load or store:
[14] BR_RETURN_RETIRED Instruction architecturally executed, condition check pass - procedure return:
0 This event is not implemented.
[12] PC_WRITE_RETIRED Instruction architecturally executed, condition check pass - software change of the PC:
0 This event is not implemented.
[11] CID_WRITE_RETIRED Instruction architecturally executed, condition check pass - write to CONTEXTIDR:
1 This event is implemented.
[10] EXC_RETURN Instruction architecturally executed, condition check pass - exception return:
1 This event is implemented.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-496
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.2 PMCEID0_EL0, Performance Monitors Common Event Identification Register 0, EL0
[0] SW_INCR Instruction architecturally executed, condition check pass - software increment:
1 This event is implemented.
Note
The PMU events implemented in the above table can be found in Table C2-1 PMU Events
on page C2-412.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-497
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.3 PMCEID1_EL0, Performance Monitors Common Event Identification Register 1, EL0
31 0
ID
RES0, [63:32]
RES0 Reserved
ID, [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.
[30] STALL_SLOT_FRONTEND No operation sent for execution on a slot due to the frontend:
1 This event is implemented.
[29] STALL_SLOT_BACKEND No operation sent for execution on a slot due to the backend:
1 This event is implemented.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-498
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.3 PMCEID1_EL0, Performance Monitors Common Event Identification Register 1, EL0
[24] REMOTE_ACCESS_RD Attributable memory read access to another socket in a multi-socket system:
0 This event is not implemented.
[21] ITLB_WALK Attributable instruction TLB access with at least one translation table walk:
1 This event is implemented.
[20] DTLB_WALK Attributable data or unified TLB access with at least one translation table walk:
1 This event is implemented.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-499
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.3 PMCEID1_EL0, Performance Monitors Common Event Identification Register 1, EL0
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-500
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.4 PMCR_EL0, Performance Monitors Control Register, EL0
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.
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:
0 Overflow on increment that changes PMCCNTR_EL0[31] from 1 to 0.
1 Overflow on increment that changes PMCCNTR_EL0[63] from 1 to 0.
DP, [5]
Disable cycle counter, PMCCNTR_EL0 when event counting is prohibited:
0 Cycle counter operates regardless of the non-invasive debug authentication settings.
This is the reset value.
1 Cycle counter is disabled if non-invasive debug is not permitted and enabled.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-501
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.4 PMCR_EL0, Performance Monitors Control Register, EL0
This bit is read/write and does not affect the generation of Performance Monitors interrupts on
the nPMUIRQ pin.
D, [3]
Clock divider:
0 When enabled, PMCCNTR_EL0 counts every clock cycle. This is the reset value.
1 When enabled, PMCCNTR_EL0 counts every 64 clock cycles.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-502
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.5 CPUPMMIR_EL1, Performance Monitors Machine Identification Register, EL1
63 8 7 0
SLOTS
RES0
RES0, [31:8]
RES0 Reserved.
SLOTS, [7:0]
0x06 Operation width. The largest value by which the STALL_SLOT event might
increment by in a single cycle. If the STALL_SLOT event is not implemented,
this field might read as zero.
Usage constraints
Accessing the CPUPMMIR_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:
PMMIR_EL1 3 15 0 14 6
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D5-503
reserved.
Non-Confidential
D5 AArch64 PMU registers
D5.5 CPUPMMIR_EL1, Performance Monitors Machine Identification Register, EL1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. D5-504
Non-Confidential
Chapter D6
Memory-mapped PMU registers
This chapter describes the memory-mapped PMU registers and shows examples of how to use them.
It contains the following sections:
• D6.1 Memory-mapped PMU register summary on page D6-506.
• D6.2 PMCFGR, Performance Monitors Configuration Register on page D6-510.
• D6.3 PMCIDR0, Performance Monitors Component Identification Register 0 on page D6-511.
• D6.4 PMCIDR1, Performance Monitors Component Identification Register 1 on page D6-512.
• D6.5 PMCIDR2, Performance Monitors Component Identification Register 2 on page D6-513.
• D6.6 PMCIDR3, Performance Monitors Component Identification Register 3 on page D6-514.
• D6.7 PMMIR, Performance Monitors Machine Identification Register on page D6-515.
• D6.8 PMPIDR0, Performance Monitors Peripheral Identification Register 0 on page D6-516.
• D6.9 PMPIDR1, Performance Monitors Peripheral Identification Register 1 on page D6-517.
• D6.10 PMPIDR2, Performance Monitors Peripheral Identification Register 2 on page D6-518.
• D6.11 PMPIDR3, Performance Monitors Peripheral Identification Register 3 on page D6-519.
• D6.12 PMPIDR4, Performance Monitors Peripheral Identification Register 4 on page D6-520.
• D6.13 PMPIDRn, Performance Monitors Peripheral Identification Register 5-7 on page D6-521.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-505
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.1 Memory-mapped PMU register summary
0x004 - - Reserved
0x008 PMEVCNTR1_EL0 RW Performance Monitor Event Count Register
1
0x00C - - Reserved
0x010 PMEVCNTR2_EL0 RW Performance Monitor Event Count Register
2
0x014 - - Reserved
0x018 PMEVCNTR3_EL0 RW Performance Monitor Event Count Register
3
0x01C - - Reserved
0x020 PMEVCNTR4_EL0 RW Performance Monitor Event Count Register
4
0x024 - - Reserved
0x028 PMEVCNTR5_EL0 RW Performance Monitor Event Count Register
5
0x02C-0xF4 - - Reserved
0x0F8 PMCCNTR_EL0[31:0] RW Performance Monitor Cycle Count Register
0x0FC PMCCNTR_EL0[63:32] RW
0x200 PMPCSR[31:0] RO Program Counter Sample Register
0x204 PMPCSR[63:32]
0x208 PMCID1SR RO CONTEXTIDR_EL1 Sample Register
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-506
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.1 Memory-mapped PMU register summary
0xC04-0xC1C - - Reserved
0xC20 PMCNTENCLR_EL0 RW Performance Monitor Count Enable Clear
Register
0xC24-0xC3C - - Reserved
0xC40 PMINTENSET_EL1 RW Performance Monitor Interrupt Enable Set
Register
0xC44-0xC5C - - Reserved
0xC60 PMINTENCLR_EL1 RW Performance Monitor Interrupt Enable
Clear Register
0xC64-0xC7C - - Reserved
0xC80 PMOVSCLR_EL0 RW Performance Monitor Overflow Flag Status
Register
0xC84-0xC9C - - Reserved
0xCA0 PMSWINC_EL0 WO Performance Monitor Software Increment
Register
0xCA4-0xCBC - - Reserved
0xCC0 PMOVSSET_EL0 RW Performance Monitor Overflow Flag Status
Set Register
0xCC4-0xDFC - - Reserved
0xE00 PMCFGR RO D6.2 PMCFGR, Performance Monitors
Configuration Register on page D6-510
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-507
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.1 Memory-mapped PMU register summary
0xE08-0xE1C - - Reserved
0xE20 PMCEID0 RO D4.2 PMCEID0, Performance Monitors
Common Event Identification Register 0
on page D4-478
0xE24 PMCEID1 RO D4.3 PMCEID1, Performance Monitors
Common Event Identification Register 1
on page D4-481
0xE28 PMCEID2 RO D4.4 PMCEID2, Performance Monitors
Common Event Identification Register 2
on page D4-484
0xFA4 - - Reserved
0xFA8 PMDEVAFF0 RO B2.98 MPIDR_EL1, Multiprocessor
Affinity Register, EL1 on page B2-302
0xFAC PMDEVAFF1 RO B2.98 MPIDR_EL1, Multiprocessor
Affinity Register, EL1 on page B2-302
0xFB8 PMAUTHSTATUS RO Performance Monitor Authentication Status
Register
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-508
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.1 Memory-mapped PMU register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-509
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.2 PMCFGR, Performance Monitors Configuration Register
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:
1 Export is supported. PMCR_EL0.EX is read/write.
CCD, [15]
Cycle counter has pre-scale. The value is:
1 PMCR_EL0.D is read/write.
CC, [14]
Dedicated cycle counter supported. The value is:
1 Dedicated cycle counter is supported.
Size, [13:8]
Counter size. The value is:
0b111111 64-bit counters.
N, [7:0]
Number of event counters. The value is:
0x06 Six counters.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The PMCFGR can be accessed through the external debug interface, offset 0xE00.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-510
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.3 PMCIDR0, Performance Monitors Component Identification Register 0
31 8 7 0
PRMBL_0
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_0, [7:0]
0x0D Preamble byte 0.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The PMCIDR0 can be accessed through the external debug interface, offset 0xFF0.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-511
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.4 PMCIDR1, Performance Monitors Component Identification Register 1
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The PMCIDR1 can be accessed through the external debug interface, offset 0xFF4.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-512
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.5 PMCIDR2, Performance Monitors Component Identification Register 2
31 8 7 0
PRMBL_2
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_2, [7:0]
0x05 Preamble byte 2.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The PMCIDR2 can be accessed through the external debug interface, offset 0xFF8.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-513
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.6 PMCIDR3, Performance Monitors Component Identification Register 3
31 8 7 0
PRMBL_3
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_3, [7:0]
0xB1 Preamble byte 3.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The PMCIDR3 can be accessed through the external debug interface, offset 0xFFC.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-514
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.7 PMMIR, Performance Monitors Machine Identification Register
31 8 7 0
SLOTS
RES0
RES0, [31:8]
RES0 Reserved
SLOTS, [7:0]
0x06 Operation width. The largest value by which the STALL_SLOT event might
increment by in a single cycle. If the STALL_SLOT event is not implemented,
this field might read as zero.
The PMMIR can be accessed through the external debug interface, offset 0xD80.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-515
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.8 PMPIDR0, Performance Monitors Peripheral Identification Register 0
31 8 7 0
Part_0
RES0
RES0, [31:8]
RES0 Reserved.
Part_0, [7:0]
0x41 Least significant byte of the performance monitor part number.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The PMPIDR0 can be accessed through the external debug interface, offset 0xFE0.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-516
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.9 PMPIDR1, Performance Monitors Peripheral Identification Register 1
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The PMPIDR1 can be accessed through the external debug interface, offset 0xFE4.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-517
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.10 PMPIDR2, Performance Monitors Peripheral Identification Register 2
31 8 7 4 3 2 0
Revision DES_1
JEDEC
RES0
RES0, [31:8]
RES0 Reserved
Revision, [7:4]
0x2 r1p1
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The PMPIDR2 can be accessed through the external debug interface, offset 0xFE8.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-518
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.11 PMPIDR3, Performance Monitors Peripheral Identification Register 3
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The PMPIDR3 can be accessed through the external debug interface, offset 0xFEC.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-519
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.12 PMPIDR4, Performance Monitors Peripheral Identification Register 4
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 not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The PMPIDR4 can be accessed through the external debug interface, offset 0xFD0.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-520
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.13 PMPIDRn, Performance Monitors Peripheral Identification Register 5-7
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D6-521
reserved.
Non-Confidential
D6 Memory-mapped PMU registers
D6.13 PMPIDRn, Performance Monitors Peripheral Identification Register 5-7
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. D6-522
Non-Confidential
Chapter D7
PMU snapshot registers
PMU snapshot registers are an IMPLEMENTATION DEFINED extension to an Armv8‑A compliant PMU to
support an external core monitor that connects to a system profiler.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D7-523
reserved.
Non-Confidential
D7 PMU snapshot registers
D7.1 PMU snapshot register summary
0x620 + 4×n PMEVCNTSRn RO 32 D7.8 PMEVCNTSRn, PMU Snapshot Cycle Counter Registers 0-5
on page D7-531
0x6F0 PMSSCR WO 32 D7.9 PMSSCR, PMU Snapshot Capture Register on page D7-532
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D7-524
reserved.
Non-Confidential
D7 PMU snapshot registers
D7.2 PMPCSSR, PMU Snapshot Program Counter Sample Register
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D7-525
reserved.
Non-Confidential
D7 PMU snapshot registers
D7.3 PMCIDSSR, PMU Snapshot CONTEXTIDR_EL1 Sample Register
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D7-526
reserved.
Non-Confidential
D7 PMU snapshot registers
D7.4 PMCID2SSR, PMU Snapshot CONTEXTIDR_EL2 Sample Register
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D7-527
reserved.
Non-Confidential
D7 PMU snapshot registers
D7.5 PMSSSR, PMU Snapshot Status Register
31 1 0
NC
RES0
RES0, [31:1]
Reserved, RES0.
NC, [0]
No capture. This bit indicates whether the PMU counters have been captured. The possible
values are:
0 PMU counters are captured.
1 PMU counters are not captured.
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.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D7-528
reserved.
Non-Confidential
D7 PMU snapshot registers
D7.6 PMOVSSR, PMU Snapshot Overflow Status Register
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D7-529
reserved.
Non-Confidential
D7 PMU snapshot registers
D7.7 PMCCNTSR, PMU Snapshot Cycle Counter Register
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.
• DoubleLockStatus() == TRUE.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D7-530
reserved.
Non-Confidential
D7 PMU snapshot registers
D7.8 PMEVCNTSRn, PMU Snapshot Cycle Counter Registers 0-5
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D7-531
reserved.
Non-Confidential
D7 PMU snapshot registers
D7.9 PMSSCR, PMU Snapshot Capture Register
31 1 0
SS
RES0
RES0, [31:1]
Reserved, RES0.
SS, [0]
Capture now. The possible values are:
0 IGNORED.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D7-532
reserved.
Non-Confidential
Chapter D8
AArch64 AMU registers
This chapter describes the AArch64 AMU registers and shows examples of how to use them.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-533
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.1 AArch64 AMU register summary
AMCNTENSET0_EL0 32 0x00000000 D8.6 AMCNTENSET0_EL0, Activity Monitors Count Enable Set Register
0, EL0 on page D8-544
AMCNTENSET1_EL0 32 0x00000000 D8.7 AMCNTENSET1_EL0, Activity Monitors Count Enable Set Register
1, EL0 on page D8-546
AMEVCNTR00_EL0 64 0x0000000000000000 D8.9 AMEVCNTR0n_EL0, Activity Monitors Event Counter Registers 0n,
EL0 on page D8-550
AMEVCNTR01_EL0 64 0x0000000000000000 D8.9 AMEVCNTR0n_EL0, Activity Monitors Event Counter Registers 0n,
EL0 on page D8-550
AMEVCNTR02_EL0 64 0x0000000000000000 D8.9 AMEVCNTR0n_EL0, Activity Monitors Event Counter Registers 0n,
EL0 on page D8-550
AMEVCNTR03_EL0 64 0x0000000000000000 D8.9 AMEVCNTR0n_EL0, Activity Monitors Event Counter Registers 0n,
EL0 on page D8-550
AMEVTYPER00_EL0 32 0x00000011 D8.11 AMEVTYPER0n_EL0, Activity Monitors Event Type Registers 0n,
EL0 on page D8-554
AMEVTYPER01_EL0 32 0x00004004 D8.11 AMEVTYPER0n_EL0, Activity Monitors Event Type Registers 0n,
EL0 on page D8-554
AMEVTYPER02_EL0 32 0x00000008 D8.11 AMEVTYPER0n_EL0, Activity Monitors Event Type Registers 0n,
EL0 on page D8-554
AMEVTYPER03_EL0 32 0x00004005 D8.11 AMEVTYPER0n_EL0, Activity Monitors Event Type Registers 0n,
EL0 on page D8-554
AMEVTYPER10_EL0 32 0x00000300 D8.12 AMEVTYPER1n_EL0, Activity Monitors Event Type Registers 1n,
EL0 on page D8-556
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-534
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.1 AArch64 AMU register summary
AMEVTYPER11_EL0 32 0x00000301 D8.12 AMEVTYPER1n_EL0, Activity Monitors Event Type Registers 1n,
EL0 on page D8-556
AMEVTYPER12_EL0 32 0x00000302 D8.12 AMEVTYPER1n_EL0, Activity Monitors Event Type Registers 1n,
EL0 on page D8-556
AMUSERENR_EL0 32 0x00000000 D8.13 AMUSERENR_EL0, Activity Monitors User Enable Register, EL0
on page D8-558
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-535
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.2 AMCFGR_EL0, Activity Monitors Configuration Register, EL0
31 28 27 25 24 23 14 13 8 7 0
HDBG
RES0
NCG, [31:28]
Number of counter groups.
The number of counter groups implemented is NCG+1. If the number of auxiliary counters
implemented is zero, this field is 0x1.
RES0, [27:25]
Reserved, RES0.
HDBG, [24]
Halt-on-debug feature support.
This field is required, therefore the value of this field is 0b1.
RAZ, [23:14]
Read-As-Zero.
SIZE, [13:8]
Size of counters, minus one.
This field defines the size of the largest counter 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 implemented, where the number of counters is N+1. The
Cortex‑A78 core implements four counters, therefore the value is 0x06.
Configurations
There are no configuration notes.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-536
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.2 AMCFGR_EL0, Activity Monitors Configuration Register, EL0
Usage constraints
Accessing AMCFGR_EL0
To access AMCFGR_EL0:
MRS <Xt>, AMCFGR_EL0 ; Read AMCFGR_EL0 into Xt
3 3 c15 c2 1
AMCFGR_EL0 can be accessed through the external debug interface, offset 0xE00. In this case,
it is read-only.
This register is accessible as follows:
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-537
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.3 AMCGCR_EL0, Activity Monitors Counter Group Configuration Register, EL0
31 16 15 8 7 0
CG1NC CG0NC
RES0
RES0, [31:16]
Reserved, RES0.
CG1NC, [15:8]
The number of counters in the auxiliary counter group. A value of 0b0001 is equal to one
counter. For AMUv1 the permitted range is 0 to 16. The Cortex‑A78 core implements three
auxiliary counters so the value is 0x3.
CG0NC, [7:0]
The number of counters in the architected counter group. A value of 0b0001 is equal to one
counter. For AMUv1 this value is 4.
Configurations
There are no configuration notes.
Usage constraints
Accessing AMCGCR_EL0
To access AMCGCR_EL0:
MRS <Xt>, AMCGCR_EL0 ; Read AMCGCR_EL0 into Xt
3 3 c15 c2 2
AMCGCR_EL0 can be accessed through the external debug interface, offset 0xCE0. In this case,
it is read-only.
This register is accessible as follows:
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-538
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.3 AMCGCR_EL0, Activity Monitors Counter Group Configuration Register, EL0
The following control bits for traps on accesses to activity monitor registers are introduced:
• The ACTLR_EL3.TAM (trap activity monitor access) bit traps EL2, EL1 and EL0 accesses
to all activity monitor registers to EL3, from both security states.
0b0 EL2, EL1 and EL0 accesses to all activity monitor registers are not trapped to EL3.
0b1 EL2, EL1 and EL0 accesses to all activity monitor registers are trapped to EL3.
• The ACTLR_EL2.TAM (trap activity monitor access) bit traps non-secure EL1 and EL0
accesses to all activity monitor registers to EL2.
0b0 Non-secure accesses from EL1 and EL0 to activity monitor registers are not
trapped to EL2.
0b1 Non-secure accesses from EL1 and EL0 to activity monitor registers are trapped to
EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-539
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.4 AMCNTENCLR0_EL0, Activity Monitors Count Enable Clear Register 0, EL0
31 4 3 0
RAZ/WI P<n>
RAZ/WI, [31:4]
Read-As-Zero, Writes Ignored
P<n>, [3:0]
AMEVCNTR0n_EL0 disable bit. The possible values are:
0 When this bit is read, the activity counter n is disabled. When it is written, it has no
effect.
1 When this bit is read, the activity counter n is enabled. When it is written, it disables
the activity counter n.
Configurations
There are no configuration notes.
Usage constraints
Accessing AMCNTENCLR0_EL0
To access AMCNTENCLR0_EL0:
MRS <Xt>, AMCNTENCLR0_EL0 ; Read AMCNTENCLR0_EL0 into Xt
3 3 c15 c2 4
AMCNTENCLR0_EL0 can be accessed through the external debug interface, offset 0xC20. In
this case, it is read-only.
This register is accessible as follows:
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-540
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.4 AMCNTENCLR0_EL0, Activity Monitors Count Enable Clear Register 0, EL0
0b1 EL2, EL1 and EL0 accesses to all activity monitor registers are trapped to EL3.
• The ACTLR_EL2.TAM (trap activity monitor access) bit traps non-secure EL1 and EL0
accesses to all activity monitor registers to EL2.
0b0 Non-secure accesses from EL1 and EL0 to activity monitor registers are not
trapped to EL2.
0b1 Non-secure accesses from EL1 and EL0 to activity monitor registers are trapped to
EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-541
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.5 AMCNTENCLR1_EL0, Activity Monitors Count Enable Clear Register 1, EL0
31 3 2 0
RAZ/WI P
RAZ/WI, [31:3]
Read-As-Zero, Writes Ignored
P<n>, [2:0]
AMEVCNTR1<0-2>_EL0 disable bit. The possible values are:
0 When this bit is read, the activity counter n is disabled. When it is written, it has no
effect.
1 When this bit is read, the activity counter n is enabled. When it is written, it disables
the activity counter n.
Configurations
There are no configuration notes.
Usage constraints
Accessing AMCNTENCLR1_EL0
To access AMCNTENCLR1_EL0:
MRS <Xt>, AMCNTENCLR1_EL0 ; Read AMCNTENCLR1_EL0 into Xt
3 3 c15 c3 0
AMCNTENCLR1_EL0 can be accessed through the external debug interface, offset 0xC24. In
this case, it is read-only.
This register is accessible as follows:
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-542
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.5 AMCNTENCLR1_EL0, Activity Monitors Count Enable Clear Register 1, EL0
0b0 EL2, EL1 and EL0 accesses to all activity monitor registers are not trapped to EL3.
0b1 EL2, EL1 and EL0 accesses to all activity monitor registers are trapped to EL3.
• The ACTLR_EL2.TAM (trap activity monitor access) bit traps non-secure EL1 and EL0
accesses to all activity monitor registers to EL2.
0b0 Non-secure accesses from EL1 and EL0 to activity monitor registers are not
trapped to EL2.
0b1 Non-secure accesses from EL1 and EL0 to activity monitor registers are trapped to
EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-543
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.6 AMCNTENSET0_EL0, Activity Monitors Count Enable Set Register 0, EL0
31 4 3 0
RAZ/WI P<n>
RAZ/WI, [31:4]
Read-As-Zero, Writes Ignored
P<n>, [3:0]
AMEVCNTR0<0-3>_EL0 enable bit. The possible values are:
0 When this bit is read, the activity counter n is disabled. When it is written, it has no
effect.
1 When this bit is read, the activity counter n is enabled. When it is written, it enables
the activity counter n.
Configurations
There are no configuration notes.
Usage constraints
Accessing AMCNTENSET0_EL0
To access AMCNTENSET0_EL0:
MRS <Xt>, AMCNTENSET0_EL0 ; Read AMCNTENSET0_EL0 into Xt
3 3 c15 c2 5
AMCNTENSET0_EL0 can be accessed through the external debug interface, offset 0xC00. In
this case, it is read-only.
This register is accessible as follows:
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-544
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.6 AMCNTENSET0_EL0, Activity Monitors Count Enable Set Register 0, EL0
0b1 EL2, EL1 and EL0 accesses to all activity monitor registers are trapped to EL3.
• The ACTLR_EL2.TAM (trap activity monitor access) bit traps non-secure EL1 and EL0
accesses to all activity monitor registers to EL2.
0b0 Non-secure accesses from EL1 and EL0 to activity monitor registers are not
trapped to EL2.
0b1 Non-secure accesses from EL1 and EL0 to activity monitor registers are trapped to
EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-545
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.7 AMCNTENSET1_EL0, Activity Monitors Count Enable Set Register 1, EL0
31 3 2 0
RAZ/WI P
RAZ/WI, [31:3]
Read-As-Zero, Writes Ignored
P<n>, [2:0]
AMEVCNTR1<0-2>_EL0 enable bit. The possible values are:
0 When this bit is read, the activity counter n is disabled. When it is written, it has no
effect.
1 When this bit is read, the activity counter n is enabled. When it is written, it enables
the activity counter n.
Configurations
There are no configuration notes.
Usage constraints
Accessing AMCNTENSET1_EL0
To access AMCNTENSET1_EL0:
MRS <Xt>, AMCNTENSET1_EL0 ; Read AMCNTENSET1_EL0 into Xt
3 3 c15 c3 1
AMCNTENSET1_EL0 can be accessed through the external debug interface, offset 0xC04. In
this case, it is read-only.
This register is accessible as follows:
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-546
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.7 AMCNTENSET1_EL0, Activity Monitors Count Enable Set Register 1, EL0
0b0 EL2, EL1 and EL0 accesses to all activity monitor registers are not trapped to EL3.
0b1 EL2, EL1 and EL0 accesses to all activity monitor registers are trapped to EL3.
• The ACTLR_EL2.TAM (trap activity monitor access) bit traps non-secure EL1 and EL0
accesses to all activity monitor registers to EL2.
0b0 Non-secure accesses from EL1 and EL0 to activity monitor registers are not
trapped to EL2.
0b1 Non-secure accesses from EL1 and EL0 to activity monitor registers are trapped to
EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-547
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.8 AMCR_EL0, Activity Monitors Control Register, EL0
31 11 10 9
RAZ/WI
HDBG
RES0
RES0, [31:11]
Reserved, RES0.
HDBG, [10]
This bit controls whether activity monitor counting is halted when the core is halted in debug
state.
0b0 Activity Monitors do not stop counting when the core is stopped in debug state.
0b1 Activity Monitors stop counting when the core is stopped in debug state.
RAZ/WI, [9:0]
Read-As-Zero, Writes Ignored.
Configurations
There are no configuration notes.
Usage constraints
Accessing AMCR_EL0
To access AMCR_EL0:
MRS <Xt>, AMCR_EL0 ; Read AMCR_EL0 into Xt
3 3 c15 c2 0
AMCR_EL0 can be accessed through the external debug interface, offset 0xE04. In this case, it
is read-only.
This register is accessible as follows:
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-548
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.8 AMCR_EL0, Activity Monitors Control Register, EL0
The following control bits for traps on accesses to activity monitor registers are introduced:
• The ACTLR_EL3.TAM (trap activity monitor access) bit traps EL2, EL1 and EL0 accesses
to all activity monitor registers to EL3, from both security states.
0b0 EL2, EL1 and EL0 accesses to all activity monitor registers are not trapped to EL3.
0b1 EL2, EL1 and EL0 accesses to all activity monitor registers are trapped to EL3.
• The ACTLR_EL2.TAM (trap activity monitor access) bit traps non-secure EL1 and EL0
accesses to all activity monitor registers to EL2.
0b0 Non-secure accesses from EL1 and EL0 to activity monitor registers are not
trapped to EL2.
0b1 Non-secure accesses from EL1 and EL0 to activity monitor registers are trapped to
EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-549
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.9 AMEVCNTR0n_EL0, Activity Monitors Event Counter Registers 0n, EL0
63 0
ACNT
ACNT, [63:0]
Value of the activity counter AMEVCNTR0n_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
There are no configuration notes.
Usage constraints
Accessing AMEVCNTR0n_EL0
To access AMEVCNTR0n_EL0:
MRS <Xt>, AMEVCNTR0n_EL0 ; Read AMEVCNTR0n_EL0 into Xt
3 3 c15 c4 <n>
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-550
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.9 AMEVCNTR0n_EL0, Activity Monitors Event Counter Registers 0n, EL0
0b1 EL2, EL1 and EL0 accesses to all activity monitor registers are trapped to EL3.
• The ACTLR_EL2.TAM (trap activity monitor access) bit traps non-secure EL1 and EL0
accesses to all activity monitor registers to EL2.
0b0 Non-secure accesses from EL1 and EL0 to activity monitor registers are not
trapped to EL2.
0b1 Non-secure accesses from EL1 and EL0 to activity monitor registers are trapped to
EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-551
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.10 AMEVCNTR1n_EL0, Activity Monitors Event Counter Registers 1n, EL0
63 0
ACNT
ACNT, [63:0]
Value of the activity counter AMEVCNTR1n_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
There are no configuration notes.
Usage constraints
Accessing AMEVCNTR1n_EL0
To access AMEVCNTR1n_EL0:
MRS <Xt>, AMEVCNTR1n_EL0 ; Read AMEVCNTR1n_EL0 into Xt
3 3 c15 c12 n
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-552
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.10 AMEVCNTR1n_EL0, Activity Monitors Event Counter Registers 1n, EL0
0b1 EL2, EL1 and EL0 accesses to all activity monitor registers are trapped to EL3.
• The ACTLR_EL2.TAM (trap activity monitor access) bit traps non-secure EL1 and EL0
accesses to all activity monitor registers to EL2.
0b0 Non-secure accesses from EL1 and EL0 to activity monitor registers are not
trapped to EL2.
0b1 Non-secure accesses from EL1 and EL0 to activity monitor registers are trapped to
EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-553
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.11 AMEVTYPER0n_EL0, Activity Monitors Event Type Registers 0n, EL0
31 25 24 16 15 0
RAZ evtCount
RES0
RAZ/WI, [31:25]
Read-As-Zero, Writes Ignored.
RES0, [24:16]
Reserved, RES0.
evtCount, [15:0]
The event the counter monitors might be fixed at implementation. In this case, the field is read-
only. See C3.4 AMU events on page C3-427.
Configurations
There are no configuration notes.
Usage constraints
Accessing AMEVTYPER0n_EL0
To access AMEVTYPER0n_EL0:
MRS <Xt>, AMEVTYPER0n_EL0 ; Read AMEVTYPER0n_EL0 into Xt
3 3 c15 c6 <n>
AMEVTYPER0n_EL0 can be accessed through the external debug interface, offset 0x400+4n.
In this case, it is read-only.
This register is accessible as follows:
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-554
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.11 AMEVTYPER0n_EL0, Activity Monitors Event Type Registers 0n, EL0
0b0 EL2, EL1 and EL0 accesses to all activity monitor registers are not trapped to EL3.
0b1 EL2, EL1 and EL0 accesses to all activity monitor registers are trapped to EL3.
• The ACTLR_EL2.TAM (trap activity monitor access) bit traps non-secure EL1 and EL0
accesses to all activity monitor registers to EL2.
0b0 Non-secure accesses from EL1 and EL0 to activity monitor registers are not
trapped to EL2.
0b1 Non-secure accesses from EL1 and EL0 to activity monitor registers are trapped to
EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-555
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.12 AMEVTYPER1n_EL0, Activity Monitors Event Type Registers 1n, EL0
31 25 24 16 15 0
RAZ evtCount
RES0
RAZ/WI, [31:25]
Read-As-Zero, Writes Ignored.
RES0, [24:16]
Reserved, RES0.
evtCount, [15:0]
The event the counter monitors might be fixed at implementation. In this case, the field is read-
only. See C3.4 AMU events on page C3-427.
Configurations
There are no configuration notes.
Usage constraints
Accessing AMEVTYPER1n_EL0
To access AMEVTYPER1n_EL0:
MRS <Xt>, AMEVTYPER1n_EL0 ; Read AMEVTYPER1n_EL0 into Xt
3 3 c15 c14 n
AMEVTYPER1n_EL0 can be accessed through the external debug interface, offset 0x480+4n.
In this case, it is read-only.
This register is accessible as follows:
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-556
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.12 AMEVTYPER1n_EL0, Activity Monitors Event Type Registers 1n, EL0
0b0 EL2, EL1 and EL0 accesses to all activity monitor registers are not trapped to EL3.
0b1 EL2, EL1 and EL0 accesses to all activity monitor registers are trapped to EL3.
• The ACTLR_EL2.TAM (trap activity monitor access) bit traps non-secure EL1 and EL0
accesses to all activity monitor registers to EL2.
0b0 Non-secure accesses from EL1 and EL0 to activity monitor registers are not
trapped to EL2.
0b1 Non-secure accesses from EL1 and EL0 to activity monitor registers are trapped to
EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-557
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.13 AMUSERENR_EL0, Activity Monitors User Enable Register, EL0
31 4 3 1 0
RAZ/WI
EN
RES0
RES0, [31:4]
Reserved, RES0.
RAZ/WI, [3:1]
Read-As-Zero, Writes Ignored.
EN, [0]
Traps EL0 accesses to the activity monitor registers to EL1. The possible values are:
0 EL0 accesses to the activity monitor registers are trapped to EL1.
1 EL0 accesses to the activity monitor registers are not trapped to EL1. Software can
access all activity monitor registers at EL0.
Configurations
There are no configuration notes.
Usage constraints
Accessing AMUSERENR_EL0
To access AMUSERENR_EL0:
MRS <Xt>, AMUSERENR_EL0 ; Read AMUSERENR_EL0 into Xt
3 3 c15 c2 3
RO RO RO RO
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-558
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.13 AMUSERENR_EL0, Activity Monitors User Enable Register, EL0
The following control bits for traps on accesses to activity monitor registers are introduced:
• The ACTLR_EL3.TAM (trap activity monitor access) bit traps EL2, EL1 and EL0 accesses
to all activity monitor registers to EL3, from both security states.
0b0 EL2, EL1 and EL0 accesses to all activity monitor registers are not trapped to EL3.
0b1 EL2, EL1 and EL0 accesses to all activity monitor registers are trapped to EL3.
• The ACTLR_EL2.TAM (trap activity monitor access) bit traps non-secure EL1 and EL0
accesses to all activity monitor registers to EL2.
0b0 Non-secure accesses from EL1 and EL0 to activity monitor registers are not
trapped to EL2.
0b1 Non-secure accesses from EL1 and EL0 to activity monitor registers are trapped to
EL2.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D8-559
reserved.
Non-Confidential
D8 AArch64 AMU registers
D8.13 AMUSERENR_EL0, Activity Monitors User Enable Register, EL0
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. D8-560
Non-Confidential
Chapter D9
Memory-mapped AMU registers
This chapter describes the memory-mapped AMU registers. The memory-mapped interface provides
read-only access to the AMU registers via the external debug interface.
It contains the following sections:
• D9.1 Memory-mapped AMU register summary on page D9-562.
• D9.2 AMCIDR0, Activity Monitors Component Identification Register 0 on page D9-564.
• D9.3 AMCIDR1, Activity Monitors Component Identification Register 1 on page D9-565.
• D9.4 AMCIDR2, Activity Monitors Component Identification Register 2 on page D9-566.
• D9.5 AMCIDR3, Activity Monitors Component Identification Register 3 on page D9-567.
• D9.6 AMDEVAFF0, Activity Monitors Device Affinity Register 0 on page D9-568.
• D9.7 AMDEVAFF1, Activity Monitors Device Affinity Register 1 on page D9-569.
• D9.8 AMDEVARCH, Activity Monitors Device Architecture Register on page D9-570.
• D9.9 AMDEVTYPE, Activity Monitors Device Type Register on page D9-571.
• D9.10 AMIIDR, Activity Monitors Implementation Identification Register on page D9-572.
• D9.11 AMPIDR0, Activity Monitors Peripheral Identification Register 0 on page D9-573.
• D9.12 AMPIDR1, Activity Monitors Peripheral Identification Register 1 on page D9-574.
• D9.13 AMPIDR2, Activity Monitors Peripheral Identification Register 2 on page D9-575.
• D9.14 AMPIDR3, Activity Monitors Peripheral Identification Register 3 on page D9-576.
• D9.15 AMPIDR4, Activity Monitors Peripheral Identification Register 4 on page D9-577.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-561
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.1 Memory-mapped AMU register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-562
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.1 Memory-mapped AMU register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-563
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.2 AMCIDR0, Activity Monitors Component Identification Register 0
31 8 7 0
PRMBL_0
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_0, [7:0]
0x0D Preamble byte 0.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The AMCIDR0 can be accessed through the external debug interface, offset 0xFF0.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-564
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.3 AMCIDR1, Activity Monitors Component Identification Register 1
31 8 7 4 3 0
CLASS PRMBL_1
RES0
RES0, [31:8]
RES0 Reserved.
CLASS, [7:4]
0x9 CoreSight component.
PRMBL_1, [3:0]
0x0 Preamble.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDCIDR1 can be accessed through the external debug interface, offset 0xFF4.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-565
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.4 AMCIDR2, Activity Monitors Component Identification Register 2
31 8 7 0
PRMBL_2
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_2, [7:0]
0x05 Preamble byte 2.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The EDCIDR2 can be accessed through the external debug interface, offset 0xFF8.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-566
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.5 AMCIDR3, Activity Monitors Component Identification Register 3
31 8 7 0
PRMBL_3
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_3, [7:0]
0xB1 Preamble byte 3.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The AMCIDR3 can be accessed through the external debug interface, offset 0xFFC.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-567
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.6 AMDEVAFF0, Activity Monitors Device Affinity Register 0
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-568
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.7 AMDEVAFF1, Activity Monitors Device Affinity Register 1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-569
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.8 AMDEVARCH, Activity Monitors Device Architecture Register
PRESENT
ARCHITECT, [31:21]
Defines the architect of the component:
[31:28] 0x4, Arm JEP continuation.
[27:21] 0x3B, Arm JEP 106 code.
PRESENT, [20]
Indicates the presence of this register:
0b1 Register is present.
REVISION, [19:16]
Architecture revision:
0x00 Architecture revision 1.
ARCHID, [15:0]
Architecture ID:
0x0A66 AMU architecture version AMUv1.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The AMDEVARCH can be accessed through the external debug interface, offset 0xFBC.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-570
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.9 AMDEVTYPE, Activity Monitors Device Type Register
31 8 7 4 3 0
SUB MAJOR
RES0
RES0, [31:8]
RES0 Reserved.
SUB, [7:4]
The sub-type of the component:
0x1 Indicates this is a component within a core.
MAJOR, [3:0]
The main type of the component:
0x6 Indicates this is a performance monitor component.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The AMDEVTYPE can be accessed through the external debug interface, offset 0xFCC.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-571
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.10 AMIIDR, Activity Monitors Implementation Identification Register
31 20 19 16 15 12 11 0
ProductID, [31:20]
Indicates the AMU part identifier. This value is:
0xD41 The AMU part number
Variant, [19:16]
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:
0x1 r1p1
Revision, [15:12]
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 r1p1
Implementer, [11:0]
Indicates the JEP106 code of the company that implemented the AMU. This value is:
0x43B Bits [11:8] contain the JEP106 continuation code of the implementer.
Bit [7] is RES0.
Bits [6:0] contain the JEP106 identity code of the implementer.
Bit fields and details that are not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The AMIIDR can be accessed through the external debug interface, offset 0xE08.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-572
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.11 AMPIDR0, Activity Monitors Peripheral Identification Register 0
31 8 7 0
Part_0
RES0
RES0, [31:8]
RES0 Reserved.
Part_0, [7:0]
0x41 Least significant byte of the AMU part number.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The AMPIDR0 can be accessed through the external debug interface, offset 0xFE0.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-573
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.12 AMPIDR1, Activity Monitors Peripheral Identification Register 1
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 bits[3:0] of JEP106 ID code.
Part_1, [3:0]
0xD Most significant four bits of the AMU part number.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The AMPIDR1 can be accessed through the external debug interface, offset 0xFE4.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-574
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.13 AMPIDR2, Activity Monitors Peripheral Identification Register 2
31 8 7 4 3 2 0
Revision DES_1
JEDEC
RES0
RES0, [31:8]
RES0 Reserved
Revision, [7:4]
0x1 r1p1
JEDEC, [3]
0b1 RES1. Indicates a JEP106 identity code is used.
DES_1, [2:0]
0b011 Arm Limited. This is bits[6:4] of JEP106 ID code.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The AMPIDR2 can be accessed through the external debug interface, offset 0xFE8.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-575
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.14 AMPIDR3, Activity Monitors Peripheral Identification Register 3
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 Not customer modified.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The AMPIDR3 can be accessed through the external debug interface, offset 0xFEC.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-576
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.15 AMPIDR4, Activity Monitors Peripheral Identification Register 4
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 bits[3:0] of the JEP106 continuation code.
Bit fields and details not provided in this description are architecturally defined. See the Arm®
Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The AMPIDR4 can be accessed through the external debug interface, offset 0xFD0.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D9-577
reserved.
Non-Confidential
D9 Memory-mapped AMU registers
D9.15 AMPIDR4, Activity Monitors Peripheral Identification Register 4
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. D9-578
Non-Confidential
Chapter D10
ETM registers
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-579
reserved.
Non-Confidential
D10 ETM registers
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-580
reserved.
Non-Confidential
D10 ETM registers
D10.1 ETM register summary
0x020 TRCEVENTCTL0R RW UNK D10.26 TRCEVENTCTL0R, Event Control 0 Register on page D10-615
0x024 TRCEVENTCTL1R RW UNK D10.27 TRCEVENTCTL1R, Event Control 1 Register on page D10-617
0x030 TRCTSCTLR RW UNK D10.72 TRCTSCTLR, Global Timestamp Control Register
on page D10-668
0x034 TRCSYNCPR RW UNK D10.70 TRCSYNCPR, Synchronization Period Register
on page D10-666
0x038 TRCCCCTLR RW UNK D10.7 TRCCCCTLR, Cycle Count Control Register on page D10-592
0x03C TRCBBCTLR RW UNK D10.6 TRCBBCTLR, Branch Broadcast Control Register
on page D10-591
0x040 TRCTRACEIDR RW UNK D10.71 TRCTRACEIDR, Trace ID Register on page D10-667
0x080 TRCVICTLR RW UNK D10.73 TRCVICTLR, ViewInst Main Control Register
on page D10-669
0x084 TRCVIIECTLR RW UNK D10.74 TRCVIIECTLR, ViewInst Include-Exclude Control Register
on page D10-671
0x088 TRCVISSCTLR RW UNK D10.75 TRCVISSCTLR, ViewInst Start-Stop Control Register
on page D10-672
0x100 TRCSEQEVR0 RW UNK D10.64 TRCSEQEVRn, Sequencer State Transition Control Registers
0-2 on page D10-659
0x104 TRCSEQEVR1 RW UNK D10.64 TRCSEQEVRn, Sequencer State Transition Control Registers
0-2 on page D10-659
0x108 TRCSEQEVR2 RW UNK D10.64 TRCSEQEVRn, Sequencer State Transition Control Registers
0-2 on page D10-659
0x118 TRCSEQRSTEVR RW UNK D10.65 TRCSEQRSTEVR, Sequencer Reset Control Register
on page D10-661
0x11C TRCSEQSTR RW UNK D10.66 TRCSEQSTR, Sequencer State Register on page D10-662
0x120 TRCEXTINSELR RW UNK D10.28 TRCEXTINSELR, External Input Select Register
on page D10-618
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-581
reserved.
Non-Confidential
D10 ETM registers
D10.1 ETM register summary
0x200 TRCRSCTLRn RW UNK D10.63 TRCRSCTLRn, Resource Selection Control Registers 2-16
on page D10-658, n is 2, 15
0x280 TRCSSCCR0 RW UNK D10.67 TRCSSCCR0, Single-Shot Comparator Control Register 0
on page D10-663
0x2A0 TRCSSCSR0 RW UNK D10.68 TRCSSCSR0, Single-Shot Comparator Status Register 0
on page D10-664
0x300 TRCOSLAR WO 0x00000001 D10.52 TRCOSLAR, OS Lock Access Register on page D10-647
0x304 TRCOSLSR RO 0x0000000A D10.53 TRCOSLSR, OS Lock Status Register on page D10-648
0x310 TRCPDCR RW 0x00000000 D10.54 TRCPDCR, Power Down Control Register on page D10-649
0x314 TRCPDSR RO 0x00000023 D10.55 TRCPDSR, Power Down Status Register on page D10-650
0x400 TRCACVRn RW UNK D10.3 TRCACVRn, Address Comparator Value Registers 0-7
on page D10-587
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-582
reserved.
Non-Confidential
D10 ETM registers
D10.1 ETM register summary
0xFA8 TRCDEVAFF0 RO UNK D10.21 TRCDEVAFF0, Device Affinity Register 0 on page D10-610
0xFAC TRCDEVAFF1 RO UNK D10.22 TRCDEVAFF1, Device Affinity Register 1 on page D10-611
0xFB0 TRCLAR WO UNK D10.49 TRCLAR, Software Lock Access Register on page D10-644
0xFB4 TRCLSR RO 0x00000000 D10.50 TRCLSR, Software Lock Status Register on page D10-645
0xFCC TRCDEVTYPE RO 0x00000013 D10.25 TRCDEVTYPE, Device Type Register on page D10-614
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-583
reserved.
Non-Confidential
D10 ETM registers
D10.1 ETM register summary
0xFD4-0xFDC TRCPIDRn RO 0x00000000 D10.61 TRCPIDRn, ETM Peripheral Identification Registers 5-7
on page D10-656
0xFF0 TRCCIDR0 RO 0x0000000D D10.10 TRCCIDR0, ETM Component Identification Register 0
on page D10-595
0xFF4 TRCCIDR1 RO 0x00000090 D10.11 TRCCIDR1, ETM Component Identification Register 1
on page D10-596
0xFF8 TRCCIDR2 RO 0x00000005 D10.12 TRCCIDR2, ETM Component Identification Register 2
on page D10-597
0xFFC TRCCIDR3 RO 0x000000B1 D10.13 TRCCIDR3, ETM Component Identification Register 3
on page D10-598
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-584
reserved.
Non-Confidential
D10 ETM registers
D10.2 TRCACATRn, Address Comparator Access Type Registers 0-7
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:
0 The trace unit can perform a comparison, in Non-secure state, for Exception level n.
1 The trace unit does not perform a comparison, in Non-secure state, for Exception level
n.
EXLEVEL_S, [11:8]
Each bit controls whether a comparison can occur in Secure state for the corresponding
Exception level. The possible values are:
0 The trace unit can perform a comparison, in Secure state, for Exception level n.
1 The trace unit does not perform a comparison, in Secure state, for Exception level n.
RES0, [7:4]
RES0 Reserved.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-585
reserved.
Non-Confidential
D10 ETM registers
D10.2 TRCACATRn, Address Comparator Access Type Registers 0-7
TYPE, [1:0]
Type of comparison:
0b00 Instruction address, RES0.
Bit fields and details not provided in this description are architecturally defined. See the Arm® Embedded
Trace Macrocell Architecture Specification ETMv4.
The TRCACATRn can be accessed through the external debug interface, offset 0x480-0x4B8.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-586
reserved.
Non-Confidential
D10 ETM registers
D10.3 TRCACVRn, Address Comparator Value Registers 0-7
ADDRESS
ADDRESS, [63:0]
The address value to compare against.
Bit fields and details not provided in this description are architecturally defined. See the Arm® Embedded
Trace Macrocell Architecture Specification ETMv4.
The TRCACVRn can be accessed through the external debug interface, offset 0x400-0x43C.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-587
reserved.
Non-Confidential
D10 ETM registers
D10.4 TRCAUTHSTATUS, Authentication Status Register
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:
0b10 Secure Non-invasive Debug implemented but disabled.
0b11 Secure Non-invasive Debug implemented and enabled.
SID, [5:4]
Secure Invasive Debug:
0b00 Secure Invasive Debug is not implemented.
NSNID, [3:2]
Non-secure Non-invasive Debug:
0b10 Non-secure Non-invasive Debug implemented but disabled, NIDEN=0.
0b11 Non-secure Non-invasive Debug implemented and enabled, NIDEN=1.
NSID, [1:0]
Non-secure Invasive Debug:
0b00 Non-secure Invasive Debug is not implemented.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-588
reserved.
Non-Confidential
D10 ETM registers
D10.5 TRCAUXCTLR, Auxiliary Control Register
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:
0 Trace flush on debug state entry is enabled.
1 Trace flush on debug state entry is disabled.
CIFOVERRIDE, [7]
Override core interface register repeater clock enable. The possible values are:
0 Core interface clock gate is enabled.
1 Core interface clock gate is disabled.
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:
0 Core interface buffer overflows are disabled.
1 Core interface buffer overflows are enabled.
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]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-589
reserved.
Non-Confidential
D10 ETM registers
D10.5 TRCAUXCTLR, Auxiliary Control Register
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:
0 No FIFO overflow when SYNC packets are delayed.
1 Forces FIFO overflow when SYNC packets are delayed.
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.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-590
reserved.
Non-Confidential
D10 ETM registers
D10.6 TRCBBCTLR, Branch Broadcast Control Register
31 9 8 7 0
RANGE
MODE
RES0
RES0, [31:9]
RES0 Reserved.
MODE, [8]
Mode bit:
0 Exclude mode. Branch broadcasting is not enabled in the address range that RANGE
defines.
If RANGE==0 then branch broadcasting is enabled for the entire memory map.
1 Include mode. Branch broadcasting is enabled in the address range that RANGE
defines.
If RANGE==0 then the behavior of the trace unit is CONSTRAINED UNPREDICTABLE. That
is, the trace unit might or might not consider any instructions to be in a branch
broadcast region.
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:
0 The address range that address range comparator pair n defines, is not selected.
1 The address range that address range comparator pair n defines, is selected.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-591
reserved.
Non-Confidential
D10 ETM registers
D10.7 TRCCCCTLR, Cycle Count Control Register
31 12 11 0
THRESHOLD
RES0
RES0, [31:12]
RES0 Reserved.
THRESHOLD, [11:0]
Instruction trace cycle count threshold.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-592
reserved.
Non-Confidential
D10 ETM registers
D10.8 TRCCIDCCTLR0, Context ID Comparator Control Register 0
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:
0 The trace unit includes the relevant byte in TRCCIDCVR0 when it performs the
Context ID comparison.
1 The trace unit ignores the relevant byte in TRCCIDCVR0 when it performs the
Context ID comparison.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-593
reserved.
Non-Confidential
D10 ETM registers
D10.9 TRCCIDCVR0, Context ID Comparator Value Register 0
63 32 31 0
Value
RES0
RES0, [63:32]
RES0 Reserved.
VALUE, [31:0]
The data value to compare against.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-594
reserved.
Non-Confidential
D10 ETM registers
D10.10 TRCCIDR0, ETM Component Identification Register 0
31 8 7 0
PRMBL_0
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_0, [7:0]
0x0D Preamble byte 0.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-595
reserved.
Non-Confidential
D10 ETM registers
D10.11 TRCCIDR1, ETM Component Identification Register 1
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-596
reserved.
Non-Confidential
D10 ETM registers
D10.12 TRCCIDR2, ETM Component Identification Register 2
31 8 7 0
PRMBL_2
RES0
RES0, [31:8]
RES0 Reserved
PRMBL_2, [7:0]
0x05 Preamble byte 2
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-597
reserved.
Non-Confidential
D10 ETM registers
D10.13 TRCCIDR3, ETM Component Identification Register 3
31 8 7 0
PRMBL_3
RES0
RES0, [31:8]
RES0 Reserved.
PRMBL_3, [7:0]
0xB1 Preamble byte 3.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-598
reserved.
Non-Confidential
D10 ETM registers
D10.14 TRCCLAIMCLR, Claim Tag Clear Register
31 4 3 0
CLR
RES0
RES0, [31:4]
RES0 Reserved.
CLR, [3:0]
On reads, for each bit:
0 Claim tag bit is not set.
1 Claim tag bit is set.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-599
reserved.
Non-Confidential
D10 ETM registers
D10.15 TRCCLAIMSET, Claim Tag Set Register
31 4 3 0
SET
RES0
RES0, [31:4]
RES0 Reserved.
SET, [3:0]
On reads, for each bit:
0 Claim tag bit is not implemented.
1 Claim tag bit is implemented.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-600
reserved.
Non-Confidential
D10 ETM registers
D10.16 TRCCNTCTLR0, Counter Control Register 0
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.
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:
0 Single selected resource.
1 Boolean combined resource pair.
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:
0 Single selected resource.
1 Boolean combined resource pair.
RES0, [6:4]
RES0 Reserved.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-601
reserved.
Non-Confidential
D10 ETM registers
D10.16 TRCCNTCTLR0, Counter Control Register 0
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-602
reserved.
Non-Confidential
D10 ETM registers
D10.17 TRCCNTCTLR1, Counter Control Register 1
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:
0 The counter operates independently from the counter. The counter only decrements
based on CNTTYPE and CNTSEL.
1 The counter decrements when the counter reloads. The counter also decrements when
the resource selected by CNTTYPE and CNTSEL is active.
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:
0 Single selected resource.
1 Boolean combined resource pair.
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:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-603
reserved.
Non-Confidential
D10 ETM registers
D10.17 TRCCNTCTLR1, Counter Control Register 1
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-604
reserved.
Non-Confidential
D10 ETM registers
D10.18 TRCCNTRLDVRn, Counter Reload Value Registers 0-1
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-605
reserved.
Non-Confidential
D10 ETM registers
D10.19 TRCCNTVRn, Counter Value Registers 0-1
31 16 15 0
VALUE
RES0
RES0, [31:16]
RES0 Reserved.
VALUE, [15:0]
Contains the current counter value.
Bit fields and details 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:
TRCCNTVR0
0x160.
TRCCNTVR1
0x164.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-606
reserved.
Non-Confidential
D10 ETM registers
D10.20 TRCCONFIGR, Trace Configuration Register
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]
Read-As-Zero (RAZ). Data value tracing is not supported.
DA, [16]
RAZ. Data address tracing is not supported.
VMIDOPT, [15]
Configures the Virtual context identifier value used by the trace unit, both for trace generation
and in the Virtual context identifier comparators. The possible values are:
0b0 VTTBR_EL2.VMID is used. If the trace unit supports a Virtual context identifier
larger than the VTTBR_EL2.VMID, the upper unused bits are always zero. If the trace
unit supports a Virtual context identifier larger than 8 bits and if the VTCR_EL2.VS
bit forces use of an 8-bit Virtual context identifier, bits [15:8] of the trace unit Virtual
context identifier are always zero.
0b1 CONTEXTIDR_EL2 is used. TRCIDR2.VMIDOPT indicates whether this field is
implemented.
QE, [14:13]
Enables Q element. The possible values are:
0b00 Q elements are disabled.
0b01 Q elements with instruction counts are disabled. Q elements without instruction counts
are disabled.
0b10 Reserved
0b11 Q elements with and without instruction counts are enabled.
RS, [12]
Enables the return stack. The possible values are:
0 Disables the return stack.
1 Enables the return stack.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-607
reserved.
Non-Confidential
D10 ETM registers
D10.20 TRCCONFIGR, Trace Configuration Register
TS, [11]
Enables global timestamp tracing. The possible values are:
0 Disables global timestamp tracing.
1 Enables global timestamp tracing.
COND, [10:8]
Enables conditional instruction tracing. The possible values are:
0b000 Conditional instruction tracing is disabled.
0b001 Conditional load instructions are traced.
0b010 Conditional store instructions are traced.
0b011 Conditional load and store instructions are traced.
0b111 All conditional instructions are traced.
VMID, [7]
Enables VMID tracing. The possible values are:
0 Disables VMID tracing.
1 Enables VMID tracing.
CID, [6]
Enables context ID tracing. The possible values are:
0 Disables context ID tracing.
1 Enables context ID tracing.
RES0, [5]
RES0 Reserved
CCI, [4]
Enables cycle counting instruction trace. The possible values are:
0 Disables cycle counting instruction trace.
1 Enables cycle counting instruction trace.
BB, [3]
Enables branch broadcast mode. The possible values are:
0 Disables branch broadcast mode.
1 Enables branch broadcast mode.
INSTP0, [2:1]
Controls whether load and store instructions are traced as P0 instructions. The possible values
are:
0b00 Load and store instructions are not traced as P0 instructions.
0b01 Load instructions are traced as P0 instructions.
0b10 Store instructions are traced as P0 instructions.
0b11 Load and store instructions are traced as P0 instructions.
RES1, [0]
RES1 Reserved
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-608
reserved.
Non-Confidential
D10 ETM registers
D10.20 TRCCONFIGR, Trace Configuration Register
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-609
reserved.
Non-Confidential
D10 ETM registers
D10.21 TRCDEVAFF0, Device Affinity Register 0
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-610
reserved.
Non-Confidential
D10 ETM registers
D10.22 TRCDEVAFF1, Device Affinity Register 1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-611
reserved.
Non-Confidential
D10 ETM registers
D10.23 TRCDEVARCH, Device Architecture Register
PRESENT
ARCHITECT, [31:21]
Defines the architect of the component:
[31:28] 0x4, Arm JEP continuation.
[27:21] 0x3B, Arm JEP 106 code.
PRESENT, [20]
Indicates the presence of this register:
0b1 Register is present.
REVISION, [19:16]
Architecture revision:
0x02 Architecture revision 2.
ARCHID, [15:0]
Architecture ID:
0x4A13 ETMv4 component.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-612
reserved.
Non-Confidential
D10 ETM registers
D10.24 TRCDEVID, Device ID Register
DEVID
DEVID, [31:0]
RAZ. There are no component-defined capabilities.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-613
reserved.
Non-Confidential
D10 ETM registers
D10.25 TRCDEVTYPE, Device Type Register
31 8 7 4 3 0
SUB MAJOR
RES0
RES0, [31:8]
RES0 Reserved.
SUB, [7:4]
The sub-type of the component:
0b0001 Core trace.
MAJOR, [3:0]
The main type of the component:
0b0011 Trace source.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-614
reserved.
Non-Confidential
D10 ETM registers
D10.26 TRCEVENTCTL0R, Event Control 0 Register
31 30 28 27 24 23 22 20 19 16 15 14 12 11 8 7 6 4 3 0
RES0
TYPE3, [31]
Selects the resource type for trace event 3:
0 Single selected resource.
1 Boolean combined resource pair.
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:
0 Single selected resource.
1 Boolean combined resource pair.
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:
0 Single selected resource.
1 Boolean combined resource pair.
RES0, [14:12]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-615
reserved.
Non-Confidential
D10 ETM registers
D10.26 TRCEVENTCTL0R, Event Control 0 Register
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].
TYPE0, [7]
Selects the resource type for trace event 0:
0 Single selected resource.
1 Boolean combined resource pair.
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-616
reserved.
Non-Confidential
D10 ETM registers
D10.27 TRCEVENTCTL1R, Event Control 1 Register
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:
0 Low-power state behavior unaffected.
1 Low-power state behavior overridden. The resources and Event trace generation are
unaffected by entry to a low-power state.
ATB, [11]
ATB trigger enable:
0 ATB trigger disabled.
1 ATB trigger enabled.
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:
0 Event does not cause an event element.
1 Event causes an event element.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-617
reserved.
Non-Confidential
D10 ETM registers
D10.28 TRCEXTINSELR, External Input Select Register
SEL3, [31:24]
Selects an event from the external input bus for External Input Resource 3.
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-618
reserved.
Non-Confidential
D10 ETM registers
D10.29 TRCIDR0, ID Register 0
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:
0b01000 Implementation supports a maximum global timestamp of 64 bits.
RES0, [23:17]
RES0 Reserved.
QSUPP, [16:15]
Indicates Q element support:
0b00 Q elements not supported.
QFILT, [14]
Indicates Q element filtering support:
0b0 Q element filtering not supported.
CONDTYPE, [13:12]
Indicates how conditional results are traced:
0b00 Conditional trace not supported.
NUMEVENT, [11:10]
Number of events supported in the trace, minus 1:
0b11 Four events supported.
RETSTACK, [9]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-619
reserved.
Non-Confidential
D10 ETM registers
D10.29 TRCIDR0, ID Register 0
RES0, [8]
RES0 Reserved.
TRCCCI, [7]
Support for cycle counting in the instruction trace:
1 Cycle counting in the instruction trace is implemented.
TRCCOND, [6]
Support for conditional instruction tracing:
0 Conditional instruction tracing is not supported.
TRCBB, [5]
Support for branch broadcast tracing:
1 Branch broadcast tracing is implemented.
TRCDATA, [4:3]
Conditional tracing field:
0b00 Tracing of data addresses and data values is not implemented.
INSTP0, [2:1]
P0 tracing support field:
0b00 Tracing of load and store instructions as P0 elements is not supported.
RES1, [0]
RES1 Reserved.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-620
reserved.
Non-Confidential
D10 ETM registers
D10.30 TRCIDR1, ID Register 1
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
RES1, [15:12]
RES1 Reserved
TRCARCHMAJ, [11:8]
Major trace unit architecture version number:
4 ETMv4
TRCARCHMIN, [7:4]
Minor trace unit architecture version number:
0x2 ETMv4.2
REVISION, [3:0]
Trace unit implementation revision number:
0x2 ETM revision for r1p1
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-621
reserved.
Non-Confidential
D10 ETM registers
D10.31 TRCIDR2, ID Register 2
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 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:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-622
reserved.
Non-Confidential
D10 ETM registers
D10.31 TRCIDR2, ID Register 2
IASIZE, [4:0]
Instruction address size in bytes:
0x8 Maximum of 64-bit address size
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-623
reserved.
Non-Confidential
D10 ETM registers
D10.32 TRCIDR3, ID Register 3
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:
0 TRCSTALLCTLR.NOOVERFLOW is not implemented.
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:
0 The system does not support core stall control.
STALLCTL, [26]
Indicates whether TRCSTALLCTLR is implemented:
0 TRCSTALLCTLR is not implemented.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-624
reserved.
Non-Confidential
D10 ETM registers
D10.32 TRCIDR3, ID Register 3
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:
0x004 Instruction trace cycle counting minimum threshold is 4.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-625
reserved.
Non-Confidential
D10 ETM registers
D10.33 TRCIDR4, ID Register 4
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:
0x1 One VMID comparator is available.
NUMCIDC, [27:24]
Indicates the number of CID comparators available for tracing:
0x1 One Context ID comparator is available.
NUMSSCC, [23:20]
Indicates the number of single-shot comparator controls available for tracing:
0x1 One single-shot comparator control is available.
NUMRSPAIRS, [19:16]
Indicates the number of resource selection pairs available for tracing:
0x7 Eight resource selection pairs are available.
NUMPC, [15:12]
Indicates the number of core comparator inputs available for tracing:
0x0 Core comparator inputs are not implemented.
RES0, [11:9]
RES0 Reserved.
SUPPDAC, [8]
Indicates whether the implementation supports data address comparisons: This value is:
0 Data address comparisons are not implemented.
NUMDVC, [7:4]
Indicates the number of data value comparators available for tracing:
0x0 Data value comparators not implemented.
NUMACPAIRS, [3:0]
Indicates the number of address comparator pairs available for tracing:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-626
reserved.
Non-Confidential
D10 ETM registers
D10.33 TRCIDR4, ID Register 4
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-627
reserved.
Non-Confidential
D10 ETM registers
D10.34 TRCIDR5, ID Register 5
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
REDFUNCNTR, [31]
Reduced Function Counter implemented:
0 Reduced Function Counter not implemented
NUMCNTR, [30:28]
Number of counters implemented:
0b010 Two counters implemented
NUMSEQSTATE, [27:25]
Number of sequencer states implemented:
0b100 Four sequencer states implemented
RES0, [24]
RES0 Reserved
LPOVERRIDE, [23]
Low-power state override support:
0 Low-power state override support not implemented
ATBTRIG, [22]
ATB trigger support:
1 ATB trigger support implemented
TRACEIDSIZE, [21:16]
Number of bits of trace ID:
0x07 Seven-bit trace ID implemented
RES0, [15:12]
RES0 Reserved
NUMEXTINSEL, [11:9]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-628
reserved.
Non-Confidential
D10 ETM registers
D10.34 TRCIDR5, ID Register 5
NUMEXTIN, [8:0]
Number of external inputs implemented:
0xD6 32 external inputs implemented.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-629
reserved.
Non-Confidential
D10 ETM registers
D10.35 TRCIDR8, ID Register 8
MAXSPEC
MAXSPEC, [31:0]
The maximum number of P0 elements in the trace stream that can be speculative at any time.
0 Maximum speculation depth of the instruction trace stream.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-630
reserved.
Non-Confidential
D10 ETM registers
D10.36 TRCIDR9, ID Register 9
NUMP0KEY
NUMP0KEY, [31:0]
The number of P0 right-hand keys that the trace unit can use.
0 Number of P0 right-hand keys.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-631
reserved.
Non-Confidential
D10 ETM registers
D10.37 TRCIDR10, ID Register 10
NUMP1KEY
NUMP1KEY, [31:0]
The number of P1 right-hand keys that the trace unit can use.
0 Number of P1 right-hand keys.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-632
reserved.
Non-Confidential
D10 ETM registers
D10.38 TRCIDR11, ID Register 11
NUMP1SPC
NUMP1SPC, [31:0]
The number of special P1 right-hand keys that the trace unit can use.
0 Number of special P1 right-hand keys.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-633
reserved.
Non-Confidential
D10 ETM registers
D10.39 TRCIDR12, ID Register 12
NUMCONDKEY
NUMCONDKEY, [31:0]
The number of conditional instruction right-hand keys that the trace unit can use, including
normal and special keys.
0 Number of conditional instruction right-hand keys.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-634
reserved.
Non-Confidential
D10 ETM registers
D10.40 TRCIDR13, ID Register 13
NUMCONDSPC
NUMCONDSPC, [31:0]
The number of special conditional instruction right-hand keys that the trace unit can use,
including normal and special keys.
0 Number of special conditional instruction right-hand keys.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-635
reserved.
Non-Confidential
D10 ETM registers
D10.41 TRCIMSPEC0, IMPLEMENTATION SPECIFIC Register 0
31 4 3 0
RES0 SUPPORT
RES0, [31:4]
RES0 Reserved
SUPPORT, [3:0]
0 No IMPLEMENTATION SPECIFIC extensions supported
Bit fields and details 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.
Note
System register accesses to the TRCIMSPEC0R will result in an UNDEF exception.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-636
reserved.
Non-Confidential
D10 ETM registers
D10.42 TRCITATBCTR0, Trace Integration Test ATB Control Register 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-637
reserved.
Non-Confidential
D10 ETM registers
D10.43 TRCITATBCTR1, Trace Integration Test ATB Control Register 1
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-638
reserved.
Non-Confidential
D10 ETM registers
D10.44 TRCITATBCTR2, Trace Integration Test ATB Control Register 2
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-639
reserved.
Non-Confidential
D10 ETM registers
D10.45 TRCITATBDATA0, Trace Integration Test ATB Data Register 0
31 5 4 3 2 1 0
ATDATAM[31]
RES0 ATDATAM[23]
ATDATAM[15]
ATDATAM[7]
ATDATAM[0]
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-640
reserved.
Non-Confidential
D10 ETM registers
D10.46 TRCITCTRL, Trace Integration Mode Control register
31 1 0
IME
RES0
IME, [0]
Integration mode enable bit. The possible values are:
0b0 The trace unit is not in integration mode.
0b1 The trace unit is in integration mode. This mode enables:
• A debug agent to perform topology detection.
• SoC test software to perform integration testing.
Usage constraints
• Accessible only from the memory-mapped interface or from an external agent such as a
debugger.
• 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-641
reserved.
Non-Confidential
D10 ETM registers
D10.47 TRCITMISCIN, Trace Integration Miscellaneous Input Register
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-642
reserved.
Non-Confidential
D10 ETM registers
D10.48 TRCITMISCOUT, Trace Integration Miscellaneous Outputs Register
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-643
reserved.
Non-Confidential
D10 ETM registers
D10.49 TRCLAR, Software Lock Access Register
31 0
RAZ/WI
RAZ/WI, [31:0]
Read-As-Zero, write ignore.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-644
reserved.
Non-Confidential
D10 ETM registers
D10.50 TRCLSR, Software Lock Status Register
31 0
RAZ/WI
RAZ/WI, [31:0]
Read-As-Zero, write ignore.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-645
reserved.
Non-Confidential
D10 ETM registers
D10.51 TRCCNTVRn, Counter Value Registers 0-1
31 16 15 0
VALUE
RES0
RES0, [31:16]
RES0 Reserved.
VALUE, [15:0]
Contains the current counter value.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-646
reserved.
Non-Confidential
D10 ETM registers
D10.52 TRCOSLAR, OS Lock Access Register
31 1 0
RES0 OSLK
RES0, [31:1]
RES0 Reserved.
OSLK, [0]
OS Lock key value:
0 Unlock the OS Lock.
1 Lock the OS Lock.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-647
reserved.
Non-Confidential
D10 ETM registers
D10.53 TRCOSLSR, OS Lock Status Register
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:
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-648
reserved.
Non-Confidential
D10 ETM registers
D10.54 TRCPDCR, Power Down Control Register
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:
0 Power not requested.
1 Power requested.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-649
reserved.
Non-Confidential
D10 ETM registers
D10.55 TRCPDSR, Power Down Status Register
31 6 5 4 2 1 0
OSLK
RES0 STICKYPD
POWER
RES0, [31:6]
RES0 Reserved.
OSLK, [5]
OS lock status.
0 The OS Lock is unlocked.
1 The OS Lock is locked.
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.
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.
If a system implementation allows the ETM trace unit to be powered off independently of the
debug power domain, the system must handle accesses to the ETM trace unit appropriately.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-650
reserved.
Non-Confidential
D10 ETM registers
D10.56 TRCPIDR0, ETM Peripheral Identification Register 0
31 8 7 0
Part_0
RES0
RES0, [31:8]
RES0 Reserved.
Part_0, [7:0]
0x41 Least significant byte of the ETM trace unit part number.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-651
reserved.
Non-Confidential
D10 ETM registers
D10.57 TRCPIDR1, ETM Peripheral Identification Register 1
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 bits[3:0] of JEP106 ID code.
Part_1, [3:0]
0xD Most significant four bits of the ETM trace unit part number.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-652
reserved.
Non-Confidential
D10 ETM registers
D10.58 TRCPIDR2, ETM Peripheral Identification Register 2
31 8 7 4 3 2 0
Revision DES_1
JEDEC
RES0
RES0, [31:8]
RES0 Reserved
Revision, [7:4]
0x2 r1p1
JEDEC, [3]
0b1 RES1. Indicates a JEP106 identity code is used.
DES_1, [2:0]
0b011 Arm Limited. This is bits[6:4] of JEP106 ID code.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-653
reserved.
Non-Confidential
D10 ETM registers
D10.59 TRCPIDR3, ETM Peripheral Identification Register 3
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 Not customer modified
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-654
reserved.
Non-Confidential
D10 ETM registers
D10.60 TRCPIDR4, ETM Peripheral Identification Register 4
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 bits[3:0] of the JEP106 continuation code.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-655
reserved.
Non-Confidential
D10 ETM registers
D10.61 TRCPIDRn, ETM Peripheral Identification Registers 5-7
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-656
reserved.
Non-Confidential
D10 ETM registers
D10.62 TRCPRGCTLR, Programming Control Register
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 not provided in this description are architecturally defined. See the Arm® Embedded
Trace Macrocell Architecture Specification ETMv4.
The TRCPRGCTLR can be accessed through the external debug interface, offset 0x004.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-657
reserved.
Non-Confidential
D10 ETM registers
D10.63 TRCRSCTLRn, Resource Selection Control Registers 2-16
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:
0 Resource is not inverted.
1 Resource is inverted.
RES0, [19]
RES0 Reserved.
GROUP, [18:16]
Selects a group of resources. See the Arm® ETM Architecture Specification, ETMv4 for more
information.
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 not provided in this description are architecturally defined. See the Arm® Embedded
Trace Macrocell Architecture Specification ETMv4.
The TRCRSCTLRn can be accessed through the external debug interface, offset 0x208-0x023C.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-658
reserved.
Non-Confidential
D10 ETM registers
D10.64 TRCSEQEVRn, Sequencer State Transition Control Registers 0-2
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:
0 Single selected resource.
1 Boolean combined resource pair.
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:
0 Single selected resource.
1 Boolean combined resource pair.
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 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:
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-659
reserved.
Non-Confidential
D10 ETM registers
D10.64 TRCSEQEVRn, Sequencer State Transition Control Registers 0-2
TRCSEQEVR0
0x100.
TRCSEQEVR1
0x104.
TRCSEQEVR2
0x108.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-660
reserved.
Non-Confidential
D10 ETM registers
D10.65 TRCSEQRSTEVR, Sequencer Reset Control Register
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:
0 Single selected resource.
1 Boolean combined resource pair.
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-661
reserved.
Non-Confidential
D10 ETM registers
D10.66 TRCSEQSTR, Sequencer State Register
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-662
reserved.
Non-Confidential
D10 ETM registers
D10.67 TRCSSCCR0, Single-Shot Comparator Control Register 0
31 25 24 23 20 19 16 15 8 7 0
ARC SAC
RST
RES0
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:
1 Reset enabled. Multiple matches can occur.
RES0, [23:20]
RES0 Reserved.
ARC, [19:16]
Selects one or more address range comparators for single-shot control.
One bit is provided for each implemented address range comparator.
RES0, [15:8]
RES0 Reserved.
SAC, [7:0]
Selects one or more single address comparators for single-shot control.
One bit is provided for each implemented single address comparator.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-663
reserved.
Non-Confidential
D10 ETM registers
D10.68 TRCSSCSR0, Single-Shot Comparator Status Register 0
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:
0 Match has not occurred.
1 Match has occurred at least once.
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:
0 Single-shot data value comparisons not supported.
DA, [1]
Data address comparator support:
0 Single-shot data address comparisons not supported.
INST, [0]
Instruction address comparator support:
1 Single-shot instruction address comparisons supported.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-664
reserved.
Non-Confidential
D10 ETM registers
D10.69 TRCSTATR, Status Register
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:
0 The programmers model is not stable.
1 The programmers model is stable.
IDLE, [0]
Idle status:
0 The ETM trace unit is not idle.
1 The ETM trace unit is idle.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-665
reserved.
Non-Confidential
D10 ETM registers
D10.70 TRCSYNCPR, Synchronization Period Register
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-666
reserved.
Non-Confidential
D10 ETM registers
D10.71 TRCTRACEIDR, Trace ID Register
31 7 6 0
TRACEID
RES0
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-667
reserved.
Non-Confidential
D10 ETM registers
D10.72 TRCTSCTLR, Global Timestamp Control Register
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:1]
Identifies the resource selector to use.
Bit fields and details not provided in this description are architecturally defined. See the Arm® Embedded
Trace Macrocell Architecture Specification ETMv4.
The TRCTSCTLR can be accessed through the external debug interface, offset 0x030.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-668
reserved.
Non-Confidential
D10 ETM registers
D10.73 TRCVICTLR, ViewInst Main Control Register
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:
0 Trace unit generates instruction trace, in Non-secure state, for Exception level n.
1 Trace unit does not generate instruction trace, in Non-secure state, for Exception level
n.
EXLEVEL_S, [19:16]
In Secure state, each bit controls whether instruction tracing is enabled for the corresponding
Exception level:
0 Trace unit generates instruction trace, in Secure state, for Exception level n.
1 Trace unit does not generate instruction trace, in Secure state, for Exception level n.
RES0, [15:12]
RES0 Reserved.
TRCERR, [11]
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-669
reserved.
Non-Confidential
D10 ETM registers
D10.73 TRCVICTLR, ViewInst Main Control Register
TRCRESET, [10]
Selects whether a reset exception must always be traced:
0 Reset exception is traced only if the instruction or exception immediately before the
reset exception is traced.
1 Reset exception is always traced regardless of the value of ViewInst.
SSSTATUS, [9]
Indicates the current status of the start/stop logic:
0 Start/stop logic is in the stopped state.
1 Start/stop logic is in the started state.
RES0, [8]
RES0 Reserved.
TYPE, [7]
Selects the resource type for the viewinst event:
0 Single selected resource.
1 Boolean combined resource pair.
RES0, [6:4]
RES0 Reserved.
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 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-670
reserved.
Non-Confidential
D10 ETM registers
D10.74 TRCVIIECTLR, ViewInst Include-Exclude Control Register
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.
Selecting no include comparators indicates that all instructions must be included. The exclude
control indicates which ranges must be excluded.
One bit is provided for each implemented Address Range Comparator.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-671
reserved.
Non-Confidential
D10 ETM registers
D10.75 TRCVISSCTLR, ViewInst Start-Stop Control Register
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.
One bit is provided for each implemented single address comparator.
RES0, [15:8]
RES0 Reserved.
START, [7:0]
Defines the single address comparators to start trace with the ViewInst Start/Stop control.
One bit is provided for each implemented single address comparator.
Bit fields and details not provided in this description are architecturally defined. See the Arm® Embedded
Trace Macrocell Architecture Specification ETMv4.
The TRCVISSCTLR can be accessed through the external debug interface, offset 0x088.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-672
reserved.
Non-Confidential
D10 ETM registers
D10.76 TRCVMIDCVR0, VMID Comparator Value Register 0
63 32 31 0
VALUE
RES0
RES0, [63:32]
RES0 Reserved.
VALUE, [31:0]
The VMID value.
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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-673
reserved.
Non-Confidential
D10 ETM registers
D10.77 TRCVMIDCCTLR0, Virtual context identifier Comparator Control Register 0
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:
0 The trace unit includes the relevant byte in TRCVMIDCVR0 when it performs the
Virtual context ID comparison.
1 The trace unit ignores the relevant byte in TRCVMIDCVR0 when it performs the
Virtual context ID comparison.
Bit fields and details 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.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D10-674
reserved.
Non-Confidential
Chapter D11
SPE registers
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D11-675
reserved.
Non-Confidential
D11 SPE registers
D11.1 SPE register summary
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights D11-676
reserved.
Non-Confidential
Part E
Appendices
Appendix A
Cortex®-A78 Core AArch32 UNPREDICTABLE
behaviors
This appendix describes the cases in which the Cortex‑A78 core implementation diverges from the
preferred behavior described in Armv8 AArch32 UNPREDICTABLE behaviors.
It contains the following sections:
• A.1 Use of R15 by Instruction on page Appx-A-680.
• A.2 Load/Store accesses crossing page boundaries on page Appx-A-681.
• A.3 Armv8 Debug UNPREDICTABLE behaviors on page Appx-A-682.
• A.4 Other UNPREDICTABLE behaviors on page Appx-A-685.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-A-679
reserved.
Non-Confidential
A Cortex®-A78 Core AArch32 UNPREDICTABLE behaviors
A.1 Use of R15 by Instruction
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-A-680
reserved.
Non-Confidential
A Cortex®-A78 Core AArch32 UNPREDICTABLE behaviors
A.2 Load/Store accesses crossing page boundaries
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-A-681
reserved.
Non-Confidential
A Cortex®-A78 Core AArch32 UNPREDICTABLE behaviors
A.3 Armv8 Debug UNPREDICTABLE behaviors
Note
This section does not describe the behavior when a topic only has a single option and the core
implements the preferred behavior.
Scenario Behavior
A32 BKPT instruction with condition code not The core implements the following preferred option:
AL • Executed unconditionally.
Address match breakpoint match only on second The core generates a breakpoint on the instruction if CPSR.IL=0. In the case of
halfword of an instruction CPSR.IL=1, the core does not generate a breakpoint exception.
Address matching breakpoint on A32 instruction The core implements the following option:
with DBGBCRn.BAS=1100 • Does match if CPSR.IL=0.
Address match breakpoint match on T32 The core implements the following option:
instruction at DBGBCRn+2 with • Does match.
DBGBCRn.BAS=1111
Link to non-existent breakpoint or breakpoint that The core implements the following option:
is not context-aware • No Breakpoint or Watchpoint debug event is generated, and the LBN field of
the linker reads UNKNOWN.
Address match breakpoint with The core implements the following option:
DBGBCRn_EL1.BAS=0000 • As if disabled.
A32 HLT instruction with condition code not AL The core implements the following option:
• Executed unconditionally.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-A-682
reserved.
Non-Confidential
A Cortex®-A78 Core AArch32 UNPREDICTABLE behaviors
A.3 Armv8 Debug UNPREDICTABLE behaviors
Scenario Behavior
Exiting Debug state while instruction issued The core implements the following option:
through EDITR is in flight • The instruction completes in Debug state before executing the restart.
Using memory-access mode with a non-word- The core behaves as indicated in the sole Preference:
aligned address • Does unaligned accesses, faulting if these are not permitted for the memory
type.
Access to memory-mapped registers mapped to The core behaves as indicated in the sole Preference:
Normal memory • The access is generated, and accesses might be repeated, gathered, split or
resized, in accordance with the rules for Normal memory, meaning the effect is
UNPREDICTABLE.
Not word-sized accesses or (AArch64 only) The core behaves as indicated in the sole Preference:
doubleword-sized accesses • Reads occur and return UNKNOWN data.
• Writes set the accessed register(s) to UNKNOWN.
>
External debug write to register that is being reset The core behaves as indicated in the sole Preference:
• Takes reset value.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-A-683
reserved.
Non-Confidential
A Cortex®-A78 Core AArch32 UNPREDICTABLE behaviors
A.3 Armv8 Debug 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.
The actual behavior is:
1. For reserved debug registers in the address range 0x000-0xCFC and
Performance Monitors registers in the address range 0x000, the response is
either CONSTRAINED UNPREDICTABLE Error or RES0 when any of the following
errors occurs:
Off
The core power domain is either completely off or in a low-power
state where the core power domain registers cannot be accessed.
DLK
DoubleLockStatus() is TRUE and OS double-lock is locked
(EDPRSR.DLK is 1).
OSLK
OS lock is locked (OSLSR_EL1.OSLK is 1).
2. For reserved debug registers in the address ranges 0x400-0x4FC and
0x800-0x8FC, the response is CONSTRAINED UNPREDICTABLE Error or RES0
when the conditions in 1 do not apply and the following error occurs:
EDAD
AllowExternalDebugAccess() is FALSE. External debug
access is disabled.
3. For reserved Performance Monitor registers in the address ranges
0x000-0x0FC and 0x400-0x47C, the response is either CONSTRAINED
UNPREDICTABLE Error, or RES0 when the conditions in 1 and 2 do not apply,
and the following error occurs:
EPMAD
AllowExternalPMUAccess() is FALSE. External Performance
Monitors access is disabled.
Clearing the clear-after-read EDPRSR bits when The core behaves as indicated in the sole Preference:
Core power domain is on, and • Bits are not cleared to zero.
DoubleLockStatus() is TRUE
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-A-684
reserved.
Non-Confidential
A Cortex®-A78 Core AArch32 UNPREDICTABLE behaviors
A.4 Other UNPREDICTABLE behaviors
Scenario Description
CSSELR indicates a cache that If CSSELR indicates a cache that is not implemented, then on a read of the CCSIDR the behavior is
is not implemented. CONSTRAINED UNPREDICTABLE, and can be one of the following:
• The CCSIDR read is treated as NOP.
• The CCSIDR read is UNDEFINED.
• The CCSIDR read returns an UNKNOWN value (preferred).
HDCR.HPMN is set to 0, or to If HDCR.HPMN is set to 0, or to a value larger than PMCR.N, then the behavior in Non-secure EL0
a value larger than PMCR.N. and EL1 is CONSTRAINED UNPREDICTABLE, and one of the following must happen:
• The number of counters accessible is an UNKNOWN non-zero 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 On read of the instruction, the behavior is CONSTRAINED UNPREDICTABLE, and the instruction executes
with size==64. with the additional decode: size==32.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-A-685
reserved.
Non-Confidential
A Cortex®‑A78 Core AArch32 UNPREDICTABLE behaviors
A.4 Other UNPREDICTABLE behaviors
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights reserved. Appx-A-686
Non-Confidential
Appendix B
Revisions
This appendix describes the technical changes between released issues of this book.
It contains the following section:
• B.1 Revisions on page Appx-B-688.
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-B-687
reserved.
Non-Confidential
B Revisions
B.1 Revisions
B.1 Revisions
This appendix describes the technical changes between released issues of this book.
First release - -
Updated L1 cache encoding tables. A6.6.1 Encoding for L1 instruction cache tag, L1 instruction cache data, All revisions
L1 BTB, L1 GHB, L1 BIM, L1 TLB instruction, and L0 macro-op cache
data on page A6-84
A6.6.2 Encoding for L1 data cache tag, L1 data cache data, and L1 TLB
data on page A6-89
Updated MIDR_EL1 reset value. B2.4 AArch64 registers by functional group on page B2-143 r0p0
Added ACTLR_EL2.ACTLREN bit B2.6 ACTLR_EL2, Auxiliary Control Register, EL2 on page B2-152 All revisions
definition.
Updated CPUECTLR_EL1 register B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1 All revisions
description. on page B2-195
Updated CPUECTLR2_EL1 register B2.35 CPUECTLR2_EL1, CPU Extended Control Register2, EL1 All revisions
description. on page B2-203
Added CTR_EL0.IDC bit. B2.46 CTR_EL0, Cache Type Register, EL0 on page B2-225 All revisions
Updated PMU Events table. C2.3 PMU events on page C2-412 All revisions
Updated AMU Events table. C3.4 AMU events on page C3-427 All revisions
Added details for SPE. Chapter C5 Statistical Profiling Extension on page C5-439 All revisions
Updated PMCEID1 register description. D4.3 PMCEID1, Performance Monitors Common Event Identification All revisions
Register 1 on page D4-481
Added PMCEID2 register description. D4.4 PMCEID2, Performance Monitors Common Event Identification All revisions
Register 2 on page D4-484
Added PMMIR register description. D4.6 PMMIR, Performance Monitors Machine Identification Register All revisions
on page D4-489
D5.5 CPUPMMIR_EL1, Performance Monitors Machine Identification
Register, EL1 on page D5-503
D6.7 PMMIR, Performance Monitors Machine Identification Register
on page D6-515
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-B-688
reserved.
Non-Confidential
B Revisions
B.1 Revisions
Table B-2 Differences between Issue 0000-00 and Issue 0000-01 (continued)
Updated PMCEID0_EL0 register D5.2 PMCEID0_EL0, Performance Monitors Common Event All revisions
description. Identification Register 0, EL0 on page D5-494
Updated PMCEID1_EL0 register D5.3 PMCEID1_EL0, Performance Monitors Common Event All revisions
description. Identification Register 1, EL0 on page D5-498
Updated AArch 64 AMU register summary D8.1 AArch64 AMU register summary on page D8-534 All revisions
table.
Updated CPUAMCFGR_EL0.N bit field D8.2 AMCFGR_EL0, Activity Monitors Configuration Register, EL0 All revisions
definition. on page D8-536
Updated CPUAMCNTENCLR1_EL0 D8.5 AMCNTENCLR1_EL0, Activity Monitors Count Enable Clear All revisions
register description. Register 1, EL0 on page D8-542
Updated CPUAMCNTENSET1_EL0 D8.7 AMCNTENSET1_EL0, Activity Monitors Count Enable Set Register All revisions
register description. 1, EL0 on page D8-546
Added Memory-mapped AMU register Chapter D9 Memory-mapped AMU registers on page D9-561 All revisions
details.
Updated TRCLAR register description. D10.49 TRCLAR, Software Lock Access Register on page D10-644 All revisions
Updated TRCLSR register description. D10.50 TRCLSR, Software Lock Status Register on page D10-645 All revisions
Added register description for B2.31 CPUACTLR5_EL1, CPU Auxiliary Control Register 5, EL1 All revisions
CPUACTLR5_EL1. on page B2-189
Added register description for B2.32 CPUACTLR6_EL1, CPU Auxiliary Control Register 6, EL1 All revisions
CPUACTLR6_EL1. on page B2-191
Updated Instruction Register 0, Physical A6.6.4 Encoding for the L2 TLB on page A6-98 All revisions
Address row with additional information.
Provided additional information for error A8.7 Error injection on page A8-115 All revisions
injection.
Corrected behavior of ACTLR_EL2.TAM B2.6 ACTLR_EL2, Auxiliary Control Register, EL2 on page B2-152 All revisions
bit.
Corrected CCSIDR encodings. B2.23 CCSIDR_EL1, Cache Size ID Register, EL1 on page B2-176 All revisions
Updated CPUECTLR_EL1 register B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1 r1p0
definition. on page B2-195
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-B-689
reserved.
Non-Confidential
B Revisions
B.1 Revisions
Table B-3 Differences between Issue 0000-01 and Issue 0100-02 (continued)
Corrected ID_AA64DFR0_EL1 register B2.67 ID_AA64DFR0_EL1, AArch64 Debug Feature Register 0, EL1 All revisions
definition. on page B2-250
Corrected ID_AA64MMFR2_EL1 register B2.73 ID_AA64MMFR2_EL1, AArch64 Memory Model Feature Register All revisions
definition. 2, EL1 on page B2-260
Corrected ERR0FR register definition. B3.4 ERR0FR, Error Record Feature Register on page B3-332 All revisions
Corrected ERR0PFGCTLR register B3.8 ERR0PFGCTLR, Error Pseudo Fault Generation Control Register All revisions
definition. on page B3-341
Updated EDPIDR0 register definition. D3.8 EDPIDR0, External Debug Peripheral Identification Register 0 r1p0
on page D3-468
Updated EDPIDR2 register definition. D3.10 EDPIDR2, External Debug Peripheral Identification Register 2 r1p0
on page D3-470
Corrected PMCR and PMCR_EL0 register D4.5 PMCR, Performance Monitors Control Register on page D4-486 All revisions
definitions.
D5.4 PMCR_EL0, Performance Monitors Control Register, EL0
on page D5-501
Corrected PMPIDR0 register definition. D6.8 PMPIDR0, Performance Monitors Peripheral Identification Register All revisions
0 on page D6-516
Updated PMPIDR2 register definition. D6.10 PMPIDR2, Performance Monitors Peripheral Identification r1p0
Register 2 on page D6-518
Corrected trace integration control register TRCITATBCTR0, Trace Integration Test ATB Control Register 0 All revisions
list.
TRCITATBCTR1, Trace Integration Test ATB Control Register 1
TRCITATBCTR2, Trace Integration Test ATB Control Register 2
TRCITATBDATA0, Trace Integration Test ATB Data Register 0
TRCITCTRL, Trace Integration Mode Control register
TRCITMISCIN, Trace Integration Miscellaneous Input Register
TRCITMISCOUT, Trace Integration Miscellaneous Outputs Register
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-B-690
reserved.
Non-Confidential
B Revisions
B.1 Revisions
Restructured tables to fix broken page A6.6 Direct access to internal memory on page A6-84 r1p0 and later
breaks. revisions
Updated CPUECTLR_EL1 register B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1 r1p0
definition. on page B2-195
Corrected ERR0MISC0.ARRAY bit field B3.5 ERR0MISC0, Error Record Miscellaneous Register 0 All revisions
definition. on page B3-334
Updated the section on debug recovery mode. A4.6.5 Debug recovery mode on page A4-58 r1p1
Updated the section on External aborts. A5.6.1 External aborts on page A5-72 r1p1
Updated the section on data cache A6.2.4 Data cache maintenance considerations on page A6-78 r1p1
maintenance considerations.
Updated the section on L2 unified cache. A6.6.3 Encoding for the L2 unified cache on page A6-94 r1p1
Updated L2 unified cache tables. A6.6.4 Encoding for the L2 TLB on page A6-98 r1p1
Updated bit field descriptions of B2.34 CPUECTLR_EL1, CPU Extended Control Register, EL1 r1p1
CPUECTLR_EL1 register. on page B2-195
Added CPUPPMCR_EL3 register. B2.42 CPUPPMCR_EL3, CPU Power Performance Management r1p1
Configuration Register, EL3 on page B2-217
Updated the ERR0MISC0 register. B3.5 ERR0MISC0, Error Record Miscellaneous Register 0 on page B3-334 r1p1
Updated table in AMU events section. C3.4 AMU events on page C3-427 r1p1
Updated PMU snapshot registers. Chapter D7 PMU snapshot registers on page D7-523 r1p1
Updated AArch64 AMU registers. Chapter D8 AArch64 AMU registers on page D8-533 r1p1
Updated TRCCONFIGR register. D10.20 TRCCONFIGR, Trace Configuration Register on page D10-607 r1p1
Updated TRCDEVARCH register. D10.23 TRCDEVARCH, Device Architecture Register on page D10-612 r1p1
Updated TRCEXTINSELR register. D10.28 TRCEXTINSELR, External Input Select Register on page D10-618 r1p1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-B-691
reserved.
Non-Confidential
B Revisions
B.1 Revisions
Updated EDPIDR2 register. D3.10 EDPIDR2, External Debug Peripheral Identification Register 2 on page D3-470 r1p1
Updated PMPIDR2 register. D6.10 PMPIDR2, Performance Monitors Peripheral Identification Register 2 r1p1
on page D6-518
Updated TRCPIDR2 register. D10.58 TRCPIDR2, ETM Peripheral Identification Register 2 on page D10-653 r1p1
101430_0101_05_en Copyright © 2018–2020 Arm Limited or its affiliates. All rights Appx-B-692
reserved.
Non-Confidential