DDI0488F Cortex A57 Mpcore TRM
DDI0488F Cortex A57 Mpcore TRM
Revision: r1p2
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 signed written agreement covering this
document with ARM, then the 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.
Words and logos marked with ® or ™ are registered trademarks or trademarks of ARM Limited or its affiliates in the EU 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/about/trademark-usage-guidelines.php
Copyright © [2013, 2014], 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 ...................................................... ...................................................... 9
Feedback .................................................................................................................... 13
Chapter 1 Introduction
1.1 About the Cortex-A57 processor ...................................... ...................................... 1-15
1.2 Compliance .............................................................................................................. 1-16
1.3 Features ......................................................... ......................................................... 1-18
1.4 Interfaces ........................................................ ........................................................ 1-19
1.5 Implementation options ............................................. ............................................. 1-20
1.6 Test features ............................................................................................................ 1-21
1.7 Product documentation and design flow .................................................................. 1-22
1.8 Product revisions .................................................. .................................................. 1-24
Chapter 10 Debug
10.1 About debug ........................................................................................................ 10-361
Appendix C Revisions
C.1 Revisions .................................................. .................................................. Appx-C-602
This preface introduces the ARM® Cortex®-A57 MPCore Processor Technical Reference Manual.
Intended audience
This document is written for system designers, system integrators, and programmers who are designing
or programming a System-on-Chip (SoC) that uses the Cortex-A57 processor.
This chapter describes the cross trigger interfaces for the Cortex-A57 processor.
Chapter 13 Embedded Trace Macrocell
This section describes the Embedded Trace Macrocell (ETM) for the Cortex-A57 processor.
Chapter 14 Advanced SIMD and Floating-point
This chapter describes the Advanced SIMD and Floating-point features and registers in the Cortex-A57
processor.
Appendix A Signal Descriptions
This section describes the Cortex-A57 processor signals.
Appendix B AArch32 Unpredictable Behaviors
This appendix describes specific Cortex-A57 processor UNPREDICTABLE behaviors that are of particular
interest.
Appendix C Revisions
This appendix describes the technical changes between released issues of this book.
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.
Lower-case n
At the start or end of a signal name 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® AMBA® APB Protocol Specification (ARM IHI 0024).
• ARM® AMBA® 3 ATB Protocol Specification (ARM IHI 0032).
• ARM® AMBA® AXI and ACE Protocol Specification (ARM IHI 0022).
• ARM® AMBA® AXI4-Stream Protocol Specification (ARM IHI 0051).
• ARM® Architecture Reference Manual ARMv8, for ARMv8-A architecture
profile (ARM DDI 0487).
• ARM® CoreSight™ SoC-400 Technical Reference Manual (ARM DII 0480).
• ARM® Debug Interface Architecture Specification ADIv5.0 to ADIv5.2 (ARM IHI 0031).
• ARM® Embedded Trace Macrocell Architecture Specification, ETMv4 (ARM IHI 0064).
• ARM® Generic Interrupt Controller Architecture Specification GICv3 (ARM IHI 0048).
The following confidential books are only available to licensees:
• ARM® CoreSight™ Architecture Specification (ARM IHI 0029).
• ARM® AMBA® 5 CHI Protocol Specification (ARM IHI 0050).
• ARM® Cortex®-A57 MPCore Processor Configuration and Sign-off Guide (ARM DII 0279).
• ARM® Cortex®-A57 MPCore Processor Integration Manual (ARM DII 0280).
• ARM® Cortex®-A57 MPCore Processor Cryptography Extension Technical Reference
Manual (ARM DDI 0514).
Other publications
• ANSI/IEEE, IEEE Standard for Binary Floating-Point Arithmetic, Std 754-1985.
• ANSI/IEEE, IEEE Standard for Floating-Point Arithmetic, Std 754-2008.
Feedback
Feedback on content
If you have comments on content then send an e-mail to [email protected]. Give:
• The title.
• The number ARM DDI0488F.
• 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.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 1-14
Non-Confidential
1 Introduction
1.1 About the Cortex-A57 processor
Cortex-A57 processor
Miscellaneous
L1 L1 L1 L1 L1 L1 L1 L1
TLBs TLBs TLBs TLBs
ICache DCache ICache DCache ICache DCache ICache DCache
Snoop
Slave Master Control L2 Cache
Unit
See 2.1.1 Components of the processor on page 2-27 for a description of the Cortex-A57 processor
functional components.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 1-15
Non-Confidential
1 Introduction
1.2 Compliance
1.2 Compliance
The Cortex-A57 processor complies with, or implements, the specifications described in this section.
This TRM complements architecture reference manuals, architecture specifications, protocol
specifications, and relevant external standards. It does not duplicate information from these sources.
This section contains the following subsections:
• 1.2.1 ARM architecture on page 1-16.
• 1.2.2 Advanced Microcontroller Bus Architecture (AMBA) on page 1-16.
• 1.2.3 CHI architecture on page 1-16.
• 1.2.4 Generic Interrupt Controller architecture on page 1-16.
• 1.2.5 Generic Timer architecture on page 1-17.
• 1.2.6 Debug architecture on page 1-17.
• 1.2.7 Embedded Trace Macrocell architecture on page 1-17.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 1-16
Non-Confidential
1 Introduction
1.2 Compliance
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 1-17
Non-Confidential
1 Introduction
1.3 Features
1.3 Features
The Cortex-A57 processor includes the following features:
• Full implementation of the ARMv8-A architecture profile. See 1.2 Compliance on page 1-16.
• Superscalar, variable-length, out-of-order pipeline.
• Dynamic branch prediction with Branch Target Buffer (BTB) and Global History Buffer (GHB)
RAMs, a return stack, and an indirect predictor.
• 48-entry fully-associative L1 instruction Translation Lookaside Buffer (TLB) with native support for
4KB, 64KB, and 1MB page sizes.
• 32-entry fully-associative L1 data TLB with native support for 4KB, 64KB, and 1MB page sizes.
• 4-way set-associative unified 1024-entry Level 2 (L2) TLB in each processor.
• Fixed 48K L1 instruction cache and 32K L1 data cache.
• Shared L2 cache of 512KB, 1MB, or 2MB configurable size.
• Fixed Error Correction Code (ECC) protection for L2 cache, and optional ECC protection for L1
data cache and parity protection for L1 instruction cache.
• AMBA 4 AXI Coherency Extensions (ACE) or CHI master interface.
• Accelerator Coherency Port (ACP) implemented as an AXI4 slave interface.
• Embedded Trace Macrocell (ETM) based on the ETMv4 architecture.
• Performance Monitor Unit (PMU) support based on the PMUv3 architecture.
• Cross Trigger Interface (CTI) for multiprocessor debugging.
• Optional Cryptography engine.
• Generic Interrupt Controller (GIC) CPU interface.
• Support for power management with multiple power domains.
Note
The optional Cryptography engine is not included in the base product of the Cortex-A57 processor. ARM
requires licensees to have contractual rights to obtain the Cortex-A57 processor Cryptography engine.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 1-18
Non-Confidential
1 Introduction
1.4 Interfaces
1.4 Interfaces
The Cortex-A57 processor has the following external interfaces:
• Memory interface that implements either an ACE or CHI interface.
• ACP that implements an AXI slave interface.
• GIC CPU interface that implements an AXI4-Stream interface
• Debug interface that implements an APB slave interface.
• Trace interface that implements an ATB interface.
• PMU interface.
• Generic Timer interface.
• Cross trigger interface.
• Power management interface.
• Design For Test (DFT).
• Memory Built-In Self Test (MBIST).
See 2.2 Interfaces on page 2-30 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 1-19
Non-Confidential
1 Introduction
1.5 Implementation options
Note
• All the cores share an integrated L2 cache and GIC CPU interface. Each core has the same
configuration for the Cryptography engine and L1 ECC or parity.
• The optional Cryptography engine is not included in the base product of the Cortex-A57 processor.
ARM requires licensees to have contractual rights to obtain the Cortex-A57 processor Cryptography
engine.
• The L2 Tag RAM register slice option adds register slices to the L2 Tag RAMs. The L2 Data RAM
register slice option adds register slices to the L2 Data RAMs. The following table lists valid
combinations of the L2 Tag RAM and L2 Data RAM register slice options.
Table 1-2 Valid combinations of L2 Tag and Data RAM register slice
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 1-20
Non-Confidential
1 Introduction
1.6 Test features
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 1-21
Non-Confidential
1 Introduction
1.7 Product documentation and design flow
1.7.1 Documentation
The Cortex-A57 processor documentation is as follows:
Technical Reference Manual
The Technical Reference Manual (TRM) describes the functionality and the effects of functional
options on the behavior of the processor. It is required at all stages of the design flow. The
choices made in the design flow can mean that some behavior described in the TRM is not
relevant. If you are programming the multiprocessor, additional information must be obtained
from:
• The implementer to determine the build configuration of the implementation.
• The integrator to determine the pin configuration of the device that you are using.
Note
• The out-of-order design of the Cortex-A57 processor pipeline makes it impossible to provide
accurate timing information for complex instructions. The timing of an instruction can be
affected by factors such as:
— Other concurrent instructions.
— Memory system activity.
— Events outside the instruction flow.
• Timing information has been provided in the past for some ARM processors to assist in the
hand tuning of performance critical code sequences or in the development of an instruction
scheduler within a compiler. This timing information is not required for producing optimized
instruction sequences on the Cortex-A57 processor. The out-of-order pipeline of the
processor can schedule and execute the instructions in an optimal fashion without any
instruction reordering required.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 1-22
Non-Confidential
1 Introduction
1.7 Product documentation and design flow
Integration Manual
The Integration Manual (IM) describes how to integrate the processor into an SoC. It describes
the signals that the integrator must tie off to configure the macrocell for the required integration.
Some of the implementation options might affect which integration options are available.
The IM is a confidential book that is only available to licensees.
Note
This manual refers to IMPLEMENTATION DEFINED features that apply to build configuration options.
Reference to a feature that is included means that the appropriate build and signal configuration options
have been selected. Reference to an enabled feature means that the feature has also been configured by
software.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 1-23
Non-Confidential
1 Introduction
1.8 Product revisions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 1-24
Non-Confidential
Chapter 2
Functional Description
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-25
Non-Confidential
2 Functional Description
2.1 About the Cortex-A57 processor functions
Trace Message
Debug output TimerEvents Interrupts interrupts
Cortex-A57 processor
APB ATB
AXI4-Stream
Miscellaneous
ACP Memory †
Depending on the implementation, this feature might not be available
interface
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-26
Non-Confidential
2 Functional Description
2.1 About the Cortex-A57 processor functions
Instruction fetch
The instruction fetch unit fetches instructions from L1 instruction cache and delivers up to three
instructions per cycle to the instruction decode unit. It supports dynamic and static branch prediction.
The instruction fetch unit includes:
• L1 instruction cache that is a 48KB 3-way set-associative cache with a 64-byte cache line and
optional dual-bit parity protection per 32 bits in the Data RAM and 36 bits in the Tag RAM.
• 48-entry fully-associative L1 instruction Translation Lookaside Buffer (TLB) with native support for
4KB, 64KB, and 1MB page sizes.
• 2-level dynamic predictor with Branch Target Buffer (BTB) for fast target generation.
• Static branch predictor.
• Indirect predictor.
• Return stack.
Instruction decode
The instruction decode unit decodes the following instruction sets:
• A32.
• T32.
• A64.
The instruction decode unit supports the A32, T32, and A64 Advanced SIMD and Floating-point
instruction sets. The instruction decode unit also performs register renaming to facilitate out-of-order
execution by removing Write-After-Write (WAW) and Write-After-Read (WAR) hazards.
Instruction dispatch
The instruction dispatch unit controls when the decoded instructions are dispatched to the execution
pipelines and when the returned results are retired. It includes:
• The ARM core general-purpose registers.
• The Advanced SIMD and Floating-point register set.
• The AArch32 CP15 and AArch64 System registers.
Integer execute
The integer execute unit includes:
• Two symmetric Arithmetic Logical Unit (ALU) pipelines.
• Integer multiply-accumulate and ALU pipeline.
• Iterative integer divide hardware.
• Branch and instruction condition codes resolution logic.
• Result forwarding and comparator logic.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-27
Non-Confidential
2 Functional Description
2.1 About the Cortex-A57 processor functions
Load/Store unit
The Load/Store (LS) execution unit executes load and store instructions and encompasses the L1 data
side memory system. It also services memory coherency requests from the L2 memory system.
The load/store unit includes:
• L1 data cache that is a 32KB 2-way set-associative cache with a 64-byte cache line and optional
Error Correction Code (ECC) protection per 32 bits.
• 32-entry fully-associative L1 data TLB with native support for 4KB, 64KB, and 1MB page sizes.
L2 memory system
The L2 memory system services L1 instruction and data cache misses from each processor. It manages
requests on the AMBA 4 AXI Coherency Extensions (ACE) or CHI master interface and the Accelerator
Coherency Port (ACP) slave interface.
The L2 memory system includes:
• L2 cache that is:
— 512KB, 1MB, or 2MB configurable size.
— 16-way set-associative cache with data ECC protection per 64 bits.
• Duplicate copy of L1 data cache Tag RAMs from each processor for handling snoop requests.
• 4-way set-associative of 1024-entry L2 TLB in each processor.
• Automatic hardware prefetcher with programmable instruction fetch and load/store data prefetch
distances.
Related information
7 Level 2 Memory System on page 7-315.
Note
The optional Cryptography engine is not included in the base product of the Cortex-A57 processor. ARM
requires licensees to have contractual rights to obtain the Cortex-A57 processor Cryptography engine.
Related information
14 Advanced SIMD and Floating-point on page 14-538.
Related information
8 Generic Interrupt Controller CPU Interface on page 8-335.
Generic Timer
The Generic Timer provides the ability to schedule events and trigger interrupts.
Related information
9 Generic Timer on page 9-355.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-28
Non-Confidential
2 Functional Description
2.1 About the Cortex-A57 processor functions
Related information
10 Debug on page 10-360.
11 Performance Monitor Unit on page 11-416.
12 Cross Trigger on page 12-457.
13 Embedded Trace Macrocell on page 13-481.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-29
Non-Confidential
2 Functional Description
2.2 Interfaces
2.2 Interfaces
This section describes the external interfaces within the Cortex-A57 processor.
This section contains the following subsections:
• 2.2.1 Memory interface on page 2-30.
• 2.2.2 Accelerator Coherency Port on page 2-30.
• 2.2.3 GIC CPU interface on page 2-30.
• 2.2.4 Debug interface on page 2-30.
• 2.2.5 Trace interface on page 2-31.
• 2.2.6 PMU interface on page 2-31.
• 2.2.7 Generic Timer interface on page 2-31.
• 2.2.8 Cross trigger interface on page 2-31.
• 2.2.9 Power management interface on page 2-31.
• 2.2.10 DFT on page 2-31.
• 2.2.11 MBIST on page 2-31.
Related information
10.10 External debug interface on page 10-402.
AMBA AXI and ACE Protocol Specification.
Related information
10.10 External debug interface on page 10-402.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-30
Non-Confidential
2 Functional Description
2.2 Interfaces
Related information
13.3 ETM functional description on page 13-485.
Related information
11 Performance Monitor Unit on page 11-416.
Related information
9 Generic Timer on page 9-355.
Related information
12 Cross Trigger on page 12-457.
Related information
Processor dynamic retention on page 2-48.
L2 RAMs dynamic retention on page 2-50.
2.2.10 DFT
The processor implements a Design For Test (DFT) interface that enables an industry-standard
Automatic Test Pattern Generation (ATPG) tool to test logic outside of the embedded memories.
Related information
A.16.1 DFT signals on page Appx-A-591.
ARM Cortex-A57 MPCore Processor Integration Manual.
2.2.11 MBIST
The Memory Built-In Self Test (MBIST) interface provides support for manufacturing testing of the
memories embedded in the Cortex-A57 processor. MBIST is the industry-standard method of testing
embedded memories. MBIST works by performing sequences of reads and writes to the memory based
on test algorithms.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-31
Non-Confidential
2 Functional Description
2.2 Interfaces
Related information
A.16 DFT and MBIST signals on page Appx-A-591.
ARM Cortex-A57 MPCore Processor Integration Manual.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-32
Non-Confidential
2 Functional Description
2.3 Clocking and resets
2.3.1 Clocks
The processor has the following clock inputs:
CLK
This is the main clock of the Cortex-A57 processor. All cores, the shared L2 memory system
logic, the GIC, and the Generic Timer are clocked with a distributed version of CLK.
PCLKDBG
This is the APB clock that controls the Debug APB, CTI, and CTM logic in the PCLKDBG
domain. PCLKDBG is asynchronous to CLK.
The processor has the following clock enable inputs:
ACLKENM
The AXI master interface is a synchronous AXI interface that can operate at any integer
multiple that is equal to or slower than the processor clock, CLK, using the ACLKENM signal.
For example, you can set the CLK to ACLKM frequency ratio to 1:1, 2:1, or 3:1, where
ACLKM is the AXI master clock. ACLKENM asserts one CLK cycle prior to the rising edge
of ACLKM. The CLK to ACLKM frequency ratio can be changed dynamically using
ACLKENM.
The following figure shows a timing example of ACLKENM that changes the CLK to
ACLKM frequency ratio from 3:1 to 1:1.
CLK
ACLKENM
Figure 2-2 ACLKENM with CLK:ACLKM ratio changing from 3:1 to 1:1
Note
• The previous figure shows the timing relationship between the AXI master clock, ACLKM
and ACLKENM, where ACLKENM asserts one CLK cycle before the rising edge of
ACLKM. It is important that the relationship between ACLKM and ACLKENM is
maintained.
• The input signal ACLKENM exists in the processor if it is configured to include the ACE
interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-33
Non-Confidential
2 Functional Description
2.3 Clocking and resets
SCLKEN
The CHI interface is a synchronous interface that can operate at any integer multiple that is
equal to or slower than the processor clock, CLK, using the SCLKEN signal. For example, you
can set the CLK to SCLK frequency ratio to 1:1, 2:1, or 3:1, where SCLK is the CHI clock.
SCLKEN asserts one CLK cycle prior to the rising edge of SCLK. The CLK to SCLK
frequency ratio can be changed dynamically using SCLKEN.
The following figure shows a timing example of SCLKEN that changes the CLK to SCLK
frequency ratio from 3:1 to 1:1.
CLK
SCLKEN
Figure 2-3 SCLKEN with CLK:SCLK ratio changing from 3:1 to 1:1
Note
• The previous figure shows the timing relationship between the CHI clock, SCLK and
SCLKEN, where SCLKEN asserts one CLK cycle before the rising edge of SCLK. It is
important that the relationship between SCLK and SCLKEN is maintained.
• The input signal SCLKEN exists in the processor if it is configured to include the CHI
interface.
ACLKENS
ACP is a synchronous AXI slave interface that can operate at any integer multiple that is equal
to or slower than the processor clock, CLK, using the ACLKENS signal. For example, the
CLK to ACLKS frequency ratio can be 1:1, 2:1, or 3:1, where ACLKS is the AXI slave clock.
ACLKENS asserts one CLK cycle before the rising edge of ACLKS. The CLK to ACLKS
frequency ratio can be changed dynamically using ACLKENS.
The following figure shows a timing example of ACLKENS that changes the CLK to ACLKS
frequency ratio from 3:1 to 1:1.
CLK
ACLKENS
Figure 2-4 ACLKENS with CLK:ACLKS ratio changing from 3:1 to 1:1
Note
The previous figure shows the timing relationship between the ACP clock, ACLKS and
ACLKENS, where ACLKENS asserts one CLK cycle before the rising edge of ACLKS. It is
important that the relationship between ACLKS and ACLKENS is maintained.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-34
Non-Confidential
2 Functional Description
2.3 Clocking and resets
PCLKENDBG
The Debug APB interface is an asynchronous interface that can operate at any integer multiple
that is equal to or slower than the APB clock, PCLKDBG, using the PCLKENDBG signal. For
example, the PCLKDBG to internal PCLKDBG frequency ratio can be 1:1, 2:1, or 3:1.
PCLKENDBG asserts one PCLKDBG cycle before the rising edge of the internal
PCLKDBG. The PCLKDBG to internal PCLKDBG frequency ratio can be changed
dynamically using PCLKENDBG.
The following figure shows a timing example of PCLKENDBG that changes the PCLKDBG
to internal PCLKDBG frequency ratio from 2:1 to 1:1.
PCLKDBG
PCLKENDBG
PCLKENDBG is HIGH, one
PCLKDBG cycle before the rising edge
of internal PCLKDBG
internal PCLKDBG
Figure 2-5 PCLKENDBG with PCLKDBG:internal PCLKDBG ratio changing from 2:1 to 1:1
ATCLKEN
The ATB interface is a synchronous interface that can operate at any integer multiple that is
slower than the processor clock, CLK, using the ATCLKEN signal. For example, the CLK to
ATCLK frequency ratio can be 2:1, 3:1, or 4:1, where ATCLK is the ATB bus clock.
ATCLKEN asserts three CLK cycles before the rising edge of ATCLK. Three CLK cycles are
required to allow propagation delay from the ATCLKEN input to the processor. The CLK to
ATCLK frequency ratio can be changed dynamically using ATCLKEN.
The following figure shows a timing example of ATCLKEN where the CLK to ATCLK
frequency ratio is 2:1.
3 CLK cycles
CLK
ATCLKEN
ATCLKEN asserts three CLK cycles
before the rising edge of ATCLK
ATCLK
CLK:ATCLK = 2:1
CNTCLKEN
The CNTVALUEB is a synchronous 64-bit binary encoded counter value that can operate at
any integer multiple that is equal to or slower than the processor clock, CLK, using the
CNTCLKEN signal. For example, you can set the CLK to CNTCLK frequency ratio to 1:1,
2:1, or 3:1, where CNTCLK is the system counter clock. CNTCLKEN asserts one CLK cycle
prior to the rising edge of CNTCLK.
The following figure shows a timing example of CNTCLKEN where the CLK to CNTCLK
frequency ratio is 2:1.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-35
Non-Confidential
2 Functional Description
2.3 Clocking and resets
CLK
CNTCLKEN
CNTCLKEN is HIGH, one CLK cycle
before the rising edge of CNTCLK
CNTCLK
CLK:CNTCLK = 2:1
CLKEN
This is the clock enable for all internal clocks in the processor that are derived from CLK. The
CLKEN signal must be asserted at least one cycle before applying CLK to the processor.
When all the cores and L2 are in WFI low-power state, you can place the processor in a low-
power state using the CLKEN input. Setting CLKEN LOW disables all of the internal clocks,
excluding the asynchronous Debug APB PCLKDBG domain.
Related information
L2 Wait for Interrupt on page 2-46.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-36
Non-Confidential
2 Functional Description
2.3 Clocking and resets
2.3.2 Resets
The Cortex-A57 processor has the following reset inputs:
nCPUPORESET[N:0]
Initializes the entire core logic, including Debug, ETM, breakpoint and watchpoint logic in the
processor CLK domain. Each core has one nCPUPORESET reset input.
nCORERESET[N:0]
Initializes the entire core but excludes the Debug, ETM, breakpoint and watchpoint logic. Each
core has one nCORERESET reset input.
nPRESETDBG
Initializes the shared Debug APB, CTI, and CTM logic in the PCLKDBG domain.
nL2RESET
Initializes the shared L2 memory system, GIC, and Timer logic.
nMBISTRESET
Performs an MBIST mode reset.
All resets are active-LOW inputs. The reset signals enable you to reset different areas of the processor
independently. The following table shows the areas of the processor controlled by the various reset
signals.
Reset signal Corec Debug and Debug APB, CTI, L2 memory Individual
(CLK) ETM (CLK) and CTM system, shared processor GIC
(PCLKDBG) GIC and Timer and Timer logic
logic
nCPUPORESET Reset Reset - - Reset
nCORERESET Reset - - - Reset
nPRESETDBG - - Reset - -
nL2RESET - - - Reset Reset
The following table shows the valid reset combinations the processor supports. The core which is being
reset is indicated by [n].
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-37
Non-Confidential
2 Functional Description
2.3 Clocking and resets
Individual core powerup nCPUPORESET[N:0] [n] = 0 Individual core in the CLK domain and Debug in the
reset with Debug PCLKDBG domain are held in reset, so that the core
nCORERESET[N:0] [n] = 0d
(PCLKDBG) reset and Debug PCLKDBG domain can be powered up.
nPRESETDBG 0
nL2RESET 1
nMBISTRESET 1
All core and L2 reset with nCPUPORESET[N:0] all = 0 All cores and L2 are held in reset, so they can be
Debug (PCLKDBG) active powered up. This enables external debug over
nCORERESET[N:0] all = 0d
powerdown for all cores.
nPRESETDBG 1
nL2RESET 0
nMBISTRESET 1
Individual core powerup nCPUPORESET[N:0] [n] = 0 Individual core is held in reset, so that the core can be
reset with Debug powered up. This enables external debug over
nCORERESET[N:0] [n] = 0d
(PCLKDBG) active powerdown for the processor that is held in reset.
nPRESETDBG 1
nL2RESET 1
nMBISTRESET 1
All cores Warm reset nCPUPORESET[N:0] all = 1 All logic, excluding Debug and ETM (CLK and
PCLKDBG) and L2, is held in reset. All breakpoints
nCORERESET[N:0] all = 0
and watchpoints are retained.
nPRESETDBG 1
nL2RESET 1
nMBISTRESET 1
All cores Warm reset and nCPUPORESET[N:0] all = 1 All logic, excluding Debug and ETM (CLK and
L2 reset PCLKDBG), is held in reset. All breakpoints and
nCORERESET[N:0] all = 0
watchpoints are retained.
nPRESETDBG 1
nL2RESET 0
nMBISTRESET 1
d For powerup reset or core reset, nCPUPORESET must be asserted. nCORERESET can be asserted, but is not
required.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-38
Non-Confidential
2 Functional Description
2.3 Clocking and resets
Debug (PCLKDBG) reset nCPUPORESET[N:0] all = 1 Debug in the PCLKDBG domain is held in reset, so that
the Debug PCLKDBG domain can be powered up.
nCORERESET[N:0] all = 1
nPRESETDBG 0
nL2RESET 1
nMBISTRESET 1
Note
• nL2RESET resets the shared L2 memory system logic, GIC, and Generic Timer that is common to
all cores. This reset must not assert while any individual processor is active.
• nPRESETDBG resets the shared Debug, PCLKDBG, that is common to all cores. This reset must
not assert while any individual core is actively being debugged in normal operating mode or during
external debug over powerdown.
There are specific requirements that you must meet to reset each reset area listed in Table 2-1 Areas that
the reset signals control on page 2-37. Not adhering to these requirements can lead to a reset area that is
not functional.
The reset sequences in the following sections are the only reset sequences that ARM recommends. Any
deviation from these sequences might cause an improper reset of that reset domain. The supported reset
sequences are:
• Powerup reset on page 2-39.
• Warm reset on page 2-40.
• Debug PCLKDBG reset on page 2-41.
• WARMRSTREQ and DBGRSTREQ on page 2-41.
• Memory arrays reset on page 2-42.
Powerup reset
Powerup reset is also known as Cold reset. This section describes the sequence for:
• A full powerup reset.
• An individual core powerup reset.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-39
Non-Confidential
2 Functional Description
2.3 Clocking and resets
The full powerup reset initializes all logic in the processor. You must apply powerup reset to the
processor when power is first applied to the SoC. Logic in all clock domains are placed in a benign state
following the deassertion of the reset sequence.
The following figure shows the full powerup reset sequence for the Cortex-A57 processor.
CLK
On full powerup reset for the processor, perform the following reset sequence:
1. Apply nCPUPORESET, nL2RESET, and nPRESETDBG. The remaining core reset,
nCORERESET can assert, but is not required.
2. nCPUPORESET and nL2RESET must assert for at least 16 CLK cycles. nPRESETDBG must
assert for at least 16 PCLKDBG cycles. Holding the resets for this duration ensures that the resets
propagate to all locations within the processor.
3. nL2RESET must deassert in the same cycle as the core resets, or before any of the core resets
deassert.
Individual core powerup reset initializes all logic in a single core. You must apply the powerup reset
when the individual core is being powered up, so that power to the core can be safely applied. You must
apply the correct sequence before applying a powerup reset to that core.
For individual core powerup reset:
• nCPUPORESET for that core must assert for at least 16 CLK cycles.
• nL2RESET must not assert while any individual core is active.
• nPRESETDBG must not assert while any individual core is actively being debugged in normal
operating mode or during external debug over powerdown.
Note
If core dynamic retention using the CPU Q-channel interface is used, the core must be in quiescent state
with STANDBYWFI asserted and CPUQREQn, CPUQACCEPTn, and CPUQACCEPT must be
LOW before nCPUPORESET is applied.
Warm reset
The Warm reset initializes all logic in the individual core apart from the Debug and ETM logic in the
CLK domain. All breakpoints and watchpoints are retained during a Warm reset sequence.
The following figure shows the Warm reset sequence for the Cortex-A57 processor.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-40
Non-Confidential
2 Functional Description
2.3 Clocking and resets
CLK
nCPUPORESET[N:0]
nL2RESET
nPRESETDBG
16 CLK cycles minimum
nCORERESET[N:0]
Individual core Warm reset initializes all logic in a single core apart from its Debug, ETM, breakpoint,
and watchpoint logic. Breakpoints and watchpoints for that core are retained. You must apply the correct
sequence before applying Warm reset to that core.
For individual processor Warm reset:
• You must apply steps 1 page 2-55 to 11 page 2-55 in the core powerdown sequence, see
Individual core powerdown on page 2-55, and wait until STANDBYWFI is asserted, indicating
that the core is idle, before asserting nCORERESET for that core.
• nCORERESET for that core must assert for at least 16 CLK cycles.
• nL2RESET must not assert while any individual core is active.
• nPRESETDBG must not assert while any individual core is actively being debugged in normal
operating mode.
Note
If core dynamic retention using the CPU Q-channel interface is used, the core must be in quiescent state
with STANDBYWFI asserted and CPUQREQn, CPUQACCEPTn, and CPUQACCEPT must be
LOW before nCORERESET is applied.
Use nPRESETDBG to reset the Debug APB, CTI, and CTM logic in the PCLKDBG domain. This
reset holds the Debug PCLKDBG unit in a reset state so that the power to the unit can be safely applied
during powerup.
To safely reset the Debug PCLKDBG unit, nPRESETDBG must assert for a minimum of 16
PCLKDBG cycles.
The following figure shows the Debug PCLKDBG reset sequence.
PCLKDBG
nCPUPORESET[N:0]
nCORERESET[N:0]
nL2RESET
16 PCLKDBG cycles minimum
nPRESETDBG
The ARMv8-A architecture provides a mechanism to configure whether a processor uses AArch32 or
AArch64 at EL3 as a result of a Warm reset. When the Reset Request bit in the RMR or RMR_EL3
register is set to 1, the processor asserts the WARMRSTREQ signal and the SoC reset controller can
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-41
Non-Confidential
2 Functional Description
2.3 Clocking and resets
use this request to trigger a Warm reset of the core and change the register width state. The AA64 bit in
the RMR or RMR_EL3 register selects the register width at the next Warm reset, at the highest
Exception level, EL3.
See the ARM® Architecture Reference Manual ARMv8, for ARMv8-A architecture profile for information
about the recommended code sequence to use, to request a Warm reset.
You must apply steps 1 page 2-55 to 11 page 2-55 in the core powerdown sequence, and wait until
STANDBYWFI asserts indicating the processor is idle, before asserting nCORERESET for that core.
nCORERESET must satisfy the timing requirements described in the Warm reset section.
The Core Warm Reset Request (CWRR) bit in the External Debug Power/Reset Control Register,
EDPRCR, controls the DBGRSTREQ signal. An external debugger can use this bit to request a Warm
reset of the processor, if it does not have access to the core Warm reset signal. See the ARM®
Architecture Reference Manual ARMv8, for ARMv8-A architecture profile for more information about
the EDPRCR.
Related information
4.3.61 Reset Management Register, EL3 on page 4-184.
Individual core powerdown on page 2-55.
Warm reset on page 2-40.
During a core reset, the following memory arrays in the core are invalidated:
• Branch Prediction arrays such as BTB, GHB, and Indirect Predictor.
• L1 instruction and data TLBs.
• L1 instruction and data caches.
• L2 unified TLB.
In addition to these core memory arrays, during a powerup reset, the following shareable memory arrays
are invalidated:
• L2 duplicate Snoop Tag RAM.
• L2 prefetch stride queue RAM.
• L2 unified cache RAM, if L2RSTDISABLE is tied LOW.
The L1 instruction and data cache resets can take up to 128 CLK cycles after the deasserting edge of the
reset signals, with each array being reset in parallel. Depending on the size of the L2 cache, the L2 cache
reset can take 640 CLK cycles for a 512KB L2 cache or 2560 CLK cycles for a 2MB L2 cache. The L2
cache reset occurs in the background, in parallel with the L1 cache resets. The core can begin execution
in Non-cacheable state, but any attempt to perform Cacheable transactions stalls the core until the
appropriate cache reset is complete.
The branch prediction arrays require 512 CLK cycles to reset after the deasserting edge of reset. The
core begins execution with branch prediction disabled, any resolved branches do not update the branch
predictor until the reset sequence completes.
The processor input signal, L2RSTDISABLE, controls the L2 cache hardware reset process. The usage
models for the L2RSTDISABLE signal are as follows:
• When the processor powers up for the first time, L2RSTDISABLE must be held LOW to invalidate
the L2 cache using the L2 cache hardware reset mechanism.
• For systems that do not retain the L2 cache RAM contents while the L2 memory system is powered
down, L2RSTDISABLE must be held LOW to invalidate the L2 cache using the L2 cache hardware
reset mechanism.
• For systems that retain the L2 cache RAM contents while the L2 memory system is powered down,
L2RSTDISABLE must be held HIGH to disable the L2 cache hardware reset mechanism.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-42
Non-Confidential
2 Functional Description
2.3 Clocking and resets
The L2RSTDISABLE signal is sampled during nL2RESET assertion and must be held a minimum of
32 CLK cycles after the deasserting edge of nL2RESET.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-43
Non-Confidential
2 Functional Description
2.4 Power management
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-44
Non-Confidential
2 Functional Description
2.4 Power management
On entry into WFI low-power state, STANDBYWFI for that core is asserted. STANDBYWFI
continues to assert even if the clocks in the core are temporarily enabled because of an L2 snoop request,
cache, TLB, and BTB maintenance operation or an APB access.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-45
Non-Confidential
2 Functional Description
2.4 Power management
Note
If a global exclusive monitor does not exist in your system, tie the CLREXMONREQ input LOW.
CLREXMONREQ
CLREXMONACK
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-46
Non-Confidential
2 Functional Description
2.4 Power management
CLK
STANDBYWFI[3:0]
ACINACTM
AINACTS
STANDBYWFIL2
CLKEN
Internal L2 clock
nIRQ
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-47
Non-Confidential
2 Functional Description
2.4 Power management
CLK
STANDBYWFI[N:0]
AINACTS
L2FLUSHREQ
L2 flush
L2FLUSHDONE
ACINACTM
STANDBYWFIL2
Related information
4.3.67 CPU Extended Control Register, EL1 on page 4-216.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-48
Non-Confidential
2 Functional Description
2.4 Power management
5. During retention, if a snoop occurs to access the cache of the quiescent core, the CPUQACTIVE
signal is asserted to request exit from retention.
6. The external power controller brings the core out of retention and deasserts CPUQREQn.
7. The core deasserts CPUQACCEPTn to complete the handshake.
8. The clocks in the core are restarted temporarily to allow the snoop request to the core to proceed.
9. After the snoop access is complete, the core deasserts CPUQACTIVE.
10. CPUQREQn and CPUQACCEPTn are then asserted. The core has reentered quiescent state and the
external power controller can put the core into retention state again.
11. When the core is ready to exit WFI low-power state, CPUQACTIVE is asserted.
12. CPUQREQn is then deasserted, the core exits WFI low-power state, and CPUQACCEPTn is
deasserted.
The following figure shows a typical sequence where the external power controller successfully places
the core in retention state.
CLK
CPUQACTIVE
CPUQREQn
CPUQACCEPTn
CPUQDENY
STANDBYWFI
retention retention
The core enters WFI low-power state and deasserts CPUQACTIVE. The external power controller
asserts CPUQREQn. If the core cannot safely enter quiescent state, it asserts CPUQDENY instead of
CPUQACCEPTn. When this occurs, the external power controller cannot put that core into retention
state. The external power controller must then deassert CPUQREQn, then the core deasserts
CPUQDENY.
The following figure shows a sequence where the external power controller attempts to put a core in
retention state but the core denies the request.
CLK
CPUQACTIVE
CPUQREQn
CPUQACCEPTn
CPUQDENY
STANDBYWFI
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-49
Non-Confidential
2 Functional Description
2.4 Power management
When using the core retention feature, you must consider the following points:
• During core reset, CPUQREQn must be deasserted HIGH while CPUQACCEPTn is asserted
LOW.
• The Processor dynamic retention control field in the CPU Extended Control Register, CPUECTLR,
must be set to a nonzero value to enable this feature. If this field is 0b000, all assertions of
CPUQREQn LOW receive CPUQDENY responses.
• If the core dynamic retention feature is not used, CPUQREQn must be tied HIGH and the
CPUECTLR retention control field set to disabled.
Note
If you use the core dynamic retention feature then the CPU Auxiliary Control Register,
CPUACTLR[30:29] bits must be zero.
Related information
4.3.66 CPU Auxiliary Control Register, EL1 on page 4-205.
4.3.67 CPU Extended Control Register, EL1 on page 4-216.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-50
Non-Confidential
2 Functional Description
2.4 Power management
retention
STANDBYWFI[N:0]
L2 idle
L2QACTIVE
L2QREQn
L2QACCEPTn
L2QDENY
If the L2 exits idle in step 4 page 2-50, it asserts L2QDENY instead of L2QACCEPTn. In response, the
power controller must deassert L2QREQn, causing the L2 to deassert L2QDENY.
The L2 dynamic retention control field in the L2 Extended Control Register, L2ECTLR, must be set to a
nonzero value to enable this feature. If this field is 0b000, all assertions of L2QREQn LOW receive
L2QDENY responses.
If the L2 dynamic retention feature is not used, L2QREQn must be tied HIGH and the L2ECTLR
retention control field set to disabled.
Note
If you use the L2 dynamic retention feature then the L2 Auxiliary Control Register, L2ACTLR[28:27]
bits must be zero.
Related information
4.3.59 L2 Extended Control Register, EL1 on page 4-182.
4.3.65 L2 Auxiliary Control Register, EL1 on page 4-200.
Related information
4.3.66 CPU Auxiliary Control Register, EL1 on page 4-205.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-51
Non-Confidential
2 Functional Description
2.4 Power management
You can set bit[27] of the L2 Auxiliary Control Register, L2ACTLR_EL1, to 1 to disable dynamic clock
gating of the L2 control logic.
Related information
4.3.65 L2 Auxiliary Control Register, EL1 on page 4-200.
Related information
4.3.66 CPU Auxiliary Control Register, EL1 on page 4-205.
4.3.65 L2 Auxiliary Control Register, EL1 on page 4-200.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-52
Non-Confidential
2 Functional Description
2.4 Power management
Note
• The design does not support a separate power domain for the L1 cache and branch prediction RAMs
within the core. It does not support L1 cache retention when the core is powered down.
• For L2 RAMs dynamic retention, the L2 Data, Dirty, Tag, Inclusion PF, and Snoop Tag RAMs are
retained. For L2 cache Dormant mode, the L2 Data, Dirty, Tag, and Inclusion PF RAMs are retained.
• The L2 Inclusion PF RAM is available only in r1p0 and later revisions.
The following figure shows the supported power domains in the processor and the placeholders where
you can insert clamps for a core.
Processor Non-processor
Processor power domain L2 control
power domain
Instruction Data L2 cache L2 Snoop Tag
L2 TLB RAM RAM
cache cache
RAM
RAM RAM
Clamp
Clamp
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-53
Non-Confidential
2 Functional Description
2.4 Power management
There are specific requirements that you must meet to power up and power down each power domain
within the core. The supported powerup and powerdown sequences are:
• Individual core powerdown on page 2-55.
• Processor powerdown without system driven L2 flush on page 2-55.
• Processor powerdown with system driven L2 flush on page 2-57.
• Dormant mode on page 2-57.
• Debug powerdown on page 2-59.
• External debug over powerdown on page 2-59.
Note
• The powerup and powerdown sequences in the following sections are the only power sequences that
ARM recommends. Any deviation from these sequences can lead to unpredictable results.
• The powerup and powerdown sequences require that you isolate the powerup domain before power is
removed from the powerdown domain. You must clamp the outputs of the powerdown domain to
benign values to prevent data corruption or unpredictable behavior in the powerup domain.
e Core, which includes the Advanced SIMD and FP, Debug, ETM, breakpoint and watchpoint (CLK) logic.
f For L2 RAMs dynamic retention, the L2 Data, Dirty, Tag and Snoop Tag RAMs are retained.
For L2 cache Dormant mode, the L2 Data, Dirty and Tag RAMs are retained.
g This power mode requires all the cores to be in one of On, WFI, WFE, Retention, or Off state. Each core can be in a
different one of these states.
h This power mode requires all the cores to be in one of WFI, WFE, Retention, or Off state. Each core can be in a
different one of these states.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-54
Non-Confidential
2 Functional Description
2.4 Power management
Related information
4.3.67 CPU Extended Control Register, EL1 on page 4-216.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-55
Non-Confidential
2 Functional Description
2.4 Power management
3. When all outstanding ACP transactions are complete, the SoC can assert AINACTS to idle the ACP.
When AINACTS has been asserted, the SoC must not assert ARVALIDS, AWVALIDS, or
WVALIDS.
4. Clean and invalidate all data from the L2 data cache.
5. If the core implements:
An ACE interface
When all outstanding snoop transactions are complete, the SoC can assert ACINACTM.
A CHI interface
When all outstanding snoop transactions are complete, the SoC can assert SINACT.
6. Ensure system interrupts to the processor are disabled.
7. Follow steps 6 page 2-55 to 13 page 2-55 in Individual core powerdown on page 2-55.
8. Wait until STANDBYWFIL2 asserts to indicate that the L2 memory system is idle.
9. Activate the output clamps of the processor in the SoC.
10. Remove power from the L2 control and L2 RAM power domains.
To power up the Cortex-A57 processor, apply the following sequence:
1. For each core in the MPCore device, assert nCPUPORESET LOW.
2. For the lead core in the MPCore device, assert nPRESETDBG and nL2RESET LOW, and hold
L2RSTDISABLE LOW.
3. Apply power to the processor, L2 control, L2 RAM and debug power domains while keeping the
signals described in steps 1 page 2-55 and 2 page 2-55 LOW.
4. Release the output clamps of the processor in the SoC.
5. Continue a normal powerup reset sequence.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-56
Non-Confidential
2 Functional Description
2.4 Power management
Dormant mode
The Cortex-A57 processor supports Dormant mode, where all the processors, debug PCLKDBG, and L2
control logic are powered down while the L2 cache RAMs are powered up and retain state.
This reduces the energy cost of writing dirty lines back to memory and improves response time on
powerup. In Dormant mode, the L2 cache is not kept hardware coherent with other masters in the system.
The RAM blocks that remain powered up and retained during Dormant mode are:
• L2 Tag RAMs.
• L2 Dirty RAMs.
• L2 Data RAMs.
• L2 Inclusion PF RAMs.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-57
Non-Confidential
2 Functional Description
2.4 Power management
To support Dormant mode, the L2 cache RAMs must be implemented in a separate power domain. In
addition, you must clamp all inputs to the L2 cache RAMs to benign values, to avoid corrupting data
when the processors and L2 control power domains enter and exit powerdown state.
Before entering Dormant mode, the architectural state of the processor, excluding the contents of the L2
cache RAMs that remain powered up, must be saved to external memory.
To exit from Dormant mode to Run mode, the SoC must perform a full powerup reset sequence. The
SoC must assert the reset signals until power is restored. After power is restored, the processor exits the
powerup reset sequence, and the architectural state must be restored.
To enter Dormant mode, apply the following sequence:
1. Clear the appropriate System Control Register C bit, data or unified cache enable, to prevent
additional data cache allocation.
2. Clean and invalidate all data from the L1 data cache. The L2 duplicate Snoop Tag RAM for this core
is now empty. This prevents any new data cache snoops or data cache maintenance operations from
other processors in the processor being issued to this core.
3. Clear the CPUECTLR.SMPEN bit. Clearing the SMPEN bit enables the core to be taken out of
coherency by preventing the core from receiving instruction cache, TLB, or BTB maintenance
operations broadcast by other processors in the MPCore device.
4. Ensure that the system does not send interrupts to the core that is being powered down.
5. Save architectural state, if required. These state saving operations must ensure that the following
occur:
• All ARM registers, including the core state, are saved.
• All System registers are saved.
• All debug related state is saved.
6. Set the DBGOSDLR.DLK, Double lock control bit, that forces the debug interfaces to be quiescent.
7. Execute an ISB instruction to ensure that all of the System register changes from the previous steps
have been committed.
8. Execute a DSB instruction to ensure that all instruction cache, TLB, and branch predictor maintenance
operations issued by any core in the processor before the SMPEN bit was cleared have completed. In
addition, this ensures that all state saving has completed.
9. Execute a WFI instruction and wait until the STANDBYWFI output is asserted, to indicate that the
core is in idle and low-power state.
10. Repeat the previous steps for all processors, and wait for all STANDBYWFI outputs to assert.
11. If the processor implements:
An ACE interface
When all outstanding snoop transactions are complete, the SoC asserts ACINACTM. When
ACINACTM has been asserted, the SoC must not assert ACVALIDM.
A CHI interface
When all outstanding snoop transactions are complete, the SoC asserts SINACT.
When all outstanding ACP transactions are complete, the SoC asserts AINACTS. When AINACTS
has been asserted, the SoC must not assert ARVALIDS, AWVALIDS, or WVALIDS.
When the L2 completes the outstanding transactions for the AXI, or CHI, interface then
STANDBYWFIL2 asserts to indicate that the L2 memory system is idle.
12. When all of the core STANDBYWFI signals and the STANDBYWFIL2 are asserted, the processor
is ready to enter Dormant mode.
13. Activate the L2 cache RAM input clamps.
14. Remove power from the cores, debug PCLKDBG, and L2 control power domains.
To exit Dormant mode, apply the following sequence:
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-58
Non-Confidential
2 Functional Description
2.4 Power management
1. Apply a normal powerup reset sequence. You must apply resets to the cores, debug PCLKDBG, and
the L2 memory system logic until power is restored. During this reset sequence, L2RSTDISABLE
must be held HIGH to disable the L2 cache hardware reset mechanism.
2. When power is restored, release the L2 cache RAM input clamps.
3. Continue a normal powerup reset sequence with L2RSTDISABLE held HIGH. The
L2RSTDISABLE must be held HIGH for a minimum of 32 CLK cycles after the deasserting edge
of nL2RESET.
4. The architectural state must be restored, if required.
Debug powerdown
If the Cortex-A57 processor runs in an environment where debug facilities are not required for any of its
cores then you can reduce leakage power by turning off the power to the debug unit in the PCLKDBG
domain.
To enable the debug unit in the PCLKDBG domain to be powered down, the implementation must place
the debug unit on a separately controlled power supply. In addition, you must clamp the outputs of the
debug unit to benign values while the debug unit is powered down.
To power down the debug PCLKDBG power domain, apply the following sequence:
1. Activate the debug output clamps.
2. Remove power from the debug PCLKDBG domain.
Note
If the debug output clamps are released without following the specified debug powerup sequence, the
results are unpredictable.
To power up the debug PCLKDBG power domain, apply the following sequence:
1. Assert nPRESETDBG.
2. Apply power to the debug PCLKDBG power domain while keeping nPRESETDBG asserted.
3. Release the debug output clamps.
4. If the SoC uses the debug hardware, deassert nPRESETDBG.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-59
Non-Confidential
2 Functional Description
2.4 Power management
Related information
Dormant mode on page 2-57.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 2-60
Non-Confidential
Chapter 3
Programmers Model
This chapter describes the processor registers and provides information for programming the processor.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-61
Non-Confidential
3 Programmers Model
3.1 About the programmers model
Note
The optional Cryptography engine is not included in the base product of the processor. ARM requires
licensees to have contractual rights to obtain the Cortex-A57 processor Cryptography engine.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-62
Non-Confidential
3 Programmers Model
3.2 ARMv8-A architecture concepts
Note
A thorough understanding of the terminology defined in this section is a prerequisite for reading the
remainder of this manual.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-63
Non-Confidential
3 Programmers Model
3.2 ARMv8-A architecture concepts
AArch32
The 32-bit Execution state. This Execution state is backwards-compatible with implementations
of the ARMv7-A architecture profile that include the Security Extensions and the Virtualization
Extensions. This Execution state:
• Features 13 32-bit general purpose registers, and a 32-bit PC, SP, and Link Register (LR).
Some of these registers have multiple Banked instances for use in different processor modes.
• Provides 32 64-bit registers for Advanced SIMD and Floating-point support.
• Provides two instruction sets, A32 and T32.
• Provides an exception model that maps the ARMv7 exception model onto the ARMv8
exception model and Exception levels. For exceptions taken to an Exception level that is
using AArch32, this supports the ARMv7 exception model use of processor modes.
• Features 32-bit VAs. The VMSA maps these to 40-bit PAs.
• Collects processor state into the Current Processor State Register (CPSR).
The processor can move between Execution states only on a change of Exception level, and subject to
the rules given in 3.2.4 Rules for changing Exception state on page 3-66. This means different software
layers, such as an application, an operating system kernel, and a hypervisor, executing at different
Exception levels, can execute in different Execution states.
Related information
3.2.7 Instruction set state on page 3-69.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-64
Non-Confidential
3 Programmers Model
3.2 ARMv8-A architecture concepts
Exception terminology
This section defines terms used to describe the navigation between Exception levels.
An exception is generated when the processor first responds to an exceptional condition. The processor
state at this time is the state the exception is taken from. The processor state immediately after taking the
exception is the state the exception is taken to.
To return from an exception, the processor must execute an exception return instruction.The processor
state when an exception return instruction is committed for execution is the state the exception returns
from. The processor state immediately after the execution of that instruction is the state the exception
returns to.
An Exception level, ELn, with a larger value of n than another Exception level, is described as being a
higher Exception level than the other Exception level. For example, EL3 is a higher Exception level than
EL1.
An Exception level with a smaller value of n than another Exception level is described as being a lower
Exception level than the other Exception level. For example, EL0 is a lower Exception level than EL1.
An Exception level is described as:
Using AArch64
When execution in that Exception level is in AArch64 Execution state.
Using AArch32
When execution in that Exception level is in AArch32 Execution state.
The architecture does not specify how software can use the different Exception levels but the following
is a common usage model for the Exception levels:
EL0
Applications.
EL1
OS kernel and associated functions that are typically described as privileged.
EL2
Hypervisor.
EL3
Secure monitor.
Related information
3.2.3 Security state on page 3-65.
An ARMv8 implementation that includes the EL3 Exception level provides the following Security states,
each with an associated memory address space:
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-65
Non-Confidential
3 Programmers Model
3.2 ARMv8-A architecture concepts
Secure state
In Secure state, the processor:
• Can access both the Secure and the Non-secure memory address space.
• When executing at EL3, can access all the system control resources.
Non-secure state
In Non-secure state, the processor:
• Can access only the Non-secure memory address space.
• Cannot access the Secure system control resources.
The AArch32 Security state model is unchanged from the model for an ARMv7-A architecture profile
implementation that includes the Security Extensions and the Virtualization Extensions. When the
implementation uses the AArch32 state for all Exception levels, many System registers are Banked to
provide Secure and Non-secure instances, and:
• The Secure instance is accessible only at EL3.
• The Non-secure instance is accessible at EL1 or higher.
• The two instances of a Banked register have the same name.
The 3.2.6 ARMv8 security model on page 3-67 describes how the Security state interacts with other
aspects of the ARMv8 architectural state.
This introduction to moving between Execution states does not consider exceptions caused by debug
events.
The Execution state, AArch64 or AArch32, can change only on a change of Exception level, meaning it
can change only on either:
• Taking an exception to a higher Exception level.
• Returning from an exception to a lower Exception level.
Note
The Execution state cannot change if, on taking an exception or on returning from an exception, the
Exception level remains the same.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-66
Non-Confidential
3 Programmers Model
3.2 ARMv8-A architecture concepts
• Otherwise, the Execution state is determined by one or more System register configuration bits, that
can be set only in a higher Exception level.
Note
The t and h suffixes are based on the terminology of thread and handler, introduced in ARMv7-
M.
The following table shows the set of AArch64 Stack Pointer options.
AArch32
In AArch32 state, each mode that can be the target of an exception has its own Banked copy of
the Stack Pointer. For example, the Banked Stack Pointer for Hyp mode is called SP_hyp.
Software executing in one of these modes uses the Banked Stack Pointer for that mode.
The modes that have Banked copies of the Stack Pointer are FIQ mode, IRQ mode, Supervisor
mode, Abort mode, Undefined mode, Hyp mode, and Monitor mode. Software executing in
User mode or System mode uses the User mode Stack Pointer, SP_usr.
Related information
3.2.8 AArch32 execution modes on page 3-69.
The Cortex-A57 processor implements all of the Exception levels. This means:
• EL3 exists only in Secure state and a change from Secure state to Non-secure state is made only by
an exception return from EL3.
• EL2 exists only in Non-secure state.
To provide compatibility with ARMv7, the Exception levels available in Secure state are modified when
EL3 is using AArch32. The following sections describe the security model:
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-67
Non-Confidential
3 Programmers Model
3.2 ARMv8-A architecture concepts
When EL3 is using AArch64, The following figure shows the security model, and the expected use of
the different Exception levels. This figure shows how instances of EL0 and EL1 are present in both
Security states. The figure also shows the expected software usage of the Exception levels.
AArch32 or AArch64
EL2 Hypervisor
AArch64
To provide software compatibility with VMSAv7 implementations that include the Security Extensions,
in Secure AArch32 state, all modes other than User mode must have the same execution privilege. This
means that, in an implementation where EL3 is using AArch32, the security model is as shown in
following figure. This figure also shows the expected use of the different Exception levels and processor
modes.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-68
Non-Confidential
3 Programmers Model
3.2 ARMv8-A architecture concepts
AArch32 AArch32
Guest OS1 Guest OS2
EL1
Modes: Modes:
System, FIQ, IRQ, System, FIQ, IRQ,
Supervisor, Abort, Undefined Supervisor, Abort, Undefined
AArch32
Hypervisor
EL2
Modes:
Hyp
AArch32
Secure monitor Secure OS
EL3
Modes: Modes:
System, FIQ, IRQ,
Monitor
Supervisor, Abort, Undefined
For more information about the AArch32 processor modes see 3.2.8 AArch32 execution modes
on page 3-69.
The processor instruction set state determines the instruction set that the processor executes. The possible
instruction sets depend on the Execution state:
AArch64
AArch64 state supports only a single instruction set, called A64. This is a fixed-width
instruction set that uses 32-bit instruction encoding.
AArch32
AArch32 state supports the following instruction sets:
A32
This is a fixed-length instruction set that uses 32-bit instruction encodings. It is
compatible with the ARMv7 ARM instruction set.
T32
This is a variable-length instruction set that uses both 16-bit and 32-bit instruction
encodings. It is compatible with the ARMv7 Thumb instruction set.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-69
Non-Confidential
3 Programmers Model
3.2 ARMv8-A architecture concepts
A processor mode name does not indicate the current Security state. To distinguish between a mode in
Secure state and the equivalent mode in Non-secure state, the mode name is qualified as Secure or Non-
secure. For example, a description of AArch32 operation in EL1 might relate to the Secure FIQ mode, or
to the Non-secure FIQ mode.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-70
Non-Confidential
3 Programmers Model
3.3 ThumbEE instruction set
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-71
Non-Confidential
3 Programmers Model
3.4 Jazelle implementation
The following table gives a summary of the processor Jazelle registers that are accessed through the
CP14 coprocessor in the AArch32 state. These registers are not implemented in the AArch64 state.
Related information
Jazelle Identity Register on page 3-72.
Jazelle OS Control Register on page 3-73.
Jazelle Main Configuration Register on page 3-73.
This section describes the processor Jazelle Extension registers. The following table provides cross-
references to individual registers.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-72
Non-Confidential
3 Programmers Model
3.4 Jazelle implementation
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-73
Non-Confidential
3 Programmers Model
3.5 Memory model
Note
Instructions are always treated as little-endian.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 3-74
Non-Confidential
Chapter 4
System Control
This chapter describes the System registers, their structure, operation, and how to use them.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-75
Non-Confidential
4 System Control
4.1 About system control
The CP15SDISABLE signal disables write access to certain secure copies of System registers when EL3
is using AArch32. For a list of registers affected by CP15SDISABLE, see the ARM® Architecture
Reference Manual ARMv8.
The Cortex-A57 processor does not have any IMPLEMENTATION DEFINED registers that are affected by
CP15SDISABLE.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-76
Non-Confidential
4 System Control
4.2 AArch64 register summary
The following table shows the identification registers in AArch64 state. Bits[63:32] are reset to
0x00000000 for all 64-bit registers in the table.
i The reset value depends on the primary inputs, CLUSTERIDAFF1 and CLUSTERIDAFF2, and the number of
cores that the processor implements. The value shown is for a four-core implementation, with CLUSTERIDAFF1
and CLUSTERIDAFF2 set to zero.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-77
Non-Confidential
4 System Control
4.2 AArch64 register summary
j The reset value depends on the primary input GICCDISABLE. The value shown assumes the GICCDISABLE
signal is tied HIGH.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-78
Non-Confidential
4 System Control
4.2 AArch64 register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-79
Non-Confidential
4 System Control
4.2 AArch64 register summary
The following table shows the fault handling registers in AArch64 state. Bits[63:32] are reset to
0x00000000 for all 64-bit registers in the following table.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-80
Non-Confidential
4 System Control
4.2 AArch64 register summary
The following table shows the virtual memory control registers in AArch64 state. Bits[63:32] are reset to
0x00000000 for all 64-bit registers in the following table.
The following table shows the other System registers in AArch64 state.
p The reset value depends on primary input CFGTE. Table 4-3 AArch64 virtual memory control registers
on page 4-81 assumes this signal is LOW.
q See the ARM® Architecture Reference Manual ARMv8 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-81
Non-Confidential
4 System Control
4.2 AArch64 register summary
The following table shows the System instructions for cache and maintenance operations in AArch64
state. See the ARM® Architecture Reference Manual ARMv8 for more information about these operations.
Name Description
IC IALLUIS Instruction cache invalidate all to PoUr Inner Shareable
The following table shows the System instructions for TLB maintenance operations in AArch64 state.
See the ARM® Architecture Reference Manual ARMv8 for more information about these operations.
Name Description
TLBI VMALLE1IS Invalidate all stage 1 translations used at EL1 with the current virtual machine identifier (VMID) in
the Inner Shareable
TLBI VAE1IS Invalidate translation used at EL1 for the specified VA and Address Space Identifier (ASID) and the
current VMID, Inner Shareable
TLBI ASIDE1IS Invalidate all translations used at EL1 with the current VMID and the supplied ASID, Inner Shareable
r PoU = Point of Unification. PoU is set by the BROADCASTINNER signal and can be in the L1 data cache or
outside of the processor, in which case PoU is dependent on the external memory system.
s PoC = Point of Coherence. The PoC is always outside of the processor and is dependent on the external memory
system.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-82
Non-Confidential
4 System Control
4.2 AArch64 register summary
Name Description
TLBI VAAE1IS Invalidate all translations used at EL1 for the specified address and current VMID and for all ASID
values, Inner Shareable
TLBI VALE1IS Invalidate all entries from the last level of stage 1 translation table walk used at EL1 with the supplied
ASID and current VMID, Inner Shareable
TLBI VAALE1IS Invalidate all entries from the last level of stage 1 translation table walk used at EL1 for the specified
address and current VMID and for all ASID values, Inner Shareable
TLBI VMALLE1 Invalidate all stage 1 translations used at EL1 with the current VMID
TLBI VAE1 Invalidate translation used at EL1 for the specified VA and ASID and the current VMID
TLBI ASIDE1 Invalidate all translations used at EL1 with the current VMID and the supplied ASID
TLBI VAAE1 Invalidate all translations used at EL1 for the specified address and current VMID and for all ASID
values
TLBI VALE1 Invalidate all entries from the last level of stage 1 translation table walk used at EL1 with the supplied
ASID and current VMID
TLBI VAALE1 Invalidate all entries from the last level of stage 1 translation table walk used at EL1 for the specified
address and current VMID and for all ASID values
The Virtualization registers include additional TLB operations for use in Hyp mode. For more
information, see 4.2.13 AArch64 EL2 TLB maintenance operations on page 4-87.
The following table shows the address translation register in AArch64 state.
The following table shows the System instructions for address translation operations in AArch64 state.
See the ARM® Architecture Reference Manual ARMv8 for more information.
Name Description
AT S1E1R Stage 1 current state EL1 read
AT S1E1W Stage 1 current state EL1 write
AT S1E0R Stage 1 current state unprivileged read
AT S1E0W Stage 1 current state unprivileged write
AT S1E2R Stage 1 Hyp mode read
AT S1E2W Stage 1 Hyp mode write
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-83
Non-Confidential
4 System Control
4.2 AArch64 register summary
Name Description
AT S12E1R Stages 1 and 2 Non-secure EL1 read
The following table shows the miscellaneous operations in AArch64 state. See the ARM® Architecture
Reference Manual ARMv8 for more information about these operations.
The following table shows the Performance Monitors registers in AArch64 state. Bits[63:32] are reset to
0x00000000 for all 64-bit registers in the following table.
u RO at EL0.
v Access permissions also depend on the access condition. See 11.2.5 External register access permissions
on page 11-419.
w See the ARM® Architecture Reference Manual ARMv8 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-84
Non-Confidential
4 System Control
4.2 AArch64 register summary
x The reset value depends on the RVBARADDR signal. Bits[63:32] are reset to 0x00000000.
y For a Cold reset, the AA64nAA32 signal sets the value of bit[0]. The following table assumes this signal is LOW.
z See the ARM® Architecture Reference Manual ARMv8 for more information.
aa The reset value of bits[63:32] is 0x00000000.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-85
Non-Confidential
4 System Control
4.2 AArch64 register summary
The following table shows the virtualization registers in AArch64 state. Bits[63:32] are reset to
0x00000000 for all 64-bit registers in the following table.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-86
Non-Confidential
4 System Control
4.2 AArch64 register summary
The following table shows the System instructions for TLB maintenance operations added in AArch64
state. See the ARM® Architecture Reference Manual ARMv8 for more information about these operations.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-87
Non-Confidential
4 System Control
4.2 AArch64 register summary
Name Description
TLBI IPAS2E1IS Invalidate stage 2 only translations used at EL1 for the specified IPA for the current VMID, Inner
Shareable
TLBI IPAS2LE1IS Invalidate entries from the last level of stage 2 only translation used at EL1 for the specified IPA
for the current VMID, Inner Shareable
TLBI ALLE2IS Invalidate all stage 1 translations used at EL2, Inner Shareable
TLBI VAE2IS Invalidate translation used at EL2 for the specified VA and ASID and the current VMID, Inner
Shareable
TLBI ALLE1IS Invalidate all stage 1 translations used at EL1, Inner Shareable
TLBI VALE2IS Invalidate all entries from the last level of stage 1 translation table walk used at EL2 with the
supplied ASID and current VMID, Inner Shareable
TLBI VMALLS12E1IS Invalidate all stage 1 and 2 translations used at EL1 with the current VMID, Inner Shareable
TLBI IPAS2E1 Invalidate stage 2 only translations used at EL1 for the specified IPA for the current VMID
TLBI IPAS2LE1 Invalidate entries from the last level of stage 2 only translation used at EL1 for the specified IPA
for the current VMID
TLBI ALLE2 Invalidate all stage 1 translations used at EL2
TLBI VAE2 Invalidate translation used at EL2 for the specified VA and ASID and the current VMID
TLBI ALLE1 Invalidate all stage 1 translations used at EL1
TLBI VALE2 Invalidate all entries from the last level of stage 1 translation table walk used at EL2 with the
supplied ASID and current VMID
TLBI VMALLS12E1 Invalidate all stage 1 and 2 translations used at EL1 with the current VMID
TLBI ALLE3IS Invalidate all stage 1 translations used at EL3, Inner Shareable
TLBI VAE3IS Invalidate translation used at EL3 for the specified VA and ASID and the current VMID, Inner
Shareable
TLBI VALE3IS Invalidate all entries from the last level of stage 1 translation table walk used at EL3 with the
supplied ASID and current VMID, Inner Shareable
TLBI ALLE3 Invalidate all stage 1 translations used at EL3
TLBI VAE3 Invalidate translation used at EL3 for the specified VA and ASID and the current VMID
TLBI VALE3 Invalidate all entries from the last level of stage 1 translation table walk used at EL3 with the
supplied ASID and current VMID
See 9 Generic Timer on page 9-355 for information on the Generic Timer registers.
The following table shows the IMPLEMENTATION DEFINED registers in AArch64 state. These registers
provide test features and any required configuration options specific to the Cortex-A57 processor. If a
register is not indicated as mapped to an AArch32 64-bit register, bits[63:32] are 0x00000000.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-88
Non-Confidential
4 System Control
4.2 AArch64 register summary
af The reset value depends on the processor implementation and the state of the L2RSTDISABLE signal.
ag This is the reset value for an ACE interface. For a CHI interface the reset value is 0x0000000000004018.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-89
Non-Confidential
4 System Control
4.2 AArch64 register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-90
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-91
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Table 10-1 External register access conditions on page 10-364 describes the condition codes.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-92
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Configurations
The MIDR_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 MIDR register.
• Architecturally mapped to external MIDR register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the MIDR_EL1 bit assignments.
31 24 23 20 19 16 15 4 3 0
[23:20] Variant Indicates the variant number of the processor. This is the major revision number n in the rn
part of the rnpn description of the product revision status. This value is:
1
Major revision number.
[15:4] Primary part Indicates the primary part number. This value is:
number 0xD07
Cortex-A57 processor.
[3:0] Revision Indicates the minor revision number of the processor. This is the minor revision number n
in the pn part of the rnpn description of the product revision status. This value is:
2
Minor revision number.
To access the MIDR in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c0, 0; Read Main ID Register
The MIDR can be accessed through the memory-mapped interface and the external debug interface,
offset 0xD00.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-93
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
EL0 EL1 (NS) EL1 (S) EL2 EL3 (SCR.NS = 1) EL3 (SCR.NS = 0)
- RO RO RO RO RO
Table 10-1 External register access conditions on page 10-364 describes the condition codes.
Configurations
The MPIDR_EL1[31:0] is:
• Architecturally mapped to the AArch32 MPIDR register. See 4.5.3 Multiprocessor Affinity
Register on page 4-254 for more information.
• Architecturally mapped to external EDDEVAFF0 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the MPIDR_EL1 bit assignments.
63 32 31 30 29 25 24 23 16 15 8 7 2 1 0
RES1 MT CPU ID
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-94
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[23:16] Cluster ID Aff2 Affinity level 2. Second highest level affinity field.
Indicates the value read in at reset, from the CLUSTERIDAFF2
configuration signal.
[15:8] Cluster ID Aff1 Affinity level 1. Third highest level affinity field.
Indicates the value read in at reset, from the CLUSTERIDAFF1
configuration signal.
The EDDEVAFF0 can be accessed through the memory-mapped interface and the external debug
interface, offset 0xFA8.
Configurations
The REVIDR_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 REVIDR register.
The REVIDR_EL1 is a 32-bit register.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-95
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the REVIDR_EL1 bit assignments.
31 0
ID number
To access the REVIDR in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c0, 6; Read Revision ID Register
Configurations
The ID_PFR0_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_PFR0 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_PFR0_EL1 bit assignments.
31 16 15 12 11 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-96
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[11:8] State2 Indicates support for Jazelle extension. This value is:
0x1 Processor supports trivial implementation of Jazelle.
[7:4] State1 Indicates support for T32 instruction set. This value is:
0x3 Processor supports T32 encoding after the introduction of Thumb-2 technology, and for all 16-bit
and 32-bit T32 basic instructions.
[3:0] State0 Indicates support for A32 instruction set. This value is:
0x1 Processor implements the A32 instruction set.
To access the ID_PFR0 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c1, 0; Read AArch32 Processor Feature Register 0
Configurations
The ID_PFR1_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_PFR1 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_PFR1_EL1 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-97
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 28 27 20 19 16 15 12 11 8 7 4 3 0
Virtualization
[15:12] Virtualization Indicates support for Virtualization Extensions. This value is:
0x1
Processor supports Virtualization Extensions.
[11:8] MProgMod Indicates support for M-profile programmers model. This value is:
0x0
Processor does not support M-profile programmers model.
[7:4] Security Indicates support for Security Extensions. This value is:
0x1
Processor supports Security Extensions. This includes support for Monitor mode and the
SMC instruction.
[3:0] ProgrMod Indicates support for the standard programmers model for ARMv4 and later. This value is:
0x1
Processor supports the standard programmers model for ARMv4 and later. The model
supports User, FIQ, IRQ, Supervisor, Abort, Undefined, and System modes.
To access the ID_PFR1 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c1, 1; Read AArch32 Processor Feature Register 1
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-98
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Purpose
Provides top-level information about the debug system in AArch32 state.
Usage constraints
The ID_DFR0_EL1 must be interpreted with the MIDR_EL1.
The accessibility to the ID_DFR0_EL1 by Exception level is:
Configurations
The ID_DFR0_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_DFR0 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_DFR0_EL1 bit assignments.
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[23:20] MProfDbg Indicates support for memory-mapped debug model for M-profile processors. This value is:
0x0
Processor does not support M-profile Debug architecture, with memory-mapped access.
[19:16] MMapTrc Indicates support for memory-mapped trace model. This value is:
0x1
Processor supports ARM trace architecture, with memory-mapped access.
[15:12] CopTrc Indicates support for coprocessor-based trace model. This value is:
0x0
Processor does not support ARM trace architecture, with CP14 access.
[11:8] MMapDbg Indicates support for memory-mapped debug model. This value is:
0x0
Processor does not support the memory-mapped debug model.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-99
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[3:0] CopDbg Indicates support for coprocessor-based debug model. This value is:
0x6
Processor supports v8-A Debug architecture, with CP14 access.
To access the ID_DFR0 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c1, 2; Read AArch32 Debug Feature Register 0
The processor does not implement ID_AFR0_EL1. This register is always RES0.
Configurations
The ID_MMFR0_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_MMFR0 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_MMFR0_EL1 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-100
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[27:24] FCSE Indicates support for Fast Context Switch Extension (FCSE). This value is:
0x0
Processor does not support FCSE.
[23:20] AuxReg Indicates support for Auxiliary registers. This value is:
0x1
Processor supports the ACTLR. See 4.3.39 Auxiliary Control Register, EL3 on page 4-150.
[19:16] TCM Indicates support for TCMs and associated DMAs. This value is:
0x0
Processor does not support TCM.
[15:12] ShareLvl Indicates the number of shareability levels implemented. This value is:
0x1
Processor implements two levels of shareability.
[11:8] OuterShr Indicates the outermost shareability domain implemented. This value is:
0x1
Processor supports hardware coherency.
[7:4] PMSA Indicates support for a Protected Memory System Architecture (PMSA). This value is:
0x0
Processor does not support PMSA.
[3:0] VMSA Indicates support for a Virtual Memory System Architecture (VMSA). This value is:
0x5
Processor supports:
• VMSAv7, with support for remapping and the Access flag
• Privileged Execute Never (PXN) bit in the Short-descriptor translation table format
• The Long-descriptor translation table format.
To access the ID_MMFR0 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c1, 4; Read AArch32 Memory Model Feature Register 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-101
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Configurations
The ID_MMFR1_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_MMFR1 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_MMFR1_EL1 bit assignments.
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[27:24] L1TstCln Indicates the supported L1 data cache test and clean operations, for Harvard or unified cache
implementation. This value is:
0x0
Not supported.
[23:20] L1Uni Indicates the supported entire L1 cache maintenance operations, for a unified cache implementation.
This value is:
0x0
Not supported.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-102
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[15:12] L1UniSW Indicates the supported L1 cache line maintenance operations by set/way, for a unified cache
implementation. This value is:
0x0
Not supported.
[11:8] L1HvdSW Indicates the supported L1 cache line maintenance operations by set/way, for a Harvard cache
implementation. This value is:
0x0
Not supported.
[7:4] L1UniVA Indicates the supported L1 cache line maintenance operations by VA, for a unified cache
implementation. This value is:
0x0
Not supported.
[3:0] L1HvdVA Indicates the supported L1 cache line maintenance operations by VA, for a Harvard cache
implementation. This value is:
0x0
Not supported.
To access the ID_MMFR1 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c1, 5; Read AArch32 Memory Model Feature Register 1
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-103
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Configurations
The ID_MMFR2_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_MMFR2 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_MMFR2_EL1 bit assignments.
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[27:24] WFIStall Indicates support for Wait For Interrupt (WFI) stalling. This value is:
0x1
Processor supports WFI stalling.
[23:20] MemBarr Indicates the supported CP15 memory barrier operations. This value is:
0x2
Processor supports:
• Data Synchronization Barrier (DSB).
• Instruction Synchronization Barrier (ISB).
• Data Memory Barrier (DMB).
ARM deprecates the use of these CP15 operations. Instead, use the DMB, DSB, and ISB barrier
instructions.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-104
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[15:12] HvdTLB Indicates support for Harvard TLB maintenance operations. This value is:
0x0
Not supported.
[11:8] L1HvdRng Indicates support for Harvard L1 cache maintenance range operations. This value is:
0x0
Not supported.
[7:4] L1HvdBG Indicates support for Harvard L1 cache background fetch operations. This value is:
0x0
Not supported.
[3:0] L1HvdFG Indicates support for Harvard L1 cache foreground fetch operations. This value is:
0x0
Not supported.
To access the ID_MMFR2 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c1, 6; Read AArch32 Memory Model Feature Register 2
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-105
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The ID_MMFR3_EL1 must be interpreted with:
• ID_MMFR0_EL1.
• ID_MMFR1_EL1.
• ID_MMFR2_EL1.
The accessibility to the ID_MMFR3_EL1 by Exception level is:
Configurations
The ID_MMFR3_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_MMFR3 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_MMFR3_EL1 bit assignments.
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[27:24] CMemSz Indicates the physical memory size supported by the processor caches. This value is:
0x2
Processor caches support 40-bit physical address range.
[23:20] CohWalk Indicates whether translation table updates require a clean to the point of unification. This value is:
0x1
Updates to the translation tables do not require a clean to the point of unification to ensure
visibility by subsequent translation table walks.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-106
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[7:4] CMaintSW Indicates the supported cache maintenance operations by set/way. This value is:
0x1
Processor supports:
• Invalidate data cache by set/way.
• Clean data cache by set/way.
• Clean and invalidate data cache by set/way.
[3:0] CMaintVA Indicates the supported cache maintenance operations by VA. This value is:
0x1
Processor supports:
• 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.
To access the ID_MMFR3 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c1, 7; Read AArch32 Memory Model Feature Register 3
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-107
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Configurations
The ID_ISAR0_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_ISAR0 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_ISAR0_EL1 bit assignments.
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[23:20] Debug Returns 0x1 to indicate the processor implements the BKPT debug instruction.
[19:16] Coproc Returns 0x0 to indicate the processor implements no coprocessor instructions, except for
separately attributed architectures including CP15, CP14, and Advanced SIMD and FP.
[15:12] CmpBranch Returns 0x1 to indicate the processor implements the CBNZ and CBZ, Compare and Branch,
instructions in the T32 instruction set.
[11:8] Bitfield Returns 0x1 to indicate the processor implements the BFC, BFI, SBFX, and UBFX, bit field
instructions.
[7:4] BitCount Returns 0x1 to indicate the processor implements the CLZ bit counting instruction.
[3:0] Swap Returns 0x0 to indicate the processor implements no swap instructions in the A32 instruction set.
To access the ID_ISAR0 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c2, 0; Read AArch32 Instruction Set Attribute Register 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-108
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The ID_ISAR1_EL1 must be interpreted with:
• ID_ISAR0_EL1.
• ID_ISAR2_EL1.
• ID_ISAR3_EL1.
• ID_ISAR4_EL1.
• ID_ISAR5_EL1.
The accessibility to the ID_ISAR1_EL1 by Exception level is:
Configurations
The ID_ISAR1_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_ISAR1 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_ISAR1_EL1 bit assignments.
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[23:20] Immediate Returns 0x1 to indicate the processor implements the following data-processing instructions with
long immediates:
• MOVT instruction.
• MOV instruction encoding with zero-extended 16-bit immediates.
• Thumb ADD and SUB instruction encoding with zero-extended 12-bit immediates, and other ADD,
ADR, and SUB encoding cross-referenced by the pseudocode for those encodings.
[19:16] IfThen Returns 0x1 to indicate the processor implements the IT instruction and the IT bits in the PSRs, in
the T32 instruction set.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-109
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[11:8] Except_AR Returns 0x1 to indicate the processor implements the SRS, RFE, and CPS exception-handling
instructions.
[7:4] Except Returns 0x1 to indicate the processor implements the LDM (exception return), LDM (user registers),
and STM (user registers) exception-handling instructions in the A32 instruction set.
[3:0] Endian Returns 0x1 to indicate the processor implements the SETEND instruction, and the E bit in the PSRs.
To access the ID_ISAR1 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c2, 1; Read AArch32 Instruction Set Attribute Register 1
Configurations
The ID_ISAR2_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_ISAR2 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_ISAR2_EL1 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-110
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
MultiAccessInt
[27:24] PSR_AR Returns 0x1 to indicate the processor implements the following instructions that can manipulate
the PSR:
• Processor supports MRS and MSR instructions, and the exception return forms of data-
processing instructions. See the ARM® Architecture Reference Manual ARMv8 for more
information.
[23:20] MultU Returns 0x2 to indicate the processor implements the UMULL, UMLAL, and UMAAL unsigned
multiply instructions.
[19:16] MultS Returns 0x3 to indicate the processor implements the following signed multiply instructions:
• SMULL and SMLAL instructions
• SMLABB, SMLABT, SMLALBB,SMLALBT, SMLALTB, SMLALTT, SMLATB, SMLATT, SMLAWB, SMLAWT,
SMULBB, SMULBT, SMULTB, SMULTT, SMULWB, SMULWT instructions, and the Q bit in the PSRs.
• SMLAD, SMLADX, SMLALD, SMLALDX, SMLSD, SMLSDX, SMLSLD, SMLSLDX, SMMLA, SMMLAR, SMMLS,
SMMLSR, SMMUL, SMMULR, SMUAD, SMUADX, SMUSD, and SMUSDX instructions.
[15:12] Mult Returns 0x2 to indicate the processor implements the MUL, MLA, and MLS multiply instructions.
[11:8] MultiAccessInt Returns 0x0 to indicate no support for interruptible multi-access instructions. This means that
the LDM and STM instructions are not interruptible.
[7:4] MemHint Returns 0x4 to indicate the processor implements the PLD, PLI (NOP), and PLDW memory hint
instructions.
[3:0] LoadStore Returns 0x2 to indicate the processor implements the following additional load/store
instructions and Load-Acquire/Store-Release instructions:
• LDRD and STRD load/store instructions.
• STRLB, STRLH, STRL, LDRAB, LDRAH, and LDRA Load-Acquire and Store-Release instructions.
To access the ID_ISAR2 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c2, 2; Read AArch32 Instruction Set Attribute Register 2
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-111
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Purpose
Provides information about the instruction set that the processor supports in AArch32.
Usage constraints
The ID_ISAR3 must be interpreted with:
• ID_ISAR0_EL1.
• ID_ISAR1_EL1.
• ID_ISAR2_EL1.
• ID_ISAR4_EL1.
• ID_ISAR5_EL1.
The accessibility to the ID_ISAR3_EL1 by Exception level is:
Configurations
The ID_ISAR3_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_ISAR3 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_ISAR3_EL1 bit assignments.
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-112
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
See the ARM® Architecture Reference Manual ARMv8 for more information.
[3:0] Saturate Returns 0x1 to indicate the processor implements the QADD, QDADD, QDSUB, QSUB saturate
instructions and the Q bit in the PSRs.
To access the ID_ISAR3 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c2, 3; Read AArch32 Instruction Set Attribute Register 3
Configurations
The ID_ISAR4_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_ISAR4 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_ISAR4_EL1 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-113
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
SynchPrim_frac
[19:16] Barrier Returns 0x1 to indicate the processor implements the DMB, DSB, and ISB barrier instructions in
the A32 and T32 instruction sets.
[15:12] SMCs Returns 0x1 to indicate the processor implements the SMC instruction.
[11:8] Writeback Returns 0x1 to indicate the processor supports all writeback addressing modes defined in
ARMv8 architecture.
[7:4] WithShifts Returns 0x4 to indicate the processor supports the following instructions with shifts:
• Shifts of loads and stores over the range LSL 0-3.
• Constant shift options, both on load/store and other instructions.
• Register-controlled shift options.
See the ARM® Architecture Reference Manual ARMv8 for more information.
[3:0] Unpriv Returns 0x2 to indicate the processor implements the following unprivileged instructions:
• LDRBT, LDRT, STRBT, and STRT.
• LDRHT, LDRSBT, LDRSHT, and STRHT.
To access the ID_ISAR4 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c2, 4; Read AArch32 Instruction Set Attribute Register 4
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-114
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Purpose
Provides information about the Cryptography Extension instruction set that the processor can support in
AArch32.
Note
• The optional Cryptography engine is not included in the base product of the processor. ARM requires
licensees to have contractual rights to obtain the Cortex-A57 Cryptography engine.
• The SHA1, SHA2, and AES fields of ID_ISAR5_EL1 are 0x0 if the Cryptography engine is not
included or CRYPTODISABLE is tied HIGH.
Usage constraints
The ID_ISAR5_EL1 must be interpreted with:
• ID_ISAR0_EL1.
• ID_ISAR1_EL1.
• ID_ISAR2_EL1.
• ID_ISAR3_EL1.
• ID_ISAR4_EL1.
The accessibility to the ID_ISAR5_EL1 by Exception level is:
Configurations
The ID_ISAR5_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 ID_ISAR5 register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_ISAR5_EL1 bit assignments.
31 20 19 16 15 12 11 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-115
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[11:8] SHA1 Indicates whether SHA1 instructions are implemented in AArch32 state. The possible values are:
0x0
SHA1 instructions are not implemented in AArch32 state.
0x1
SHA1C, SHA1P, SHA1M, SHA1H, SHA1SU0, and SHA1SU1 instructions are implemented.
[7:4] AES Indicates whether AES instructions are implemented in AArch32 state. The possible values are:
0x0
AES instructions are not implemented in AArch32 state.
0x2
AESE, AESD, AESMC, AESIMC, and PMULL/PMULL2 instructions operating on 64-bit data.
[3:0] SEVL Returns 0x1 to indicate that the SEVL instruction is implemented in AArch32 state.
To access the ID_ISAR5 in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c2, 5; Read AArch32 Instruction Set Attribute Register 5
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-116
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Configurations
The ID_AA64PFR0 is architecturally mapped as follows:
• [63:32] to external ID_AA64PFR0[63:32] register.
• [31:0] to external ID_AA64PFR0[31:0] register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_AA64PFR0_EL1 bit assignments.
63 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
GIC system
RES0 AdvSIMD FP EL3 EL2 EL1 EL0
registers
The ID_AA64PFR0[31:0] can be accessed through the memory-mapped interface and the external debug
interface, offset 0xD20.
The ID_AA64PFR0[63:32] can be accessed through the memory-mapped interface and the external
debug interface, offset 0xD24.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-117
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The accessibility to the ID_AA64DFR0_EL1 by Exception level is:
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
The ID_AA64DFR0_EL1 is architecturally mapped as follows:
• [63:32] to external ID_AA64DFR0[63:32] register.
• [31:0] to external ID_AA64DFR0[31:0] register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_AA64DFR0_EL1 bit assignments.
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
The ID_AA64DFR0[31:0] can be accessed through the memory-mapped interface and the external
debug interface, offset 0xD28.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-118
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
The ID_AA64DFR0[63:32] can be accessed through the memory-mapped interface and the external
debug interface, offset 0xD2C.
Note
• The optional Cryptography engine is not included in the base product of the processor. ARM
requires licensees to have contractual rights to obtain the Cortex-A57 processor
Cryptography engine.
• The SHA1, SHA2, and AES fields of ID_AA64ISAR0_EL1 are 0x0 if the Cryptography
engine is not included or CRYPTODISABLE is HIGH.
Usage constraints
The accessibility to the ID_AA64ISAR0_EL1 by Exception level is:
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
The ID_AA64ISAR0_EL1 is architecturally mapped as follows:
• [63:32] to external ID_AA64ISAR0[63:32] register.
• [31:0] to external ID_AA64ISAR0[31:0] register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_AA64ISAR0_EL1 bit assignments.
63 20 19 16 15 12 11 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-119
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[11:8] SHA1 Indicates whether SHA1 instructions are implemented in AArch64 state. The possible values are:
0x0
No SHA1 instructions implemented.
0x1
SHA1C, SHA1P, SHA1M, SHA1SU0, and SHA1SU1 instructions implemented.
[7:4] AES Indicates whether AES instructions are implemented in AArch64 state. The possible values are:
0x0
No AES instructions implemented.
0x2
AESE, AESD, AESMC, AESIMC and PMULL/PMULL2 instructions implemented.
The ID_AA64ISAR0[31:0] can be accessed through the memory-mapped interface and the external
debug interface, offset 0xD30.
The ID_AA64ISAR0[63:32] can be accessed through the memory-mapped interface and the external
debug interface, offset 0xD34.
Table 10-1 External register access conditions on page 10-364 describes the condition codes.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-120
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Configurations
The ID_AA64MMFR0_EL1 is architecturally mapped as follows:
• [63:32] to external ID_AA64MMFR0[63:32] register.
• [31:0] to external ID_AA64MMFR0[31:0] register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the ID_AA64MMFR0_EL1 bit assignments.
63 32 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
The ID_AA64MMFR0[31:0] can be accessed through the memory-mapped interface and the external
debug interface, offset 0xD38.
The ID_AA64MMFR0[63:32] can be accessed through the memory-mapped interface and the external
debug interface, offset 0xD3C.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-121
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The accessibility to the CCSIDR_EL1 by Exception level is:
If CSSELR_EL1 indicates a cache that is not implemented, reading the Cache Size ID Register
returns an UNKNOWN value.
Configurations
The CCSIDR_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 CCSIDR register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the CCSIDR_EL1 bit assignments.
31 30 29 28 27 13 12 3 2 0
WT WA
WB RA
[29] RA Returns 0b1 to indicate that the cache level supports Read-Allocation.
[28] WA Indicates support for Write-Allocation. The possible values are:
0 Cache level does not support Write-Allocation.
1 Cache level supports Write-Allocation.
[27:13] NumSets Indicates the (number of sets in cache) – 1. Therefore, a value of 0 indicates 1 set in the cache.
The number of sets does not have to be a power of 2.
[12:3] Associativity Indicates the associativity of the selected cache level. The possible values are:
0b0000000001 2-way.
0b0000000010 3-way.
0b0000001111 16-way.
[2:0] LineSize Returns 0b010 to indicate that the cache line size is 64 bytes.
The following table shows the individual bit field and complete register encoding for the CCSIDR_EL1.
The CSSELR_EL1 determines which Cache Size ID Register to select.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-122
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
0x3-0xF - - Reserved
To access the CCSIDR in AArch32 state, read the CP15 register with:
MRC p15, 1, <Rt>, c0, c0, 0; Read Cache Size ID Register
31 30 29 27 26 24 23 21 20 18 17 15 14 12 11 9 8 6 5 3 2 0
RES0 LoUU LoC LoUIS Ctype7 Ctype6 Ctype5 Ctype4 Ctype3 Ctype2 Ctype1
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-123
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[26:24] LoC Indicates the Level of Coherency for the cache hierarchy. This value is:
0b010 L3 cache.
[23:21] LoUIS Indicates the Level of Unification Inner Shareable for the cache hierarchy. This value is:
0b001 L2 cache.
[20:18] Ctype7 Indicates the type of cache implemented at level 7. This value is:
0b000 No cache.
[17:15] Ctype6 Indicates the type of cache implemented at level 6. This value is:
0b000 No cache.
[14:12] Ctype5 Indicates the type of cache implemented at level 5. This value is:
0b000 No cache.
[11:9] Ctype4 Indicates the type of cache implemented at level 4. This value is:
0b000 No cache.
[8:6] Ctype3 Indicates the type of cache implemented at level 3. This value is:
0b000 No cache.
[5:3] Ctype2 Indicates the type of cache implemented at level 2. This value is:
0b100 Unified cache.
[2:0] Ctype1 Indicates the type of cache implemented at level 1. This value is:
0b011 Separate instruction and data caches.
To access the CLIDR in AArch32 state, read the CP15 register with:
MRC p15, 1, <Rt>, c0, c0, 1; Read Cache Level ID Register
The processor does not implement AIDR_EL1. This register is always RES0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-124
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Purpose
Selects the current CCSIDR_EL1, by specifying:
• The required cache level.
• The cache type, either instruction or data cache.
Usage constraints
The accessibility to the CSSELR_EL1 by Exception level is:
If the CSSELR_EL1 level field is programmed to a cache level that is not implemented, then a
read of CSSELR_EL1 returns an UNKNOWN value in CSSELR_EL1.Level.
Configurations
The CSSELR_EL1 is:
• Banked for the Secure and Non-secure states.
• Architecturally mapped to the Non-secure AArch32 CSSELR register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the CSSELR_EL1 bit assignments.
31 4 3 1 0
RES0 Level
InD
To access the CSSELR_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, CSSELR_EL1; Read Cache Size Selection Register
MSR CSSELR_EL1, <Xt>; Write Cache Size Selection Register
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-125
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
To access the CSSELR in AArch32 state, read or write the CP15 register with:
MRC p15, 2, <Rt>, c0, c0, 0; Read Cache Size Selection Register
MCR p15, 2, <Rt>, c0, c0, 0; Write Cache Size Selection Register
Related information
4.3.22 Cache Size ID Register, EL1 on page 4-121.
Configurations
The CTR_EL0 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch32 CTR register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the CTR_EL0 bit assignments.
31 30 28 27 24 23 20 19 16 15 14 13 4 3 0
RES1
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-126
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[19:16] DminLine Log2 of the number of words in the smallest cache line of all the data and unified caches that the
processor controls. This value is:
0x4
Smallest data cache line size is 16 words.
[15:14] L1lp Level 1 Instruction Cache policy. Indicates the indexing and tagging policy for the L1 Instruction
Cache. This value is:
0b11
Physical index, physical tag (PIPT).
To access the CTR in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c0, 1; Read Cache Type Register
Configurations
The DCZID_EL0 is a 32-bit register.
Attributes
See the register summary in Table 4-1 AArch64 identification registers on page 4-77.
The following figure shows the DCZID_EL0 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-127
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
63 5 4 3 0
RES0 BlockSize
DZP
To access the DCZID_EL0 in AArch64 state, read or write the register with:
Configurations
The VPIDR_EL2 is:
• A Banked EL2 register.
• Architecturally mapped to the AArch32 VPIDR register.
Attributes
See the register summary in Table 4-13 AArch64 virtualization registers on page 4-86.
The following figure shows the VPIDR_EL2 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-128
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 0
VPIDR
To access the VPIDR_EL2 in AArch64 state, read or write the register with:
MRS <Xt>, VPIDR_EL1; Read Virtualization Processor ID Register
MSR VPIDR_EL1, <Xt>; Write Virtualization Processor ID Register
Related information
4.3.1 Main ID Register, EL1 on page 4-92.
Configurations
The VMPIDR_EL2 is Architecturally mapped to the Non-secure AArch32 VMPIDR register.
Attributes
See the register summary in Table 4-13 AArch64 virtualization registers on page 4-86.
The following figure shows the VMPIDR_EL2 bit assignments.
63 32 31 0
Reserved VMPIDR_EL2
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-129
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
To access the VMPIDR_EL2 in AArch64 state, read or write the register with:
Related information
4.5.4 Virtualization Multiprocessor ID Register on page 4-255.
Configurations
The SCTLR_EL1 is:
• A 32-bit register in AArch64 state.
• Architecturally mapped to the Non-secure AArch32 SCTLR register.
Attributes
See the register summary in Table 4-3 AArch64 virtual memory control registers on page 4-81.
The following figure shows the SCTLR_EL1 bit assignments.
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
RES0 RES0 SA
UCI RES1 SA0
EE WXN CP15BEN
E0E nTWE THEE
RES0 ITD
nTWI SED
UCT UMA
DZE RES0
RES0 RES1
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-130
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[25] EE Exception endianness. Indicates the endianness of the translation table data for the translation table
lookups. The EE bit is permitted to be cached in a TLB. The values are:
0 Little-endian.
1 Big-endian.
[24] E0E Endianness of explicit data access at EL0. The values are:
0 Explicit data accesses at EL0 are little-endian. This is reset value.
1 Explicit data accesses at EL0 are big-endian.
Conditional WFE instructions that fail their condition do not cause an exception if this bit is 0.
Conditional WFI instructions that fail their condition do not cause an exception if this bit is 0.
[15] UCT Enables EL0 access to the CTR_EL0 register in AArch64 state. The values are:
0 Disables EL0 access to the CTR_EL0 register. This is the reset value.
1 Enables EL0 access to the CTR_EL0 register.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-131
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[4] SA0 Enable EL0 Stack Alignment check. When set, use of the Stack Pointer as the base address in a
load/store instruction at EL0 must align to a 16-byte boundary, or a Stack Alignment Fault
exception is raised. The values are:
0 Disable EL0 Stack Alignment check.
1 Enable EL0 Stack Alignment check. This is the reset value.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-132
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Related information
4.5.5 System Control Register on page 4-256.
The processor does not implement the ACTLR_EL1 register. This register is always RES0.
Configurations
The CPACR_EL1 is:
• A32-bit register in AArch64 state.
• Architecturally mapped to the Non-secure AArch32 CPACR register.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-133
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Attributes
See the register summary in Table 4-4 AArch64 other System registers on page 4-82.
The following figure shows the CPACR_EL1 bit assignments.
31 29 28 27 22 21 20 19 0
TTA
To access the CPACR_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, CPACR_EL1; Read EL1 Architectural Feature Access Control Register
MSR CPACR_EL1, <Xt>; Write EL1 Architectural Feature Access Control Register
Related information
4.5.6 Architectural Feature Access Control Register on page 4-261.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-134
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The accessibility to ACTLR_EL2 in AArch64 state by Exception level is:
Configurations
The ACTLR_EL2 is:
• A Banked EL2 register.
• Architecturally mapped to the AArch32 HACTLR register.
Attributes
See the register summary in Table 4-4 AArch64 other System registers on page 4-82.
The following figure shows the ACTLR_EL2 bit assignments.
31 7 6 5 4 3 2 1 0
Reserved
[5] L2ECTLR access control L2ECTLR access control. The possible values are:
0
The register is not accessible from Non-secure EL1.
1
The register is accessible from Non-secure EL1.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-135
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[0] CPUACTLR access control CPUACTLR access control. The possible values are:
0
The register is not accessible from Non-secure EL1.
1
The register is accessible from Non-secure EL1.
To access the ACTLR_EL2 in AArch64 state, read or write the register with:
MRS <Xt>, ACTLR_EL2; Read EL2 Auxiliary Control Register
MSR ACTLR_EL2, <Xt>; Write EL2 Auxiliary Control Register
To access the HACTLR in AArch32 state, read or write the CP15 register with:
MRC p15, 4, <Rt>, c1, c0, 1; Read Hypervisor Auxiliary Control Register
MCR p15, 4, <Rt>, c1, c0, 1; Write Hypervisor Auxiliary Control Register
Configurations
The HCR_EL2 is architecturally mapped as follows:
• [63:32] to the AArch32 HCR2 register.
• [31:0] to the AArch32 HCR register.
Attributes
See the register summary in Table 4-13 AArch64 virtualization registers on page 4-86.
The following figure shows the HCR_EL2 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-136
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
63 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
Reserved
ID VM
CD SWIO
RW PTW
TRVM FMO
HCD IMO
TDZ AMO
TGE VF
TVM VI
TTLB VSE
TPU FB
TPC BSU
TSW DC
TACR TWI
TIDCP TWE
TSC TID0
TID3 TID1
TID2
[32] CD Disables stage 2 data cache. When HCR_EL2.VM is 1, this forces all stage 2 translations for data
accesses and translation table walks to Normal memory to be Non-cacheable for the EL1/EL0
translation regimes. The values are:
0
Has no effect on stage 2 EL1/EL0 translation regime for data access or translation table walks.
This is the reset value.
1
Forces all stage 2 translations for data accesses and translation table walks to Normal memory
to be Non-cacheable for the EL1/EL0 translation regime.
[31] RW Register width control for lower Exception levels. The values are:
0
Lower levels are all AArch32. This is the reset value.
1
EL1 is AArch64. EL0 is determined by the register width described in the current processing
state when executing at EL0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-137
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[29] HCD Disables Hyp call. The processor implements EL3. This bit is RES0.
[28] TDZ Traps DC ZVA instruction. The values are:
0
DC ZVA instruction is not trapped.
1
DC ZVA instruction is trapped to EL2 when executed in Non-secure EL1 or EL0.
[27] TGE Traps general exceptions. If this bit is set, and SCR_EL3.NS is set, then:
• All EL1 exceptions are routed to EL2.
• For EL1, the SCTLR_EL1.M bit is treated as 0 regardless of its actual state other than the purpose
of reading the bit.
• The HCR_EL2.FMO, HCR_EL2.IMO, and HCR_AMO bits are treated as 1 regardless of their
actual state other than for the purpose of 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.
[26] TVM Trap Virtual Memory controls. When 1, this causes writes to the EL1 virtual memory control registers
from EL1 to be trapped to EL2. This covers the following registers:
AArch32
SCTLR, TTBR0, TTBR1, TTBCR, DACR, DFSR, IFSR, DFAR, IFAR, ADFSR, AIFSR,
PRRR/MAIR0, NMRR/MAIR1, AMAIR0, AMAIR1, and CONTEXTIDR.
AArch64
SCTLR_EL1, TTBR0_EL1, TTBR1_EL1, TCR_EL1, ESR_EL1, FAR_EL1, AFSR0_EL1,
AFSR1_EL1, MAIR_EL1, AMAIR_EL1, and CONTEXTIDR_EL1.
The reset value is 0.
[25] TTLB Trap TLB maintenance instructions. When 1, this causes TLB maintenance instructions executed from
EL1 that are not UNDEFINED to be trapped to EL2. This covers the following instructions:
AArch32
TLBIALLIS, TLBIMVAIS, TLBIASIDIS, TLBIMVAAIS, ITLBIALL, DTLBIALL, TLBIALL, ITLBIMVA,
DTLBIMVA, TLBIMVA, ITLBIASID, DTLBIASID, TLBIASID, TLBIMVAA, TLBIMVALIS,
TLBIMVAALIS, TLBIMVAL, and TLBIMVAAL.
AArch64
TLBI VAMLLE1, TLBI VAE1, TLBI ASIDE1, TLBI VAAE1, TLBI VALE1, TLBI VAALE1, TLBI
VMALLE1IS, TLBI VAE1IS, TLBI ASIDE1IS, TLBI VAAE1IS, TLBI VALE1IS, and TLBI
VAALE1IS.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-138
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[23] TPC Trap Data/Unified Cache maintenance operations to point of coherency. When 1, this causes Data or
Unified Cache maintenance instructions by address to the point of coherency executed from EL1 or
EL0 that are not UNDEFINED to be trapped to EL2. This covers the following instructions:
AArch32
DCIMVAC, DCCIMVAC, and DCCMVAC.
AArch64
DC IVAC, DC CIVAC, and DC CVCA.
[22] TSW Trap Data/Unified Cache maintenance operations by Set/Way. When 1, this causes Data or Unified
Cache maintenance instructions by set/way executed from EL1 that are not UNDEFINED to be trapped to
EL2. This covers the following instructions:
AArch32
DCISW, DCCSW, and DCCISW.
AArch64
DC ISW, DC CSW, and DC CISW.
[20] TIDCP Trap Implementation Dependent functionality. When 1, this causes accesses to the following instruction
set space executed from EL1 to be trapped to EL2:
AArch32
All CP15 MCR and MRC instructions as follows:
• CRn is 9, op1 is 0 to 7, CRm is c0, c1, c2, c5, c6, c7, or c8, and op2 is 0 to 7.
• CRn is 10, op1 is 0 to 7, CRm is c0, c1, c4, or c8, and op2 is 0 to 7.
• CRn is 11, op1 is 0 to 7, CRm is c0 to c8, or c15, and op2 is 0 to 7.
AArch64
Reserved control space for IMPLEMENTATION DEFINED functionality.
Accesses from EL0 are UNDEFINED. The reset value is 0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-139
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[18] TID3 Trap ID Group 3. When 1, this causes reads to the following registers executed from EL1 to be trapped
to EL2:
AArch32
ID_PFR0, ID_PFR1, ID_DFR0, ID_AFR0, ID_MMFR0, ID_MMFR1, ID_MMFR2,
ID_MMFR3, ID_ISAR0, ID_ISAR1, ID_ISAR2, ID_ISAR3, ID_ISAR4, ID_ISAR5, MVFR0,
MVFR1, and MVFR2 and MRC instructions to the following locations:
• op1 is 0, CRn is 0, CRm is c3, c4, c5, c6, or c7, and op2 is 0 or 1.
• op1 is 0, CRn is 0, CRm is c3, and op2 is 2.
• op1 is 0, CRn is 0, CRm is 5, and op2 is 4 or 5.
AArch64
ID_PFR0_EL1, ID_PFR1_EL1, ID_DFR0_EL1, ID_AFR0_EL1, ID_MMFR0_EL1,
ID_MMFR1_EL1, ID_MMFR2_EL1, ID_MMFR3_EL1, ID_ISAR0_EL1, ID_ISAR1_EL1,
ID_ISAR2_EL1, ID_ISAR3_EL1, ID_ISAR4_EL1, ID_ISAR5_EL1, MVFR0_EL1,
MVFR1_EL1, MVFR2_EL1, ID_AA64PFRn_EL1, ID_AA64DFRn_EL1,
ID_AA64ISARn_EL1, ID_AA64MMFRn_EL1, and ID_AA64AFRn_EL1.
The reset value is 0.
[17] TID2 Trap ID Group 2. When 1, this causes reads or writes to CSSELR/CSSELR_EL1, to the following
registers executed from EL1 or EL0 that are UNDEFINED to be trapped to EL2:
AArch32
CTR, CCSIDR, CLIDR, and CSSELR.
AArch64
CTR_EL0, CCSIDR_EL1, CLIDR_EL1, and CSSELR_EL1.
The reset value is 0.
[16] TID1 Trap ID Group 1. When 1, this causes reads to the following registers executed from EL1 to be trapped
to EL2:
AArch32
TCMTR, TLBTR, AIDR, and REVIDR.
AArch64
AIDR_EL1, and REVIDR_EL1.
The reset value is 0.
[15] TID0 Trap ID Group 0. When 1, this causes reads to the following registers executed from EL1 or EL0 that
are UNDEFINED to be trapped to EL2:
AArch32
FPSID and JIDR.
AArch64
None.
The reset value is 0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-140
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[13] TWI Traps WFI instruction if it would cause suspension of execution. For example, if there is no pending
WFI event:
0
WFI instruction is not trapped.
1
WFI instruction executed in EL1 or EL0 is trapped to EL2 for AArch32 and AArch64 states.
[12] DC Default Cacheable. When this bit is set to 1 the memory type and attributes determined by stage 1
translation is Normal, Non-shareable, Inner Write-Back Write-Allocate, Outer Write-Back Write-
Allocate.
When executing in Non-secure EL0 or EL1 and the HCR_EL2.DC bit is set, the behavior of processor
is consistent with the behavior when:
• The SCTLR_EL1.M bit is clear, regardless of the actual value of the SCTLR.M bit.
— An explicit read of the SCTLR_EL1.M bit returns its actual value.
• The HCR_EL2.VM bit is set, regardless of the actual value of the HCR_EL2.VM bit.
— An explicit read of the HCR_EL2.VM bit returns its actual value.
The reset value is 0.
[11:10] BSU Barrier shareability upgrade. Determines the minimum shareability domain that is supplied to any
barrier executed from EL1 or EL0. The values are:
0b00
No effect.
0b01
Inner Shareable.
0b10
Outer Shareable.
0b11
Full system.
This value is combined with the specified level of the barrier held in its instruction, according to the
algorithm for combining shareability attributes.
[9] FB Force broadcast. When 1, this causes the following instructions to be broadcast within the Inner
Shareable domain when executed from Non-secure EL1:
AArch32
ITLBIALL, DTLBIALL, TLBIALL, ITLBIMVA, DTLBIMVA, TLBIMVA, ITLBIASID, DTLBIASID,
TLBIASID, TLBIMVAA, BPIALL, and ICIALLU.
AArch64
TLBI VMALLE1, TLBI VAE1, TLBI ASIDE1, TLBI VAAE1, TLBI VALE1, TLBI VAALE1, and IC
IALLU.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-141
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[5] AMO Asynchronous abort and error interrupt routing. The values are:
0
Asynchronous external Aborts and SError Interrupts while executing at Exception levels lower
than EL2 are not taken at EL2. Virtual System Error/Asynchronous Abort is disabled.
1
Asynchronous external Aborts and SError Interrupts while executing at EL2 or lower are taken
in EL2 unless routed by SCTLR_EL3.EA bit to EL3. Virtual System Error/Asynchronous
Abort is enabled.
[2] PTW Protected Table Walk. When this bit is set, if stage 2 translation of a translation table access, made as
part of a stage 1 translation table walk at EL0 or EL1, maps to Strongly-ordered or Device memory, the
access is faulted as a stage 2 Permission fault.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-142
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
To access the HCR_EL2 in AArch64 state, read or write the register with:
Related information
4.5.11 Hyp Configuration Register 2 on page 4-275.
4.5.10 Hyp Configuration Register on page 4-270.
Configurations
The CPTR_EL2 is:
• A 32-bit register in AArch64 state.
• Architecturally mapped to the AArch32 HCPTR register.
Attributes
See the register summary in Table 4-13 AArch64 virtualization registers on page 4-86.
The following figure shows the CPTR_EL2 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-143
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 30 21 20 19 14 13 12 11 10 9 0
To access the CPTR_EL2 in AArch64 state, read or write the register with:
MRS <Xt>, CPTR_EL2; Read EL2 Architectural Feature Trap Register
MSR CPTR_EL2, <Xt>; Write EL2 Architectural Feature Trap Register
Related information
4.5.13 Hyp Architectural Feature Trap Register on page 4-279.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-144
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The accessibility to the HSTR_EL2 in AArch64 state by Exception level is:
Configurations
The HSTR_EL2 is:
• A Banked EL2 register.
• Architecturally mapped to AArch32 HSTR register.
Attributes
See the register summary in Table 4-13 AArch64 virtualization registers on page 4-86.
The following figure shows the HSTR_EL2 bit assignments.
31 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Reserved
TTEE T0
T15 T1
Reserved T2
T13 T3
T12 Reserved
T11 T5
T10 T6
T9 T7
T8
[15] T15 Trap coprocessor primary register CRn = 15. The possible values are:
0
Has no effect on Non-secure accesses to CP15 coprocessor registers. This is the reset value.
1
Trap valid Non-secure accesses to coprocessor primary register CRn = c15 in AArch32 state to
Hyp mode.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-145
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[12] T12 Trap coprocessor primary register CRn = 12. The possible values are:
0
Has no effect on Non-secure accesses to CP15 coprocessor registers. This is the reset value.
1
Trap valid Non-secure accesses to coprocessor primary register CRn = c12 in AArch32 state to
Hyp mode.
[11] T11 Trap coprocessor primary register CRn = 11. The possible values are:
0
Has no effect on Non-secure accesses to CP15 coprocessor registers. This is the reset value.
1
Trap valid Non-secure accesses to coprocessor primary register CRn = c11 in AArch32 state to
Hyp mode.
[10] T10 Trap coprocessor primary register CRn = 10. The possible values are:
0
Has no effect on Non-secure accesses to CP15 coprocessor registers. This is the reset value.
1
Trap valid Non-secure EL0 or EL1 accesses to coprocessor primary register CRn = c10 in
AArch32 state to Hyp mode.
[9] T9 Trap coprocessor primary register CRn = 9. The possible values are:
0
Has no effect on Non-secure accesses to CP15 coprocessor registers. This is the reset value.
1
Trap valid Non-secure EL0 or EL1 accesses to coprocessor primary register CRn = c9 in
AArch32 state to Hyp mode.
[8] T8 Trap coprocessor primary register CRn = 8. The possible values are:
0
Has no effect on Non-secure accesses to CP15 coprocessor registers. This is the reset value.
1
Trap valid Non-secure EL0 or EL1 accesses to coprocessor primary register CRn = c8 in
AArch32 state to Hyp mode.
[7] T7 Trap coprocessor primary register CRn = 7. The possible values are:
0
Has no effect on Non-secure accesses to CP15 coprocessor registers. This is the reset value.
1
Trap valid Non-secure EL0 or EL1 accesses to coprocessor primary register CRn = c7 in
AArch32 state to Hyp mode.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-146
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[5] T5 Trap coprocessor primary register CRn = 5. The possible values are:
0
Has no effect on Non-secure accesses to CP15 coprocessor registers. This is the reset value.
1
Trap valid Non-secure EL0 or EL1 accesses to coprocessor primary register CRn = c5 in
AArch32 state to Hyp mode.
[2] T2 Trap coprocessor primary register CRn = 2. The possible values are:
0
Has no effect on Non-secure accesses to CP15 coprocessor registers. This is the reset value.
1
Trap valid Non-secure EL0 or EL1 accesses to coprocessor primary register CRn = c2 in
AArch32 state to Hyp mode.
[1] T1 Trap coprocessor primary register CRn = 1. The possible values are:
0
Has no effect on Non-secure accesses to CP15 coprocessor registers. This is the reset value.
1
Trap valid Non-secure EL0 or EL1 accesses to coprocessor primary register CRn = c1 in
AArch32 state to Hyp mode.
[0] T0 Trap coprocessor primary register CRn = 0. The possible values are:
0
Has no effect on Non-secure accesses to CP15 coprocessor registers. This is the reset value.
1
Trap valid Non-secure EL0 or EL1 accesses to coprocessor primary register CRn = c0 in
AArch32 state to Hyp mode.
To access the HSTR_EL2 in AArch64 state, read or write the register with:
MRS <Xt>, HSTR_EL2; Read Hyp System Trap Register
MSR HSTR_EL2, <Xt>; Write Hyp System Trap Register
To access the HSTR in AArch32 state, read or write the CP15 register with:
MRC p15, 4, <Rt>, c1, c1, 3; Read Hyp System Trap Register
MCR p15, 4, <Rt>, c1, c1, 3; Write Hyp System Trap Register
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-147
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
The processor does not implement HACR_EL2 in AArch64 state. This register is RES0 in EL2 and EL3.
The processor does not implement HACR in AArch32 state. This register is RES0 in Hyp mode and in
Monitor mode when SCR.NS is 1.
Configurations
The SCTLR_EL3 is:
• A 32-bit register in AArch64 state.
• Architecturally mapped to Secure AArch32 SCTLR register.
Attributes
See the register summary in Table 4-3 AArch64 virtual memory control registers on page 4-81.
The following figure shows the SCTLR_EL3 bit assignments.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 13 12 11 10 6 5 4 3 2 1 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-148
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[2] C Global enable for data and unified caches. The values are:
0
Disables data and unified caches. This is the reset value.
1
Enables data and unified caches.
[0] M Global enable for the EL1 and EL0 stage 1 MMU. The values are:
0
Disables EL1 and EL0 stage 1 MMU. This is the reset value.
1
Enables EL1 and EL0 stage 1 MMU.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-149
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
To access the SCTLR_EL3 in AArch64 state, read or write the register with:
Related information
4.5.5 System Control Register on page 4-256.
Configurations
The ACTLR_EL3 is:
• A Banked register.
• Mapped to the Secure AArch32 ACTLR register.
Attributes
See the register summary in Table 4-4 AArch64 other System registers on page 4-82.
The following figure shows the ACTLR_EL3 bit assignments.
31 7 6 5 4 3 2 1 0
RES0 RES0
L2ACTLR
L2ECTLR
L2CTLR
CPUECTLR
CPUACTLR
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-150
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[0] CPUACTLR CPU Auxiliary Control Register. The possible values are:
0
The register is not accessible from a lower Exception level. This is the reset value.
1
The register is accessible from a lower Exception level.
To access the ACTLR_EL3 in AArch64 state, read or write the register with:
MRS <Xt>, ACTLR_EL3; Read Auxiliary Control Register
MSR ACTLR_EL3, <Xt>; Write Auxiliary Control Register
To access the ACTLR in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c1, c0, 1; Read Auxiliary Control Register
MCR p15, 0, <Rt>, c1, c0, 1; Write Auxiliary Control Register
Related information
4.3.33 Auxiliary Control Register, EL2 on page 4-134.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-151
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Purpose
Controls trapping to EL3 for accesses to the CPACR_EL1 register, trace functionality and
registers associated with floating-point and SIMD execution. Also controls EL3 access to this
functionality.
Usage constraints
The accessibility of the CPTR_EL3 by Exception level is:
Configurations
The CPTR_EL3 is a 32-bit register.
Attributes
See the register summary in Table 4-12 AArch64 security registers on page 4-85.
The following figure shows the CPTR_EL3 bit assignments.
31 30 21 20 19 11 10 9 0
To access the CPTR_EL3 in AArch64 state, read or write the register with:
MRS <Xt>, CPTR_EL3; Read EL3 Architectural Feature Trap Register
MSR CPTR_EL3, <Xt>; Write EL3 Architectural Feature Trap Register
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-152
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Configurations
TCR_EL1[31:0] is architecturally mapped to the Non-secure AArch32 TTBCR register.
Attributes
See the register summary in Table 4-3 AArch64 virtual memory control registers on page 4-81.
The following figure shows the TCR_EL1 bit assignments.
63 39 38 37 36 35 34 32 31 30 29 28 27 26 25 24 23 22 21 16 15 14 13 12 11 10 9 8 7 6 5 0
[37] TBI0 Top Byte Ignored. Indicates whether the top byte of the input address is used for address match for the
TTBR0 region. The values are:
0 Top byte used in the address calculation.
1 Top byte ignored in the address calculation.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-153
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[29:28] SH1 Shareability attribute for memory associated with translation table walks using TTBR1. The values
are:
0b00 Non-shareable.
0b01 Reserved.
0b10 Outer Shareable.
0b11 Inner Shareable.
[27:26] ORGN1 Outer cacheability attribute for memory associated with translation table walks using TTBR1. The
values are:
0b00 Normal memory, Outer Non-cacheable.
0b01 Normal memory, Outer Write-Back Write-Allocate Cacheable.
0b10 Normal memory, Outer Write-Through Cacheable.
0b11 Normal memory, Outer Write-Back no Write-Allocate Cacheable.
[25:24] IRGN1 Inner cacheability attribute for memory associated with translation table walks using TTBR1. The
values are:
0b00 Normal memory, Inner Non-cacheable.
0b01 Normal memory, Inner Write-Back Write-Allocate Cacheable.
0b10 Normal memory, Inner Write-Through Cacheable.
0b11 Normal memory, Inner Write-Back no Write-Allocate Cacheable.
[23] EPD1 Translation table walk disable for translations using TTBR1. Controls if a translation table walk is
performed on a TLB miss for an address that is translated using TTBR1. The values are:
0 Perform translation table walk using TTBR1.
1 A TLB miss on an address translated from TTBR1 generates a Translation fault. No translation
table walk is performed.
[22] A1 Selects whether TTBR0 or TTBR1 defines the ASID. The values are:
0 TTBR0.ASID defines the ASID.
1 TTBR1.ASID defines the ASID.
[21:16] T1SZ Size offset of the memory region addressed by TTBR1. The region size is 2(64–TSIZE) bytes.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-154
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[13:12] SH0 Shareability attribute for memory associated with translation table walks using TTBR0. The values
are:
0b00 Non-shareable.
0b01 Reserved.
0b10 Outer Shareable.
0b11 Inner Shareable.
[11:10] ORGN0 Outer cacheability attribute for memory associated with translation table walks using TTBR0. The
values are:
0b00 Normal memory, Outer Non-cacheable.
0b01 Normal memory, Outer Write-Back Write-Allocate Cacheable.
0b10 Normal memory, Outer Write-Through Cacheable.
0b11 Normal memory, Outer Write-Back no Write-Allocate Cacheable.
[9:8] IRGN0 Inner cacheability attribute for memory associated with translation table walks using TTBR0. The
values are:
0b00 Normal memory, Inner Non-cacheable.
0b01 Normal memory, Inner Write-Back Write-Allocate Cacheable.
0b10 Normal memory, Inner Write-Through Cacheable.
0b11 Normal memory, Inner Write-Back no Write-Allocate Cacheable.
To access the TCR_EL1 in AArch64 state, read or write the register with:
Related information
4.5.15 Translation Table Base Control Register on page 4-282.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-155
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The accessibility of the TCR_EL2 by Exception level is:
Configurations
The TCR_EL2 is architecturally mapped to the AArch32 HCTR register.
Attributes
See the register summary in Table 4-3 AArch64 virtual memory control registers on page 4-81.
The following figure shows the TCR_EL2 bit assignments.
31 30 24 23 22 21 20 19 18 16 15 14 13 12 11 10 9 8 7 6 5 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-156
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[11:10] ORGN0 Outer cacheability attribute for memory associated with translation table walks using TTBR0. The
values are:
0b00 Normal memory, Outer Non-cacheable.
0b01 Normal memory, Outer Write-Back Write-Allocate Cacheable.
0b10 Normal memory, Outer Write-Through Cacheable.
0b11 Normal memory, Outer Write-Back no Write-Allocate Cacheable.
[9:8] IRGN0 Inner cacheability attribute for memory associated with translation table walks using TTBR0. The
values are:
0b00 Normal memory, Inner Non-cacheable.
0b01 Normal memory, Inner Write-Back Write-Allocate Cacheable.
0b10 Normal memory, Inner Write-Through Cacheable.
0b11 Normal memory, Inner Write-Back no Write-Allocate Cacheable.
To access the TCR_EL2 in AArch64 state, read or write the register with:
Related information
4.5.16 Hyp Translation Control Register on page 4-283.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-157
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Configurations
The VTCR_EL2 is:
• A32-bit register in AArch64 state.
• Architecturally mapped to the AArch32 VTCR register.
Attributes
See the register summary in Table 4-3 AArch64 virtual memory control registers on page 4-81.
The following figure shows the VTCR_EL2 bit assignments.
31 30 19 18 16 15 14 13 12 11 10 9 8 7 6 5 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-158
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[11:10] ORGN0 Outer cacheability attribute for memory associated with translation table walks using TTBR0.
0b00
Normal memory, Outer Non-cacheable.
0b01
Normal memory, Outer Write-Back Write-Allocate Cacheable.
0b11
Normal memory, Outer Write-Through Cacheable.
0b11
Normal memory, Outer Write-Back no Write-Allocate Cacheable.
[9:8] IRGN0 Inner cacheability attribute for memory associated with translation table walks using TTBR0.
0b00
Normal memory, Inner Non-cacheable.
0b01
Normal memory, Inner Write-Back Write-Allocate Cacheable.
0b11
Normal memory, Inner Write-Through Cacheable.
0b11
Normal memory, Inner Write-Back no Write-Allocate Cacheable.
To access the VTCR_EL2 in AArch64 state, read or write the register with:
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-159
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The TTBR0_EL1 is used in conjunction with TCR_EL1.
The accessibility to the TTBR0_EL1 by Exception level is:
Configurations
TTBR0_EL1 is architecturally mapped to the Non-secure AArch32 register TTBR0.
Attributes
See the register summary in Table 4-3 AArch64 virtual memory control registers on page 4-81.
The following figure shows the TTBR0_EL1 bit assignments.
63 48 47 10 9 0
[47:10] BADDR Translation table base address. Defining the translation table base address width.
[9:0] - Reserved, RES0.
To access the TTBR0_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, TTBR0_EL1; Read EL1 Translation Table Base Register 0
MSR TTBR0_EL1, <Xt>; Write EL1 Translation Table Base Register 0
Configurations
TTBR0_EL3 is mapped to the Secure AArch32 TTBR0 register.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-160
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Attributes
See the register summary in Table 4-3 AArch64 virtual memory control registers on page 4-81.
The following figure shows the TTBR0_EL3 bit assignments.
63 48 47 10 9 0
To access the TTBR0_EL3 in AArch64 state, read or write the register with:
MRS <Xt>, TTBR0_EL3; Read EL3 Translation Table Base Register 0
MSR TTBR0_EL3, <Xt>; Write EL3 Translation Table Base Register 0
Configurations
TTBR1_EL1 is architecturally mapped to the Non-secure AArch32 register TTBR1.
Attributes
See the register summary in Table 4-3 AArch64 virtual memory control registers on page 4-81.
The following figure shows the TTBR1_EL1 bit assignments.
63 48 47 10 9 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-161
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[47:10] BADDR Translation table base address. Defining the translation table base address width.
[9:0] - Reserved, RES0.
To access the TTBR0_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, TTBR1_EL1; Read EL1 Translation Table Base Register 1
MSR TTBR1_EL1, <Xt>; Write EL1 Translation Table Base Register 1
Configurations
The TCR_EL3 is architecturally mapped to the Secure AArch32 TTBCR register.
Attributes
See the register summary in Table 4-3 AArch64 virtual memory control registers on page 4-81.
The following figure shows the TCR_EL3 bit assignments.
31 30 24 23 22 21 20 19 18 16 15 14 13 12 11 10 9 8 7 6 5 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-162
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[13:12] SH0 Shareability attribute for memory associated with translation table walks using TTBR0. The values
are:
0b00 Non-shareable.
0b01 Reserved.
0b10 Outer Shareable.
0b11 Inner Shareable.
[11:10] ORGN0 Outer cacheability attribute for memory associated with translation table walks using TTBR0. The
values are:
0b00 Normal memory, Outer Non-cacheable.
0b01 Normal memory, Outer Write-Back Write-Allocate Cacheable.
0b10 Normal memory, Outer Write-Through Cacheable.
0b11 Normal memory, Outer Write-Back no Write-Allocate Cacheable.
[9:8] IRGN0 Inner cacheability attribute for memory associated with translation table walks using TTBR0. The
values are:
0b00 Normal memory, Inner Non-cacheable.
0b01 Normal memory, Inner Write-Back Write-Allocate Cacheable.
0b10 Normal memory, Inner Write-Through Cacheable.
0b11 Normal memory, Inner Write-Back no Write-Allocate Cacheable.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-163
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
To access the TCR_EL3 in AArch64 state, read or write the register with:
Related information
4.5.15 Translation Table Base Control Register on page 4-282.
The processor does not implement AFSR0_EL1, AFSR0_EL3, and ADFSR. These registers are RES0.
The processor does not implement AFSR1_EL1, AFSR1_EL3, and AIFSR. These registers are RES0.
Configurations
The ESR_EL1 is architecturally mapped to the Non-secure AArch32 DFSR register.
The ESR_EL3 is mapped to the Secure AArch32 DFSR register.
Attributes
See the register summary in Table 4-2 AArch64 exception handling registers on page 4-80.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-164
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 26 25 24 10 9 8 7 6 5 0
EC Reserved IFSC
IL Reserved
S1TPW
Reserved
EA
The following table shows the ESR_EL1 and ESR_EL3 bit assignments for the Instruction Abort
exception class.
For aborts other than external aborts this bit always returns 0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-165
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-166
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Table 4-61 ESR_EL1 and ESR_EL3 Cortex-A57 implementation-defined SError Interrupt exception
classes bit assignments
[14] Uncontainable System Error 0b1 Uncontainable – an event which cannot be contained to a particular code
sequence.
0b0 Containable - an Attributable event which can be contained to a particular
code sequence.
Configurations
The IFSR32_EL2 is:
• Banked for Secure and Non-secure states.
• Mapped to the Non-secure AArch32 IFSR register.
Attributes
See the register summary in Table 4-2 AArch64 exception handling registers on page 4-80.
There are two formats for this register. The value of TTBCR.EAE selects which format of the register is
used. The two formats are:
• IFSR32_EL2 format when using the Short-descriptor translation table format.
• IFSR32_EL2 format when using the Long-descriptor translation table format.
The following figure shows the IFSR32_EL2 bit assignments when using the Short-descriptor translation
table format.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-167
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 13 12 11 10 9 8 4 3 0
ExT LPAE
RES0 FS[4]
Figure 4-45 IFSR32_EL2 bit assignments for Short-descriptor translation table format
The following table shows the IFSR32_EL2 bit assignments when using the Short-descriptor translation
table format.
Table 4-62 IFSR32_EL2 bit assignments for Short-descriptor translation table format
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-168
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Table 4-62 IFSR32_EL2 bit assignments for Short-descriptor translation table format (continued)
The following figure shows the IFSR32_EL2 bit assignments when using the Long-descriptor translation
table format.
31 13 12 11 10 9 8 6 5 0
ExT LPAE
Figure 4-46 IFSR32_EL2 bit assignments for Long-descriptor translation table format
The following table shows the IFSR32_EL2 bit assignments when using the Long-descriptor translation
table format.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-169
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Table 4-63 IFSR32_EL2 bit assignments for Long-descriptor translation table format
For aborts other than external aborts this bit always returns 0.
The following table shows how the LL bits in the Status field encode the lookup level associated with the
MMU fault.
LL bits Meaning
00 Level 0
01 First level
10 Second level
11 Third level
Note
If a Data Abort exception is generated by an Instruction Cache maintenance operation, the fault is
reported as a Cache Maintenance fault in the DFSR or HSR with the appropriate Fault Status code. For
such exceptions reported in the DFSR, the corresponding IFSR is UNKNOWN.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-170
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
To access the IFSR32_EL2 in AArch64 state, read or write the register with:
MRS <Xt>, IFSR32_EL2; Read EL2 Instruction Fault Status Register
MSR IFSR32_EL2, <Xt>; Write EL2 Instruction Fault Status Register
To access the IFSR in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c5, c0, 1; Read Instruction Fault Status Register
MCR p15, 0, <Rt>, c5, c0, 1; Write Instruction Fault Status Register
Related information
IFSR32_EL2 format when using the Short-descriptor translation table format on page 4-167.
IFSR32_EL2 format when using the Long-descriptor translation table format on page 4-169.
4.3.52 Auxiliary Fault Status Register 0, EL2 and Hyp Auxiliary Data Fault Status Register
The processor does not implement and AFSR0_EL2 and HADFSR. These registers are always RES0.
4.3.53 Auxiliary Fault Status Register 1, EL2 and Hyp Auxiliary Instruction Fault Status Register
The processor does not implement AFSR1_EL2 and HAIFSR. These registers are always RES0.
31 26 25 24 0
EC IL ISS
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-171
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[25] IL Instruction length. Indicates the size of the instruction that has been trapped to Hyp mode. The values
are:
0 16-bit instruction.
1 32-bit instruction.
[24:0] ISS Instruction specific syndrome. The interpretation of this field depends on the value of the EC field. See
Encoding of ISS[24:20] when HSR[31:30] is 0b00 on page 4-172>.
All exception classes except the Instruction Abort are architecturally defined in the ARM® Architecture
Reference Manual ARMv8. The SError Interrupt exception classes are architecturally defined in the
ARM® Generic Interrupt Controller Architecture Specification, GICv3 with the exception of four bits.
The following changes are Cortex-A57 implementation-defined and only apply to SError Interrupt
exception classes.
Table 4-66 ESR_EL2 Cortex-A57 implementation-defined SError Interrupt exception classes bit
assignments
[14] Uncontainable System Error 0b1 Uncontainable – an event which cannot be contained to a particular code
sequence.
0b0 Containable - an Attributable event which can be contained to a particular
code sequence.
For EC values that are nonzero and have the two most-significant bits 0b00, ISS[24:20] provides the
condition field for the trapped instruction, together with a valid flag for this field. The encoding of this
part of the ISS field is:
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-172
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
To access the HSR in AArch32 state, read or write the CP15 register with:
MRC p15, 4, <Rt>, c5, c1, 0; Read Hyp Syndrome Register
MCR p15, 4, <Rt>, c5, c1, 0; Write Hyp Syndrome Register
Configurations
The architectural mapping of the PAR_EL1 is to the Non-secure AArch32 PAR register.
Attributes
See the register summary in Table 4-8 AArch64 address translation operations on page 4-83.
The following figure shows the PAR_EL1 bit assignments when the Virtual Address to Physical Address
conversion completes successfully.
63 60 59 56 55 44 43 12 11 10 9 8 7 6 1 0
RES1 NS
RES0
The following table shows the PAR_EL1 bit assignments when the Virtual Address to Physical Address
conversion completes successfully.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-173
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-174
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-175
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Note
The SHA bit takes the value of 0b10 for:
• Any type of device memory.
• Normal memory with both Inner Non-cacheable and Outer-cacheable attributes.
The following figure shows the PAR_EL1 bit assignments when the Virtual Address to Physical Address
conversion aborts.
63 12 11 10 9 8 7 6 1 0
RES0 S FST F
RES1 RES0
RES0 PTW
The following table shows the PAR_EL1 bit assignments when the Virtual Address to Physical Address
conversion aborts.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-176
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
To access the PAR_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, PAR_EL1; Read EL1 Physical Address Register
MSR PAR_EL1, <Xt>; Write EL1 Physical Address Register
Related information
4.5.18 Physical Address Register on page 4-289.
The processor does not set any IMPLEMENTATION DEFINED attributes in the Auxiliary Memory Attribute
Indirection Registers. AMAIR_EL1 and AMAIR_EL3 are RES0.
AMAIR_EL1[31:0] is architecturally mapped to the Non-secure AArch32 AMAIR0 register.
AMAIR_EL1[63:32] is architecturally mapped to the Non-secure AArch32 AMAIR1 register.
AMAIR_EL3[31:0] is architecturally mapped to the Secure AArch32 AMAIR0 register.
AMAIR_EL3[63:32] is architecturally mapped to the Secure AArch32 AMAIR1 register.
The Non-secure and Secure AArch32 AMAIR0 and AMAIR1 registers are RES0.
The processor does not set any IMPLEMENTATION DEFINED attributes in the Auxiliary Memory Attribute
Indirection Register, EL2. AMAIR_EL2 is RES0.
AMAIR_EL2[31:0] is architecturally mapped to the AArch32 HAMAIR0 register.
AMAIR_EL2[63:32] is architecturally mapped to the AArch32 HAMAIR1 register.
The AArch32 HMAIR0 and HAMAIR1 registers are RES0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-177
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The accessibility to the L2CTLR_EL1 by Exception level is:
Note
The L2CTLR_EL1 must be set statically and not dynamically changed.
The L2 Control Register can only be written when the L2 memory system is idle. ARM
recommends that you write to this register after a powerup reset before the MMU is enabled and
before any ACE, CHI, or ACP traffic begins.
If the register must be modified after a powerup reset sequence, you must idle the L2 memory
system with the following sequence:
1. Disable the MMU from each processor followed by an ISB to ensure the MMU disable
operation is complete, then execute a DSB to drain previous memory transactions.
2. Ensure that the system has no outstanding AC channel or CHI RXRSP coherence requests to
the processor.
3. Ensure that the system has no outstanding ACP requests to the processor.
When the L2 is idle, the processor can update the L2 Control Register followed by an ISB. After
the L2 Control Register is updated, you can enable the MMUs and normal ACE or CHI and
ACP traffic can resume.
Configurations
The L2CTLR_EL1 is:
• Common to the Secure and Non-secure states.
• A 32-bit register in AArch64 state.
• Architecturally mapped to the AArch32 L2CTLR register.
Attributes
See the register summary in Table 4-15 AArch64 implementation defined registers
on page 4-89.
The following figure shows the L2CTLR_EL1 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-178
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 30 26 25 24 23 22 21 20 19 14 13 12 11 10 9 8 6 5 4 3 2 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-179
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[20] Data inline ECC enable, Force inline ECC for Instruction Fetch (IF) and Load/Store (LS) read requests that hit
only applies if ECC is the L2 cache increasing the L2 hit latency by 2 cycles. Avoids requirement of flushing
enabled requests associated with L2 cache single-bit ECC errors. The possible values are:
0
Performance optimization reducing L2 hit latency by 2 cycles allowing
uncorrected data for IF and LS read requests that hit the L2 cache. This is the
reset value.
1
Forward only corrected data for L2 cache hits avoiding flushing request for
single-bit ECC errors.
[12] L2 Tag RAM slice L2 Tag RAM slice. This is a read-only bit that is set if the Tag RAM slice is present in
the implementation. The values are:
0
L2 Tag RAM slice is not present.
1
One L2 Tag RAM slice is present.
[11:10] L2 Data RAM slice L2 Data RAM slice. These are read-only bits that are set to the number of Data RAM
slices present in the implementation. The values are:
0b00
L2 Data RAM slices are not present.
0b01
One L2 Data RAM slice is present.
0b10
Two L2 Data RAM slices are present.
0b11
Invalid value.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-180
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[8:6] L2 Tag RAM latency L2 Tag RAM latency. The L2 Tag RAM programmable setup and latency bits only
affect the L2 Tag RAM. See 7.2.5 Register slice support for large cache sizes
on page 7-318 for more information. The possible values are:
0b000
2 cycles. This is the reset value.
0b001
2 cycles.
0b010
3 cycles.
0b011
4 cycles.
0b1xx
5 cycles.
[5] L2 Data RAM setup L2 Data RAM setup. The values are:
0
0 cycle. This the reset value.
1
1 cycle.
am Slice and Set-up have priority over programmed latency in determining total adjusted pipeline depth.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-181
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
To access the L2CTLR_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, S3_1_c11_c0_2; Read L2 Control Register
MSR S3_1_c11_c0_2, <Xt>; Write L2 Control Register
To access the L2CTLR in AArch32 state, read or write the CP15 register with:
MRC p15, 1, <Rt>, c9, c0, 2; Read L2 Control Register
MCR p15, 1, <Rt>, c9, c0, 2; Write L2 Control Register
31 30 29 28 3 2 0
RES0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-182
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[29] AXI or CHI AXI or CHI asynchronous error indication. The possible values are:
asynchronous error 0 No pending asynchronous error. This is the reset value.
1 An asynchronous error has occurred.
To access the L2ECTLR_EL1 in AArch32 state, read or write the CP15 register with:
MRS <Xt>, S3_1_c11_c0_3; Read L2 Extended Control Register
MSR S3_1_c11_c0_3, <Xt>; Write L2 Extended Control Register
To access the L2ECTLR in AArch32 state, read or write the CP15 register with:
MRC p15, 1, <Rt>, c9, c0, 3; Read L2 Extended Control Register
MCR p15, 1, <Rt>, c9, c0, 3; Write L2 Extended Control Register
Related information
L2 RAMs dynamic retention on page 2-50.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-183
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The accessibility of the RVBAR_EL3 by Exception level is:
Configurations
Only implemented if the highest Exception level implemented is EL3.
Attributes
See the register summary in Table 4-11 AArch64 reset registers on page 4-85.
The following figure shows the RVBAR_EL3 bit assignments.
63 44 43 2 1 0
Configurations
The RMR_EL3 is
• Common to the Secure and Non-secure states.
• Architecturally mapped to the AArch32 RMR register.
Attributes
Write access to RMR_EL3 is disabled when the CP15SDISABLE signal is HIGH and EL3 is
using AArch32.
See the register summary in Table 4-11 AArch64 reset registers on page 4-85.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-184
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 2 1 0
RES0
RR
AA64
[0] AA64ap Determines the Execution state at processor boot time. The values are:
0
AArch32 state.
1
AArch64 state.
If software requests a Warm reset by setting RR=1 then it can use the AA64 bit to change Execution
state.
To access the RMR_EL3 in AArch64 state, read or write the register with:
MRS <Xt>, RMR_EL3; Read EL3 Reset Management Register
MSR RMR_EL3, <Xt>; Write EL3 Reset Management Register
To access the RMR, in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c12, c0, 2; Read Reset Management Register
MCR p15, 0, <Rt>, c12, c0, 2; Write Reset Management Register
Note
Because all of the I-side arrays are greater than 32-bit wide, the processor contains multiple
IL1DATA registers, to hold the array information.
ap For a Cold reset, the value of this bit is set by the AA64nAA32 signal.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-185
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The accessibility to the IL1DATAn_EL1 by Exception level is:
Configurations
The IL1DATAn_EL1 is:
• Common to the Secure and Non-secure states.
• A 32-bit register in AArch64 state.
• Architecturally mapped to the AArch32 IL1DATAn registers.
Attributes
See the register summary in Table 4-15 AArch64 implementation defined registers
on page 4-89.
The following figure shows the IL1DATAn_EL1 bit assignments.
31 0
Data
To access the IL1DATAn_EL1 in AArch64 state, read or write the registers with:
MRS <Xt>, s3_0_c15_c0_n; Read EL1 Instruction L1 Data n Register
MSR s3_0_c15_c0_n, <Xt>; Write EL1 Instruction L1 Data n Register
To access the IL1DATAn in AArch32 state, read or write the CP15 registers with:
MRC p15, 0, <Rt>, c15, c0, n; Read Instruction L1 Data n Register
MCR p15, 0, <Rt>, c15, c0, n; Write Instruction L1 Data n Register
Related information
4.3.64 RAM Index operation on page 4-188.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-186
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Purpose
Holds the data side L1 or L2 array information returned by the RAMINDEX write operation.
Note
Because the Data, Tag, and TLB arrays are greater than 32-bit wide, the processor contains
multiple DL1DATA registers, to hold the array information.
Usage constraints
The accessibility to the DL1DATAn_EL1 by Exception level is:
Configurations
The DL1DATAn_EL1 is:
• Common to the Secure and Non-secure states.
• A 32-bit register in AArch64 state.
• Architecturally mapped to the AArch32 DL1DATAn registers.
Attributes
See the register summary in Table 4-15 AArch64 implementation defined registers
on page 4-89.
The following figure shows the DL1DATAn_EL1 bit assignments.
31 0
Data
To access the DL1DATAn_EL1 in AArch64 state, read or write the registers with:
MRS <Xt>, s3_0_c15_c1_n; Read EL1 Data L1 Data n Register
MSR s3_0_c15_c1_n, <Xt>; Write EL1 Data L1 Data n Register
To access the DL1DATAn in AArch32 state, read or write the CP15 registers with:
MRC p15, 0, <Rt>, c15, c1, n; Read Data L1 Data n Register
MCR p15, 0, <Rt>, c15, c1, n; Write Data L1 Data n Register
Related information
4.3.64 RAM Index operation on page 4-188.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-187
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Configurations
The RAMINDEX operates in the Secure and Non-secure states.
The RAMINDEX command takes one argument or source register. You must write an ARM
core register with the bit pattern described in the following figure for each RAM listed in the
following table.
A 32-bit register in AArch64 state.
Attributes
See the register summary in Table 4-15 AArch64 implementation defined registers
on page 4-89.
The following figure shows the RAMINDEX bit assignments.
31 24 23 22 21 18 17 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-188
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Note
• Executing a RAMINDEX operation with a reserved value of RAMID, Way, or Index results in the
corruption of the IL1DATAn or DL1DATAn register contents.
• In Non-secure EL1 and EL2, the RAMINDEX operation returns the contents of the RAM only if the
entry is marked valid and Non-secure. Entries that are marked invalid or Secure update the
IL1DATAn or DL1DATAn registers with 0x0 values.
• In Secure EL1 or EL3, the RAMINDEX operation returns the contents of the RAM, regardless of
whether the entry is marked valid or invalid, and Secure or Non-secure.
• When the RAMID field is set to L1-I BTB RAM in Non-secure EL1 and EL2, the RAMINDEX
operation always returns zero.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-189
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
• The L1-I, L1-D, L2 TLB, and L2 Snoop Tag RAMs can only be accessed by the processor where the
RAM resides or that owns the RAM.
• The L2 Tag, Data, and Dirty RAMs can be accessed by any processor.
The following figure shows the RAMINDEX register bit assignments for accessing L1-I Tag RAM.
31 24 23 20 19 18 17 14 13 6 5 0
The RAMINDEX address bits for accessing L1-I Tag RAM are:
Way[1:0]
Way select.
Note
The instruction cache is 3-way set-associative. Setting the way field to a value of 3, reads way 2
of the cache.
VA[13:7]
Row select.
VA[6]
Bank select.
The data returned from accessing L1-I Tag RAM are:
ILDATA1[1]
Valid bit.
ILDATA1[0]
Non-secure identifier for the physical address.
ILDATA0
Physical address tag [43:12].
The following figure shows the RAMINDEX bit assignments for accessing L1-I Data RAM.
31 24 23 20 19 18 17 14 13 3 2 0
Reserved
The RAMINDEX address bits for accessing L1-I Data RAM are:
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-190
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Way[1:0]
Way select.
Note
The instruction cache is 3-way set-associative. Setting the Way field to 3, reads way 2 of the
cache.
VA[13:6]
Set select.
VA[5:4]
Bank select.
VA[3]
Upper or lower doubleword within the quadword.
The data returned from accessing L1-I Data RAM are:
ILDATA1[31:0]
Data word 1.
ILDATA0[31:0]
Data word 0.
The following figure shows the RAMINDEX bit assignments for accessing L1-I BTB RAM.
31 24 23 15 14 4 3 0
The RAMINDEX address bits for accessing L1-I BTB RAM are:
VA[14:6]
Row select.
VA[5:4]
Bank select.
ARM does not disclose the format of the returned data.
The following figure shows the RAMINDEX bit assignments for accessing L1-I GHB RAM.
31 24 23 14 13 4 3 0
The RAMINDEX address bits for accessing L1-I GHB RAM are:
Index[13:5]
Row select.
Index[4]
Bank select.
ARM does not disclose the format of the returned data.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-191
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
The following figure shows the RAMINDEX bit assignments for accessing L1-I TLB array.
31 24 23 6 5 0
The RAMINDEX address bits for accessing L1-I TLB array are:
TLB entry
Selects one of the 48 entries.
The data returned from accessing L1-I TLB array are:
ILDATA3[27]
Valid bit.
ILDATA3[26:25]
Shareability attribute:
0b00
Non-Shareable.
0b01
Reserved.
0b10
Outer Shareable.
0b11
Inner Shareable.
ILDATA3[15:14]
VA memory space ID:
0b00
Secure EL1.
0b01
EL3, AArch64 only.
0b10
Non-secure EL1.
0b11
Non-secure EL2.
ILDATA3[13:6]
Virtual Machine ID (VMID).
{ILDATA3[5:0], ILDATA2[31:22]}
Address Space ID (ASID).
ILDATA2[21:14]
Memory Attribute Indirection Register.
ILDATA2[11:10]
Page size:
0b00
4KB.
0b01
64KB.
0b10
1MB.
0b11
Reserved.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-192
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
ILDATA2[9:6]
Domain ID.
ILDATA2[5]
Non-secure identifier for the physical address.
{ILDATA2[4:0], ILDATA1[31:5]}
Physical address [43:12].
{ILDATA1[4:0], ILDATA0[31:0]}
Virtual address [48:12].
The following figure shows the RAMINDEX bit assignments for accessing L1-I indirect predictor RAM.
31 24 23 19 18 17 8 7 0
Way
Figure 4-62 RAMINDEX bit assignments for L1-I indirect predictor RAM
The RAMINDEX address bits for accessing L1-I indirect predictor RAM are:
Way
Way select.
Index[7:0]
Indirect predictor entry.
ARM does not disclose the format of the returned data.
The following figure shows the RAMINDEX bit assignments for accessing L1-D Tag RAM.
31 24 23 19 18 17 14 13 6 5 0
Way
The RAMINDEX address bits for accessing L1-D Tag RAM are:
Way Way select.
PA[13:8] Row select.
PA[7:6] Bank select.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-193
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 24 23 19 18 17 14 13 3 2 0
Way Reserved
The RAMINDEX address bits for accessing L1-D Data RAM are:
Way Way select.
PA[13:6] Set select.
PA[5:4] Bank select.
PA[3] Upper or lower doubleword within the quadword.
The following figure shows the RAMINDEX bit assignments for accessing L1-D TLB array.
31 24 23 5 4 0
The RAMINDEX address bits for accessing L1-D TLB array are:
TLB entry
Selects one of the 32 entries.
The data returned from accessing L1-D TLB array are:
DL1DATA3[12]
Valid bit.
DL1DATA3[11:10]
VA memory space ID:
0b00
Secure EL1.
0b01
EL3, AArch64 only.
0b10
Non-secure EL1.
0b11
Non-secure EL2.
DL1DATA3[1:0]
Shareability attribute:
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-194
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
0b00
Non-Shareable.
0b01
Reserved.
0b10
Outer Shareable.
0b11
Inner Shareable.
DL1DATA2[31:24]
Memory Attribute Indirection Register.
DL1DATA2[23:22]
Page size:
0b00
4KB.
0b01
64KB.
0b10
1MB.
0b11
Reserved.
DL1DATA2[21:18]
Domain ID.
DL1DATA2[5]
Non-secure identifier for the physical address.
{DL1DATA2[4:0], DL1DATA1[31:5]}
Physical address [43:12].
{DL1DATA1[4:0], DL1DATA0[31:0]}
Virtual address [48:12].
L2 Tag RAM
The following figure shows the RAMINDEX bit assignments for accessing L2 Tag RAM.
31 24 23 22 21 18 17 16 6 5 0
Reserved Reserved
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-195
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
MOESI state:
0b00
Invalid.
0b01
Exclusive or Modified.
0b10
Reserved.
0b11
Shared or Owned.
Note
The Dirty bit in the L2 Dirty RAM must be used to differentiate between the Exclusive,
Modified, Shared, and Owned states.
L2 Data RAM
The following figure shows the RAMINDEX bit assignments for accessing L2 Data RAM.
31 24 23 22 21 18 17 16 4 3 0
Reserved Reserved
The following figure shows the RAMINDEX bit assignments for accessing L2 Snoop Tag RAM.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-196
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
31 24 23 21 20 19 18 17 14 13 6 5 0
CPU
RAMID = 0x12 Reserved Physical address [13:6] Reserved
ID
Way
Reserved
The RAMINDEX address bits for accessing L2 Snoop Tag RAM are:
CPUID[1:0]
Processor ID of the executing processor that has access to the L2 Snoop Tag RAM.
Way
Way select.
PA[13:7]
Row select.
PA[6]
Bank select.
The data returned from accessing L2 Snoop Tag RAM are:
DL1DATA1[0]
Non-secure identifier for the physical address.
DL1DATA0[31:2]
Physical address tag [43:14].
DL1DATA0[1:0]
MESI state:
0b00
Invalid.
0b01
Exclusive or Modified.
0b10
Reserved.
0b11
Shared.
The following figure shows the RAMINDEX bit assignments for accessing L2 Data ECC RAM.
31 24 23 22 21 18 17 16 4 3 0
Reserved Reserved
The RAMINDEX address bits for accessing L2 Data ECC RAM are:
Way[3:0]
Way select.
PA[16:7]
Row select.
PA[6]
Tag bank select.
PA[5:4]
Data bank select.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-197
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
L2 Dirty RAM
The following figure shows the RAMINDEX bit assignments for accessing L2 Dirty RAM.
31 24 23 22 21 18 17 16 6 5 0
Reserved Reserved
L2 TLB RAM
The following figure shows the RAMINDEX bit assignments for accessing L2 TLB RAM.
31 24 23 20 19 18 17 8 7 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-198
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
DL1DATA3[29]
Valid bit for Secure EL1.
DL1DATA3[28]
Valid bit for Non-secure EL1.
Note
Only a single bit in DLDATA3[31:28] is set to 1.
DL1DATA3[27:20]
VMID.
DL1DATA3[19:4]
ASID.
{DL1DATA3[3:0], DL1DATA2[31:6]}
Virtual address [48:19].
DL1DATA2[5]
Non-secure identifier for the physical address.
{DL1DATA2[4:0], DL1DATA1[31:5]}
Physical address [43:12].
{DL1DATA1[1:0], DL1DATA0[31]}
Fully resolved page size:
0b000
4KB.
0b001
64KB.
0b010
1MB.
0b011
2MB.
0b100
16MB.
0b101
1GB.
DL1DATA0[13:10]
Domain ID.
DL1DATA0[9:8]
Shareability attribute:
0b00
Non-Shareable.
0b01
Reserved.
0b10
Outer Shareable.
0b11
Inner Shareable.
DL1DATA0[7:0]
Memory Attribute Indirection Register.
For example, to read an entry in the instruction side TLB in AArch64 state:
LDR X0, =0x0000000001000D80
SYS #0, c15, c4, #0, X0
DSB SY
ISB
MRS X1, S3_0_c15_c0_0 ; Move ILData0 register to X1
MRS X2, S3_0_c15_c0_1 ; Move ILData1 register to X2
MRS X3, S3_0_c15_c0_2 ; Move ILData2 register to X3
MRS X4, S3_0_c15_c0_3 ; Move ILData3 register to X4
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-199
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
To complete the RAMINDEX operation in AArch64 state, use the following instruction:
SYS #0, c15, c4, #0, X0 ; Execute RAMINDEX operation
For example, to read one entry in the instruction side L1 data array in AArch32 state:
LDR R0, =0x01000D80;
MCR p15, 0, R0, c15, c4, 0; Read I-L1 TLB data into IL1DATA0-2
DSB
ISB
MRC p15, 0, R1, c15, c0, 0; Move IL1DATA0 Register to R1
MRC p15, 0, R2, c15, c0, 1; Move IL1DATA1 Register to R2
MRC p15, 0, R3, c15, c0, 2; Move IL1DATA2 Register to R3
To complete the RAMINDEX operation in AArch32 state, use the following instruction:
MCR p15, 0, <Rt>, c15, c4, 0; Execute RAMINDEX operation
Note
The L2ACTLR_EL1 must be set statically and not dynamically changed.
The L2 Auxiliary Control Register can only be written when the L2 memory system is
idle. ARM recommends that you write to this register after a powerup reset, before the
MMU is enabled, and before any ACE, CHI, or ACP traffic begins.
If the register must be modified after a powerup reset sequence, you must to idle the
L2 memory system with the following sequence:
1. Disable the MMU from each core followed by an ISB to ensure the MMU disable
operation is complete, then execute a DSB to drain previous memory transactions.
2. Ensure that the system has no outstanding ACE AC channel or CHI RXRSP
coherence requests to the Cortex-A57 processor.
3. Ensure that the system has no outstanding ACP requests to the Cortex-A57
processor.
When the L2 is idle, the processor can update the L2 Auxiliary Control Register
followed by an ISB. After the L2 Auxiliary Control Register is updated, you can
enable the MMUs and normal ACE or CHI and ACP traffic can resume.
Configurations The L2ACTLR_EL1 is:
• Common to the Secure and Non-secure states.
• A 32 bit register in AArch64 state.
• Architecturally mapped to the AArch32 L2ACTLR register.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-200
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Attributes See the register summary in Table 4-15 AArch64 implementation defined registers
on page 4-89.
31 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
RES0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-201
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
This bit applies to each of the two L2 cache tag bank clocks.
See L2 control and tag banks clock gating on page 2-51.
If the L2 dynamic retention feature is used then this bit must be zero. See L2
RAMs dynamic retention on page 2-50.
[27]at Force L2 logic clock enable Forces L2 logic clock enable active:
active 0 Does not prevent the clock generator from stopping the L2 logic clock. This
is the reset value.
1 Prevents the clock generator from stopping the L2 logic clock.
[26]at Force L2, GIC, Timer RCG Forces L2, GIC CPU interface, and Timer Regional Clock Gate (RCG) enables
enables active active:
0 Enables L2, GIC CPU interface, and Timer RCGs for additional clock
gating and potentially reduce dynamic power dissipation. This is the reset
value.
1 Forces L2, GIC CPU interface, and Timer RCG enables HIGH.
Setting this bit to 1 has no effect if the processor is configured to not include
RCGs. See Regional clock gating on page 2-52.
[25]at Enable single issue across all Enables single issue across all tag banks when the L2 arbitration replay
tbnks when L2 arbitration threshold is reached, so that only one request can be active across both tag
replay threshold is reached banks at any given time:
0 Disables single issue across the tag banks when the L2 arbitration replay
threshold is reached. This is the reset value.
1 Enables single issue across the tag banks when the L2 arbitration replay
threshold is reached.
at This bit is provided for debugging and characterization purpose only. For normal operation, ARM recommends that
you do not change the value of this bit from its reset value.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-202
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[21:20] Disable throttling of L2 Disables throttling of L2 prefetch requests based on FEQ occupancy count:
prefetch requests based on 00 For a 16-entry FEQ implementation, enables throttling of L2 prefetch
Fill/Evict Queue (FEQ) requests when FEQ count exceeds 12.
occupancy countau
For a 20-entry FEQ implementation, enables throttling of L2 prefetch
requests when FEQ count exceeds 16.
This is the reset value.
01 For a 16-entry FEQ implementation, enables throttling of L2 prefetch
requests when FEQ count exceeds 10.
For a 20-entry FEQ implementation, enables throttling of L2 prefetch
requests when FEQ count exceeds 14.
10 For a 16-entry FEQ implementation, enables throttling of L2 prefetch
requests when FEQ count exceeds 8.
For a 20-entry FEQ implementation, enables throttling of L2 prefetch
requests when FEQ count exceeds 12.
11 Disables throttling of L2 prefetch requests based on FEQ occupancy
count.
[17]at Disable L2 round-robin Disable L2 round-robin arbitration that only clocks through paths with an active
arbitration that only clocks requestor waiting to be arbitrated:
through paths with an active 0 Enables L2 round-robin arbitration that only clocks through paths with an
requestor waiting to be active requestor waiting to be arbitrated. This is the reset value.
arbitrated
1 Disables L2 round-robin arbitration that only clocks through paths with an
active requestor waiting to be arbitrated.
[16]at Enable replay threshold single Enables replay threshold single issue:
issue 0 Disables replay threshold single issue. This is the reset value.
1 Enables replay threshold single issue. If there are 32 consecutive
transactions on a tag bank replay, then single issue is forced until a
transaction successfully passes hazard checking.
au The 20-entry FEQ implementation option is available only in r1p0 and later revisions.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-203
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-204
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[2]at Limit to one request per tag Limit to one request per tag bank:
bank 0 Normal behavior permitting parallel requests to the tag banks. This is the
reset value.
1 Limits to one request per tag bank.
To access the L2ACTLR_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, s3_1_c15_c0_0; Read EL1 L2 Auxiliary Control Register
MSR s3_1_c15_c0_0, <Xt>; Write EL1 L2 Auxiliary Control Register
To access the L2ACTLR in AArch32 state, read or write the CP15 register with:
MRC p15, 1, <Rt>, c15, c0, 0; Read L2 Auxiliary Control Register
MCR p15, 1, <Rt>, c15, c0, 0; Write L2 Auxiliary Control Register
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-205
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The accessibility to the CPUACTLR_EL1 by Exception level is:
The CPU Auxiliary Control Register can only be written when the system is idle. ARM
recommends that you write to this register after a powerup reset, before the MMU is enabled,
and before any ACE or ACP traffic begins.
Note
Setting many of these bits can cause significantly lower performance on your code. Therefore, it
is suggested that you do not modify this register unless directed by ARM.
Configurations
CPUACTLR_EL1 is:
• Common to the Secure and Non-secure states.
• A 64-bit read/write register.
• Architecturally mapped to the AArch32 CPUACTLR register.
Attributes
See the register summary in Table 4-15 AArch64 implementation defined registers
on page 4-89.
The following figure shows the CPUACTLR_EL1[63:32] bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-206
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
63 62 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 40 39 38 37 36 35 34 33 32
ax This bit is used internally for debugging and characterization purposes only. For normal operation, ARM
recommends that you do not change the value of this bit from its reset value.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-207
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[57]ax Treat DMB st/st and DMB Treats DMB st/st and DMB ld/all as DMB all/all. Treat DSB st/st and DSB
ld/all as DMB all/all. ld/all as DSB all/all. This does not include the implicit barrier from Load-
Acquire/Store-Release. The possible values are:
Treat DSB st/st and DSB
ld/all as DSB all/all. 0
Normal behavior. This the reset value.
1
• Treat DMB st/st and DMB ld/all as DMB all/all.
• Treat DSB st/st and DSB ld/all as DSB all/all.
[53]ax Treat DMB and DSB as if Treats DMB and DSB as if their domain field is SY. The possible values are:
their domain field is SY 0
Normal behavior. This is the reset value.
1
Treat DMB NSH, DMB ISH, and DMB OSH as DMB SY.
Treat DSB NSH, DSB ISH, and DSB OSH as DSB SY.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-208
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[50]ax Disable store streaming on Disables store streaming on NC/GRE memory type:
NC/GRE memory type 0
Enables store streaming on NC/GRE memory type. This is the reset value.
1
Disables store streaming on NC/GRE memory type.
[49]ax Disable non-allocate hint Disables non-allocate hint of Write-Back No-Allocate memory type:
of Write-Back No-Allocate 0
(WBNA) memory type Enables non-allocate hint of WBNA memory type. This is the reset value.
1
Disables non-allocate hint of WBNA memory type.
[48]ax Disable early speculative Disables early speculative read access from LS to L2:
read access from LS to L2 0
Enables speculative early read access from LS to L2. This is the reset
value.
1
Disables speculative early read access from LS to L2.
[47]ax Disable D-side L1/L2 Disables L1 and L2 hardware prefetch across 4KB page boundary even if page is
hardware prefetch across 64KB or larger:
4KB page boundary even 0
if page is 64KB or larger. Enables D-side L1/L2 hardware prefetch across 4KB page boundary if the
page is 64KB or larger. This is the reset value.
1
Disables D-sideL1/L2 hardware prefetch across 4KB page boundary even
if the page is 64KB or larger.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-209
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-210
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
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
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-211
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[30]az Force main clock Forces main clock enable active. The possible values are:
enable active 0
Does not prevent the clock generator from stopping the processor clock. This is
the reset value.
1
Prevents the clock generator from stopping the processor clock.
If the processor dynamic retention feature is used then this bit must be zero. See
Processor dynamic retention on page 2-48.
[29]az Force Advanced Forces Advanced SIMD and Floating-point clock enable active. The possible values
SIMD and floating- are:
point clock enable 0
active Does not prevent the clock generator from stopping the Advanced SIMD and
Floating-point clock. This is the reset value.
1
Prevents the clock generator from stopping the Advanced SIMD and Floating-
point clock.
See Advanced SIMD and FP clock gating on page 2-51.
If the processor dynamic retention feature is used then this bit must be zero. See
Processor dynamic retention on page 2-48.
[28:27] Write streaming no- Write streaming no-allocate threshold. The possible values are:
allocate threshold 0b00
12th consecutive streaming cache line does not allocate in the L1 or L2 cache.
This is the reset value.
0b01
128th consecutive streaming cache line does not allocate in the L1 or L2 cache.
0b10
512th consecutive streaming cache line does not allocate in the L1 or L2 cache.
0b11
Disables streaming. All Write-Allocate lines allocate in the L1 or L2 cache.
az This bit is used internally for debugging and characterization purposes only. For normal operation, ARM
recommends that you do not change the value of this bit from its reset value.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-212
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[24] Non-cacheable Non-cacheable streaming enhancement. You can set this bit only if your memory
streaming system meets the requirement that cache line fill requests from the Cortex-A57
enhancement processor are atomic. The possible values are:
0
Disables higher performance Non-cacheable load forwarding. This is the reset
value.
1
Enables higher performance Non-cacheable load forwarding. See 6.4.4 Non-
cacheable streaming enhancement on page 6-309 for more information.
[23]az Force in-order Forces in-order requests to the same set and way. The possible values are:
requests to the same 0
set and way Does not force in-order requests to the same set and way. This is the reset
value.
1
Forces in-order requests to the same set and way.
[22]az Force in-order load Forces in-order load issue. The possible values are:
issue 0
Does not force in-order load issue. This is the reset value.
1
Forces in-order load issue.
[21]az Disable L2 TLB Disables L2 TLB prefetching. The possible values are:
prefetching 0
Enables L2 TLB prefetching. This is the reset value.
1
Disables L2 TLB prefetching.
[20]az Disable L2 translation Disables L2 translation table walk Immediate Physical Address (IPA) to Physical
table walk IPA PA Address (PA) cache. The possible values are:
cache 0
Enables L2 translation table walk IPA to PA cache. This is the reset value.
1
Disables L2 translation table walk IPA to PA cache.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-213
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[18]az Disable L2 stage 1 Disables L2 stage 1 translation table walk L2 PA cache. The possible values are:
translation table walk 0
L2 PA cache Enables L2 stage 1 translation table walk L2 PA cache. This is the reset value.
1
Disables L2 stage 1 translation table walk L2 PA cache.
[17]az Disable L2 TLB Disables L2 TLB performance optimization. The possible values are
performance 0
optimization Enables L2 TLB optimization. This is the reset value.
1
Disables L2 TLB optimization.
[16]az Enable full Strongly- Enables full Strongly-ordered or Device load replay. The possible values are:
ordered and Device 0
load replay Disables full Strongly-ordered or Device load replay. This is the reset value.
1
Enables full Strongly-ordered or Device load replay.
[15]az Force in-order issue in Forces in-order issue in branch execute unit. The possible values are:
branch execute unit 0
Disables forced in-order issue. This is the reset value.
1
Forces in-order issue.
[14]az Force limit of one Forces limit of one instruction group to commit and de-allocate per cycle. The possible
instruction group values are:
commit/de-allocate 0
per cycle Normal commit and de-allocate behavior. This is the reset value.
1
Limits commit and de-allocate to one instruction group per cycle.
[13]az Flush after Special Flushes after certain SPR writes. The possible values are:
Purpose Register 0
(SPR) writes Normal behavior for SPR writes. This is the reset value.
1
Flushes after certain SPR writes.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-214
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Note
Setting this bit to 1 forces the processor to behave as if bit[13] is set to 1.
[11]az Limit to one Limits to one instruction per instruction group. The possible values are:
instruction per 0
instruction group Normal instruction grouping. This is the reset value.
1
Limits to one instruction per instruction group.
[10]az Force serialization Forces serialization after each instruction group. The possible values are:
after each instruction 0
group Disables forced serialization after each instruction group. This is the reset
value.
1
Forces serialization after each instruction group.
Note
Setting this bit to 1 forces the processor to behave as if bit[11] is set to 1.
[9]az Disable flag renaming Disables flag renaming optimization. The possible values are:
optimization 0
Enables normal flag renaming optimization. This is the reset value.
1
Disables normal flag renaming optimization.
[8]az Execute WFI Executes WFI instruction as a NOP instruction. The possible values are:
instruction as a NOP 0
instruction Executes WFI instruction as defined in the ARM® Architecture Reference
Manual ARMv8. This is the reset value.
1
Executes WFI instruction as a NOP instruction, and does not put the processor in
WFI low-power state.
[7]az Execute WFE Executes WFE instruction as a NOP instruction. The possible values are:
instruction as a NOP 0
instruction Executes WFE instruction as defined in the ARM® Architecture Reference
Manual ARMv8. This is the reset value.
1
Executes WFE instruction as a NOP instruction, and does not put the processor in
WFE low-power state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-215
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[4]az Disable indirect Disables indirect predictor. The possible values are:
predictor 0
Enables indirect predictor. This is the reset value.
1
Disables indirect predictor.
[3]az Disable micro-BTB Disables micro-Branch Target Buffer (BTB). The possible values are:
0
Enables micro-BTB. This is the reset value.
1
Disables micro-BTB.
[0]az Enable invalidates of Enables invalidate of BTB. The possible values are:
BTB 0
The Invalidate Instruction Cache All and Invalidate Instruction Cache by VA
instructions only invalidates the instruction cache array. This is the reset value.
1
The Invalidate Instruction Cache All and Invalidate Instruction Cache by VA
instructions invalidates the instruction cache array and branch target buffer.
To access the CPUACTLR_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, S3_1_c15_c2_0; Read EL1 CPU Auxiliary Control Register
MSR S3_1_c15_c2_0, <Xt>; Write EL1 CPU Auxiliary Control Register
To access the CPUACTLR in AArch32 state, read or write the CP15 register with:
MRRC p15, 0, <Rt>, <Rt2>, c15; Read CPU Auxiliary Control Register
MCRR p15, 0, <Rt>, <Rt2>, c15; Write CPU Auxiliary Control Register
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-216
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Usage constraints
The accessibility to the CPUECTLR_EL1 by Exception level is:
63 39 38 37 36 35 34 33 32 31 7 6 5 3 2 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-217
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Note
• Any processor instruction cache and TLB maintenance operations can execute the request,
regardless of the value of the SMPEN bit.
• This bit has no impact on data cache maintenance operations.
• In the Cortex-A57 processor, the L1 data cache and L2 cache are always coherent, for
shared or non-shared data, regardless of the value of the SMPEN bit.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-218
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
To access the CPUECTLR_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, S3_1_c15_c2_1; Read EL1 CPU Extended Control Register
MSR S3_1_c15_c2_1, <Xt>; Write EL1 CPU Extended Control Register
To access the CPUECTLR in AArch32 state, read or write the CP15 register with:
MRRC p15, 1, <Rt>, <Rt2>, c15; Read CPU Extended Control Register
MCRR p15, 1, <Rt>, <Rt2>, c15; Write CPU Extended Control Register
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-219
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Configurations
The CPUMERRSR_EL1 is:
• Common to the Secure and Non-secure states.
• A 64-bit read/write register.
• Architecturally mapped to the AArch32 CPUMERRSR register.
Attributes
See the register summary in Table 4-15 AArch64 implementation defined registers
on page 4-89.
The following figure shows the CPUMERRSR_EL1 bit assignments.
63 62 48 47 40 39 32 31 30 24 23 22 18 17 0
Other error Repeat error
Reserved RAMID Bank/Way Index
count count
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-220
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Note
• If two or more memory errors in the same RAM occur in the same cycle, only one error is reported.
• If two or more first memory error events from different RAMs occur in the same cycle, one of the
errors is selected arbitrarily, while the Other error count field is only incremented by one.
• If two or more memory error events from different RAMs, that do not match the RAMID, bank, way,
or index information in this register while the sticky Valid bit is set, occur in the same cycle, the
Other error count field is only incremented by one.
To access the CPUMERRSR_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, S3_1_c15_c2_2 ; Read EL1 CPU Memory Error Syndrome Register
MSR S3_1_c15_c2_2 , <Xt>; Write EL1 CPU Memory Error Syndrome Register
To access the CPUMERRSR in AArch32 state, read or write the CP15 register with:
MRRC p15, 2, <Rt>, <Rt2>, c15; Read CPU Memory Error Syndrome Register
MCRR p15, 2, <Rt>, <Rt2>, c15; Write CPU Memory Error Syndrome Register
Note
The L2 Inclusion PF RAM is available only in r1p0 and later revisions.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-221
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
63 62 48 47 40 39 32 31 30 24 23 22 21 18 17 0
Other error Repeat error
RES0 RAMID RES0 CPUID/Way Index
count count
Fatal Valid
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-222
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
[17:0] Index Indicates the index address of the first memory error.
Note
• If two or more memory errors in the same RAM occur in the same cycle, only one error is reported.
• If two or more first memory error events from different RAMs occur in the same cycle, one of the
errors is selected arbitrarily, while the Other error count field is only incremented by one.
• If two or more memory error events from different RAMs, that do not match the RAMID, bank, way,
or index information in this register while the sticky Valid bit is set, occur in the same cycle, the
Other error count field is only incremented by one.
To access the L2MERRSR_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, S3_1_c15_c2_3 ; Read EL1 L2 Memory Error Syndrome Register
MSR S3_1_c15_c2_3, <Xt> ; Write EL1 L2 Memory Error Syndrome Register
To access the L2MERRSR in AArch32 state, read or write the CP15 register with:
MRRC p15, 3, <Rt>, <Rt2>, c15; Read L2 Memory Error Syndrome Register
MCRR p15, 3, <Rt>, <Rt2>, c15; Write L2 Memory Error Syndrome Register
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-223
Non-Confidential
4 System Control
4.3 AArch64 register descriptions
Configurations
The CBAR_EL1 is:
• Common to the Secure and Non-secure states.
• A 64-bit register in AArch64 state.
Attributes
See the register summary in Table 4-15 AArch64 implementation defined registers
on page 4-89.
The following figure shows the CBAR_EL1 bit assignments.
63 44 43 18 17 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-224
Non-Confidential
4 System Control
4.4 AArch32 register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-225
Non-Confidential
4 System Control
4.4 AArch32 register summary
Table 4-83 Column headings definition for System register summary tables
4.4.1 c0 registers
The following table shows the CP15 System registers when CRn is c0 and the processor is in AArch32
state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-226
Non-Confidential
4 System Control
4.4 AArch32 register summary
bc The reset value depends on the primary inputs, CLUSTERIDAFF1 and CLUSTERIDAFF2, and the number of
cores that the device implements. The value shown is for a four processor implementation, with
CLUSTERIDAFF1 and CLUSTERIDAFF2 set to zero.
bd The reset value depends on the primary input GICCDISABLE. The value shown assumes the GICCDISABLE
signal is tied HIGH.
be The reset value is 0x00011121 if the Cryptography engine is implemented.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-227
Non-Confidential
4 System Control
4.4 AArch32 register summary
4.4.2 c1 registers
The following table shows the System registers when CRn is c1 and the processor is in AArch32 state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-228
Non-Confidential
4 System Control
4.4 AArch32 register summary
2 HCPTR RW 0x000033FF 4.5.13 Hyp Architectural Feature Trap Register on page 4-279.
3 HSTR RW 0x00000000 Hyp System Trap Register. See 4.3.36 Hypervisor System Trap
Register on page 4-144.
4 HCR2 RW 0x00000000 4.5.11 Hyp Configuration Register 2 on page 4-275.
7 HACR RW 0x00000000 4.3.37 Hyp Auxiliary Configuration Register on page 4-148.
4.4.3 c2 registers
The following table shows the System registers when CRn is c2 and the processor is in AArch32 state.
2 TTBCR RW 0x00000000bl 4.5.15 Translation Table Base Control Register on page 4-282
4.4.4 c3 registers
The following table shows the System registers when CRn is c3 and the processor is in AArch32 state.
4.4.5 c5 registers
The following table shows the System registers when CRn is c5 and the processor is in AArch32 state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-229
Non-Confidential
4 System Control
4.4 AArch32 register summary
4.4.6 c6 registers
The following table shows the System registers when CRn is c6 and the processor is in AArch32 state.
See the ARM® Architecture Reference Manual ARMv8 for more information about these registers.
4.4.7 c7 register
The following table shows the System registers when CRn is c7 and the processor is in AArch32 state.
The following table shows the System operations when CRn is c7 and the processor is in AArch32 state.
See the ARM® Architecture Reference Manual ARMv8 for more information about these operations.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-230
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table shows the System operations when CRn is c8 and the processor is in AArch32 state.
See the ARM® Architecture Reference Manual ARMv8 for more information about these operations.
bm PoU = Point of Unification. PoU is set by the BROADCASTINNER signal and can be in the L1 data cache or
outside of the processor, in which case PoU is dependent on the external memory system.
bn PoC = Point of Coherence. The PoC is always outside of the processor and is dependent on the external memory
system.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-231
Non-Confidential
4 System Control
4.4 AArch32 register summary
5 TLBIMVALHIS Invalidate Unified Hyp TLB entry by VA Inner Shareable, Last level
c4 1 TLBIIPAS2 TLB Invalidate entry by Intermediate Physical Address, Stage 2
5 TLBIIPAS2L TLB Invalidate entry by Intermediate Physical Address, Stage 2, Last level
c7 0 TLBIALLH Invalidate entire Hyp unified TLB
1 TLBIMVAH Invalidate Hyp unified TLB entry by VA
4 TLBIALLNSNH Invalidate entire Non-secure non-Hyp unified TLB
5 TLBIMVALH Invalidate Unified Hyp TLB entry by VA, Last level
4.4.10 c9 registers
The following table shows the System registers when CRn is c9 and the processor is in AArch32 state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-232
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table shows the System registers when CRn is c10 and the processor is in AArch32 state.
bo See the ARM® Architecture Reference Manual ARMv8 for more information.
bp The reset value depends on the processor implementation and the state of the L2RSTDISABLE signal.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-233
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table shows the System registers when CRn is c12 and the processor is in AArch32 state.
The following table shows the System registers when CRn is c13 and the processor is in AArch32 state.
bq The reset value is 0x00000000 for the Secure copy of the register. You must program the Non-secure copy of the
register with the required initial value, as part of the processor boot sequence.
br See the ARM® Architecture Reference Manual ARMv8 for more information.
bs The reset value of bit[0] depends on the AA64nAA32 signal. The following table assumes this signal is LOW.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-234
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table shows the System registers when CRn is C14 and the processor is in AArch32 state.
See the ARM® Architecture Reference Manual ARMv8 for more information about these registers.
bt See the ARM® Architecture Reference Manual ARMv8 for more information.
bu RO at EL0.
bv Ar EL3(S) only, otherwise it is RO.
bw The reset value for bits[9:8, 2:0] is 0b00000.
bx The reset value for bit[0] is 0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-235
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table shows the System registers when CRn is c15 and the processor is in AArch32 state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-236
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table gives a summary of the 64-bit wide System registers, accessed by the MCRR and MRRC
instructions when the processor is in AArch32 state.
cc See the ARM® Architecture Reference Manual ARMv8 for more information.
cd The reset value for bits[55:48] is zero.
ce The reset value is zero.
cf The reset value is 0x0000 001B 0000 0000.
cg The reset value for bits[63,47:40,39:32,31] is zero.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-237
Non-Confidential
4 System Control
4.4 AArch32 register summary
ch The reset value depends on the primary inputs, CLUSTERIDAFF1, and the number of processors that the MPCore
device implements. The value shown is for a four processor implementation, with CLUSTERIDAFF1 set to zero.
ci The reset value depends on the primary input GICCDISABLE. The value shown assumes the GICCDISABLE
signal is tied HIGH.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-238
Non-Confidential
4 System Control
4.4 AArch32 register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-239
Non-Confidential
4 System Control
4.4 AArch32 register summary
cm The reset value depends on the primary input GICCDISABLE. The value shown assumes the GICCDISABLE
signal is tied HIGH.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-240
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table shows the Virtual memory control registers in AArch32 state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-241
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table shows the Fault handling registers in AArch32 state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-242
Non-Confidential
4 System Control
4.4 AArch32 register summary
The Virtualization registers include additional fault handling registers. For more information see
4.4.28 Virtualization registers on page 4-248.
The following table shows the other System registers in AArch32 state.
cr See the ARM® Architecture Reference Manual ARMv8 for more information.
cs The reset value is 0x00000000 for the Secure copy of the register. You must program the Non-secure copy of the
register with the required initial value, as part of the processor boot sequence.
ct The reset value of bit[0] depends on the AA64nAA32 signal. Table 4-103 Fault and Exception handling registers
on page 4-242 assumes this signal is LOW.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-243
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table shows the System instructions for cache and branch predictor maintenance
operations in AArch32 state. See the ARM® Architecture Reference Manual ARMv8 for more information
about these operations.
The following table shows the System instructions for TLB maintenance operations in AArch32 state.
See the ARM® Architecture Reference Manual ARMv8 for more information about these operations.
cu PoU = Point of Unification. PoU is set by the BROADCASTINNER signal and can be in the L1 data cache or
outside of the processor, in which case PoU is dependent on the external memory system.
cv PoC = Point of Coherence. The PoC is always outside of the processor and is dependent on the external memory
system.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-244
Non-Confidential
4 System Control
4.4 AArch32 register summary
The Virtualization registers include additional TLB operations for use in Hyp mode.
Related information
4.2.13 AArch64 EL2 TLB maintenance operations on page 4-87.
The following table shows the address translation register in AArch32 state.
The following table shows the System instructions for address translation operations in AArch32 state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-245
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table shows the System instructions and the registers for miscellaneous operations in
AArch32 state.
The following table shows the Performance Monitors registers in AArch32 state.
cw See the ARM® Architecture Reference Manual ARMv8 for more information.
cx See the ARM® Architecture Reference Manual ARMv8 for more information.
cy RO at EL0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-246
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table shows the 32-bit wide Security registers in AArch32 state.
cz See the ARM® Architecture Reference Manual ARMv8 for more information.
da See the ARM® Architecture Reference Manual ARMv8 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-247
Non-Confidential
4 System Control
4.4 AArch32 register summary
db The reset value is 0x00000000 for the Secure copy of the register. You must program the Non-secure copy of the
register with the required initial value, as part of the processor boot sequence.
dc The reset value is the value of the Main ID Register.
dd The reset value is the value of the Multiprocessor Affinity Register.
de See the ARM® Architecture Reference Manual ARMv8 for more information.
df The reset value for bit[7] is UNK.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-248
Non-Confidential
4 System Control
4.4 AArch32 register summary
The following table shows the System instructions for TLB maintenance operations added for
Virtualization in AArch32 state. See the ARM® Architecture Reference Manual ARMv8 for more
information about these operations.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-249
Non-Confidential
4 System Control
4.4 AArch32 register summary
See 9.3 Generic Timer register summary on page 9-358 for information on the Generic Timer registers.
The following table shows the IMPLEMENTATION DEFINED registers in AArch32 state. These registers
provide test features and any required configuration options specific to the Cortex-A57 processor.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-250
Non-Confidential
4 System Control
4.4 AArch32 register summary
dj The reset value depends on the processor implementation and the state of the L2RSTDISABLE signal.
dk The reset value is 0x00000010 for an ACE interface and 0x00004018 for a CHI interface.
dl The reset value depends on the primary input, PERIPHBASE[43:18].
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-251
Non-Confidential
4 System Control
4.4 AArch32 register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-252
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
The processor does not implement instruction or data Tightly Coupled Memory (TCM), so this register is
always RES0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-253
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Configurations
The TLBTR is Common to Secure and Non-secure states.
Attributes
See the register summary in Table 4-84 c0 register summary on page 4-226.
The following figure shows the TLBTR bit assignments.
31 1 0
RES0 nU
To access the TLBTR in AArch32 state, read the CP15 register with:
MRC p15, 0, <Rt>, c0, c0, 3; Read TLB Type Register
Configurations
The MPIDR is:
• Common to Secure and Non-secure states.
• Architecturally mapped to the AArch64 MPIDR_EL1[31:0] register.
Attributes
See the register summary in Table 4-84 c0 register summary on page 4-226.
The following figure shows the MPIDR bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-254
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
31 30 29 25 24 23 16 15 8 7 2 1 0
RES1 MT CPU ID
[23:16] Cluster ID Aff2 Indicates the value read in at reset, from the CLUSTERIDAFF2
configuration signal. It identifies a Cortex-A57 device in a system with
more than one Cortex-A57 device present.
[15:8] Cluster ID Aff1 Indicates the value read in at reset, from the CLUSTERIDAFF1
configuration signal. It identifies a Cortex-A57 device in a system with
more than one Cortex-A57 device present.
[7:2] - Reserved, RES0.
[1:0] CPU ID Indicates the core number in the Cortex-A57 device. The possible values
are:
0x0 An MPCore device with one core only.
0x0, 0x1 A Cortex-A57 device with two cores.
0x0, 0x1, 0x2 A Cortex-A57 device with three cores.
0x0, 0x1, 0x2, 0x3 A Cortex-A57 device with four cores.
To access the MPIDR in AArch32 state, read the CP15 registers with:
MRC p15, 0, <Rt>, c0, c0, 5; Read Multiprocessor Affinity Register
Related information
4.3.2 Multiprocessor Affinity Register, EL1 on page 4-94.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-255
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Purpose
Holds the value of the Virtualization Multiprocessor ID. This is the value returned by Non-
secure EL1 reads of MPIDR. .
Usage constraints
The accessibility to the VMPIDR in AArch32 state by Exception level is:
Configurations
The VMPIDR is:
• A Banked EL2 register.
• Architecturally mapped to the AArch64 VMPIDR_EL2 register.
Attributes
See the register summary in Table 4-84 c0 register summary on page 4-226.
The following figure shows the VMPIDR bit assignments.
31 0
VMPIDR
Related information
4.5.3 Multiprocessor Affinity Register on page 4-254.
4.3.29 Virtualization Multiprocessor ID Register, EL2 on page 4-129.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-256
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Usage constraints
The accessibility to the SCTLR by Exception level is:
Control bits in the SCTLR that are not applicable to a VMSA implementation read as the value
that most closely reflects that implementation, and ignore writes.
Some bits in the register are read-only. These bits relate to non-configurable features of an
implementation, and are provided for compatibility with other versions of the architecture.
Write access to the Secure copy of SCTLR is disabled when the CP15SDISABLE signal is
HIGH.
Configurations
The SCTLR is Banked for Secure and Non-secure states.
The architectural mapping of the SCTLR is:
• The Non-secure SCTLR is mapped to the AArch64 SCTLR_EL1.
• The Secure SCTLR is mapped to the AArch64 SCTLR_EL3.
Attributes
See the register summary in Table 4-85 c1 register summary on page 4-228.
The following figure shows the SCTLR bit assignments.
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
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-257
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[28] TRE Banked TEX remap enable. This bit enables remapping of the
TEX[2:1] bits for use as two translation table bits that
can be managed by the operating system. Enabling this
remapping also changes the scheme that describes the
memory region attributes in the VMSA. The possible
values are:
0 TEX remap disabled. TEX[2:0] are used, with the
C and B bits, to describe the memory region
attributes. This is the reset value.
1 TEX remap enabled. TEX[2:1] are reassigned for
use as bits managed by the operating system. The
TEX[0], C and B bits describe the memory region
attributes, with the MMU remap registers.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-258
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[19] WXN Banked Write permission implies Execute Never (XN). You
can use this bit to require all memory regions with
write permissions are treated as XN. Regions with
write permission are:
0 Not forced to be XN. This is the reset value.
1 Forced to be XN.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-259
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[5] CP15BEN Banked AArch32 CP15 barrier enable. The values are:
0 CP15 barrier operations disabled. Their encodings
are UNDEFINED.
1 CP15 barrier operations enabled. This is the reset
value.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-260
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[0] M Banked MMU enable. This is a global enable bit for the EL1
and EL0 stage 1 MMU:
0 EL1 and EL0 stage 1 MMU disabled. This is the
reset value.
1 EL1 and EL0 stage 1 MMU enabled.
To access the SCTLR in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c1, c0, 0; Read System Control Register
MCR p15, 0, <Rt>, c1, c0, 0; Write System Control Register
To access the SCTLR_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, SCTLR_EL1; Read System Control Register
MSR SCTLR_EL1, <Xt>; Write System Control Register
To access the SCTLR_EL3 in AArch64 state, read or write the register with:
MRS <Xt>, SCTLR_EL3; Read System Control Register
MSR SCTLR_EL3, <Xt>; Write System Control Register
Related information
4.3.30 System Control Register, EL1 on page 4-130.
4.3.38 System Control Register, EL3 on page 4-148.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-261
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Configurations
The CPACR is:
• Common to the Secure and Non-secure states.
• Architecturally mapped to the AArch64 CPACR_EL1 register.
Note
The NSACR controls Non-secure access to the CPACR fields.
Attributes
See the register summary in Table 4-85 c1 register summary on page 4-228.
The following figure shows the CPACR bit assignments.
31 30 29 28 27 24 23 22 21 20 19 0
TRCDIS
ASEDIS
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-262
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Note
If the values of the cp11 and cp10 fields are not the same, the behavior is same as if both fields were set
to the value of cp10, in all respects other than the value read back by explicitly reading cp11.
To access the CPACR in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c1, c0, 2; Read Architectural Feature Access Control Register
MCR p15, 0, <Rt>, c1, c0, 2; Write Architectural Feature Access Control Register
Related information
4.3.32 Architectural Feature Access Control Register, EL1 on page 4-133.
4.5.8 Non-secure Access Control Register on page 4-266.
Configurations The SCR is a Restricted access register that exists only in the Secure state.
The SCR is mapped to the AArch64 SCR_EL3 register.
Attributes See the register summary in Table 4-85 c1 register summary on page 4-228.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-263
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
31 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RES0 RES0 EA NS
TWI FW IRQ
TWE AW FIQ
nET
SCD
HCE
SIF
[8] HCE Hyp Call enable. This bit enables the use of HVC instruction. The
possible values are:
0 The HVC instruction is UNDEFINED in any mode. This is the reset
value.
1 The HVC instruction enabled in Non-secure EL1 or EL2, and
performs a Hyp Call.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-264
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[6] nET Not Early Termination. This bit disables early termination.
This bit is not implemented, RES0.
[5] AW A bit writable. This bit controls whether CPSR.A can be modified in
Non-secure state. For the Cortex-A57 processor:
• This bit has no effect on whether CPSR.A can be modified in
Non-secure state. The AW bit can be modified in either Security
state.
• This bit, with the HCR.AMO bit, determines whether CPSR.A
has any effect on exceptions that are routed to a Non-secure
mode.
[4] FW F bit writable. This bit controls whether CPSR.F can be modified in
Non-secure state. For the Cortex-A57 processor:
• This bit has no effect on whether CPSR.F can be modified in
Non-secure state. The FW bit can be modified in either Security
state.
• This bit, with the HCR.FMO bit, determines whether CPSR.F
has any effect on exceptions that are routed to a Non-secure
mode.
[3] EA External Abort handler. This bit controls which mode takes external
aborts. The possible values are:
0 External aborts taken in Abort mode. This is the reset value.
1 External aborts taken in Monitor mode.
[2] FIQ FIQ handler. This bit controls which mode takes FIQ exceptions.
The possible values are:
0 FIQs taken in FIQ mode. This is the reset value.
1 FIQs taken in Monitor mode.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-265
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[0] NS Non-secure bit. Except when the processor is in Monitor mode, this
bit determines the Security state of the processor. The possible
values are:
0 Secure. This is the reset value.
1 Non-secure.
Note
When the processor is in Monitor mode, it is always in Secure state,
regardless of the value of the NS bit.
To access the SCR in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c1, c1, 0; Read Secure Configuration Register data
MCR p15, 0, <Rt>, c1, c1, 0; Write Secure Configuration Register data
If EL3 is using AArch64, accesses to this register from Secure EL1 using AArch32 are trapped
to EL3.
Configurations
The NSACR:
• Is a Restricted access register that exists only in the Secure state but can be read from the
Non-secure state.
• Functionality is replaced by the behavior in the CPTR_EL3 register in AArch64 state.
When EL3 is using AArch64, reads of the NSACR from Non-secure EL2 or Non-secure EL1
using AArch32, return a fixed value of 0x00000C00.
Attributes
See the register summary in Table 4-85 c1 register summary on page 4-228.
The following figure shows the NSACR bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-266
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
31 21 20 19 16 15 14 12 11 10 9 0
To access the NSACR in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c1, c1, 2; Read Non-secure Access Control Register data
MCR p15, 0, <Rt>, c1, c1, 2; Write Non-secure Access Control Register data
Related information
4.3.40 Architectural Feature Trap Register, EL3 on page 4-151.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-267
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Configurations
The SDCR is a Restricted access register that only exists in the Secure state.
The SDCR is mapped to the AArch64 MDCR_EL3 register.
Attributes
See the register summary in Table 4-85 c1 register summary on page 4-228.
The following figure shows the SDCR bit assignments.
31 22 21 20 19 18 17 16 15 14 13 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-268
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Note
If debug exceptions from Secure EL1 are enabled, then debug exceptions from Secure EL0 are also
enabled. Otherwise, debug exceptions from Secure EL0 are enabled only if SDER32_EL3.SUIDEN is
1.
Ignored if Secure EL1 is using AArch64 and in Non-secure state. Debug exceptions from Software
breakpoint instruction debug events are always enabled.
To access the SDCR in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c1, c3, 1; Read Secure Debug Configuration Register
MCR p15, 0, <Rt>, c1, c3, 1; Write Secure Debug Configuration Register
dp SPD only applies in Secure state and when either Secure EL1 or EL3 is using AArch32.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-269
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
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
RES0 BSU
RES0 TGE DC VM
TRVM TVM TWI SWIO
TTLB TWE PTW
TPU TID0 FMO
TPC TID1 IMO
TSW TID2 AMO
TAC TID3 VF
TIDCP VI
TSC VA
FB
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-270
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[26] TVM Trap Virtual Memory controls. When 1, this causes writes to the
EL1 virtual memory control registers from EL1 to be trapped to
EL2. This covers the following registers:
AArch32 SCTLR, TTBR0, TTBR1, TTBCR, DACR, DFSR,
IFSR, DFAR, IFAR, ADFSR, AIFSR, PRRR/
MAIR0, NMRR/MAIR1, AMAIR0, AMAIR1, and
CONTEXTIDR.
[25] TTLB Trap TLB maintenance instructions. When 1, this causes TLB
maintenance instructions executed from EL1 that are not
UNDEFINED to be trapped to EL2. This covers the following
instructions:
AArch32 TLBIALLIS, TLBIMVAIS, TLBIASIDIS, TLBIMVAAIS,
ITLBIALL, DTLBIALL, TLBIALL, ITLBIMVA,
DTLBIMVA, TLBIMVA, ITLBIASID, DTLBIASID,
TLBIASID, TLBIMVAA, TLBIMVALIS, TLBIMVAALIS,
TLBIMVAL, and TLBIMVAAL.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-271
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[21] TAC Trap ACTLR accesses. When this bit is set to 1, any valid Non-
secure access to the ACTLR is trapped to Hyp mode.
The reset value is 0.
[19] TSC Trap SMC instruction. When this bit is set to 1, any attempt from
Non-secure EL1 to execute an SMC instruction, that passes its
condition check if it is conditional, is trapped to Hyp mode.
The reset value is 0.
[18] TID3 Trap ID Group 3. When 1, this causes reads to the following
registers executed from EL1 to be trapped to EL2:
AArch32 ID_PFR0, ID_PFR1, ID_DFR0, ID_AFR0,
ID_MMFR0, ID_MMFR1, ID_MMFR2,
ID_MMFR3, ID_ISAR0, ID_ISAR1, ID_ISAR2,
ID_ISAR3, ID_ISAR4, ID_ISAR5, MVFR0,
MVFR1, and MVFR2 and MRC instructions to the
following locations:
• op1 is 0, CRn is 0, CRm is c3, c4, c5, c6, or c7,
and op2 is 0 or 1.
• op1 is 0, CRn is 0, CRm is c3, and op2 is 2.
• op1 is 0, CRn is 0, CRm is 5, and op2 is 4 or 5.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-272
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[16] TID1 Trap ID Group 1. When 1, this causes reads to the following
registers executed from EL1 to be trapped to EL2:
AArch32 TCMTR, TLBTR, AIDR, and REVIDR.
[15] TID0 Trap ID Group 0. When 1, this causes reads to the following
registers executed from EL1 or EL0 if not UNDEFINED to be
trapped to EL2:
AArch32 FPSID and JIDR.
[12] DC Default Cacheable. When this bit is set to 1 the memory type and
attributes determined by the stage 1 translation is Normal, Non-
shareable, Inner Write-Back Write-Allocate, Outer Write-Back
Write-Allocate.
When executing in a Non-secure mode other than Hyp mode and
the HCR.DC bit is set, the processor behavior is consistent with
the behavior when:
• The SCTLR.M bit is clear, regardless of the actual value of
the SCTLR.M bit.
— An explicit read of the SCTLR.M bit returns its actual
value.
• The HCR.VM bit is set, regardless of the actual value of the
HCR.VM bit.
— An explicit read of the HCR.VM bit returns its actual
value.
The reset value is 0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-273
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[7] VI Virtual IRQ exception. Setting this bit signals a virtual IRQ
exception to the Guest OS, when the IMO bit is set to 1 and the
processor is executing in Non-secure state at EL0 or EL1.
The Guest OS cannot distinguish the virtual exception from the
corresponding physical exception.
The reset value is 0.
[6] VF Virtual FIQ exception. Setting this bit signals a virtual FIQ
exception to the Guest OS, when the FMO bit is set to 1 and the
processor is executing in Non-secure state at EL0 or EL1.
The Guest OS cannot distinguish the virtual exception from the
corresponding physical exception.
The reset value is 0.
[5] AMO Asynchronous Abort Mask Override. When this bit is set to 1, it
overrides the effect of CPSR.A, and enables virtual exception
signaling by the VA bit.
The reset value is 0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-274
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[3] FMO FIQ Mask Override. When this bit is set to 1, it overrides the
effect of CPSR.F, and enables virtual exception signaling by the
VF bit.
The reset value is 0.
To access the HCR in AArch32 state, read or write the CP15 register with:
MRC p15, 4, <Rt>, c1, c1, 0; Read Hyp Configuration Register
MCR p15, 4, <Rt>, c1, c1, 0; Write Hyp Configuration Register
Related information
4.3.34 Hypervisor Configuration Register, EL2 on page 4-136.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-275
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Configurations
The HCR2 is:
• A Banked EL2 register.
• Architecturally mapped to the AArch64 HCR_EL2[63:31] register.
Attributes
See the register summary in Table 4-85 c1 register summary on page 4-228.
The following figure shows the HCR2 bit assignments.
31 2 1 0
RES0 ID
CD
[0] CD Stage 2 Data cache disable. When HCR_EL2.VM is 1, this forces all stage2 translations for data accesses
and translation table walks to Normal memory to be Non-cacheable for the EL1/EL0 translation regime.
The values are:
0
No effect on the stage 2 of the EL1/EL0 translation regime for data accesses and translation
table walks. This is the reset value.
1
Forces all stage 2 translations for data accesses and translation table walks to Normal memory to
be Non-cacheable for the EL0/EL1 translation regime.
To access the HCR2 in AArch32 state, read or write the CP15 register with:
MRC p15, 4, <Rt>, c1, c1, 4; Read Hyp Configuration Register 2
MCR p15, 4, <Rt>, c1, c1, 4; Write Configuration Register 2
Related information
4.3.34 Hypervisor Configuration Register, EL2 on page 4-136.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-276
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Purpose
Controls the trapping to Hyp mode of Non-secure accesses, at EL1 or lower, to functions
provided by the debug and trace architectures.
Usage constraints
The accessibility to the HDCR in AArch32 state by Exception level is:
Configurations
The HDCR is:
• A Banked EL2 register.
• Architecturally mapped to the AArch64 MDCR_EL2 register.
Attributes
See the register summary in Table 4-85 c1 register summary on page 4-228.
The following figure shows the HDCR bit assignments.
31 12 11 10 9 8 7 6 5 4 0
RES0 HPMN
TDRA TPMCR
TDOSA TPM
TDA HPME
TDE
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-277
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-278
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
[5] TPMCR Trap Performance Monitors Control Register accesses. The values are:
0
Has no effect on PMCR accesses. This is the reset value.
1
Trap valid Non-secure PMCR accesses to Hyp mode.
When this bit is set to 1, any valid Non-secure access to the PMCR is trapped to Hyp mode.
[4:0] HPMN Defines the number of Performance Monitors counters that are accessible from Non-secure EL1, and
from Non-secure EL0 if unprivileged access is enabled.
This field behaves as if it contains an UNKNOWN value of less than or equal to PMCR.N, in all ways
other than when reading back this field if:
• This field is set to 0.
• This field is set to a value greater than PMCR.N.
In Non-secure state, HPMN divides the Performance Monitors counters as follows:
If PMXEVCNTR is accessing Performance Monitors counter n then, in Non-secure state:
• If n is in the range 0 ≤ n < HPMN, the counter is accessible from EL1 and EL2, and from EL0 if
unprivileged access to the counters is enabled.
• If n is in the range HPMN ≤ n < PMCR.N, the counter is accessible only from EL2. The HPME bit
enables access to the counters in this range.
This field resets to 0x6, the value of PMCR.N.
To access the HDCR in AArch32 state, read or write the CP15 register with:
MRC p15, 4, <Rt>, c1, c1, 1; Read Hyp Debug Configuration Register
MCR p15, 4, <Rt>, c1, c1, 1; Write Hyp Debug Configuration Register
To access the MDCR_EL2 in AArch64 state, read or write the register with:
MRS <Xt>, MDCR_EL2; Read Monitor Debug Configuration Register
MSR MDCR_EL2, <Xt>; Write Monitor Debug Configuration Register
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-279
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Usage constraints
The accessibility to the HCPTR by Exception level is:
If a bit in the NSACR prohibits a Non-secure access, then the corresponding bit in the HCPTR
behaves as RES1 for Non-secure accesses. See the bit descriptions for more information.
Configurations
The HCPTR is:
• A Banked EL2 register.
• Architecturally mapped to the AArch64 CPTR_EL2 register.
Attributes
See the register summary in Table 4-85 c1 register summary on page 4-228.
The following figure shows the HCPTR bit assignments.
31 30 21 20 19 16 15 14 13 12 11 10 9 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-280
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Note
This bit value has no effect on possible use of the Advanced SIMD functionality from Non-
secure EL1 and EL0.
1
Trap valid Non-secure accesses to Advanced SIMD functionality to Hyp mode.
When this bit is set to 1, any otherwise-valid access to Advanced SIMD functionality from:
• A Non-secure EL1 or EL0 access is trapped to Hyp mode.
• Hyp mode generates an UNDEFINED Instruction exception, taken in Hyp mode.
Note
If TCP10 and TCP11 are set to 1, then all Advanced SIMD use is trapped to Hyp mode, regardless of
the value of this field.
Note
This bit value has no effect on possible use of CP11 from Non-secure EL1 and EL0.
1
Trap valid Non-secure accesses to CP11 to Hyp mode.
When TCP11 is set to 1, any otherwise-valid access to CP11 from:
• A Non-secure EL1 or EL0 access is trapped to Hyp mode.
• Hyp mode generates an Undefined Instruction exception, taken in Hyp mode.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-281
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Note
This bit value has no effect on possible use of CP10 from Non-secure EL1 and EL0.
1
Trap valid Non-secure accesses to CP10 to Hyp mode.
When TCP10 is set to 1, any otherwise-valid access to CP10 from:
• A Non-secure EL1 or EL0 access is trapped to Hyp mode.
• Hyp mode generates an Undefined Instruction exception, taken in Hyp mode.
To access the HCPTR in AArch32 state, read or write the CP15 register with:
MRC p15, 4, <Rt>, c1, c1, 2; Read Hyp Architectural Feature Trap Register
MCR p15, 4, <Rt>, c1, c1, 2; Write Hyp Architectural Feature Trap Register
Related information
4.5.8 Non-secure Access Control Register on page 4-266.
4.3.35 Architectural Feature Trap Register, EL2 on page 4-143.
The processor does not use any IMPLEMENTATION DEFINED bits in the 32-bit TTBR0 and TTBR1 format, so
these bits are RES0.
Write access to the Secure copy of SCTLR is disabled when the CP15SDISABLE signal is
HIGH.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-282
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Configurations
The TTBCR is Banked in the Secure and Non-secure states.
The architectural mapping of the TTBCR is:
• The Non-secure TTBCR is mapped to the AArch64 TCR_EL1[31:0] register.
• The Secure TTBCR is mapped to the AArch64 TCR_EL3[31:0] register
Attributes
See the register summary in Table 4-85 c1 register summary on page 4-228.
See the ARM® Architecture Reference Manual ARMv8 for more information.
To access the TTBCR in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c2, c0, 2; Read Translation Table Base Control Register
MCR p15, 0, <Rt>, c2, c0, 2; Write Translation Table Base Control Register
Related information
4.3.41 Translation Control Register, EL1 on page 4-153.
4.3.47 Translation Control Register, EL3 on page 4-162.
The processor does not use the IMPLEMENTATION DEFINED bit, HTCR[30], so this bit is RES0.
The HTCR characteristics are:
Purpose
Controls translation table walks required for the stage 1 translation of memory accesses from
Hyp mode, and holds cacheability and shareability information for the accesses.
Usage constraints
The accessibility to the HTCR by Exception level is:
Configurations
The HTCR is:
• A Banked EL2 register.
• Architecturally mapped to the AArch64 TCR_EL2.
The TCR_EL2 is a 32-bit register in AArch64 state.
Attributes
See the register summary in Table 4-85 c1 register summary on page 4-228.
See the ARM® Architecture Reference Manual ARMv8 for more information.
To access the HTCR in AArch32 state, read or write the CP15 register with:
MRC p15, 4, <Rt>, c2, c0, 2; Read Hyp Translation Control Register
MCR p15, 4, <Rt>, c2, c0, 2; Write Hyp Translation Control Register
Related information
4.3.42 Translation Control Register, EL2 on page 4-155.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-283
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Purpose
Holds status information about the last data fault.
Usage constraints
The accessibility to the DFSR by Exception level is:
Configurations
The DFSR is Banked for Secure and Non-secure states.
The architectural mapping of the DFSR is:
• The Non-secure DFSR is mapped to the AArch64 ESR_EL1 register.
• The Secure DFSR is mapped to the AArch64 ESR_EL3 register.
Attributes
See the register summary in Table 4-2 AArch64 exception handling registers on page 4-80.
There are two formats for this register. The value of TTBCR.EAE selects which format of the register is
used. The two formats are:
• DFSR format when using the Short-descriptor translation table format on page 4-285.
• DFSR format when using the Long-descriptor translation table format on page 4-287.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-284
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
31 16 15 14 13 12 11 10 9 8 7 4 3 0
UA RES0
UC LPAE
CM FS[4]
ExT WnR
Figure 4-91 DFSR bit assignments for Short-descriptor translation table format
The following table shows the DFSR bit assignments when using the Short-descriptor translation table
format.
Table 4-127 DFSR bit assignments for Short-descriptor translation table format
[14] UC Uncontainable fault. This bit is only set for System Errors. For
other faults, it is RES0. The values are:
0 Containable, an attributable event that can be contained to a
particular code sequence.
1 Uncontainable, cannot be contained to a particular code
sequence.
[12] ExT External abort type. This field indicates whether an AXI decode
or slave error caused an abort:
0 External abort marked as DECERR.
1 External abort marked as SLVERR.
For aborts other than external aborts this bit always returns 0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-285
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Table 4-127 DFSR bit assignments for Short-descriptor translation table format (continued)
[10] FS[4] Part of the Fault Status field. See bits[3:0] in this table.
[9] LPAE Large physical address extension. The value of the format
descriptor is:
0 Short-descriptor translation table formats.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-286
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
31 16 15 14 13 12 11 10 9 8 6 5 0
UA LPAE
UC RES0
CM WnR
ExT
Figure 4-92 DFSR bit assignments for Long-descriptor translation table format
The following table shows the DFSR bit assignments when using the Long-descriptor translation table
format.
Table 4-128 DFSR bit assignments for Long-descriptor translation table format
[14] UC Uncontainable fault. This bit is only set for System Errors. For
other faults, it is RES0. The values are:
0 Containable, an attributable event that can be contained to a
particular code sequence.
1 Uncontainable, cannot be contained to a particular code
sequence.
[12] ExT External abort type. This field indicates whether an AXI decode
or slave error caused an abort:
0 External abort marked as DECERR.
1 External abort marked as SLVERR.
For aborts other than external aborts this bit always returns 0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-287
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Table 4-128 DFSR bit assignments for Long-descriptor translation table format (continued)
The following table shows how the LL bits in the Status field encode the lookup level associated with the
MMU fault.
LL bits Meaning
00 Level 0 fault
01 First level
10 Second level
11 Third level
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-288
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
To access the DFSR in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c5, c0, 0; Read Data Fault Status Register
MCR p15, 0, <Rt>, c5, c0, 0; Write Data Fault Status Register
Related information
4.3.50 Exception Syndrome Register, EL1 and EL3 on page 4-164.
Configurations
The PAR is Banked for the Secure and Non-secure states.
The Non-secure PAR is architecturally mapped to AArch64 PAR_EL1 register.
The PAR[63:32] is RES0 when using the Short-descriptor translation format.
Attributes
The processor does not use any IMPLEMENTATION DEFINED bits in the 32-bit or 64-bit format PAR
or the PAR_EL1, so these bits are RES0.
See the register summary in Table 4-90 c7 register summary on page 4-230.
See the ARM® Architecture Reference Manual ARMv8 for more information.
To access the PAR in AArch32 state when using the Short-descriptor translation format, read or write the
CP15 register with:
MRC p15, 0, <Rt>, c7, c4, 0; Read Physical Address Register
MCR p15, 0, <Rt>, c7, c4, 0; Write Physical Address Register
To access the PAR in AArch32 state when using the Long-descriptor translation format, read or write the
CP15 register with:
MRRC p15, 0, <Rt>, <Rt2>, c7; Read Physical Address Register
MCRR p15, 0, <Rt>, <Rt2>, c7; Write Physical Address Register
Related information
4.3.55 Physical Address Register, EL1 on page 4-173.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-289
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Usage constraints
The accessibility to the PRRR by Exception level is:
Write access to the Secure copy of PRRR is disabled when the CP15SDISABLE signal is
HIGH.
Configurations
The PRRR is:
• Banked for the Secure and Non-secure states.
• Only relevant if the TTBCR.EAE bit is 0.
• Architecturally mapped to the MAIR0 register in AArch32 state.
The Non-secure PRRR is architecturally mapped to the AArch64 MAIR_EL1[31:0] register.
The Secure PRRR is mapped to the AArch64 MAIR_EL3[31:0] register.
Attributes
See the register summary in Table 4-94 c10 register summary on page 4-233.
See the ARM® Architecture Reference Manual ARMv8 for more information.
To access the PRRR in AArch32 state when TTBCR.EAE is 0, read or write the CP15 register with:
MRC p15, 0, <Rt>, c10, c2, 0; Read Primary Region Remap Register
MCR p15, 0, <Rt>, c10, c2, 0; Write Primary Region Remap Register
The processor does not set any IMPLEMENTATION DEFINED attributes with the Memory Attribute Indirection
Register 0 (MAIR0).
Write access to the Secure copy of NMRR is disabled when the CP15SDISABLE signal is
HIGH.
Configurations
The NMRR is:
• Banked for the Secure and Non-secure states.
• Only relevant if the TTBCR.EAE bit is 0.
• Architecturally mapped on to the MAIR1 register in AArch32 state.
The Non-secure NMRR is architecturally mapped to the AArch64 MAIR_EL1[63:32] register.
The Secure NMRR is mapped to the AArch64 MAIR_EL3[63:32] register.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-290
Non-Confidential
4 System Control
4.5 AArch32 register descriptions
Attributes
See the register summary in Table 4-94 c10 register summary on page 4-233.
See the ARM® Architecture Reference Manual ARMv8 for more information.
To access the NMRR in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c10, c2, 1; Read Normal Memory Remap Register
MCR p15, 0, <Rt>, c10, c2, 1; Write Normal Memory Remap Register
The processor does not set any IMPLEMENTATION DEFINED attributes with the Memory Attribute Indirection
Register 1 (MAIR1).
The processor does not implement Fast Context Switch Extension (FCSE), so this register is always RES0.
Configurations
The CBAR is Common to the Secure and Non-secure states.
Attributes
See the register summary in Table 4-98 c15 register summary on page 4-236.
The following figure shows the CBAR bit assignments.
31 18 17 12 11 0
To access the CBAR in AArch32 state, read the CP15 register with:
MRC p15, 1, <Rt>, c15, c3, 0; Read Configuration Base Address Register
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 4-291
Non-Confidential
Chapter 5
Memory Management Unit
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 5-292
Non-Confidential
5 Memory Management Unit
5.1 About the MMU
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 5-293
Non-Confidential
5 Memory Management Unit
5.2 TLB organization
The L1 instruction TLB is a 48-entry fully-associative structure. This TLB caches entries of three
different page sizes, natively 4KB, 64KB, and 1MB, of VA to PA mappings. If the page tables map the
memory region to a larger granularity than 1MB, it only allocates one mapping for the particular 1MB
region to which the current access corresponds.
A hit in the instruction TLB provides a single CLK cycle access to the translation, and returns the PA to
the instruction cache for comparison. It also checks the access permissions to signal a Prefetch Abort.
The L1 data TLB is a 32-entry fully-associative TLB that is used for data loads and stores. This TLB
caches entries of three different page sizes, natively 4KB, 64KB, and 1MB, of VA to PA mappings.
A hit in the data TLB provides a single CLK cycle access to the translation, and returns the PA to the
data cache for comparison. It also checks the access permissions to signal a Data Abort.
5.2.3 L2 TLB
Misses from the L1 instruction and data TLBs are handled by a unified L2 TLB. This is a 1024-entry 4-
way set-associative structure. The L2 TLB supports the page sizes of 4K, 64K, 1MB and 16MB. It also
supports page sizes of 2MB and 1GB for the long descriptor format translation in AArch32 state and in
AArch64 state when using the 4KB translation granule. In addition, the L2 TLB supports the 512MB
page map size defined for the AArch64 translations that use a 64KB translation granule.
Accesses to the L2 TLB take a variable number of cycles, based on the competing requests from each of
the L1 TLBs, TLB maintenance operations in flight, and the different page size mappings in use.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 5-294
Non-Confidential
5 Memory Management Unit
5.3 TLB match process
Note
• For a request originating from EL2 or EL3, the ASID and VMID match are ignored.
• For a request originating from Secure state, the VMID match is ignored.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 5-295
Non-Confidential
5 Memory Management Unit
5.4 Memory access sequence
For Stage2 translations, the IRGN bits must be programmed in the VTCR_EL2 register.
If the encoding of the IRGN bits is WriteBack, an L2 data cache lookup is performed and data is read
from the data cache. If the encoding of the IRGN bits is Write-Through or Non-cacheable, an access to
external memory is performed.
In the case of an L2TLB miss, the hardware does a translation table walk provided the MMU is enabled,
and the translation using the base register has not been disabled by:
• Setting the PD0 or PD1 bit in the 4.5.15 Translation Table Base Control Register on page 4-282, to
disallow translation using either TTBR0 or TTBR1 respectively, when using AArch32 along with the
Short Descriptor Format.
• Setting of the EPD0 or EPD1 bit in the TCR_EL1 register when using AArch64 or when using the
Long Descriptor format in AArch32.
If the translation table walk is disabled for a particular base register, the processor returns a Translation
Fault. If the TLB finds a matching entry, it uses the information in the entry as follows:
• The access permission bits and the domain, when using the Short Descriptor format in AArch32 state,
determine if the access is permitted. If the matching entry does not pass the permission checks, the
MMU signals a Permission fault. See the ARM® Architecture Reference Manual ARMv8 for:
— A description of the various faults.
— The fault codes.
— Information regarding the registers where the fault codes are set.
• The memory region attributes specified in the TLB entry determine if the access is:
— Secure or Non-secure.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 5-296
Non-Confidential
5 Memory Management Unit
5.4 Memory access sequence
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 5-297
Non-Confidential
5 Memory Management Unit
5.5 MMU enabling and disabling
Related information
4.3.67 CPU Extended Control Register, EL1 on page 4-216.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 5-298
Non-Confidential
5 Memory Management Unit
5.6 Intermediate table walk caches
In this example, the operating system uses a particular reserved ASID value for the synchronization of
the ASID and the Translation Table Base Register. You can use this approach only when the size of the
mapping for any given Virtual Address is the same in the old and new translation tables. The example
uses the value of 0.
The software uses the following sequences that must be executed from memory marked as global:
Change ASID to 0
ISB
Change Translation Table Base Register
ISB
Change ASID to new value
ISB
If the code relies on only leaf translation table entries that are cached, it can incorrectly assume that
entries tagged with the reserved ASID are not required to be flushed. For example:
• Global leaf entries that remain valid or must be flushed for all ASIDs when modified
• Non-global leaf entries that are not used because the reserved ASID is not set outside the context
switch code.
The incorrect assumption leads to the following failure:
• The context switch code sets the ASID to the reserved value.
• Speculative fetching reads and caches the first level page table entry, using the current TTBR, and
tagging the entry with the reserved ASID. This is a pointer to a second level table.
• Context switch completes.
• Processing continues, and the process with the page tables terminates. The OS frees and reallocates
the page table memory.
• A later context switch sets the ASID to the reserved value
• Speculative fetching makes use of the cached first level page table entry, because it is tagged with the
reserved ASID, and uses it to fetch a second level page table entry. Because the memory is
reallocated and reused, the entry contains random data that can appear to be a valid, global entry. This
second level page table entry is cached.
• Context switch completes, and application execution continues.
• The application references the address range covered by the cached second level page table entry.
Because the entry is marked as global, a match occurs and so data is fetched from a random address.
Note
When you use a reserved ASID, you must invalidate the TLB to deallocate the translation table memory.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 5-299
Non-Confidential
5 Memory Management Unit
5.7 External aborts
Externally generated errors during a data read or write can be asynchronous. This means that the
ELR_EL1, ELR_EL2, ELR_EL3, of r14 entry into the abort handler on such an abort might not hold the
address of the instruction that caused the abort.
The DFAR is UNPREDICTABLE when an asynchronous abort occurs.
For a load multiple or store multiple operation, the address captured in the DFAR is that of the address
that generated the synchronous external abort.
To determine a fault type, check the Execution state. If the abort handler code targeted by the exception
is in AArch64 state, read the appropriate ESR_ELx register. If the abort handler code is an AArch32
hypervisor, see 4.3.54 Exception Syndrome Register, EL2 on page 4-171. If the abort handler code is not
an AArch32 non-hypervisor, see 4.3.51 Instruction Fault Status Register, EL2 on page 4-167 for an
Instruction Abort or the ">4.5.17 Data Fault Status Register on page 4-283 for a Data Abort.
Related information
4.5.7 Secure Configuration Register on page 4-263.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 5-300
Non-Confidential
Chapter 6
Level 1 Memory System
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-301
Non-Confidential
6 Level 1 Memory System
6.1 About the L1 memory system
Note
The Cortex-A57 processor does not support cache lockdown.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-302
Non-Confidential
6 Level 1 Memory System
6.2 Cache organization
Related information
4.5.5 System Control Register on page 4-256.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-303
Non-Confidential
6 Level 1 Memory System
6.3 L1 instruction memory system
The SCTLR.I bit enables or disables the L1 instruction cache. If the I bit is disabled, fetches cannot
access any of the instruction cache arrays. An exception to this rule is the instruction cache system
operations. If the instruction cache is disabled, the instruction cache maintenance operations can still
execute normally.
Related information
4.5.5 System Control Register on page 4-256.
An instruction remains in the pipeline between the fetch and the execute stages. Because there can be
several unresolved branches in the pipeline, instruction fetches are speculative, meaning there is no
guarantee that they are executed. A branch or exceptional instruction in the code stream can cause a
pipeline flush, discarding the currently fetched instructions.
Because of the aggressive prefetching behavior, you must not place read-sensitive devices in the same
page as code. Pages with Device memory type attributes are treated as Non-cacheable Normal Memory.
You must mark pages that contain read-sensitive devices with the TLB Execute Never (XN) attribute bit.
To avoid speculative fetches to read sensitive devices when address translation is disabled, these devices
and code that are fetched must be separated in the physical memory map. See the ARM® Architecture
Reference Manual ARMv8 for more information. To avoid speculative fetches to potential non-code
regions, the static predictor is disabled and branches are forced to resolve in order when address
translation is disabled.
The instruction cache is fed by three fill buffers that hold instructions returned from the L2 cache on a
linefill operation, or instructions from Non-cacheable regions. The fill buffers are non-blocking. An
instruction cache hit can bypass an in-progress cache miss, even before the critical word is returned. A
line at a given Physical Address remains in a fill buffer until the fill buffer must be reclaimed. At this
time, the fill buffer contents are either transferred to the main instruction cache or discarded if no fetch
has occurred to the address of the line over the lifetime of the line in the fill buffer.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-304
Non-Confidential
6 Level 1 Memory System
6.3 L1 instruction memory system
The instruction cache implements one parity bit per 16-bits of instruction data. The instruction cache Tag
array is also protected by two parity bits per tag entry. Parity errors invalidate the offending cache line,
and force a fetch from the L2 cache on the next access. No aborts are generated on parity errors that
occur within the instruction cache. The location of a parity error is reported in the CPU Memory Error
Syndrome Register. Because the data cache shares this register, there is no guarantee that this register
contains the location of the last instruction side parity error.
Related information
4.3.68 CPU Memory Error Syndrome Register, EL1 on page 4-219.
The processor implements speculative prefetching on the instruction side. Following an L1 I-cache miss,
the next sequential line is looked up in the L1 instruction cache. If a miss is indicated, and no pipeline
flushes have occurred, a second L2 request is initiated for the next sequential line. This line is not
committed to the instruction cache unless actually demanded by a fetch. This is the default behavior.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-305
Non-Confidential
6 Level 1 Memory System
6.4 L1 data memory system
The L1 data memory system uses memory attributes from the MMU to determine the behaviors of
memory transactions to regions of memory.
The L1 data memory system uses the following memory types:
• Write-Back Read-Write-Allocate on page 6-307.
• Write-Back No-Allocate on page 6-308.
• Write-Through on page 6-308.
• Non-cacheable on page 6-308.
• Device on page 6-308.
Note
Some attribute combinations are only available if the LPAE page table format is used.
Table 6-1 Memory attribute combinations on page 6-307 shows the memory attribute combinations
available.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-306
Non-Confidential
6 Level 1 Memory System
6.4 L1 data memory system
The L1 and L2 data memory system use the internal memory type to determine its behavior in addition to
the value of the ARCACHE, AWCACHE, and TXREQFLIT[MemAttr] signals. The L1 and L2 caches
use allocation hints from the inner memory attributes and the ARCACHE, AWCACHE, and
TXREQ[MemAttr] signals use allocation hints from the outer memory attributes.
Note
The Cortex-A57 processor provides the raw memory attributes from the MMU on external signals.
If any memory instruction crosses a 4KB page boundary between two pages with different memory types
such as Normal and Device memory, the result is unpredictable and an abort might be triggered or
incorrect data delivered.
If any given Physical Address is mapped to Virtual Addresses with different memory types or different
cacheability such as Non-cacheable, Write-Through, or Write-Back, the result is unpredictable. This can
occur if two Virtual Addresses are mapped to the same Physical Address at the same time with different
memory type or cacheability, or if the same Virtual Address has its memory type or cacheability changed
over time without the appropriate cache cleaning or barriers.
Write-Back Read-Write-Allocate
This is expected to be the most common and highest performance memory type. Any read or write to this
memory type searches the cache to determine if the line is resident. If it is, the line is read or updated. A
store that hits a Write-Back cache line does not update main memory.
If the required cache line is not in the cache, one or more cache lines is requested from the L2 cache. The
L2 cache can obtain the lines from its cache, from another coherent L1 cache, or from memory. The line
is then placed in the L1 cache, and the operation completes from the L1 cache.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-307
Non-Confidential
6 Level 1 Memory System
6.4 L1 data memory system
Write-Back No-Allocate
Use Write-Back No-Allocate memory to access data that might be in the cache because other virtual
pages that are mapped to the same Physical Address are Write-Back Read-Write-Allocate. Write-Back
No-Allocate memory avoids polluting the caches when accessing large memory structures that are used
only one time. The cache is searched and the correct data is delivered or updated if the data resides in one
of the caches. However, if the request misses the L1 or L2 cache, the line is not allocated into that cache.
For a read that misses all caches, the required data is read to satisfy the memory request, but the line is
not added to the cache. For a write that misses in all caches, the modified bytes are updated in memory.
Note
The No-Allocate allocation hint is only a performance hint. The processor might in some cases, allocate
Write-Back No-Allocate lines into the L1 data cache or the L2.
Write-Through
The Cortex-A57 processor memory system treats all Write-Through pages as Non-cacheable.
Non-cacheable
Normal Non-cacheable memory is not looked up in any cache. The requests are sent directly to memory.
Read requests might over-read in memory, for example, reading 64 bytes of memory for a 4-byte access,
and a single external memory access might satisfy multiple memory requests. Write requests might
merge with other write requests to the same bytes or nearby bytes.
Device
Device memory types are used for communicating with input and output devices and memory-mapped
peripherals. They are not looked up in any cache.
All the memory operations for a single instruction can be sent to the interconnect as multiple naturally
aligned requests.
Related information
5 Memory Management Unit on page 5-292.
A.8 ACE and CHI interface signals on page Appx-A-567.
6.4.2 Coherence
All memory requests for pages that are marked as Inner Shareable in the page tables and are Write-Back
Cacheable, regardless of allocation policy, are coherent in all the caches that comprise the inner domain.
At a minimum, this includes the L1 data cache of the executing core, the L2 cache, and all other L1 data
caches in the processor. The inner domain might contain additional caches outside the processor
depending on how the system is configured.
It is unpredictable whether memory requests for pages that are marked as Inner Non-shareable are
coherent with the processor. No code must assume that Non-shareable pages are incoherent among the
caches.
The L1 data cache implements a MESI coherence protocol.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-308
Non-Confidential
6 Level 1 Memory System
6.4 L1 data memory system
When you clear the C bit in the CP15 System Control Register for a given processor, data caching is
disabled and no new cache lines are allocated to the L1 data cache and L2 cache because of requests
from that processor. This is important when cleaning and invalidating the caches for power down. Cache
lines can be allocated from memory requests of other processors, unless their cache enable bits are also
cleared. The effect on the L1 memory system is that all Write-Back Read-Write-Allocate pages are
treated as Non-cacheable pages.
When you disable the cache, all Write-Back Cacheable requests do not look up the L1 cache. L1 cache
still services the snoops from the L2 cache.
Related information
4.5.5 System Control Register on page 4-256.
You can enable the CPUACTLR[24], Non-cacheable streaming enhancement bit, only if your memory
system meets the requirement that cache line fill requests from the processor are atomic. Specifically, if
the processor requests a cache line fill on the AXI master read address channel, any given write request
from a different master is ordered completely before or after the cache line fill read. This means that after
the memory read for the cache line fill starts, writes from any other master to the same cache line are
stalled until that memory read completes. Setting this bit enables higher performance for applications
with streaming reads from memory types that do not allocate into the cache.
Because it is possible to build an AXI interconnect that does not comply with the specified requirement,
the CPUACTLR[24] bit defaults to disabled.
If synchronization primitives are used for memory pages that are Shareable Normal Write-Back and the
cache is enabled, SCTLR.C is 1, the external monitor on AXI is not used. Instead, the global monitor
function is handled in the L1 cache using the cache coherence information.
If synchronization primitives are used for memory pages that are Device, or Inner-Shareable Normal
Non-cacheable, a global monitor must be provided in the interconnect. See the ARM® Architecture
Reference Manual ARMv8, for ARMv8-A architecture profile for more information. The memory
requests are sent on the AXI interface as Read-Exclusive or Write-Exclusive. See the ARM® AMBA® AXI
and ACE Protocol Specification for more information.
Note
Use of synchronization primitives on addresses in regions marked as Device memory is UNPREDICTABLE in
the ARMv8-A architecture. Code that makes such accesses is not portable.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-309
Non-Confidential
6 Level 1 Memory System
6.4 L1 data memory system
The load/store unprivileged instructions are used in privileged modes to emulate User mode instructions
and to enforce User mode permissions. These instructions are for all memory types when enforcing
permission checking against the permissions that the page table specifies. The User mode permissions
from the page table are used instead of the privileged mode permissions.
You can also use these instructions to modify the privileged and user information on the ARPROT and
AWPROT signals on the AXI. This is required if external permission checking hardware exists in the
fabric memory.
The LDRT and STRT instructions for Strongly-ordered and Device pages appear on the AXI with an
AxPROT value that indicates User mode access. However, the same instructions for Normal Memory
might not always result in AXI transactions with an AxPROT value that indicates User mode access.
This is because any Normal Memory page permits speculative prefetching at any time. Those prefetch
requests, either caused by hardware prefetching or speculative prefetching triggered by flushed memory
instructions, can have a value of the AxPROT field that indicates privileged mode access. This reflects
the mode of the processor during the prefetch.
For Normal Write-Through Cacheable or Non-cacheable memory, the processor can still access the
memory speculatively, and can merge multiple stores together before issuing them to the AXI. Because
of this, you must use the LDRT and STRT instructions to present User mode on AxPROT if the LDRT and
STRT instructions are preceded and followed by DMB instructions:
• DMB.
• LDRT or STRT.
• DMB.
The DMB instructions prevent the LDRT or STRT instruction from hitting any previously requested read
data, or from merging with any other requests. The DMB instructions can be DMBSY, DMBISH, DMBISH, and
DMBOSH.
The multiprocessor supports the PLD, PLDW, and PRFM prefetch hint instructions. For Normal Write-Back
Cacheable memory page, the PLD, PLDW, and PRFM L1 instructions cause the line to be allocated to the L1
data cache of the executing processor. The PLD instruction brings the line into the cache in Exclusive or
Shared state and the PLDW instruction brings the line into the cache in Exclusive state. The preload
instruction cache, PLDI, is treated as a NOP. PLD and PLDW instructions are performance hints instructions
only and might be dropped in some cases.
The L1 data cache supports optional single bit correct and double bit detect error correction logic in both
the Tag and Data arrays. The ECC granularity for the Tag array is the tag for a single cache line and the
ECC granularity for the Data array is a 32-bit word.
Because of the ECC granularity in the Data array, a write to the array cannot update a portion of a 4-byte
aligned memory location because there is not enough information to calculate the new ECC value. This
is the case for any store instruction that does not write one or more aligned 4-byte regions of memory. In
this case, the L1 data memory system reads the existing data in the cache, merges in the modified bytes,
and calculates the ECC from the merged value. The L1 memory system attempts to merge multiple
stores together to meet the aligned 4-byte ECC granularity and to avoid the read-modify-write
requirement.
Single bit ECC errors in the Tag or cache are corrected in the background. Because the line is removed
from the L1 cache as part of the correction process, no software intervention is required. No exception or
interrupt is generated. The CPU Memory Error Syndrome Register is updated to indicate a nonfatal error.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-310
Non-Confidential
6 Level 1 Memory System
6.4 L1 data memory system
Double bit ECC errors in the Tag or cache are detected and an imprecise Data Abort is triggered. The
line that contains the error is evicted from the cache. When a double bit error is reported, you must
assume that data corruption has occurred and handle this appropriately.
For any detected ECC error in the L1 memory system, the CPU Memory Error Syndrome Register is
updated. For the first error reported, the register is updated with information for the RAM, bank, way,
and index that contain the error. If that same location reports multiple errors, the repeat error count is
incremented. If any other RAM locations report errors, the other error count is incremented. Double-bit
ECC errors set the fatal bit. When the register is written with zeros, the register clears all counts and
starts to monitor for a new first error again.
Related information
4.3.68 CPU Memory Error Syndrome Register, EL1 on page 4-219.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-311
Non-Confidential
6 Level 1 Memory System
6.5 Program flow prediction
The return stack stores the address and the ARM or Thumb state of the instruction after a function-call
type branch instruction. This address is the same as 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 immediate.
• BLX(1) immediate in AArch32 state.
• BLX(2) register in AArch32 state.
• BLR register in AArch64 state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-312
Non-Confidential
6 Level 1 Memory System
6.5 Program flow prediction
The LDMIA and LDR instruction address modes are correspondent with popping the return address of a full
descending stack. In AArch64 state, the RET instruction causes a return stack pop. There is no
dependency on a specific return address target register, for example X30.
Because return-from-exception instructions can change the processor privilege mode and Security state,
they are not predicted. This includes the ERET, RFE, and LDM(3) instruction, and the MOVS pc, r14
instruction.
Branches must be resolved one time to be predicted by the dynamic predictor. To accelerate cold startup
of code, the processor includes a static predictor that detects branches in the code stream as follows:
• Direct unconditional branches, B immediate, are predicted taken.
• Direct unconditional call-type branches, BL immediate and BLX immediate, are predicted taken, and
the preferred return address value is pushed on the return stack.
• Unconditional return-type branches are predicted taken and the target is popped from the return stack.
To avoid potential illegal speculation, the static predictor is disabled when the MMU is disabled.
Related information
6.5.2 Return stack predictions on page 6-312.
Program flow prediction is always enabled and no programming is required to take advantage of
program flow prediction.
When reset, the processor:
• Invalidates the BTB.
• Resets the GHB and indirect predictor to a known state.
No software intervention is required to prepare the prediction logic before enabling program flow
prediction.
The BTB is tagged by all memory space information required to uniquely identify a virtual memory
space, ASID, VMID, security, and Exception level. All predictions are checked at branch resolution time
to ensure that a legal branch is resolved. Therefore, flushing the BTB on a context switch is not required.
AArch64 state does not implement BTB flush instructions.
The processor automatically invalidates the BTB when either stage of the MMU is disabled.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-313
Non-Confidential
6 Level 1 Memory System
6.6 L1 RAM memories
dq The L2 TLB RAM is a unified TLB structure that supports L1 instruction and L1 data TLB misses.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 6-314
Non-Confidential
Chapter 7
Level 2 Memory System
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-315
Non-Confidential
7 Level 2 Memory System
7.1 About the L2 memory system
Note
• The Cortex-A57 processor does not support TLB or cache lockdown.
• The L2 FEQ20 implementation option is available only in r1p0 and later revisions.
Related information
7.2.2 Strictly-enforced inclusion property with L1 data caches on page 7-317.
7.2.4 Error Correction Code on page 7-318.
7.2.5 Register slice support for large cache sizes on page 7-318.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-316
Non-Confidential
7 Level 2 Memory System
7.2 Cache organization
The L2 cache is partitioned into multiple banks to enable parallel operations. The following levels of
banking exist:
• The Tag array is partitioned into multiple banks to enable up to two requests to access different tag
banks of the L2 cache simultaneously.
• Each tag bank is partitioned into multiple data banks to enable streaming accesses to the data banks.
Each tag bank consists of four data banks.
Figure 7-1 L2 cache bank structure on page 7-317 shows the logical representation of an L2 cache bank
structure with a configuration of all possible tag and data bank combinations.
The L2 memory system requires support for inclusion between the L1 data caches and the L2 cache. A
line that resides in any of the L1 data caches must also reside in the L2 cache. However, the data can
differ between the two caches when the L1 cache line is in a dirty state. If another agent, a core in the
cluster or another cluster, accesses this line in the L2 then it knows the line is present in the L1 of a
processor and then it queries that core for the most recent data.
This strictly-enforced inclusion property has the following benefits:
• Any AXI or CHI ReadClean operation that results in a line being in shared state in the L1 data caches
can be returned from the L2 cache. This yields the highest performance for delivering data to a core.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-317
Non-Confidential
7 Level 2 Memory System
7.2 Cache organization
• When powering down the processor, it reduces the time to clean and invalidate the entire L1 data
cache.
For processor requests, the L2 cache is enabled when the C bit of the SCTLR register is enabled. The
cache attributes are provided with each request, taking into account the page attributes that the MMU
page tables provided and overriding these attributes if the corresponding cache enable bit in the SCTLR
is disabled.
To enable the L2 cache to cache both instructions and data following the reset sequence, you must:
1. Complete the processor reset sequence.
2. Enable L2 ECC, if required by programming bit[21] of the L2 Control Register.
3. Program the I bit and C bit of the SCTLR.
To disable the L2 cache, you must use the following sequence:
1. Disable the C bit.
2. Clean and invalidate the L1 and L2 caches.
For ACP requests, the L2 cache is enabled if the request uses Normal Write-Back memory attributes.
The processor searches the L2 cache to determine if the request is valid before allocating the line for
Normal Write-Back Read-Write-Allocate memory.
Related information
4.5.5 System Control Register on page 4-256.
4.3.58 L2 Control Register, EL1 on page 4-177.
The L2 cache supports ECC in most of its memories. For core instruction and data accesses resulting in
an L2 cache hit, where a single-bit error is detected on the Data array, the L2 memory system supports
in-line ECC correction. Uncorrected data is forwarded to the requesting unit, and in parallel, the ECC
circuitry checks for accuracy. If a single-bit error is detected, any uncorrected data returned within two
cycles before the error indicator must be discarded. The L2 memory system begins to stream corrected
data to the requestor.
When there is no data transfers, the L2 memory system shifts back to return uncorrected data until it
detects the next single-bit error. Forwarding uncorrected data can be disabled by programming bit[20] of
the L2 Control Register. This avoids the requirement to flush requests associated with single-bit ECC
errors on L2 cache hits, but adds an additional 2 cycles to the L2 hit latency.
For all other single-bit ECC errors detected, the request is flushed from the L2 pipeline and is forced to
reissue. The tag bank where the single-bit error occurred, performs a read-modify-write sequence to
correct the single-bit error in the array. The request is then reissued.
Related information
4.3.68 CPU Memory Error Syndrome Register, EL1 on page 4-219.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-318
Non-Confidential
7 Level 2 Memory System
7.2 Cache organization
delays without adding the slices. However, this method has an impact on performance because requests
cannot be streamed as efficiently.
The L2 Data RAMs support up to two inserted register slices, whereas all other L2 RAMs can only
support one inserted register slice. Each register slice introduces a pair of registers, one before the RAM
and one after the RAM.
Bits[12:10] of the CP15 L2 Control Register, L2CTLR, indicate the number of RAM register slices in
the design. In addition, the L2CTLR contains bits to program the setup and latency for the L2 Tag and
Data RAMs.
Table 7-1 L2 Tag RAM latency with slice and setup factored in
000dr 2 3 4 5
001 2 3 4 5
010 3 4 5 5
011 4 5 5 5
100 5 5 5 5
1xx, ≥ 4 5 5 5 5
Note
• The L2 Tag RAM total latency is set to a maximum of 5 cycles.
• Each tag slice adds 2 cycles and affects the L2 Tag, Snoop Tag, Dirty, Inclusion PF, and prefetch
stride queue RAMs.
• Setting tag setup to 1 adds 1 cycle.
• Slice and setup have priority over programmed latency in determining the total adjusted RAM
latency.
The following example shows a Tag RAM access with 3 cycles total RAM latency.
Examples
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-319
Non-Confidential
7 Level 2 Memory System
7.2 Cache organization
The following example shows a Tag RAM access with 5 cycles total RAM latency.
Examples
The following table shows the adjusted L2 Data RAM latency with the register slice and setup factored
in.
Table 7-2 L2 Data RAM latency with slice and setup factored in
000ds 2 3 4 5 6 7
001 2 3 4 5 6 7
010 3 4 5 6 7 8
011 4 5 6 7 8 8
100 5 6 7 8 8 8
101 6 7 8 8 8 8
110 7 8 8 8 8 8
111 8 8 8 8 8 8
Note
• The L2 Data RAM total latency is set to a maximum of 8 cycles.
• Each data slice adds 2 cycles and affects the L2 data and data ECC RAMs.
• Setting data setup to 1 adds 1 cycle.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-320
Non-Confidential
7 Level 2 Memory System
7.2 Cache organization
• Slice and setup have priority over programmed latency in determining the total adjusted RAM
latency.
The following example shows a Data RAM access with 4 cycles total RAM latency.
The following example shows a Data RAM access with 8 cycles total RAM latency.
Related information
4.3.58 L2 Control Register, EL1 on page 4-177.
Related information
4.3.58 L2 Control Register, EL1 on page 4-177.
Related information
4.5.5 System Control Register on page 4-256.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-321
Non-Confidential
7 Level 2 Memory System
7.3 L2 RAM memories
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-322
Non-Confidential
7 Level 2 Memory System
7.4 L2 cache prefetcher
Note
The prefetcher is limited to prefetch within the 4KB page of the current request, if the page has been
mapped at a 4KB granularity. If the page has been mapped at a 64KB or larger granularity, then the
prefetcher is limited to issuing prefetch within the 64KB page of the current request.
• A 10-entry prefetch request queue per processor that holds the prefetch requests generated by either
the load-store, instruction fetch, or table walk prefetchers.
• A throttle mechanism to limit a maximum of 12 outstanding prefetch requests from consuming all of
the shared resources that handle the data transfer to and from memory.
• Support for forwarding from prefetched requests. If a read request was sent over AXI because of a
prefetch request, and a demand access for the same line was received, the read data can be forwarded
from the internal data buffers to the demand request, before waiting for the line to be allocated to the
cache.
You can program the CPUECTLR register to indicate the maximum number of prefetches to be allocated
in the PRQ on the following:
• An instruction fetch miss in the L2 cache by programming CPUECTLR_EL1[36:35].
• A load-store miss with a stride match in the L2 cache by programming CPUECTLR_EL1[33:32].
The programmed distance is also used as the skip distance for any load-store or instruction fetch read
with a stride match that hits in the L2 cache. In these cases, a single prefetch request is allocate in the
PRQ as:
prefetch address = current address + (stride × programmed distance)
Note
The stride for an instruction fetch access is always one cache line.
Related information
4.3.65 L2 Auxiliary Control Register, EL1 on page 4-200.
4.3.67 CPU Extended Control Register, EL1 on page 4-216.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-323
Non-Confidential
7 Level 2 Memory System
7.5 Cache coherency
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-324
Non-Confidential
7 Level 2 Memory System
7.6 Asynchronous errors
Related information
4.3.59 L2 Extended Control Register, EL1 on page 4-182.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-325
Non-Confidential
7 Level 2 Memory System
7.7 External coherent interfaces
Note
ACE is supported with the following restriction:
• ARQOS and AWQOS signals are not present.
Snoop acceptance 20 Up to 20 outstanding snoop requests are accepted on the AC channel in response to those
capability requests on the CR channel.
DVM issuing 30 or 38 If the processor implements:
capability 16-entry FEQ 30 DVM Message transactions supported (15 two-part messages)
20-entry FEQ 38 DVM Message transactions supported (19 two-part messages)
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-326
Non-Confidential
7 Level 2 Memory System
7.7 External coherent interfaces
The ACE and CHI coherent interconnect interfaces can be configured through input signals to change the
interface behavior. The multiprocessor implements the following configuration signals:
• SYSBARDISABLE on page 7-327.
• BROADCASTINNER on page 7-327.
• BROADCASTOUTER on page 7-327.
• BROADCASTCACHEMAINT on page 7-328.
SYSBARDISABLE
BROADCASTINNER
BROADCASTINNER controls issuing coherent transactions targeting the Inner Shareable domain on
the coherent interconnect. When BROADCASTINNER is asserted, the processor is considered to be
part of an Inner Shareable domain that extends beyond the processor and any transaction that requires
coherency with other masters in this domain is broadcast on the ACE or CHI interface.
When BROADCASTINNER is asserted, BROADCASTOUTER must also be asserted. In this
configuration, coherent masters can share memory in the Inner or Outer Shareable domains.
When BROADCASTINNER is deasserted, the processor does not issue DVM requests on the ACE AR
channel or CHI TXREQ channel.
BROADCASTOUTER
BROADCASTOUTER controls issuing coherent transactions targeting the outer shareability domain on
the coherent interconnect. When BROADCASTOUTER is asserted, the processor is considered to be
part of the Outer Shareable domain and any transaction that requires coherency with other masters in this
domain is broadcast on the ACE or CHI interface.
It is possible to assert BROADCASTOUTER without asserting BROADCASTINNER. This selects a
configuration that limits coherent masters to sharing memory only in the outer shareability domain.
However, cores within the cluster can still share memory in the Inner Shareable domain.
When BROADCASTOUTER is deasserted, BROADCASTINNER must also be deasserted.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-327
Non-Confidential
7 Level 2 Memory System
7.7 External coherent interfaces
When BROADCASTINNER and BROADCASTOUTER are both deasserted, the processor does not
issue coherent read or write requests on the ACE AR and AW channels, or the CHI TXREQ channel.
BROADCASTCACHEMAINT
In general, the processor can issue a Write-Back, WriteEvict, or an Evict transaction for any cache line
that is removed from the L2 cache. You can use these messages to manage an external snoop filter.
However, the snoop filter logic must not depend on such a message for every clean line dropped from the
processor caches, because in some circumstances the processor might not signal an eviction. For
example, clean evictions are not guaranteed to occur in cases involving L1 or L2 tag ECC errors.
In a system where the processor can receive a Distributed Virtual Memory (DVM) synchronization
message over the AXI master snoop address channel, BRESP for any write transaction must not be
asserted to the core until all AXI masters that might have initiated the DVM synchronization request
observe the transaction.
Note
The Cortex-A57 processor does not support a multi-part DVM hint message.
The Cortex-A57 processor uses a combination of inner and outer memory attributes from the MMU to
determine how its memory system handles each combination. Table 6-1 Memory attribute combinations
on page 6-307 shows the Inner and Outer memory attributes used by the L1 and L2 caches to form the
internal memory types. Table 7-5 External memory attributes on page 7-328 shows how these attributes
are used to form the external memory type presented on ARCACHE, AWCACHE, or
TXREQFLIT[MemAttr].
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-328
Non-Confidential
7 Level 2 Memory System
7.7 External coherent interfaces
In addition to ARCACHE, AWCACHE, and TXREQFLIT[MemAttr] the processor also presents the
raw outer memory attributes, inner memory type, and Inner and Outer Shareable on dedicated external
interface signals RDMEMATTR, WRMEMATTR, and REQMEMATTR corresponding to
transactions on ACE read channel, ACE write channel and CHI TXREQ channel, respectively.
Related information
A.9 CHI interface signals on page Appx-A-570.
A.10 ACE interface signals on page Appx-A-575.
When the system issues multiple requests on the AR channel with the same ARID, or on the AW
channel with the same AWID, it must follow the appropriate ordering rules as described in the ARM®
AMBA® AXI and ACE Protocol Specification.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-329
Non-Confidential
7 Level 2 Memory System
7.7 External coherent interfaces
For certain transactions, the system must be able to identify which core generated the request. This
applies to requests affecting the global exclusive monitor in addition to Strongly-ordered or Device
memory type accesses to peripherals.
ARCACHEM[3:0] and AWCACHEM[3:0] identify whether the memory types are Strongly-ordered,
Device, or Normal Non-cacheable. See the ARM® AMBA® AXI and ACE Protocol Specification. For these
memory types, if ARIDM[2] or AWIDM[2] is LOW, then the request is generated from one of the
cores. ARIDM[1:0] or AWIDM[1:0] indicate which core generated the request. If ARIDM[2] or
AWIDM[2] is HIGH, the request originates from the master connected to the ACP slave port.
For an exclusive read transaction such as ARLOCK asserted, ARID[1:0] indicates which core generated
the request. Only cores can generate exclusive read requests, and not the ACP or any other source.
For an exclusive write transaction such as AWLOCK asserted, AWID[1:0] indicates which core
generated the request. Only cores can generate exclusive write requests, and not the ACP or any other
source.
The system does not rely on specific values of ARID or AWID that correspond with specific transaction
sources or transaction types other than the information described in this section.
CHI TXREQ transactions include the Logical Processor ID (LPID) field. This field uniquely identifies
the logical core that generated the request transaction.
The processor uses the following LPID values:
0b000
Core 0 request.
0b001
Core 1 request.
0b010
Core 2 request.
0b011
Core 3 request.
0b100
ACP request.
0b111
L2 hardware flush request.
Secondary transactions such as copybacks from the L2, because of cache fills caused by core or ACP
access L2 misses, use the LPID of the request that caused the copyback.
For Normal Inner-Cacheable memory transfers initiated from one of the Cortex-A57 processors, the
following transfers are supported on the ACE:
• WRAP 4× 128-bit read transfers.
• WRAP 4× 128-bit write transfers.
For Normal Non-Cacheable memory transfers initated from one of the Cortex-A57 processors, the
following transfers are supported on the ACE:
• WRAP 4× 128-bit read transfers.
• WRAP 4× 128-bit write transfers.
• INCR 1× 128-bit read transfers.
• INCR 1× 128-bit write transfers.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-330
Non-Confidential
7 Level 2 Memory System
7.7 External coherent interfaces
For Strongly-ordered or Device transactions initiated from one of the Cortex-A57 processors, the
following transfers are supported on the ACE:
• INCR 1× 8-bit read transfers.
• INCR 1× 16-bit read transfers.
• INCR 1× 32-bit read transfers.
• INCR 1× 64-bit read transfers.
• INCR N (N:1, 2, or 4) 128-bit read transfers.
• INCR 1× 8-bit write transfers.
• INCR 1× 16-bit write transfers.
• INCR 1× 32-bit write transfers.
• INCR 1× 64-bit write transfers.
• INCR N (N:1, 2, or 4) 128-bit write transfers.
• WRAP 2 ×128-bit read transfers (Device nGRE and Device-GRE memory, always transfer size
aligned).
• WRAP 4 × 128-bit read transfers (Device nGRE and Device-GRE memory, always transfer size
aligned).
The following table describes the use of the burst types for Non-Cacheable and Cacheable but not
allocated memory attributes.
Table 7-6 Use of WRAP and INCR burst types for Non-Cacheable and Cacheable but not allocated
transactions
If there are requests on the ACP interface, the following transfers can be generated on the ACE if
comparable requests are received on the ACP:
• WRAP N 4× 128-bit read transfers.
• WRAP 4× 128-bit write transfers.
• INCR 1× 128-bit read transfers.
• INCR 1× 128-bit write transfers.
CHI link layer flow control uses a counter on each link to track the number of outstanding link layer
credits. The Cortex-A57 processor can receive a maximum of 15 link-layer credits on the TXREQ,
TXRSP, and TXDAT links and issues a maximum of nine link layer credits on the RXSNP, RXRSP, and
RXDAT links.
The Cortex-A57 processor can have a maximum of four outstanding DVM transactions on its snoop
interface. When this limit is reached, the system cannot send any more DVM transactions on the RXRSP
link until the processor has provided a response to an older DVM transaction on the TXRSP link
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-331
Non-Confidential
7 Level 2 Memory System
7.7 External coherent interfaces
This section describes the recommended performance settings for the Cortex-A57 L2 Auxiliary Control
Register in various system configurations.
Evict transactions
Evict and WriteEvict transactions indicate that a shareable cache line has been evicted from the master's
local caches. The downstream snoop filter can use this information to update its directory to indicate that
the issuing master no longer contains a copy of the cache line.
WriteEvict carries data and can be used to allow allocation into a system or Level 3 cache. In general,
ARM recommends the following:
• A system that contains a snoop filter enables Evict transactions.
• A system that contains a L3 cache that wants to behave like a victim cache for cache lines in the
Unique state enables WriteEvict transactions.
The Cortex-A57 L2ACTLR_EL1 register contains bits that can enable or disable Evict and WriteEvict
transactions individually. See L2ACTLR_EL1[3] and L2ACTLR_EL1[14], respectively, in the 4.3.65 L2
Auxiliary Control Register, EL1 on page 4-200.
When the Cortex-A57 processor is used with the ARM CCI-400 in an ACE-based system, ARM
recommends that you set L2ACTLR_EL1[3] to 1 to disable Evict transactions. The reset value of
L2ACTLR[3] is 0 in Cortex-A57 ACE configurations. WriteEvict transactions are disabled by default in
Cortex-A57 ACE configurations.
When the Cortex-A57 processor is used with the ARM CCN-504 in a CHI-based system, no change is
required from the default reset value of L2ACTLR_EL1. By default, Cortex-A57 CHI configurations
generate WriteEvict transactions for allocating into the CCN-504 L3 cache but do not generate Evict
transactions because the CCN-504 snoop filter does not require them.
Related information
4.3.65 L2 Auxiliary Control Register, EL1 on page 4-200.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-332
Non-Confidential
7 Level 2 Memory System
7.8 ACP
7.8 ACP
Accelerator Coherency Port (ACP) is implemented as an AXI4 slave interface with the following
restrictions:
• 128-bit read and write interfaces.
• ARCACHE and AWCACHE are restricted to Normal, Write-Back, Read-Write-Allocate, Read-
Allocate, Write-Allocate, and No-Allocate memory. ARCACHE and AWCACHE are limited to the
values 0b0111, 0b1011, and 0b1111. Other values cause a SLVERR response on RRESP or BRESP.
• Exclusive accesses are not supported.
• Barriers are not supported. BRESP indicates global observation of all writes.
• ARSIZE and AWSIZE signals are not present and assume a value of 0b100,16 bytes.
• ARBURST and AWBURST signals are not present and assume a value of INCR.
• ARLOCK and AWLOCK signals are not present.
• ARQOS and AWQOS signals are not present.
• ARLEN and AWLEN are limited to values 0 and 3.
This section contains the following subsections:
• 7.8.1 Transfer size support on page 7-333.
• 7.8.2 ACP ARUSER and AWUSER signals on page 7-334.
ACP supports the following read-request transfer size and length combinations:
• 64-byte INCR request characterized by:
— ARLEN is 0x03, 4 beats.
— ARADDR aligned to 64-byte boundary, so ARADDR[5:0] is 0b00 0000.
— ARSIZE and ARBURST assume values of 0b100 and INCR respectively.
• 16-byte INCR request characterized by:
— ARLEN is 0x00, 1 beat.
— ARADDR aligned to 16-byte boundary, so ARADDR[3:0] is 0x0.
ACP supports the following write-request transfer size and length combinations:
• 64-byte INCR request characterized by:
— AWLEN is 0x03, 4 beats.
— AWADDR aligned to 64-byte boundary, so AWADDR[5:0] is 0b00 0000.
— AWSIZE and AWBURST assume values of 0b100 and INCR respectively.
— WSTRB for all beats must be the same and either all asserted or all deasserted.
• 16-byte INCR request characterized by:
— AWLEN is 0x00, 1 beat.
— AWADDR aligned to 16-byte boundary, so AWADDR[3:0] is 0x0.
— AWSIZE and AWBURST assume values of 0b100 and INCR respectively.
— WSTRB can take any value.
Requests not meeting these restrictions cause a SLVERR response on RRESP or BRESP.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-333
Non-Confidential
7 Level 2 Memory System
7.8 ACP
ACP transactions can cause coherent requests to the system. Therefore ACP requests must pass the Inner
and Outer Shareable attributes to the L2. To pass the Inner Shareable attribute, use ARUSER[0] and
AWUSER[0]. To pass the Outer Shareable attribute, use ARUSER[1] and AWUSER[1].
The setting of AxUSER[1:0] to 0b11 is not allowed and causes a SLVERR response.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 7-334
Non-Confidential
Chapter 8
Generic Interrupt Controller CPU Interface
This section describes the Cortex-A57 processor implementation of the GIC CPU interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-335
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.1 About the GIC
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-336
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.2 GIC functional description
The GIC registers are memory-mapped, with a physical base address specified by
PERIPHBASE[43:18]. This input must be tied to a constant value. The PERIPHBASE value is
sampled during reset into the Configuration Base Address Register (CBAR) for each processor in the
MPCore device.
The GIC registers are grouped into three contiguous 64KB pages. These blocks include the CPU
interface, virtual interface control, and virtual CPU interface blocks.
Memory regions used for these registers must be marked as Device, nGnRnE, nGnRE, nGRE, or GRE in
the translation tables. Memory regions marked as Normal memory cannot access any of the GIC
registers, but can access caches or external memory as required.
Access to these registers must be with the single word load and store instructions. Load/store-multiple,
load/store-double, and load/store exclusive instructions result in a Data Abort exception to the requesting
processor.
The Accelerator Coherency Port (ACP) cannot access any of the GIC registers. The registers must be
accessed through one of the processors. Any access from ACP to the GIC registers goes to external
memory and no Data Abort exception is generated.
The following table shows the GIC memory map of a Cortex-A57 processor. An external standalone GIC
such as the ARM GIC-400 or other proprietary GIC might differ.
The following table shows the GIC memory map of a Cortex-A57 processor. An external standalone GIC
such as the ARM GIC-400 or other proprietary GIC might differ. It lists the address offsets for the GIC
blocks relative to the PERIPHBASE base address.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-337
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.2 GIC functional description
Related information
4.3.70 Configuration Base Address Register, EL1 on page 4-223.
4.5.24 Configuration Base Address Register on page 4-291.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-338
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.2 GIC functional description
Related information
A.5 GIC CPU interface signals on page Appx-A-562.
The processor implements a 5-bit version of the interrupt priority field, so it can support 32 interrupt
priority levels in Secure state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-339
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.2 GIC functional description
This section describes the two GIC bypass modes. The bypass modes are:
• GICCDISABLE bypass mode on page 8-340.
• Software bypass mode on page 8-340.
When using an external standalone interrupt controller such as the ARM GIC-400 or a proprietary
interrupt controller, you must set the GICCDISABLE signal HIGH. This forces the GIC CPU interface
to operate in bypass mode as described in the ARM® Generic Interrupt Controller Architecture
Specification, GICv3.
When the GICCDISABLE signal is tied HIGH, the PERIPHBASE[43:18] value can be read in the
Configuration Base Address Register, to permit software to read the location of the GIC if it exists in the
system external to the Cortex-A57 processor.
When the GICCDISABLE signal is HIGH, you must tie these CPU interface input signals LOW:
• ICDTVALID.
• ICDTDATA.
• ICDTLAST.
• ICDTDEST.
• ICCTREADY.
When the GICCDISABLE signal is HIGH, you must leave these CPU interface output signals
unconnected:
• ICCTVALID.
• ICCTDATA.
• ICCTLAST.
• ICCTID.
• ICDTREADY.
• nVCPUMNTIRQ[N:0].
If GICCDISABLE is tied HIGH, the nVIRQ and nVFIQ inputs can be:
• Tied off to HIGH if they are not in use.
• Driven by an external GIC in the SoC.
Related information
4.5.24 Configuration Base Address Register on page 4-291.
8.2.5 nIRQ and nVFIQ inputs on page 8-340.
The GIC CPU interface supports software interrupt bypass mode through interrupt disable bypass bits for
both memory-mapped and System-register modes. Unlike the GICCDISABLE bypass mode, the
software bypass mode does not fully disable the internal GIC CPU interface. For more information, see
the ARM® Generic Interrupt Controller Architecture Specification, GICv3.
The Cortex-A57 processor includes the virtual interrupt signals, nVIRQ and nVFIQ. There is one
nVIRQ and one nVFIQ for each core.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-340
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.2 GIC functional description
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-341
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
Each GIC CPU interface block provides the interface for an Cortex-A57 processor that operates with the
GIC. Each CPU interface provides a programming interface for:
• Enabling the signaling of interrupt requests by the CPU interface.
• Acknowledging an interrupt.
• Indicating completion of the processing of an interrupt.
• Setting an interrupt priority mask for the core.
• Defining the preemption policy for the core.
• Determining the highest priority pending interrupt for the core.
For more information on CPU interfaces, see the ARM® Generic Interrupt Controller Architecture
Specification, GICv3.
du See the ARM® Generic Interrupt Controller Architecture Specification, GICv3 for more information.
dv S = Secure.
dw NS = Non-secure.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-342
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
The following table shows the System register map for the CPU interface in AArch32. See the ARM®
Generic Interrupt Controller Architecture Specification, GICv3 for more information about the registers.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-343
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
Table 8-3 AArch32 GIC CPU interface System register summary (continued)
The following table shows the System register map for the GIC CPU interface in AArch64. See the
ARM® Generic Interrupt Controller Architecture Specification, GICv3 for more information about the
registers.
dx When operating in EL3, accesses to Banked EL1 registers access the copy designated by the current value of the
SCR_EL3.NS. When EL3 is using AArch32, there is no Secure EL1 interrupt regime and accesses in any Secure
EL3 mode, except Monitor mode, access the Secure copy.
dy Use MCRR instructions to access this register in AArch32 state.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-344
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
Table 8-4 AArch64 GIC CPU interface System register summary (continued)
This section only describes registers whose implementation is specific to the Cortex-A57 processor. All
other registers are described in the ARM® Generic Interrupt Controller Architecture Specification,
GICv3. Table 8-2 GIC CPU interface memory-mapped register summary on page 8-342 provides cross-
references to individual registers.
dz When operating in EL3, accesses to Banked EL1 registers access the copy designated by the current value of the
SCR_EL3.NS. When EL3 is using AArch32, there is no Secure EL1 interrupt regime and accesses in any Secure
EL3 mode, except Monitor mode, access the Secure copy.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-345
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
31 20 19 16 15 12 11 0
Architecture
ProductID Revision Implementer
version
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-346
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
[15:12] Revision Identifies the revision number for the CPU interface:
0x0
Revision 0.
[11:0] Implementer Contains the JEP106 code of the company that implemented the CPU interface. For an
ARM implementation, these values are:
Bits[11:8] = 0x4
The JEP106 continuation code of the implementer.
Bit[7]
Always 0.
Bits[6:0] = 0x3B
The JEP106 identity code of the implementer.
This section only describes registers whose implementation is specific to the Cortex-A57 processor. All
other registers are described in the ARM® Generic Interrupt Controller Architecture Specification,
GICv3. Table 8-4 AArch64 GIC CPU interface System register summary on page 8-344 provides cross-
references to individual registers.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-347
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
Number of group Preemption levels Minimum legal value of Active Priority Group0 Registers
priority bits BPR implemented
5 32 2 ICC_AP0R0_EL1[31:0]
The virtual interface control registers are management registers. The processor configuration software
must ensure that these registers are accessible only by a hypervisor, or similar software.
The following table shows the register map for the virtual interface control registers. The offsets in this
table are relative to the virtual interface control registers block base address as shown in Table 8-1
Cortex-A57 processor GIC memory map on page 8-337.
All the registers in the following table are word-accessible. Registers not described in this table are
Reserved.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-348
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
The following table shows the register map for the AArch32 virtual interface System registers. The
offsets in this table are relative to the virtual interface control registers block base address as shown in
Table 8-1 Cortex-A57 processor GIC memory map on page 8-337.
All the registers in the following table are word-accessible. Registers not described in this table are
Reserved.
ea See the ARM® Generic Interrupt Controller Architecture Specification GICv3 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-349
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
The following table shows the register map for the AArch64 virtual interface System registers. The
offsets in this table are relative to the virtual interface control registers block base address as shown in
Table 8-1 Cortex-A57 processor GIC memory map on page 8-337.
All the registers in the following table are word-accessible. Registers not described in this table are
Reserved.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-350
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
Usage constraints
There are no usage constraints.
Configurations
Available if the GIC is implemented and setup for memory-mapped accesses.
Attributes
See the register summary in Table 8-9 Virtual interface control register summary
on page 8-349.
The following figure shows the GICH_VTR bit assignments.
31 29 28 26 25 6 5 0
[28:26] PREbits Indicates the number of preemption bits implemented, minus one:
0b100
Five bits of preemption and 32 preemption levels.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-351
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
31 29 28 26 25 23 22 21 20 5 4 0
SEIS A3V
[28:26] PREbits Indicates the number of preemption bits implemented, minus one:
0b100
Five bits of preemption and 32 preemption levels.
[25:23] IDbits Indicates the number of virtual interrupt identifier bits supported:
0b000
16 bits of virtual interrupt identifier.
[22] SEIS Indicates if locally generated virtual System Errors are supported:
0b0
Locally generated virtual System Errors are not supported.
[21] A3V Indicates if affinity level 3 is supported in SGI generation from System registers:
0b0
SGI generation from System registers does not support affinity level 3.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-352
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
eb See the ARM® Generic Interrupt Controller Architecture Specification GICv3 for more information. The System
register counterparts of these registers are described in the ARM® Generic Interrupt Controller Architecture
Specification GICv3. The virtual CPU interface System registers do not have a separate encoding from the physical
CPU interface System registers but access is controlled from the appropriate system controls that the ARM® Generic
Interrupt Controller Architecture Specification GICv3 describes.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-353
Non-Confidential
8 Generic Interrupt Controller CPU Interface
8.3 GIC programmers model
Related information
CPU Interface Identification Register on page 8-346.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 8-354
Non-Confidential
Chapter 9
Generic Timer
This chapter describes the Cortex-A57 processor implementation of the ARM Generic Timer.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 9-355
Non-Confidential
9 Generic Timer
9.1 About the Generic Timer
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 9-356
Non-Confidential
9 Generic Timer
9.2 Generic Timer functional description
Signalec Description
nCNTPNSIRQ[n:0] Non-secure EL1 physical timer interrupt
nCNTPSIRQ[n:0] Secure EL1 physical timer interrupt
nCNTHPIRQ[n:0] Non-secure EL2 physical timer interrupt
nCNTVIRQ[n:0] Virtual timer interrupt
Related information
2.3.1 Clocks on page 2-33.
2.3.1 Clocks on page 2-33.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 9-357
Non-Confidential
9 Generic Timer
9.3 Generic Timer register summary
The following table shows the AArch64 Generic Timer registers. See the ARM® Architecture Reference
Manual ARMv8 for information about these registers.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 9-358
Non-Confidential
9 Generic Timer
9.3 Generic Timer register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 9-359
Non-Confidential
Chapter 10
Debug
This section describes the Cortex-A57 processor debug registers and shows examples of how to use
them.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-360
Non-Confidential
10 Debug
10.1 About debug
Debug
Debug host computer running suitable debugger tool
host
Protocol
for example, DSTREAM or RealView ICE
converter
Debug
Development system containing ARM processor
target
The debug host is a computer, for example a personal computer, running a software debugger such as the
DS-5 Debugger. The debug host enables you to issue high-level commands such as setting breakpoint at
a certain location, or examining the contents of a memory address.
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.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-361
Non-Confidential
10 Debug
10.1 About debug
The debug target is the lowest level of the system. An example of a debug target is a development system
with a test chip or a silicon part with a processor.
The debug target implements system support for the protocol converter to access the debug unit using the
AMBA Advanced Peripheral Bus (APB) slave interface.
The processor debug unit assists in debugging software running on the processor. You can use the
processor debug unit, in combination with a software debugger program, to debug:
• Application software.
• Operating systems.
• Hardware systems based on an ARM processor.
The debug unit enables you to:
• Stop program execution.
• Examine and alter process and coprocessor state.
• Examine and alter memory and input/output peripheral state.
• Restart the processor.
For self-hosted debug, the debug target runs additional debug monitor software, and uses the on-chip bus
fabric to send messages to the APB slave interface on the debug unit.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-362
Non-Confidential
10 Debug
10.2 Debug register interfaces
System register access allows the processor to directly access certain debug registers. The external debug
interface allows both external and self-hosted debug agents to access debug registers.
Access to the debug registers is partitioned as follows:
Debug registers
This interface is System register based and memory-mapped. You can access the debug register
map using the APB slave port.
Performance monitor
This interface is System register based and memory-mapped. You can access the performance
monitor registers using the APB slave port.
Trace registers
This interface is memory-mapped.
Related information
10.10 External debug interface on page 10-402.
The processor supports six hardware breakpoints, four watchpoints, and a standard Debug
Communications Channel (DCC). Four of the breakpoints match only to Virtual Address and the other
two match against either Virtual Address or context ID, or Virtual Machine Identifier (VMID). All the
watchpoints can be linked to two breakpoints to enable a memory request to be trapped in a given
process context.
The processor has the following reset signals that affect the debug registers:
nCPUPORESET
This signal initializes the processor logic, including the debug, Embedded Trace Macrocell
(ETM), breakpoint, watchpoint logic, and performance monitors logic. This maps to a Cold
reset that covers reset of the processor logic and the integrated debug functionality.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-363
Non-Confidential
10 Debug
10.2 Debug register interfaces
nCORERESET
This signal resets some of the debug and performance monitor logic. This maps to a Warm reset
that covers reset of the processor logic.
nPRESETDBG
This signal initializes the shared debug APB, Cross Trigger Interface (CTI), and Cross Trigger
Matrix (CTM) logic. This maps to an external debug reset that covers the resetting of the
external debug interface and has no impact on the processor functionality.
External access permission to the debug registers is subject to the conditions at the time of the access.
The following table describe the processor response to accesses through the external debug interface.
Note
If debug power is off then all external debug and memory-mapped
register accesses return an error.
The following table shows an example of external register access conditions for access to a Performance
Monitors register. To determine the access permission for the register, scan the columns from left to
right. Stop at the first column whose condition is true, the entry gives the access permission of the
register and scanning stops.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-364
Non-Confidential
10 Debug
10.3 AArch64 debug register summary
el See the ARM® Architecture Reference Manual ARMv8 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-365
Non-Confidential
10 Debug
10.3 AArch64 debug register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-366
Non-Confidential
10 Debug
10.4 AArch64 debug register descriptions
Note
The range of n for DBGBCRn_EL1 is 0 to 5.
Usage constraints
The accessibility to the DBGBCRn_EL1 by Exception level is:
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The DBGBCRn_EL1 is Common to Secure and Non-secure states and architecturally mapped
to:
• The AArch32 DBGBCRn registers.
• The external DBGBCRn_EL1 registers.
Attributes
See the register summary in Table 10-3 AArch64 debug register summary on page 10-365.
The debug logic reset value of a DBGBCRn_EL1 is UNKNOWN.
The following figure shows the DBGBCRn_EL1bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-367
Non-Confidential
10 Debug
10.4 AArch64 debug register descriptions
31 24 23 20 19 16 15 14 13 12 9 8 5 4 3 2 1 0
HMC
BT[2] Mismatch. This bit is ignored in AArch64 state, and in EL0 if EL1 is using AArch64. If EL1
using AArch32 is not implemented, this bit is RES0. The address in DBGBVRn_EL1 is the
address of an instruction to be stepped.
[19:16] LBN Linked breakpoint number. For Linked address matching breakpoints, this specifies the index of the
Context-matching breakpoint linked to.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-368
Non-Confidential
10 Debug
10.4 AArch64 debug register descriptions
[13] HMC Hyp Mode Control bit. Determines the debug perspective for deciding when a breakpoint debug event
for breakpoint n is generated. This bit must be interpreted along with the SSC and PMC fields.
This bit is used with the SSC and PMC fields to determine the mode and Security states that can be
tested.
See the ARM® Architecture Reference Manual ARMv8 for possible values of the fields.
Note
ARMv8 does not support direct execution of Java bytecodes. BAS[3] and BAS[1] ignore writes and on
reads return the values of BAS[2] and BAS[0] respectively.
em See the ARM® Architecture Reference Manual ARMv8 for more information on how the BAS field is interpreted by
hardware.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-369
Non-Confidential
10 Debug
10.4 AArch64 debug register descriptions
Note
Bits[2:1] has no effect for accesses made in Hyp mode.
Note
The value of DBGBCR.E is UNKNOWN on reset. A debugger must ensure that DBGBCR.E has a defined
value before it programs DBGDSCR.MDBGen and DBGDSCR.HDBGen to enable debug.
To access the DBGBCRn_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, DBGBCRn_EL1; Read Debug Breakpoint Control Register n
MSR DBGBCRn_EL1, <Xt>; Write Debug Breakpoint Control Register n
To access the DBGBCRn in AArch32 state, read or write the CP14 register with:
MRC p14, 0, <Rt>, c0, cn, 4; Read Debug Breakpoint Control Register n
MCR p14, 0, <Rt>, c0, cn, 4; Write Debug Breakpoint Control Register n
The DBGBCRn_EL1 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x4n8.
Note
The range of n for DBGBCRn_EL1is 0 to 3.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-370
Non-Confidential
10 Debug
10.4 AArch64 debug register descriptions
Table 11-1 External register access conditions on page 11-419 describes the access
conditions.
Configurations The DBGWCRn_EL1 is Common to Secure and Non-secure states and architecturally
mapped to:
• The AArch32 DBGWCRn registers.
• The external DBGWCRn_EL1 registers.
Attributes See the register summary in Table 10-3 AArch64 debug register summary
on page 10-365.
The debug logic reset value of a DBGWCR_EL1 is UNKNOWN.
31 29 28 24 23 21 20 19 16 15 14 13 12 5 4 3 2 1 0
WT HMC
When this bit is set to 1 the linked BRP number field indicates the BRP that this WRP is linked. See the
ARM® Architecture Reference Manual ARMv8 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-371
Non-Confidential
10 Debug
10.4 AArch64 debug register descriptions
[15:14] SSC Security State Control. This field enables the watchpoint to be conditional on the Security state of the
processor. This field is used with the Hyp Mode Control (HMC) and Privileged Access Control (PAC)
fields.
See the ARM® Architecture Reference Manual ARMv8 for possible values of the fields, and the access
modes and Security states that can be tested.
[13] HMC Hyp Mode Control. This field is used with the Security State Control (SSC) and PAC fields. The value
of DBGWCR.PAC has no effect for accesses made in Hyp mode.
See the ARM® Architecture Reference Manual ARMv8 for possible values of the fields, and the access
modes and Security states that can be tested.
[12:5] BAS Byte Address Select. The processor implements an 8-bit Byte address select field, DBGWCR[12:5].
A DBGWVR is programmed with a word-aligned address. This field enables the watchpoint to hit only
if certain bytes of the addressed word are accessed. The watchpoint hits if an access hits any byte being
watched, even if:
• The access size is larger than the size of the region being watched.
• The access is unaligned, and the base address of the access is not in the same word of memory as
the address in the DBGWVR.
• The access size is smaller than the size of region being watched.
See the ARM® Architecture Reference Manual ARMv8 for more information.
[4:3] LSC Load/store access control. This field enables watchpoint matching for the type of access. The possible
values are:
0b00 Reserved.
0b01 Match on any load, Load-Exclusive, or swap.
0b10 Match on any store, Store-Exclusive, or swap.
0b11 Match on all type of access.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-372
Non-Confidential
10 Debug
10.4 AArch64 debug register descriptions
Note
• For all cases the match refers to the privilege level of the access, not the mode of the processor. For
example, if the watchpoint is configured to match only accesses at PL1 or higher, and the processor
executes an LDRT instruction in a PL1 mode, the watchpoint does not match.
• Permitted values of this field are not identical to those for the DBGBCR. In the DBGBCR the value
0b00 permitted.
Note
The value of DBGWCR.E is UNKNOWN on reset. A debugger must ensure that DBGWCR.E has a
defined value before it programs DBGDSCR[15:14] to enable debug.
To access the DBGWCRn in AArch32 state, read or write the CP14 register with:
MRC p14, 0, <Rt>, c0, cn, 7; Read Debug Watchpoint Control Register n
MCR p14, 0, <Rt>, c0, cn, 7; Write Debug Watchpoint Control Register n
To access the DBGWCRn_EL1 in AArch64 state, read or write the register with:
MRS <Xt>, DBGWCRn_EL1; Read Debug Watchpoint Control Register n
MSR DBGWCRn_EL1, <Xt>; Write Debug Watchpoint Control Register n
The DBGWCRn_EL1 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x8n8. The range of n for DBGWCRn_EL1 is 0 to 3.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-373
Non-Confidential
10 Debug
10.5 AArch32 debug register summary
en See the ARM® Architecture Reference Manual ARMv8 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-374
Non-Confidential
10 Debug
10.5 AArch32 debug register summary
eo Previously returned information about the address of the instruction that accessed a watchpoint address. This
register is now deprecated and is RES0.
ep Previously defined the offset from the base address defined in DBGDRAR of the physical base address of the debug
registers for the processor. This register is now deprecated and RES0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-375
Non-Confidential
10 Debug
10.5 AArch32 debug register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-376
Non-Confidential
10 Debug
10.6 AArch32 debug register descriptions
31 28 27 24 23 20 19 16 15 14 13 12 11 0
RES1 SE_imp
nSUHD_imp RES0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-377
Non-Confidential
10 Debug
10.6 AArch32 debug register descriptions
[27:24] BRPs The number of Breakpoint Register Pairs (BRPs) implemented. The number of implemented
BRPs is one more than the value of this field. The value is:
0x5 The processor implements 6 BRPs.
[23:20] CTX_CMPs The number of BRPs that can be used for Context matching. This is one more than the value of
this field. The value is:
0x1 The processor implements two Context matching breakpoints, breakpoints 4 and 5.
To access the DBGDIDR in AArch32 state, read or write the CP14 register with:
MRC p14, 0, <Rt>, c0, c0, 0; Read Debug ID Register
Configurations
The DBGDEVID1 is Common to Secure and Non-secure states.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-378
Non-Confidential
10 Debug
10.6 AArch32 debug register descriptions
Attributes
See the register summary in Table 10-6 AArch32 debug register summary on page 10-374.
The following figure shows the DBGDEVID1 bit assignments.
31 4 3 0
RES0 PCSROffset
To access the DBGDEVID1 in AArch32 state, read the CP14 register with:
MRC p14, 0, <Rt>, c7, c1, 47 Read Debug Device ID Register 1
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
BPAddrMask WPAddrMask
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-379
Non-Confidential
10 Debug
10.6 AArch32 debug register descriptions
[27:24] AuxRegs Specifies support for the Debug External Auxiliary Control Register. This value is:
0x1 The processor supports Debug External Auxiliary Control Register.
[23:20] DoubleLock Specifies support for the Debug OS Double Lock Register. This value is:
0x1 The processor supports Debug OS Double Lock Register.
[15:12] VectorCatch Defines the form of the vector catch event implemented. This value is:
0x0 The processor implements address matching form of vector catch.
[11:8] BPAddrMask Indicates the level of support for the Immediate Virtual Address (IVA) matching breakpoint
masking capability. This value is:
0xF Breakpoint address masking not implemented. DBGBCRn[28:24] are UNK/SBZP.
[7:4] WPAddrMask Indicates the level of support for the DVA matching watchpoint masking capability. This value
is:
0x1 Watchpoint address mask implemented.
[3:0] PCSample Indicates the level of support for Program Counter sampling using debug registers 40 and 41.
This value is:
0x3 EDPCSR, EDCIDSR and EDVIDSR are implemented as debug registers 40, 41, and 42.
To access the DBGDEVID in AArch32 state, read the CP14 register with:
MRC p14, 0, <Rt>, c7, c2, 7; Read Debug Device ID Register 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-380
Non-Confidential
10 Debug
10.7 Memory-mapped register summary
eq See the ARM® Architecture Reference Manual ARMv8 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-381
Non-Confidential
10 Debug
10.7 Memory-mapped register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-382
Non-Confidential
10 Debug
10.7 Memory-mapped register summary
0xD54 ID_AA64ISAR1_EL1[63:32] RO 32-bit AArch64 Instruction Set Attribute Register 1 high word,
RES0
0xD58 ID_AA64MMFR1_EL1[31:0] RO 32-bit AArch64 Memory Model Feature Register 1 low word,
RES0
0xD5C ID_AA64MMFR1_EL1[63:32] RO 32-bit AArch64 Memory Model Feature Register 1 high word,
RES0
0xD60-0xEF4 - - - Reserved
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-383
Non-Confidential
10 Debug
10.7 Memory-mapped register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-384
Non-Confidential
10 Debug
10.7 Memory-mapped register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-385
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
Table 10-1 External register access conditions on page 10-364 describes the access
conditions.
Configurations The EDRCR is in the Core power domain.
Attributes See the register summary in Table 10-10 Memory-mapped debug register summary
on page 10-381.
31 5 4 3 2 1 0
RES0 RES0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-386
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
[2] CSE Clear Sticky Error. Used to clear the EDSCR cumulative error bits to 0. The possible values:
0 No action.
1 Clear the EDSCR.{TXU, RXO, ERR} bits, and, if the processor is in Debug state, the EDSCR.ITO
bit, to 0.
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDACR is in the Debug power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDACR bit assignments.
31 4 3 2 1 0
RES0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-387
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
[2] Core debug reset status Read-only status bit that reflects the current reset state of the debug logic in the
processor power domain:
0
Debug logic in processor power domain is not in reset state.
1
Debug logic in processor power domain is currently in reset state.
[1] Debug powerdown Debug powerdown control bit. If debug is enabled and this bit is:
override 0
Error response is generated for APB accesses to the processor domain debug
registers when the processor is powered down or OS Double Lock is set. This
is the reset value.
1
APB accesses to the processor domain debug registers proceed normally when
the processor is powered down or OS Double Lock is set.
[0] Debug clock stop Debug clock control bit. If debug is enabled and this bit is:
control 0
Does not prevent the clock generator from stopping the processor clock. This is
the reset value.
1
Prevents the clock generator from stopping the processor clock.
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
EDITOCTRL is in the Core power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-388
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
31 3 2 1 0
Reserved
nPMUIRQ
CTI PMUIRQ
CTI DBGTRIGGER
Related information
10.8.5 External Debug Integration Mode Control Register on page 10-390.
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
EDITISR is in the Core power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDITISR bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-389
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
31 3 2 1 0
Reserved
CTI DBGRESTART
CTI EDBGRQ
EDBGRQ
Related information
10.8.5 External Debug Integration Mode Control Register on page 10-390.
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
EDITCTRL is in the Core power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDITCTRL bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-390
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
31 1 0
Reserved
IME
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDDEVID1 is in the Debug power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDDEVID1 bit assignments.
31 4 3 0
Reserved PCSROffset
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-391
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDDEVID is in the Debug power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDDEVID bit assignments.
31 28 27 24 23 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-392
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
Only bits[7:0] of each Debug Peripheral ID Register are used, with bits[31:8] reserved. Together, the
eight Debug Peripheral ID Registers define a single 64-bit Peripheral ID.
The Debug Peripheral ID registers are:
• Debug Peripheral Identification Register 0 on page 10-393.
• Debug Peripheral Identification Register 1 on page 10-394.
• Debug Peripheral Identification Register 2 on page 10-395.
• Debug Peripheral Identification Register 3 on page 10-395.
• Debug Peripheral Identification Register 4 on page 10-396.
• Debug Peripheral Identification Register 5-7 on page 10-397.
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDPIDR0 is in the Debug power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDPIDR0 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-393
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
31 8 7 0
Reserved Part_0
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDPIDR1 is in the Debug power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDPIDR1 bit assignments.
31 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-394
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDPIDR2 is in the Debug power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDPIDR2 bit assignments.
31 8 7 4 3 2 0
JEDEC
[2:0] DES_1 0b011 ARM Limited. This is the most significant nibble of JEP106 ID code.
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDPIDR3 is in the Debug power domain.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-395
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDPIDR3 bit assignments.
31 8 7 4 3 0
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDPIDR4 is in the Debug power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDPIDR4 bit assignments.
31 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-396
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
The Debug Component Identification Registers identify Debug as an ARM Debug Interface v5
component. The Debug Component ID registers are:
• Debug Component Identification Register 0 on page 10-397.
• Debug Component Identification Register 1 on page 10-398.
• Debug Component Identification Register 2 on page 10-399.
• Debug Component Identification Register 3 on page 10-399.
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDCIDR0 is in the Debug power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-397
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
31 8 7 0
Reserved PRMBL_0
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDCIDR1 is in the Debug power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDCIDR1 bit assignments.
31 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-398
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDCIDR2 is in the Debug power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDCIDR2 bit assignments.
31 8 7 0
Reserved PRMBL_2
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The EDCIDR3 is in the Debug power domain.
Attributes
See 10.7 Memory-mapped register summary on page 10-381.
The following figure shows the EDCIDR3 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-399
Non-Confidential
10 Debug
10.8 Memory-mapped register descriptions
31 8 7 0
Reserved PRMBL_3
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-400
Non-Confidential
10 Debug
10.9 Debug events
Debug OS Lock is set by the powerup reset, nCPUPORESET. For normal behavior of debug events and
debug register accesses, Debug OS Lock must be cleared. For more information, see the ARM®
Architecture Reference Manual ARMv8.
Related information
2.3.2 Resets on page 2-37.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-401
Non-Confidential
10 Debug
10.10 External debug interface
Processor
PCLKDBG
DBGEN
PCLKENDBG
Authentication SPIDEN
PSELDBG
interface NIDEN
PADDRDBG
SPNIDEN
PRDATADBG Debug slave
COMMTX PWDATADBG port, APBv3
DCC
COMMRX PENABLEDBG
handshake
nCOMMIRQ PREADYDBG
PSLVERRDBG
Debug state DBGACK PWRITEDBG
entry EDBGRQ
DBGPWRDUP
Power DBGROMADDR
controller DBGPWRUPREQ Configuration
interface DBGROMADDRV
DBGNOPWRDWN
Reset nPRESETDBG
controller
interface DBGRSTREQ
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-402
Non-Confidential
10 Debug
10.10 External debug interface
DBGPWRDUP
You must set the DBGPWRDUP signal LOW before removing power to the core domain. After power
is restored to the core domain, the DBGPWRDUP signal must be asserted HIGH. The EDPRSR.PU bit
reflects the value of this DBGPWRDUP signal.
Note
DBGPWRDUP must be tied HIGH if the particular implementation does not support separate core and
debug power domains.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-403
Non-Confidential
10 Debug
10.10 External debug interface
cache entries is not guaranteed. Similarly, the contents of the L2 snoop tag RAMs might be observed
following reset of the L2 if DBGL1RSTDISABLE is asserted before resetting the L2.
You must not use the DBGL1RSTDISABLE signal to disable automatic hardware-controlled
invalidation of the L1 data cache or the L2 snoop tag RAMs in normal processor powerup sequences.
This is because synchronization of the L1 data cache invalidation sequence with the duplicate L1 tags in
the Level 2 Memory System is not guaranteed.
The DBGL1RSTDISABLE signal applies to all processors in the multiprocessor. Each processor
samples the signal when nCORERESET or nCPUPORESET is asserted. The L2 samples the signal
when nL2RESET is asserted.
If the functionality offered by the DBGL1RSTDISABLE input signal is not required, the input must be
tied to LOW.
Note
This feature is available only in r1p0 and later revisions.
The NIDEN, DBGEN, SPIDEN, and SPNIDEN input signals are either tied off to some fixed value or
controlled by some external device.
If software running on the processor has control over an external device that drives the authentication
signals, it must make the change using a safe sequence:
1. Execute an implementation-specific sequence of instructions to change the signal value. For example,
this might be a single STR instruction that writes certain value to a control register in a system
peripheral.
2. If the prior step involves any memory operation, issue a DSB instruction.
3. Poll the DBGAUTHSTATUS_EL1 register to check whether the processor has already detected the
changed value of these signals. This is required because the system might not issue the signal change
to the processor until several cycles after the DSB instruction completes.
4. Issue an ISB instruction or exception entry or exception return.
The software cannot perform debug or analysis operations that depend on the new value of the
authentication signals until this procedure is complete. The same rules apply when the debugger has
control of the processor through the Instruction Transfer Register, EDITR, while in Debug state. The
relevant combinations of the DBGEN, NIDEN, SPIDEN, and SPNIDEN values can be determined by
polling DBGAUTHSTATUS_EL1.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-404
Non-Confidential
10 Debug
10.11 ROM table
The interface to the ROM table entries is the APB slave port.
Related information
10.10 External debug interface on page 10-402.
The following table shows the offsets from the physical base address of the ROM table.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-405
Non-Confidential
10 Debug
10.11 ROM table
This section describes the ROM table registers. 10.11.2 ROM table register summary on page 10-405
provides cross-references to individual registers.
Table 11-1 External register access conditions on page 11-419 describes the access
conditions.
Configurations The ROMENTRYn is Common to Secure and Non-secure states.
Attributes See the register summary in Table 10-30 ROM table registers on page 10-405.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-406
Non-Confidential
10 Debug
10.11 ROM table
31 12 11 2 1 0
Format
Component present
Note
Negative values of address offsets are permitted using the two’s complement of the offset.
The Physical Address of a debug component is determined by shifting the address offset 12 places to the
left and adding the result to Physical Address of processor ROM table.
The following table shows the offset values for all ROMENTRY values. If a processor is not
implemented, the ROMENTRY registers for its debug, CTI, PMU, and ETM components are
0x00000000.
es core 0 is always present. The component entries for core 1, 2, and 3 depend on your configuration.
et If the component is present.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-407
Non-Confidential
10 Debug
10.11 ROM table
Table 10-33 Summary of the ROM table Debug Peripheral Identification Registers
ROMPID2 3B 0xFE8
Only bits[7:0] of each ROM table Debug Peripheral ID Register are used, with bits[31:8] reserved.
Together, the eight ROM table Debug Peripheral ID Registers define a single 64-bit Peripheral ID.
The ROM table Debug Peripheral ID registers are:
• ROM table Debug Peripheral Identification Register 0 on page 10-408.
• ROM table Debug Peripheral Identification Register 1 on page 10-409.
• ROM table Debug Peripheral Identification Register 2 on page 10-410.
• ROM table Debug Peripheral Identification Register 3 on page 10-411.
• ROM table Debug Peripheral Identification Register 4 on page 10-411.
• ROM table Debug Peripheral Identification Register 5-7 on page 10-412.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-408
Non-Confidential
10 Debug
10.11 ROM table
Usage constraints
Accessible through the internal memory-mapped interface and the external debug interface. The
access conditions are:
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The ROMPIDR0 is in the Debug power domain.
Attributes
See the register summary in Table 10-30 ROM table registers on page 10-405.
The following figure shows the ROMPIDR0 bit assignments.
31 8 7 0
Reserved Part_0
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The ROMPIDR1 is in the Debug power domain.
Attributes
See the register summary in Table 10-30 ROM table registers on page 10-405.
The following figure shows the ROMPIDR1 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-409
Non-Confidential
10 Debug
10.11 ROM table
31 8 7 4 3 0
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The ROMPIDR2 is in the Debug power domain.
Attributes
See the register summary in Table 10-30 ROM table registers on page 10-405.
The following figure shows the ROMPIDR2 bit assignments.
31 8 7 4 3 2 0
JEDEC
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-410
Non-Confidential
10 Debug
10.11 ROM table
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The ROMPIDR3 is in the Debug power domain.
Attributes
See the register summary in Table 10-30 ROM table registers on page 10-405.
The following figure shows the ROMPIDR3 bit assignments.
31 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-411
Non-Confidential
10 Debug
10.11 ROM table
Usage constraints Accessible through the internal memory-mapped interface and the external debug
interface. The access conditions are:
Table 11-1 External register access conditions on page 11-419 describes the access
conditions.
Configurations The ROMPIDR4 is in the Debug power domain.
Attributes See the register summary in Table 10-30 ROM table registers on page 10-405.
31 8 7 4 3 0
[3:0] DES_2 0x4 Designer, JEP106 continuation code, least significant nibble. For ARM Limited.
Table 10-39 Summary of the ROM table Debug Component Identification registers
The ROM table Debug Component Identification Registers identify Debug as an ARM Debug Interface
v5 component. The ROM table Component ID registers are:
• ROM table Debug Component Identification Register 0 on page 10-413.
• ROM table Debug Component Identification Register 1 on page 10-413.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-412
Non-Confidential
10 Debug
10.11 ROM table
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The ROMCIDR0 is in the Debug power domain.
Attributes
See the register summary in Table 10-30 ROM table registers on page 10-405.
The following figure shows the ROMCIDR0 bit assignments.
31 8 7 0
Reserved PRMBL_0
Table 11-1 External register access conditions on page 11-419 describes the access
conditions.
Configurations The ROMCIDR1 is in the Debug power domain.
Attributes See the register summary in Table 10-30 ROM table registers on page 10-405.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-413
Non-Confidential
10 Debug
10.11 ROM table
31 8 7 4 3 0
Table 11-1 External register access conditions on page 11-419 describes the access
conditions.
Configurations The ROMCIDR2 is in the Debug power domain.
Attributes See the register summary in Table 10-30 ROM table registers on page 10-405.
31 8 7 0
Reserved PRMBL_2
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-414
Non-Confidential
10 Debug
10.11 ROM table
Usage constraints
Accessible through the internal memory-mapped interface and the external debug interface. The
access conditions are:
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The ROMCIDR3 is in the Debug power domain.
Attributes
See the register summary in Table 10-30 ROM table registers on page 10-405.
The following figure shows the ROMCIDR3 bit assignments.
31 8 7 0
Reserved PRMBL_3
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 10-415
Non-Confidential
Chapter 11
Performance Monitor Unit
This section describes the Performance Monitor Unit (PMU) and the registers that it uses.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-416
Non-Confidential
11 Performance Monitor Unit
11.1 About the PMU
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-417
Non-Confidential
11 Performance Monitor Unit
11.2 PMU functional description
CLK
Cycle counter
Count Enable
System control, Set/Clear and
processor, and Event Performance
APB interface Selection counter
registers
Performance
counter
Interrupt and
Performance
overflow nPMUIRQ
counter
registers
Performance
counter
Performance
Events from counter
other units
Performance
counter
Events from all other units from across the design are provided to the PMU.
You can program the PMU registers using the System registers or the external APB interface.
11.2.3 Counters
The Cortex-A57 processor has six counters. Each counter can count any of the events available in the
processor.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-418
Non-Confidential
11 Performance Monitor Unit
11.2 PMU functional description
The Cortex-A57 processor supports access to the Performance Monitor registers from the System
registers and a memory-mapped interface. External access to the Performance Monitor registers is also
provided with the APB slave interface.
Related information
10.10 External debug interface on page 10-402.
External access permission to the PMU registers is subject to the conditions at the time of the access. The
following table describes the processor response to accesses through the external debug and memory-
mapped interfaces.
Note
If debug power is off then all external debug and memory-mapped
register accesses return an error.
The following table shows an example of external register access conditions for access to a Performance
Monitors register. To determine the access permission for the register, scan the columns from left to
right. Stop at the first column whose condition is true, the entry gives the register’s access permission
and scanning stops.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-419
Non-Confidential
11 Performance Monitor Unit
11.3 AArch64 PMU register summary
The following table shows the PMU registers in AArch64 state. It also shows the offset address for the
registers that are accessible from the internal memory-mapped interface or the external debug interface.
eu See the ARM® Architecture Reference Manual ARMv8 for more information.
ev The CP15 encoding provides access to PMCCFILTR_EL0 only when PMSELR_EL0.SEL==31.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-420
Non-Confidential
11 Performance Monitor Unit
11.3 AArch64 PMU register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-421
Non-Confidential
11 Performance Monitor Unit
11.4 AArch64 PMU register descriptions
Table 11-1 External register access conditions on page 11-419 describes the access
conditions.
Configurations The PMCR_EL0 is Common to Secure and Non-secure states and architecturally
mapped to:
• The AArch32 PMCR register.
• The external PMCR_EL0 register.
Attributes See the register summary in Table 11-3 PMU register summary in AArch64 state
on page 11-420.
The following figure shows the PMCR_EL0 bit assignments for a System register access.
31 24 23 16 15 11 10 7 6 5 4 3 2 1 0
The following table shows the PMCR_EL0 bit assignments for a System register access.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-422
Non-Confidential
11 Performance Monitor Unit
11.4 AArch64 PMU register descriptions
[4] X Export enable. This bit permits events to be exported to another debug device, such as a trace
macrocell, over an event bus:
0 Export of events is disabled.
1 Export of events is enabled.
This bit is read/write and does not affect the generation of Performance Monitors interrupts, that can
be implemented as a signal exported from the processor to an interrupt controller.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-423
Non-Confidential
11 Performance Monitor Unit
11.4 AArch64 PMU register descriptions
Note
Resetting PMCCNTR does not clear the PMCCNTR_EL0 overflow bit to 0. See the ARM®
Architecture Reference Manual ARMv8 for more information.
In Non-secure modes other than Hyp mode, a write of 1 to this bit does not reset event counters that
the HDCR.HPMN field reserves for Hyp mode use. See 4.5.12 Hyp Debug Control Register
on page 4-276.
In Secure state and Hyp mode, a write of 1 to this bit resets all the event counters.
[0] E Enable bit. This bit does not disable or enable, counting by event counters reserved for Hyp mode by
HDCR.HPMN. It also does not suppress the generation of performance monitor overflow interrupt
requests by those counters:
0 All counters, including PMCCNTR_EL0, are disabled. This is the reset value.
1 All counters are enabled.
To access the PMCR_EL0 in AArch64 state, read or write the register with:
MRS <Xt>, PMCR_EL0; Read Performance Monitors Control Register
MSR PMCR_EL0, <Xt>; Write Performance Monitors Control Register
To access the PMCR in AArch32 state, read or write the CP15 registers with:
MRC p15, 0, <Rt>, c9, c12, 0; Read Performance Monitors Control Register
MCR p15, 0, <Rt>, c9, c12, 0; Write Performance Monitors Control Register
See 11.7.1 Performance Monitors Control Register, EL0 on page 11-432 for information about
accessing the PMCR_EL0 through the internal memory-mapped interface and the external debug
interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-424
Non-Confidential
11 Performance Monitor Unit
11.4 AArch64 PMU register descriptions
Usage constraints
The accessibility to the PMCEID0_EL0 by Exception level is:
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
The PMCEID0_EL0 is Common to Secure and Non-secure states and architecturally mapped to:
• The AArch32 PMCEID0 register.
• The external PMCEID0_EL0 register.
Attributes
See the register summary in Table 11-3 PMU register summary in AArch64 state
on page 11-420.
The following figure shows the PMCEID0_EL0 bit assignments
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
BC IS BA BP UL BR BI ER ET IA ST LD SI
RES0 TW ME BM CW IC1R
CH DC2W CC PW IT1R
DC2R MA DC1R
DC2A IC1A DC1A
DC1W DT1R
The following table shows the PMCEID0_EL0 bit assignments with event implemented or not
implemented when the associated bit is set to 1 or 0.
PMCEID1_EL0[31:0] is reserved.
Bit Name Event number Value Event implemented if bit set to 1 or not implemented if bit set to 0
[31] - 0x1F 0 Reserved, RES0.
[30] CH 0x1E 1 Chain.ew An odd-numbered counter increments when an overflow occurs on the
preceding even-numbered counter. For even-numbered counters, does not count.
[29] BC 0x1D 1 Bus cycle.
[28] TW 0x1C 1 TTBR write, architecturally executed, condition check pass - write to translation
table base.
[27] IS 0x1B 1 Instruction speculatively executed.
[26] ME 0x1A 1 Local memory error.
ew See the ARM® Architecture Reference Manual ARMv8 for more information about the chain event.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-425
Non-Confidential
11 Performance Monitor Unit
11.4 AArch64 PMU register descriptions
Bit Name Event number Value Event implemented if bit set to 1 or not implemented if bit set to 0
[25] BA 0x19 1 Bus access.
[24] DC2W 0x18 1 Level 2 data cache Write-Back.
[23] DC2R 0x17 1 Level 2 data cache refill.
[22] DC2A 0x16 1 Level 2 data cache access.
[21] DC1W 0x15 1 Level 1 data cache Write-Back.
[20] IC1A 0x14 1 Level 1 instruction cache access.
[19] MA 0x13 1 Data memory access.
[18] BP 0x12 1 Predictable branch speculatively executed.
[17] CC 0x11 1 Cycle.
[16] BM 0x10 1 Mispredicted or not predicted branch speculatively executed.
[15] UL 0x0F 0 Instruction architecturally executed, condition check pass - unaligned load or
store.
[14] BR 0x0E 0 Instruction architecturally executed, condition check pass - procedure return.
[13] BI 0x0D 0 Instruction architecturally executed - immediate branch.
[12] PW 0x0C 0 Instruction architecturally executed, condition check pass - software change of
the PC.
[11] CW 0x0B 1 Instruction architecturally executed, condition check pass - write to
CONTEXTIDR.
[10] ER 0x0A 1 Instruction architecturally executed, condition check pass - exception return.
[9] ET 0x09 1 Exception taken.
[8] IA 0x08 1 Instruction architecturally executed.
[7] ST 0x07 0 Instruction architecturally executed, condition check pass - store.
[6] LD 0x06 0 Instruction architecturally executed, condition check pass - load.
[5] DT1R 0x05 1 Level 1 data TLB refill.This event is implemented.
[4] DC1A 0x04 1 Level 1 data cache access.
[3] DC1R 0x03 1 Level 1 data cache refill.
[2] IT1R 0x02 1 Level 1 instruction TLB refill.
[1] IC1R 0x01 1 Level 1 instruction cache refill.
[0] SI 0x00 1 Instruction architecturally executed, condition check pass - software increment.
To access the PMCEID0_EL0 in AArch64 state, read or write the register with:
MRS <Xt>, PMCEID0_EL0; Read Performance Monitors Common Event Identification Register 0
To access the PMCEID0 in AArch32 state, read or write the CP15 register with:
MRC p15, 0, <Rt>, c9, c12, 6; Read Performance Monitors Common Event Identification Register
0
The PMCEID0_EL0 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0xE20.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-426
Non-Confidential
11 Performance Monitor Unit
11.5 AArch32 PMU register summary
ex See the ARM® Architecture Reference Manual ARMv8 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-427
Non-Confidential
11 Performance Monitor Unit
11.5 AArch32 PMU register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-428
Non-Confidential
11 Performance Monitor Unit
11.6 Memory-mapped register summary
ey See the ARM® Architecture Reference Manual ARMv8 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-429
Non-Confidential
11 Performance Monitor Unit
11.6 Memory-mapped register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-430
Non-Confidential
11 Performance Monitor Unit
11.6 Memory-mapped register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-431
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
Table 11-1 External register access conditions on page 11-419 describes the access conditions.
Configurations
The PMCR_EL0 is Common to Secure and Non-secure states and architecturally mapped to:
• The AArch32 PMCR register.
• The external PMCR_EL0 register.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMCR_EL0 bit assignments for a memory-mapped access.
31 7 6 5 4 3 2 1 0
RES0 LC DP X D C P E
The following table shows the PMCR_EL0 bit assignments for a memory-mapped access.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-432
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
The PMCR_EL0 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xE04.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
PMPCSR[31:0] copies the EDPCSRlo debug register.
PMPCSR[63:32] copies the EDPCSRhi debug register.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
See the ARM® Architecture Reference Manual ARMv8 for more information about the EDPCSR debug
registers.
PMPCSR[31:0] can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x600.
PMPCSR[63:32] can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x604.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-433
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
Purpose
The PMCIDSR register is an alias of the EDCIDSR debug register. Reads of the PMCIDSR
return a copy of the EDCIDSR debug register.
Usage constraints
The external accessibility to the PMCIDSR by condition code is:
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
There is no configuration information for PMCIDSR.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
See the ARM® Architecture Reference Manual ARMv8 for more information about the EDCIDSR debug
register.
PMCIDSR can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x608.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
There is no configuration information for PMVIDSR.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
See the ARM® Architecture Reference Manual ARMv8 for more information about the EDVIDSR debug
register.
PMVIDSR can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x60C.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-434
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
Usage constraints
The external accessibility to the PMSSR by condition code is:
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
A security violation prevents the capture of the event counters.
The external monitor must keep track of whether the snapshot registers were captured by the
processor.
To prevent loss of data, software must save and restore the PMU state, including the PMSCR
and PMSRR registers, when capturing over a reset or power down.
Configurations
There is no configuration information for PMSSR.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMSSR bit assignments.
31 1 0
Reserved
NC
PMSSR can be accessed through the internal memory-mapped interface and the external debug interface,
offset 0x610.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-435
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
Purpose
Captures a copy of the PMOVSR register. After capture, writes to PMOVSSET_EL0 and
PMOVSCLR_EL0 do not affect the PMOVSSR value.
Usage constraints
The external accessibility to the PMOVSSR by condition code is:
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
There is no configuration information for PMOVSSR.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
See the ARM® Architecture Reference Manual ARMv8 for more information about the PMOVSR register.
PMOVSSR can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x614.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
There is no configuration information for PMCCNTSR.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
See the ARM® Architecture Reference Manual ARMv8 for more information about the PMCCNTR_EL0
register.
PMCCNTSR[31:0] can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x618.
PMCCNTSR[63:32] can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x61C.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-436
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
Purpose
Captures a copies of the PMEVCNTRn_EL0 registers. After capture, writes to
PMEVCNTRn_EL0 and PMCR_EL0.P do not affect the PMEVCNTSRn value.
Note
The range of n for PMEVCNTSRn is 0 to 5.
Usage constraints
The external accessibility to the PMEVCNTSRn by condition code is:
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
There is no configuration information for PMEVCNTSRn.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
See the ARM® Architecture Reference Manual ARMv8 for more information about the
PMEVCNTRn_EL0 registers.
The PMEVCNTRn_EL0 registers can be accessed through the internal memory-mapped interface and
the external debug interface, offsets 0x620-0x634.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
There is no configuration information for PMSCR.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMSCR bit assignments.
31 1 0
Reserved
SS
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-437
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
The PMSCR can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x6F0.
Table 11-1 External register access conditions on page 11-419 describes the
condition codes.
Configurations There is no configuration information for PMSRR.
Attributes See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
31 30 6 5 4 3 2 1 0
Reserved
RC RP5
RP4
RP3
RP2
RP1
RP0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-438
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
[4] RP4 Reset performance counter 4. Indicates whether PMEVCNTR4_EL0 and PMOVSR[4] are reset after a
capture:
0 PMEVCNTR4_EL0 and PMOVSR[4] are not reset on capture.
1 PMEVCNTR4_EL0 and PMOVSR[4] are reset on capture.
[3] RP3 Reset performance counter 3. Indicates whether PMEVCNTR3_EL0 and PMOVSR[3] are reset after a
capture:
0 PMEVCNTR3_EL0 and PMOVSR[3] are not reset on capture.
1 PMEVCNTR3_EL0 and PMOVSR[3] are reset on capture.
[2] RP2 Reset performance counter 2. Indicates whether PMEVCNTR2_EL0 and PMOVSR[2] are reset after a
capture:
0 PMEVCNTR2_EL0 and PMOVSR[2] are not reset on capture.
1 PMEVCNTR2_EL0 and PMOVSR[2] are reset on capture.
[1] RP1 Reset performance counter 1. Indicates whether PMEVCNTR1_EL0 and PMOVSR[1] are reset after a
capture:
0 PMEVCNTR1_EL0 and PMOVSR[1] are not reset on capture.
1 PMEVCNTR1_EL0 and PMOVSR[1] are reset on capture.
[0] RP0 Reset performance counter 0. Indicates whether PMEVCNTR0_EL0 and PMOVSR[0] are reset after a
capture:
0 PMEVCNTR0_EL0 and PMOVSR[0] are not reset on capture.
1 PMEVCNTR0_EL0 and PMOVSR[0] are reset on capture.
The PMSRR can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x6F4.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-439
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
Usage constraints
The accessibility to the PMCFGR by condition code is:
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
The PMCFGR is in the Core power domain.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMCFGR bit assignments.
31 17 16 15 14 13 8 7 0
RES0 Size N
EX CC
CCD
The PMCFGR can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xE00.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-440
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
PMPIDR2 3B 0xFE8
Only bits[7:0] of each PMU Peripheral ID Register are used, with bits[31:8] reserved. Together, the eight
PMU Peripheral ID Registers define a single 64-bit Peripheral ID.
The PMU Peripheral ID registers are:
• PMU Peripheral Identification Register 0 on page 11-441.
• PMU Peripheral Identification Register 1 on page 11-442.
• PMU Peripheral Identification Register 2 on page 11-443.
• PMU Peripheral Identification Register 3 on page 11-444.
• PMU Peripheral Identification Register 4 on page 11-445.
• PMU Peripheral Identification Register 5-7 on page 11-445.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
The PMPIDR0 is in the Debug power domain.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMPIDR0 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-441
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
31 8 7 0
Reserved Part_0
The PMPIDR0 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFE0.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
The PMPIDR1 is in the Debug power domain.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMPIDR1 bit assignments.
31 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-442
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
The PMPIDR1 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFE4.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
The PMPIDR2 can be accessed through the internal memory-mapped interface and the external
debug interface.
Configurations
The PMPIDR2 is in the Debug power domain.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMPIDR2 bit assignments.
31 8 7 4 3 2 0
JEDEC
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-443
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
The PMPIDR2 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFE8.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
The PMPIDR3 is in the Debug power domain.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMPIDR3 bit assignments.
31 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-444
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
The PMPIDR3 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFEC.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
The PMPIDR4 is in the Debug power domain.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMPIDR4 bit assignments.
31 8 7 4 3 0
The PMPIDR4 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFD0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-445
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
The PMU Component Identification Registers identify Performance Monitors as ARM PMUv3
architecture. The Component ID registers are:
• PMU Component Identification Register 0 on page 11-446.
• PMU Component Identification Register 1 on page 11-447.
• PMU Component Identification Register 2 on page 11-448.
• PMU Component Identification Register 3 on page 11-448.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
The PMCIDR0 is in the Debug power domain.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMCIDR0 bit assignments.
31 8 7 0
Reserved PRMBL_0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-446
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
The PMCIDR0 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFF0.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
The PMCIDR1 is in the Debug power domain.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMCIDR1 bit assignments.
31 8 7 4 3 0
The PMCIDR1 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFF4.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-447
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
Configurations
The PMCIDR2 is in the Debug power domain.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMCIDR2 bit assignments.
31 8 7 0
Reserved PRMBL_2
The PMCIDR2 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFF8.
Table 11-1 External register access conditions on page 11-419 describes the condition codes.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-448
Non-Confidential
11 Performance Monitor Unit
11.7 Memory-mapped register descriptions
Configurations
The PMCIDR3 is in the Debug power domain.
Attributes
See the register summary in Table 11-7 Memory-mapped PMU register summary
on page 11-429.
The following figure shows the PMCIDR3 bit assignments.
31 8 7 0
Reserved PRMBL_3
The PMCIDR3 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFFC.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-449
Non-Confidential
11 Performance Monitor Unit
11.8 Events
11.8 Events
The following table shows the events that are generated and the numbers that the PMU uses to reference
the events.
The table also shows the bit position of each event on the event bus. Event reference numbers that are not
listed are reserved.
ez Event count is encoded as a plain binary number to accommodate count values of more than one in the
same cycle.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-450
Non-Confidential
11 Performance Monitor Unit
11.8 Events
ez Event count is encoded as a plain binary number to accommodate count values of more than one in the
same cycle.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-451
Non-Confidential
11 Performance Monitor Unit
11.8 Events
ez Event count is encoded as a plain binary number to accommodate count values of more than one in the
same cycle.
fa For this event, unaligned access means data access related memory operation that crosses line boundary.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-452
Non-Confidential
11 Performance Monitor Unit
11.8 Events
ez Event count is encoded as a plain binary number to accommodate count values of more than one in the
same cycle.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-453
Non-Confidential
11 Performance Monitor Unit
11.8 Events
ez Event count is encoded as a plain binary number to accommodate count values of more than one in the
same cycle.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-454
Non-Confidential
11 Performance Monitor Unit
11.9 Interrupts
11.9 Interrupts
The Cortex-A57 processor asserts the nPMUIRQ signal when an interrupt is generated by the PMU.
You can route this signal to an external interrupt controller for prioritization and masking. This is the
only mechanism that signals this interrupt to the processor.
Interrupt is also driven as a trigger input to the CTI.
Related information
12 Cross Trigger on page 12-457.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-455
Non-Confidential
11 Performance Monitor Unit
11.10 Exporting PMU events
In addition to the counters in the processor, some of the events that 11.8 Events on page 11-450 describes
are exported on the PMUEVENT bus and can be connected to external hardware.
Some of the events that 11.8 Events on page 11-450 describes are exported to the ETM unit, other
external debug, or trace hardware, to enable the events to be monitored.
Related information
12 Cross Trigger on page 12-457.
13 Embedded Trace Macrocell on page 13-481.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 11-456
Non-Confidential
Chapter 12
Cross Trigger
This chapter describes the cross trigger interfaces for the Cortex-A57 processor.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-457
Non-Confidential
12 Cross Trigger
12.1 About the cross trigger
Cortex-A57 processor
Optional core 4
Optional core 3
Optional core 2
core 1
PMUEVENT
PMU nPMUIRQ
Non-processor
Optional CSCTI 4
PMUEVENT[24:0] Optional CSCTI 3
Optional CSCTI 2
CSCTI 1
EXTOUT[3:0]
ETM
EXTIN[3:0]
CTIIRQ
CTIIRQACK
DBGRQ
DBGTRIGGER
DBGRESTART
CTICHOUT
CTICHIN
CTICHOUT[3:0]
Debug
CTICHOUTACK[3:0]
CTM
CTICHIN[3:0]
CTICHINACK[3:0]
nCOMMIRQ
COMMRX
COMMTX
EDBGRQ
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-458
Non-Confidential
12 Cross Trigger
12.2 Trigger inputs and outputs
This section describes the trigger inputs and outputs that are available to the CTI.
The following table shows the CTI inputs.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-459
Non-Confidential
12 Cross Trigger
12.3 CTI
12.3 CTI
In the Cortex-A57 processor, the CTI operates in the PCLKDBG domain and it synchronizes the trigger
inputs and outputs to PCLKDBG.
Handshaking is required for all trigger outputs. Because the simplified CTM is implemented in the same
clock domain, synchronization and handshaking is not required for channel interface. In addition, APB
synchronization is not required. Trigger inputs are not masked by internal NIDEN. Trigger outputs are
not masked by internal DBGEN.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-460
Non-Confidential
12 Cross Trigger
12.4 CTM
12.4 CTM
The CoreSight CTI channel signals from all the cores are combined using a simplified Cross Trigger
Matrix (CTM) so that a single cross trigger channel interface is presented in the Cortex-A57 processor.
The CTM can combine up to four internal channel interfaces, corresponding to each core, and one
external channel interface.
In the simplified CTM:
• The external channel output is driven by the OR output of all internal channel outputs.
• Each internal channel input is driven by the OR output of the internal channel outputs of all other
CTIs, in addition to the external channel input.
The internal channel acknowledgment signals from the CTIs are not used because the CTIs and the CTM
are in the same PCLKDBG domain.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-461
Non-Confidential
12 Cross Trigger
12.5 Cross trigger register summary
fc See the ARM® Architecture Reference Manual ARMv8 for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-462
Non-Confidential
12 Cross Trigger
12.5 Cross trigger register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-463
Non-Confidential
12 Cross Trigger
12.5 Cross trigger register summary
External access permission to the cross trigger registers is subject to the conditions at the time of the
access. The following table describe the processor response to accesses through the external debug and
memory-mapped interfaces.
Note
If debug is powered down, all external debug and memory-
mapped register accesses return an error.
The following table shows an example of external register access conditions for access to a cross trigger
register. To determine the access permission for the register, scan the columns from left to right. Stop at
the first column whose condition is true, the entry gives the access permission of the register and
scanning stops.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-464
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIDEVID is in the Debug power domain.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIDEVID bit assignments.
31 26 25 24 23 22 21 16 15 14 13 8 7 5 4 0
INOUT
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-465
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIITCTRL is in the Debug power domain.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
shows the CTIITCTRL bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-466
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
31 1 0
RES0
IME
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIITCHINACK is in the Debug power domain.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIITCHINACK bit assignments.
31 4 3 0
RES0
CTCHINACK
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-467
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIITTRIGINACK is in the Debug power domain.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIITTRIGINACK bit assignments.
31 8 7 0
Reserved CTTRIGINACK
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-468
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Usage constraints
Accessible through the internal memory-mapped interface and the external debug interface. The
access conditions are:
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIITCHOUT is in the Debug power domain.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIITCHOUT bit assignments.
31 4 3 0
Reserved CTCHOUT
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIITTRIGOUT is in the Debug power domain.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIITTRIGOUT bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-469
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
31 8 7 0
Reserved CTTRIGOUT
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIITCHOUTACK is in the Debug power domain.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIITCHOUTACK bit assignments.
31 4 3 0
RES0
CTCHOUTACK
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-470
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Purpose
Provides direct observation of the trigger out acknowledge signals.
Usage constraints
Accessible through the internal memory-mapped interface and the external debug interface. The
access conditions are:
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIITTRIGOUTACK is in the Debug power domain.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIITTRIGOUTACK bit assignments.
31 8 7 0
Reserved CTTRIGOUTACK
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIITCHIN is in the Debug power domain.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIITCHIN bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-471
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIITTRIGIN is in the Debug power domain.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIITTRIGIN bit assignments.
31 8 7 0
Reserved CTTRIGIN
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-472
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Only bits[7:0] of each CTI Peripheral ID Register are used, with bits[31:8] reserved. Together, the eight
CTI Peripheral ID Registers define a single 64-bit Peripheral ID.
The CTI Peripheral ID registers are:
• CTI Peripheral Identification Register 0 on page 12-473.
• CTI Peripheral Identification Register 1 on page 12-474.
• CTI Peripheral Identification Register 2 on page 12-475.
• CTI Peripheral Identification Register 3 on page 12-475.
• CTI Peripheral Identification Register 4 on page 12-476.
• CTI Peripheral Identification Register 5-7 on page 12-477.
Table 12-3 Cross trigger register summary on page 12-462 describes the access
conditions.
Configurations CTIPIDR0 is in the Debug power domain.
CTIPIDR0 is optional to implement in the external register interface.
Attributes See 12.5 Cross trigger register summary on page 12-462.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-473
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
31 8 7 0
RES0 Part_0
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIPIDR1 is in the Debug power domain.
CTIPIDR1 is optional to implement in the external register interface.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIPIDR1 bit assignments.
31 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-474
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Table 12-3 Cross trigger register summary on page 12-462 describes the access
conditions.
Configurations CTIPIDR2 is in the Debug power domain.
CTIPIDR2 is optional to implement in the external register interface.
Attributes See 12.5 Cross trigger register summary on page 12-462.
31 8 7 4 3 2 0
JEDEC
[2:0] DES_1 0b011 ARM Limited. This is the most significant nibble of JEP106 ID code.
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-475
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Configurations
CTIPIDR3 is in the Debug power domain.
CTIPIDR3 is optional to implement in the external register interface.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIPIDR3 bit assignments.
31 8 7 4 3 0
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTIPIDR4 is in the Debug power domain.
CTIPIDR4 is optional to implement in the external register interface.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTIPIDR4 bit assignments.
31 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-476
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTICIDR0 is in the Debug power domain.
CTICIDR0 is optional to implement in the external register interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-477
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTICIDR0 bit assignments.
31 8 7 0
Reserved PRMBL_0
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTICIDR1 is in the Debug power domain.
CTICIDR1 is optional to implement in the external register interface.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTICIDR1 bit assignments.
31 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-478
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTICIDR2 is in the Debug power domain.
CTICIDR2 is optional to implement in the external register interface.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTICIDR2 bit assignments.
31 8 7 0
Reserved PRMBL_2
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-479
Non-Confidential
12 Cross Trigger
12.6 Cross trigger register descriptions
Usage constraints
Accessible through the internal memory-mapped interface and the external debug interface. The
access conditions are:
Table 12-3 Cross trigger register summary on page 12-462 describes the access conditions.
Configurations
CTICIDR3 is in the Debug power domain.
CTICIDR3 is optional to implement in the external register interface.
Attributes
See 12.5 Cross trigger register summary on page 12-462.
The following figure shows the CTICIDR3 bit assignments.
31 8 7 0
Reserved PRMBL_3
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 12-480
Non-Confidential
Chapter 13
Embedded Trace Macrocell
This section describes the Embedded Trace Macrocell (ETM) for the Cortex-A57 processor.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-481
Non-Confidential
13 Embedded Trace Macrocell
13.1 About ETM
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-482
Non-Confidential
13 Embedded Trace Macrocell
13.2 ETM trace generation options and resources
Description Configuration
Instruction address size in bytes 8
Data address size in bytes 0
Data value size in bytes 0
Virtual Machine ID size in bytes 1
Context ID size in bytes 4
Support for conditional instruction tracing Not implemented
Support for tracing of data Not implemented
Support for tracing of load and store instructions as P0 elements Not implemented
Support for cycle counting in the instruction trace Implemented
Support for branch broadcast tracing Implemented
Exception Levels implemented in Non-secure state 0b0111
The following table shows the ETM resources that the Cortex-A57 processor implements.
Description Configuration
Number of resource selection pairs implemented 8
Number of external input selectors implemented 4
Number of external inputs implemented 110, 4 external + 106 PMU
Number of counters implemented 2
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-483
Non-Confidential
13 Embedded Trace Macrocell
13.2 ETM trace generation options and resources
Description Configuration
Reduced function counter implemented Not implemented
Number of sequencer states implemented 4
Number of Virtual Machine ID comparators implemented 1
Number of Context ID comparators implemented 1
Number of address comparator pairs implemented 4
Number of single-shot comparator controls 1
Number of processor comparator inputs implemented 0
Data address comparisons implemented Not implemented
Number of data value comparators implemented 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-484
Non-Confidential
13 Embedded Trace Macrocell
13.3 ETM functional description
ETM
CLK
Trace interface
SyncBridge
(ATB)
Debug interface Filtering and triggering
FIFO
(APB) resources
Processor Processor
Trace generation
interface interface block
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-485
Non-Confidential
13 Embedded Trace Macrocell
13.4 Reset
13.4 Reset
The reset for ETM is the same as Cold reset for processor.
The ETM is not reset when a Warm reset is applied to processor, so that tracing through the reset is
possible.
If the ETM is reset, tracing stops until the ETM is reprogrammed and re-enabled. However, if the
processor is reset using a Warm reset, the last few instructions provided by the processor before the reset
might not be traced.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-486
Non-Confidential
13 Embedded Trace Macrocell
13.5 ETM register interfaces
See the ARM® Embedded Trace Macrocell Architecture Specification, ETMv4 for information on the
behaviors on register accesses for different trace unit states and the different access mechanisms.
Related information
10.10 External debug interface on page 10-402.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-487
Non-Confidential
13 Embedded Trace Macrocell
13.6 Register summary
Note
• In the following table, access type is described as follows:
RW
Read and write.
RO
Read only.
WO
Write only.
All ETM registers are 32 bits wide. The following table lists all of the registers and their offsets from a
base address. The base address is defined by the system integrator when placing the ETM in the Debug-
APB memory map.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-488
Non-Confidential
13 Embedded Trace Macrocell
13.6 Register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-489
Non-Confidential
13 Embedded Trace Macrocell
13.6 Register summary
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-490
Non-Confidential
13 Embedded Trace Macrocell
13.6 Register summary
Related information
10.11 ROM table on page 10-405.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-491
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-492
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
31 13 12 11 10 8 7 6 5 4 3 2 1 0
RS VMID RES1
TS CID
RES0
CCI
BB
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-493
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
The TRCCONFIGR can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x010.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-494
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
31 9 8 7 6 5 4 7 2 1 0
Reserved
DBGFLUSHOVERRIDE AFREADYOVERRIDE
CIFOVERRIDE IDLEACKOVERRIDE
CLKENOVERRIDE FRCSYNCOVERFLOW
FLUSHOVERRIDE SYNCIOVERRIDE
TSIOVERRIDE
[7] CIFOVERRIDE Override core interface register repeater clock enable. The possible values are:
0
Core interface is clock gated when DBGEN or NIDEN is LOW.
1
Core interface is not clock gated when DBGEN or NIDEN is LOW.
[6] CLKENOVERRIDE Override ETM clock enable. The possible values are:
0
ETM clock gating is enabled.
1
ETM clock gating is disabled.
[5] FLUSHOVERRIDE Override ETM flush behavior. The possible values are:
0
ETM FIFO is flushed and ETM enters idle state when DBGEN or NIDEN is
LOW.
1
ETM FIFO is not flushed and ETM 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.
[4] TSIOVERRIDE Override TS packet insertion behavior. The possible values are:
0
Timestamp packets are inserted into FIFO when trace activity is LOW.
1
Timestamp packets are inserted into FIFO irrespective of trace activity.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-495
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
[2] FRCSYNCOVERFLOW 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.
[1] IDLEACKOVERRIDE Force ETM idle acknowledge. The possible values are:
0
ETM idle acknowledge is asserted only when ETM is in idle state.
1
ETM idle acknowledge is asserted irrespective of ETM idle state
When this bit is set to 1, trace unit behavior deviates from architecturally-specified
behavior.
[0] AFREADYOVERRIDE Force assertion of AFREADYM output. The possible values are:
0
ETM AFREADYM output is asserted only when ETM is in idle state or
when all the trace bytes in FIFO before a flush request are output.
1
ETM 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.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-496
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Attributes
A 32-bit RW trace register.
See 13.6 Register summary on page 13-488.
The following figure shows the TRCEVENTCTL0R bit assignments.
31 24 23 16 15 8 7 0
The TRCEVENTCTL0R can be accessed through the internal memory-mapped interface and the
external debug interface, offset 0x020.
31 12 11 10 8 7 5 4 3 0
ATB
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-497
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
The TRCEVENTCTL1R can be accessed through the internal memory-mapped interface and the
external debug interface, offset 0x024.
31 5 4 0
Reserved Period
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-498
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
The TRCSYNCPR can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x034.
31 12 11 0
Reserved Threshold
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-499
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
The TRCCCCTLR can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x038.
Related information
13.7.1 Trace Configuration Register on page 13-493.
31 7 6 0
Reserved TRACEID
The TRCTRACEIDR can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x040.
Related information
13.7.22 Trace ID Register 5 on page 13-515.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-500
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Purpose
Controls instruction trace filtering.
Usage constraints
• Only accepts writes when the trace unit is disabled.
• Only returns stable data when TRCSTATR.PMSTABLE is set to 1.
• Must be programmed to set the value of the SSSTATUS bit, that sets the state of the start
and stop logic.
Configurations
Available in all configurations.
Attributes
A 32-bit RW trace register.
See 13.6 Register summary on page 13-488.
The following figure shows the TRCVICTLR bit assignments.
31 24 23 20 19 16 15 12 11 10 9 8 7 0
EXLEVEL_S Reserved
EXLEVEL_NS SSSTATUS
TRCRESET
TRCERR
For example, the value 0b0111 enables instruction tracing in Non-secure state for EL0, EL1,
and EL2.
[19:16] EXLEVEL_S Each bit controls whether instruction tracing in Secure state is enabled for the corresponding
Exception level. The bit to Exception level mapping is:
Bit[16] Exception level 0.
Bit[17] Exception level 1.
Bit[18] RES0.
For example, the value 0b1011 enables instruction tracing in Secure state for EL0, EL1, and
EL3.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-501
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
[10] TRCRESET Controls whether a trace unit must trace a reset exception:
0 The trace unit does not trace a reset exception unless it traces the exception or instruction
immediately prior to the reset exception.
1 The trace unit always traces a reset exception.
[9] SSSTATUS Returns the status of the start and stop logic. The possible values are:
0 The start and stop logic is in the stopped state.
1 The start and stop logic is in the started state.
The TRCVICTLR can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x080.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-502
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
31 24 23 16 15 8 7 0
The TRCEXTINSELR can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x120.
13.7.10 ID Register 8
31 0
MAXSPEC
The TRCIDR8 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x180.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-503
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
13.7.11 ID Register 9
31 0
NUMP0KEY
The TRCIDR9 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x184.
13.7.12 ID Register 10
31 0
NUMP1KEY
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-504
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
The TRCIDR10 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x188.
13.7.13 ID Register 11
31 0
NUMP1SPC
The TRCIDR11 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x18C.
13.7.14 ID Register 12
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-505
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Attributes
See 13.6 Register summary on page 13-488.
The following figure shows the TRCIDR12 bit assignments.
31 0
NUMCONDKEY
The TRCIDR12 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x190.
13.7.15 ID Register 13
31 0
NUMCONDSPC
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-506
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
The TRCIDR13 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x194.
31 8 7 4 3 0
Reserved EN SUPPORT
The TRCIMSPEC0 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x1C0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-507
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
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 Reserved
[9] RETSTACK Return stack bit. Indicates whether the implementation supports a return stack. This value is:
1
Return stack is implemented. TRCCONFIGR.RS is supported.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-508
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
[5] TRCBB Branch broadcast tracing support bit. Indicates whether the trace unit supports branch broadcast
tracing. This value is:
1
Branch broadcast tracing is supported, therefore:
• TRCCONFIGR.CCI is supported.
• TRCBBCTLR is supported.
The TRCIDR0 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x1E0.
31 24 23 16 15 12 11 8 7 4 3 0
TRCARCHMAJ
TRCARCHMIN
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-509
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
[7:4] TRCARCHMIN Identifies the minor version number of the trace unit architecture. The value is:
0x0
Identifies the minor version number of the trace unit architecture.
The TRCIDR1 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x1E4.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-510
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
31 29 28 25 24 20 19 15 14 10 9 5 4 0
[24:20] DVSIZE Indicates the data value size in bytes. This value is:
0x0
Data value tracing is not supported. TRCIDR0.TRCDATA must be 0b00.
[19:15] DASIZE Indicates the data address size in bytes. This value is:
0x0
Data address tracing is not supported. TRCIDR0.TRCDATA must be 0b00.
[4:0] IASIZE Indicates the instruction address size in bytes. This value is:
0x8
Maximum of 64-bit address size.
The TRCIDR2 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x1E8.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-511
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Configurations
Available in all configurations.
Attributes
See 13.6 Register summary on page 13-488.
The following figure shows the TRCIDR3 bit assignments.
31 30 28 27 26 25 24 23 20 19 16 15 12 11 5 4 0
Reserved CCITMIN
EXLEVEL_S
EXLEVEL_NS
TRCERR
SYNCPR
STALLCTL
SYSTALL
NUMPROC
NOOVERFLOW
[30:28] NUMPROC Indicates the number of cores available for tracing. This value is:
0b000 The trace unit can trace one core.
[27] SYSTALL Indicates whether stall control is supported. This value is:
0 The system does not support stall control of the core.
[25] SYNCPR Indicates whether there is a fixed synchronization period. This value is:
0 TRCSYNCPR is read-write so software can change the synchronization period.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-512
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Note
The bit to Exception level mapping is:
Bit[20] Exception level 0.
Bit[21] Exception level 1.
Bit[22] Exception level 2.
Bit[23] Always RES0.
[19:16] EXLEVEL_S Each bit controls whether instruction tracing in Secure state is supported for the
corresponding Exception level. The value is:
0b1011
Instruction tracing in Secure state is supported for EL0, EL1, and EL3.
Note
The bit to Exception level mapping is:
Bit[16]
Exception level 0.
Bit[15]
Exception level 1.
Bit[14]
Always RES0.
Bit[13]
Exception level 3.
The TRCIDR3 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x1EC.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-513
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
31 28 27 24 23 20 19 16 15 12 11 9 8 7 4 3 0
[27:24] NUMCIDC Indicates the number of CID comparators available for tracing. This value is:
0x1
One Context ID comparator is available.
[23:20] NUMSSCC Indicates the number of single-shot comparator controls available for tracing. This value is:
0x1
One single-shot comparator control is available.
[19:16] NUMRSPAIR Indicates the number of resource selection pairs available for tracing. This value is:
0x7
Eight resource selection pairs are available.
[15:12] NUMPC Indicates the number of processor comparator inputs available for tracing. This value is:
0x0
No processor comparator inputs are available.
[7:4] NUMDVC Indicates the number of data value comparators available for tracing. This value is:
0x0
No data value comparators are available.
[3:0] NUMRSPAIRS Indicates the number of address comparator pairs available for tracing. This value is:
0x4
Four address comparator pairs are available.
The TRCIDR4 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x1F0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-514
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
31 30 28 27 25 24 23 22 21 16 15 12 11 9 8 0
ATBTRIG NUMEXTINSEL
LPOVERRIDE
Reserved
NUMSEQSTATE
NUMCNTR
REDFUNCNTR
[30:28] NUMCNTR Indicates the number of counters available for tracing. This value is:
0b010 Two counters are available.
[27:25] NUMSEQSTATE Indicates the number of sequencer states implemented. This value is:
0b100 Four sequencer states are implemented.
[22] ATBTRIG Indicates whether ATB triggers are supported. This value is:
1 ATB triggers are supported and the TRCEVENTCTL1R.ATBTRIG field is
implemented.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-515
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Note
The CoreSight ATB requires a 7-bit trace ID width.
[8:0] NUMEXTIN Indicates the number of external inputs are implemented. This value is:
0b001101110 110 external inputs are implemented.
The TRCIDR5 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0x1F4.
Note
The range of n for TRCRSCTLRn is 2 to 15.
Usage constraints
• Only accepts writes when the trace unit is disabled.
• If software selects an non-implemented resource then constrained UNPREDICTABLE behavior of
the resource selector occurs. The resource selector might activate unexpectedly or might not
activate. Reads of the TRCRSCTLRn might return UNKNOWN.
Configurations
Resource selectors are implemented in pairs and there are eight pairs of TRCRSCTLR registers
implemented, set by TRCIDR4.NUMRSPAIR. Each odd numbered resource selector is part of a
pair with the even numbered resource selector that is numbered as one less than it. For example,
resource selectors 2 and 3 form a pair.
Resource selector pair 0 is always implemented and is reserved. Resource selector zero always
returns FALSE, and resource selector one always returns TRUE.
Attributes
A 32-bit RW trace register.
See 13.6 Register summary on page 13-488.
The following figure shows the TRCRSCTLRn bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-516
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
31 22 21 20 19 18 16 15 8 7 0
Reserved
INV
PAIRINV
[20] INV Controls whether the resource, that GROUP and SELECT selects, is inverted. The possible values
are:
0
The selected resource is not inverted.
1
The selected resource is inverted.
The TRCRSCTLRn can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x208-023C.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-517
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Purpose
Defines the type of access for the corresponding TRCACVRn Register. This register configures
the parameters of the address comparator for:
• Context type.
• Exception levels.
• Alignment.
• Masking.
• Behavior when it is one half of an address range comparator.
Note
The range of n for TRCACATRn is 0 to 7.
Usage constraints
• Only accepts writes when the trace unit is disabled.
• Constrained UNPREDICTABLE behavior of a comparator resource occurs if:
— TYPE is 0 and DATAMATCH is 0b01, 0b10, or 0b11.
— DATAMATCH is 0b01, 0b10, or 0b11 and software programs an address comparator to
control ViewData.
In these scenarios, the comparator might match unexpectedly or might not match.
• If software uses two single address comparators as an address range comparator then it must
program the corresponding TRCACATRs with identical values in the following fields:
— TYPE.
— CONTEXTTYPE.
— CONTEXT.
— EXLEVEL_S.
— EXLEVEL_NS.
Configurations
The number TRCACATRs is eight and is set by twice the size of TRCIDR4.NUMACPAIRS.
Attributes
A 64-bit RW trace register.
See 13.6 Register summary on page 13-488.
The following figure shows the TRCACATRn bit assignments.
63 16 15 12 11 8 7 4 3 2 1 0
Reserved Type
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-518
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Note
The bit to Exception level mapping is:
Bit[12]
Exception level 0.
Bit[13]
Exception level 1.
Bit[14]
Exception level 2.
Bit[15]
Always RES0.
[11:8] EXLEVEL_S 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.
Note
The bit to Exception level mapping is:
Bit[8]
Exception level 0.
Bit[9]
Exception level 1.
Bit[10]
Always RES0.
Bit[11]
Exception level 3.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-519
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
The TRCACATRn can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x480-0x4B8.
63 32 31 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-520
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
The TRCCIDCVR0 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x600.
63 8 7 0
The TRCVMIDCVR0 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x640.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-521
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Configurations
There is one Context ID comparator, set by TRCIDR4.NUMCIDC.
Attributes
A 32-bit RW trace register.
See 13.6 Register summary on page 13-488.
The following figure shows the TRCCIDCCTLR0 bit assignments.
31 4 3 0
Reserved COMP0
The TRCCIDCCTLR0 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0x680.
31 12 11 8 7 0
Reserved Reserved
ETMEXTOUT[3:0]
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-522
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
The TRCITMISCOUT can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0xEDC.
Related information
13.7.34 Trace Integration Mode Control register on page 13-527.
31 4 3 0
Reserved
ETMEXTIN[3:0]
The TRCITMISCIN can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0xEE0.
Related information
13.7.34 Trace Integration Mode Control register on page 13-527.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-523
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Purpose
Controls signal outputs when TRCITCTRL.IME is set.
Usage constraints
There are no usage constraints.
Configurations
Available in all configurations.
Attributes
See 13.6 Register summary on page 13-488.
The following figure shows the TRCITATBDATA0 bit assignments.
31 5 4 3 2 1 0
RES0
ATDATAM[31]
ATDATAM[23]
ATDATAM[15]
ATDATAM[7]
ATDATAM[0]
The TRCITATBDATA0 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0xEEC.
Related information
13.7.34 Trace Integration Mode Control register on page 13-527.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-524
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
31 2 1 0
Reserved
AFVALIDM
ATREADYM
The TRCITATBCTR2 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0xEF0.
Related information
13.7.34 Trace Integration Mode Control register on page 13-527.
31 7 6 0
Reserved ATIDM[6:0]
fd To sample ATREADYM correctly from the processor signals, ATVALIDM must be asserted.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-525
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
The TRCITATBCTR2 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0xEF4.
Related information
13.7.34 Trace Integration Mode Control register on page 13-527.
31 10 9 8 7 2 1 0
RES0 RES0
ATBYTESM[1:0] AFREADYM
ATVALIDM
The TRCITATBCTR0 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0xEF8.
Related information
13.7.34 Trace Integration Mode Control register on page 13-527.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-526
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
31 1 0
Reserved
IME
The TRCITCTRL can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xF00.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-527
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Usage constraints
Accessible only from the memory-mapped interface or from an external agent such as a
debugger.
Configurations
Available in all configurations.
Attributes
A 32-bit RO management register.
For the Cortex-A57 processor, MPIDR_EL1[31:0] is architecturally mapped to the AArch32
register MPIDR.
See 13.6 Register summary on page 13-488.
The TRCDEVAFF0 can be accessed through the internal memory-mapped interface and the external
debug interface, offset 0xFA8.
Related information
4.5.3 Multiprocessor Affinity Register on page 4-254.
The ETM Peripheral Identification Registers provide standard information required for all CoreSight
components. There is a set of eight registers, listed in register number order in the following table.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-528
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Only bits[7:0] of each Trace Peripheral ID Register are used, with bits[31:8] reserved. Together, the
eight Trace Peripheral ID Registers define a single 64-bit Peripheral ID.
The Peripheral ID registers are:
• ETM Peripheral Identification Register 0 on page 13-529.
• ETM Peripheral Identification Register 1 on page 13-530.
• ETM Peripheral Identification Register 2 on page 13-530.
• ETM Peripheral Identification Register 3 on page 13-531.
• ETM Peripheral Identification Register 4 on page 13-532.
• ETM Peripheral Identification Register 5-7 on page 13-533.
31 8 7 0
Reserved Part_0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-529
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
TRCPIDR0 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFE0.
31 8 7 4 3 0
TRCPIDR1 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFE4.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-530
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Attributes
A 32-bit RO management register.
See 13.6 Register summary on page 13-488.
The following figure shows the TRCPIDR2 bit assignments.
31 8 7 4 3 2 0
JEDEC
TRCPIDR2 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFE8.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-531
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
31 8 7 4 3 0
TRCPIDR3 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFEC.
31 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-532
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
TRCPIDR4 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFD0.
No information is held in the Peripheral ID5, Peripheral ID6 and Peripheral ID7 Registers. They are
reserved for future use and are RES0.
There are four read-only ETM Component Identification Registers, Component ID0 to Component ID3.
The following table shows these registers.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-533
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Configurations
Available in all implementations.
Attributes
See 13.6 Register summary on page 13-488.
The following figure shows the TRCCIDR0 bit assignments.
31 8 7 0
Reserved PRMBL_0
TRCCIDR0 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFF0.
31 8 7 4 3 0
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-534
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
TRCCIDR1 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFF4.
31 8 7 0
Reserved PRMBL_2
TRCCIDR2 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFF8.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-535
Non-Confidential
13 Embedded Trace Macrocell
13.7 Register descriptions
Usage constraints
• Only bits[7:0] are valid.
• Accessible only from the memory-mapped interface or the external debugger interface.
Configurations
Available in all implementations.
Attributes
See 13.6 Register summary on page 13-488.
The following figure shows the TRCCIDR3 bit assignments.
31 8 7 0
Reserved PRMBL_3
TRCCIDR3 can be accessed through the internal memory-mapped interface and the external debug
interface, offset 0xFFC.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-536
Non-Confidential
13 Embedded Trace Macrocell
13.8 Interaction with debug and the Performance Monitor Unit
The Cortex-A57 processor includes a Performance Monitor Unit (PMU) that enables events, such as
cache misses and instructions executed, to be counted over a period of time. This section describes how
the PMU and ETM function together.
All PMU architectural events are available to the ETM through the extended input facility. See the ARM®
Architectural Reference Manual ARMv8 for more information about PMU events.
The ETM uses four extended external input selectors to access the PMU events. Each selector can
independently select one of the PMU events, that are then active for the cycles where the relevant events
occur. These selected events can then be accessed by any of the event registers within the ETM.
Related information
11 Performance Monitor Unit on page 11-416.
All trace register accesses through the memory-mapped and external debug interfaces behave as if the
processor power domain is powered down when debug double lock is set. For more information on
debug double lock, see the ARM® Architecture Reference Manual ARMv8.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 13-537
Non-Confidential
Chapter 14
Advanced SIMD and Floating-point
This chapter describes the Advanced SIMD and Floating-point features and registers in the Cortex-A57
processor.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-538
Non-Confidential
14 Advanced SIMD and Floating-point
14.1 About Advanced SIMD and Floating-point
The Cortex-A57 processor supports all addressing modes, data types, and operations of the Advanced
SIMD instructions.
The Cortex-A57 processor supports all addressing modes, data types, and operations of the Floating-
point instructions. It does not support floating-point exception trapping.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-539
Non-Confidential
14 Advanced SIMD and Floating-point
14.2 Programmers model for Advanced SIMD and Floating-point
You can access the feature identification registers in AArch32 state using the VMRS instruction, for
example:
The following table lists the feature identification registers for the Advanced SIMD and Floating-point.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-540
Non-Confidential
14 Advanced SIMD and Floating-point
14.3 AArch64 register summary
MVFR0_EL1 RO 0x10110222 See 14.4.3 Media and VFP Feature Register 0, EL1 on page 14-545
MVFR1_EL1 RO 0x12111111 See 14.4.4 Media and VFP Feature Register 1, EL1 on page 14-546
MVFR2_EL1 RW 0x00000043 See 14.4.5 Media and VFP Feature Register 2, EL1 on page 14-548
FPEXC32_EL2 RW 0x00000700 See 14.4.6 Floating-point Exception Control Register 32, EL2 on page 14-549
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-541
Non-Confidential
14 Advanced SIMD and Floating-point
14.4 AArch64 register descriptions
Configurations
The FPCR is part of the Floating-point functional group.
The named fields in this register map to the equivalent fields in the AArch32 FPSCR.
Attributes
See the register summary in Table 14-2 AArch64 Advanced SIMD and Floating-point System
registers on page 14-541.
The following figure shows the FPCR bit assignments.
31 27 26 25 24 23 22 21 0
RES0 RES0
AHP RMode
DN FZ
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-542
Non-Confidential
14 Advanced SIMD and Floating-point
14.4 AArch64 register descriptions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-543
Non-Confidential
14 Advanced SIMD and Floating-point
14.4 AArch64 register descriptions
Configurations
The FPSR is part of the Floating-point functional group.
The named fields in this register map to the equivalent fields in the AArch32 FPSCR.
Attributes
See the register summary in Table 14-2 AArch64 Advanced SIMD and Floating-point System
registers on page 14-541.
The following figure shows the FPSR bit assignments.
31 30 29 28 27 26 8 7 6 5 4 3 2 1 0
N Z C V RES0 RES0
[27] QC Cumulative saturation bit, Advanced SIMD only. This bit is set to 1 to indicate that an Advanced SIMD
integer operation has saturated since 0 was last written to this bit.
[26:8] - Reserved, RES0.
[7] IDC 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.
[6:5] - Reserved, RES0.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-544
Non-Confidential
14 Advanced SIMD and Floating-point
14.4 AArch64 register descriptions
Configurations
MVFR0_EL1 is:
• Common to Secure and Non-secure states
• Architecturally mapped to AArch32 MVFR0 register.
Attributes
See the register summary in Table 14-2 AArch64 Advanced SIMD and Floating-point System
registers on page 14-541.
The following figure shows the MVFR0_EL1 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-545
Non-Confidential
14 Advanced SIMD and Floating-point
14.4 AArch64 register descriptions
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[23:20] FPSqrt Indicates the hardware support for FP square root operations:
0x1
Supported.
[15:12] FPTrap Indicates whether the FP hardware implementation supports exception trapping:
0x0
Not supported.
[3:0] SIMDReg Indicates support for the Advanced SIMD register bank:
0x2
32× 64-bit registers supported.
See the ARM® Architecture Reference Manual ARMv8 for more information.
To access the MVFR0_EL1 register, see 14.2 Programmers model for Advanced SIMD and Floating-
point on page 14-540.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-546
Non-Confidential
14 Advanced SIMD and Floating-point
14.4 AArch64 register descriptions
Purpose
The MVFR1_EL1 must be interpreted with the MVFR0_EL1 and the MVFR2_EL1 to describe
the features provided by the Advanced SIMD and FP functions.
Usage constraints
The accessibility to the MVFR1_EL1 in AArch64 state by Exception level is:
Configurations
The MVFR1_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to AArch32 MVFR1 register.
Attributes
See the register summary in Table 14-2 AArch64 Advanced SIMD and Floating-point System
registers on page 14-541.
The following figure shows the MVFR1_EL1 bit assignments.
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[27:24] FPHP Indicates whether the FP supports half-precision floating-point conversion operations:
0x2
Supported.
[23:20] SIMDHP Indicates whether the Advanced SIMD supports half-precision floating-point conversion
operations:
0x1
Supported.
[19:16] SIMDSP Indicates whether the Advanced SIMD supports single-precision floating-point operations:
0x1
Supported.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-547
Non-Confidential
14 Advanced SIMD and Floating-point
14.4 AArch64 register descriptions
[11:8] SIMDLS Indicates whether the Advanced SIMD supports load/store instructions:
0x1
Supported.
[7:4] FPDNaN Indicates whether the FP hardware implementation supports only the Default NaN mode:
0x1
Hardware supports propagation of NaN values.
[3:0] FPFtZ Indicates whether the FP hardware implementation supports only the Flush-to-zero mode of
operation:
0x1
Hardware supports full denormalized number arithmetic.
To access the MVFR1_EL1 register, see 14.2 Programmers model for Advanced SIMD and Floating-
point on page 14-540.
Configurations
The MVFR2_EL1 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to AArch32 MVFR2 register.
Attributes
See the register summary in Table 14-2 AArch64 Advanced SIMD and Floating-point System
registers on page 14-541.
The following figure shows the MVFR2_EL1 bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-548
Non-Confidential
14 Advanced SIMD and Floating-point
14.4 AArch64 register descriptions
31 8 7 4 3 0
[3:0] SIMDMisc Advanced SIMD miscellaneous features supported. This value is:
0b011
Includes support for the following features:
• Floating-point Conversion to Integer with Directed Rounding modes.
• Floating-point Round to Integral floating-point.
• Floating-point MaxNum and MinNum.
To access the MVFR2_EL1 register, see 14.2 Programmers model for Advanced SIMD and Floating-
point on page 14-540.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-549
Non-Confidential
14 Advanced SIMD and Floating-point
14.4 AArch64 register descriptions
Configurations
The FPEXC32_EL2 is:
• Common to Secure and Non-secure states.
• Architecturally mapped to AArch32 FPEXC register.
Attributes
See the register summary in Table 14-2 AArch64 Advanced SIMD and Floating-point System
registers on page 14-541.
The following figure shows the FPEXC32_EL2 bit assignments.
31 30 29 11 10 8 7 0
To access the FPEXC_EL2 register, see 14.2 Programmers model for Advanced SIMD and Floating-
point on page 14-540.
Note
The Cortex-A57 processor implementation does not support deprecated FP short vector feature. You can
use software to emulate the short vector feature, if required.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-550
Non-Confidential
14 Advanced SIMD and Floating-point
14.5 AArch32 register summary
FPSCR RW 0x00000000 See 14.6.2 Floating-point Status and Control Register on page 14-553
MVFR0 RO 0x10110222 See 14.4.3 Media and VFP Feature Register 0, EL1 on page 14-545
MVFR1 RO 0x12111111 See 14.4.4 Media and VFP Feature Register 1, EL1 on page 14-546
MVFR2 RW 0x00000043 See 14.4.5 Media and VFP Feature Register 2, EL1 on page 14-548
FPEXC RW 0x00000700 See 14.4.6 Floating-point Exception Control Register 32, EL2 on page 14-549
Note
The Floating-point Instruction Registers, FPINST and FPINST2 are not implemented, and any attempt to
access them is UNPREDICTABLE.
See the ARM® Architecture Reference Manual ARMv8 for information about permitted accesses to the
Advanced SIMD and Floating-point System registers.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-551
Non-Confidential
14 Advanced SIMD and Floating-point
14.6 AArch32 register descriptions
Configurations
The FPSID is Common to Secure and Non-secure states.
Attributes
See the register summary in Table 14-9 AArch32 Advanced SIMD and Floating-point System
registers on page 14-551.
The following figure shows the FPSID bit assignments.
31 24 23 22 16 15 8 7 4 3 0
SW
[23] SW Software bit. This bit indicates whether a system provides only software emulation of the
floating-point instructions:
0x0
The system includes hardware support for floating-point operations.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-552
Non-Confidential
14 Advanced SIMD and Floating-point
14.6 AArch32 register descriptions
[15:8] PartNum Indicates the part number for the floating-point implementation:
0x40
VFP.
[3:0] Revision Indicates the revision number for the floating-point implementation:
0x0
Revision.
To access the FPSID register, see 14.2 Programmers model for Advanced SIMD and Floating-point
on page 14-540.
Configurations
The FPSCR is Common to Secure and Non-secure states.
The named fields in this register map to the equivalent fields in the AArch64 FPCR and FPSR.
Attributes
See the register summary in Table 14-9 AArch32 Advanced SIMD and Floating-point System
registers on page 14-551.
The following figure shows the FPSCR bit assignments.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-553
Non-Confidential
14 Advanced SIMD and Floating-point
14.6 AArch32 register descriptions
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
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-554
Non-Confidential
14 Advanced SIMD and Floating-point
14.6 AArch32 register descriptions
To access the FPSCR register, see 14.2 Programmers model for Advanced SIMD and Floating-point
on page 14-540.
Related information
14.4.1 Floating-point Control Register on page 14-542.
14.4.2 Floating-point Status Register on page 14-543.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. 14-555
Non-Confidential
Appendix A
Signal Descriptions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-556
Non-Confidential
A Signal Descriptions
A.1 About the signal descriptions
The tables in this appendix list the Cortex-A57 processor signals, along with their direction, input or
output, and a high-level description.
Some of the buses include a configurable width field, <signal>[N:0], where N = 0, 1, 2, or 3, to encode
up to four cores. For example:
• nIRQ[0] represents a core 0 interrupt request.
• nIRQ[2] represents a core 2 interrupt request.
Some signals are specified in the form <signal>x, where x = 0, 1, 2 or 3 references core 0, core 1, core 2,
or core 3, respectively. If a core is not present, the corresponding pin is removed. For example:
• PMUEVENT0[24:0] represents the core 0 PMU event bus.
• PMUEVENT3[24:0] represents the core 3 PMU event bus.
The number of signals changes depending on the configuration. For example, the CHI interface signals
are not present when the processor is configured to have an ACE interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-557
Non-Confidential
A Signal Descriptions
A.2 Clock signals
Related information
2.3 Clocking and resets on page 2-33.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-558
Non-Confidential
A Signal Descriptions
A.3 Reset signals
The following table shows the reset and reset control signals.
Related information
2.3.2 Resets on page 2-37.
2.3 Clocking and resets on page 2-33.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-559
Non-Confidential
A Signal Descriptions
A.4 Configuration signals
VINITHI[N:0] Input Individual core control of the location of the exception vectors at reset. It sets the
initial value of the V bit in the CP15 System Control Register (SCTLR when the
highest Exception level is AArch32):
0 Exception vectors start at address 0x00000000.
1 Exception vectors start at address 0xFFFF0000.
CFGTE[N:0] Input Individual core control of the default exception handling state. It sets the initial
value of the TE bit in the CP15 System Control Register (SCTLR when the highest
Exception level is AArch32):
0 TE bit is 0.
1 TE bit is 1.
CP15SDISABLE[N:0] Input Disable write access to some Secure CP15 registers. See 4.1.1 Registers affected by
CP15SDISABLE on page 4-76.
CLUSTERIDAFF1[7:0] Input Value read in the Cluster ID Affinity Level-1 field, bits[15:8], of the Multiprocessor
Affinity Register (MPIDR).
This signal is only sampled during powerup reset of the processor.
CLUSTERIDAFF2[7:0] Input Value read in the Cluster ID Affinity Level-2 field, bits[23:16], of the
Multiprocessor Affinity Register (MPIDR).
This signal is only sampled during powerup reset of the processor.
AA64nAA32[N:0] Input Individual core register width state. The register width states are:
0 AArch32.
1 AArch64.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-560
Non-Confidential
A Signal Descriptions
A.4 Configuration signals
This signal is only sampled during powerup reset of the processor. This signal only
exists if the processor implements the Cryptography Extension.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-561
Non-Confidential
A Signal Descriptions
A.5 GIC CPU interface signals
The following table shows the Generic Interrupt Controller (GIC) CPU interface signals.
The processor treats nIRQ as level-sensitive. nIRQ must remain asserted until the
processor acknowledges the interrupt.
This signal is only used when IRQ is in bypass mode, and used as legacy IRQ.
nFIQ[N:0] Input Individual processor FIQ request input. Active-LOW, FIQ request:
0 Activate FIQ request.
1 Do not activate FIQ request.
The processor treats nFIQ as level-sensitive. nFIQ must remain asserted until the
processor acknowledges the interrupt.
This signal is only used when FIQ is in bypass mode, and used as legacy FIQ.
nVIRQ[N:0] Input Individual processor virtual IRQ request input. Active-LOW, virtual IRQ request:
0 Activate virtual IRQ request.
1 Do not activate virtual IRQ request.
The processor treats nVIRQ as level-sensitive. nVIRQ must remain asserted until the
processor acknowledges the interrupt.
nVFIQ[N:0] Input Individual processor virtual FIQ request input. Active-LOW, virtual FIQ request:
0 Activate virtual FIQ request.
1 Do not activate virtual FIQ request.
The processor treats nVFIQ as level-sensitive. nVFIQ must remain asserted until the
processor acknowledges the interrupt.
nSEI[N:0] Input Individual processor System Error Interrupt request. Active-LOW, SEI request:
0 Activate SEI request.
1 Do not activate SEI request.
The processor treats nSEI as edge-sensitive. The nSEI signal must be sent as a pulse
to the processor.
nREI[N:0] Input Individual core RAM Error Interrupt request. Active-LOW, REI request.
0 Activate REI request. Reports an asynchronous RAM error in the system.
1 Do not activate REI request.
The processor treats nREI as edge-sensitive. nREI must be sent as a pulse to the
processor.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-562
Non-Confidential
A Signal Descriptions
A.5 GIC CPU interface signals
The processor treats nVSEI as edge-sensitive. nVSEI must be sent as a pulse to the
processor.
nVCPUMNTIRQ[N:0] Output Individual core virtual CPU interface maintenance interrupt request. Processor N sets
this signal LOW to issue a maintenance interrupt request to the external Distributor.
PERIPHBASE[43:18] Input Specifies the base address for the GIC registers. This value is sampled into the
Configuration Base Address Register (CBAR) at reset.
GICCDISABLE Input Disables the GIC CPU interface logic and routes the legacy nIRQ, nFIQ, nVIRQ, and
nVFIQ signals directly to the processor:
0 Enable the GIC CPU interface logic.
1 Disable the GIC CPU interface logic.
Related information
4.3.70 Configuration Base Address Register, EL1 on page 4-223.
4.5.24 Configuration Base Address Register on page 4-291.
GICCDISABLE bypass mode on page 8-340.
fg See the ARM® AMBA® AXI4-Stream Protocol Specification for more information.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-563
Non-Confidential
A Signal Descriptions
A.6 Generic Timer signals
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-564
Non-Confidential
A Signal Descriptions
A.7 Power control signals
STANDBYWFIL2 Output Indicates whether the L2 is in WFI low-power state. This signal is active when the
following are true:
• All processors are in WFI low-power state.
• ACINACTM or SINACT and AINACTS are asserted HIGH.
• L2 memory system is idle.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-565
Non-Confidential
A Signal Descriptions
A.7 Power control signals
Related information
Event communication using WFE and SEV instructions on page 2-45.
CLREXMON request and acknowledge signaling on page 2-45.
4.3.67 CPU Extended Control Register, EL1 on page 4-216.
Processor dynamic retention on page 2-48.
L2 RAMs dynamic retention on page 2-50.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-566
Non-Confidential
A Signal Descriptions
A.8 ACE and CHI interface signals
The following table shows the configuration signals that are common to the ACE and CHI interfaces.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-567
Non-Confidential
A Signal Descriptions
A.8 ACE and CHI interface signals
Related information
7.7.2 Interface modes on page 7-327.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-568
Non-Confidential
A Signal Descriptions
A.8 ACE and CHI interface signals
Related information
4.3.59 L2 Extended Control Register, EL1 on page 4-182.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-569
Non-Confidential
A Signal Descriptions
A.9 CHI interface signals
Note
This interface only exists if the processor implements the CHI interface.
The following table shows the clock and configuration signals for the CHI interface.
The following table shows the transmit request virtual channel signals for the CHI interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-570
Non-Confidential
A Signal Descriptions
A.9 CHI interface signals
The following table shows the transmit response virtual channel signals for the CHI interface.
The following table shows the transmit data virtual channel signals for the CHI interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-571
Non-Confidential
A Signal Descriptions
A.9 CHI interface signals
The following table shows the receive snoop virtual channel signals for the CHI interface.
The following table shows the receive response virtual channel signals for the CHI interface.
The following table shows the receive data virtual channel signals for the CHI interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-572
Non-Confidential
A Signal Descriptions
A.9 CHI interface signals
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-573
Non-Confidential
A Signal Descriptions
A.9 CHI interface signals
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-574
Non-Confidential
A Signal Descriptions
A.10 ACE interface signals
Note
This interface only exists if the processor implements the ACE interface.
The following table shows the clock and configuration signals for the ACE interface.
Related information
2.3 Clocking and resets on page 2-33.
The following table shows the write address channel signals for the ACE master interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-575
Non-Confidential
A Signal Descriptions
A.10 ACE interface signals
The following table shows the write data signals for the AXI master interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-576
Non-Confidential
A Signal Descriptions
A.10 ACE interface signals
The following table shows the write response channel signals for the ACE interface.
The following table shows the read address channel signals for the ACE interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-577
Non-Confidential
A Signal Descriptions
A.10 ACE interface signals
The following table shows the read data channel signals for the ACE interface.
The following table shows the snoop address channel signals for the ACE interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-578
Non-Confidential
A Signal Descriptions
A.10 ACE interface signals
The following table shows the snoop response channel signals for the AXI master interface.
The following table shows the snoop data channel handshake signals for the ACE interface.
The following table shows the read/write acknowledge signals for the AXI master interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-579
Non-Confidential
A Signal Descriptions
A.11 ACP interface signals
The following table shows the clock and configuration signals for the ACP interface.
Related information
2.3.1 Clocks on page 2-33.
2.4.1 Dynamic power management on page 2-44.
The following table shows the write address channel signals for the ACP interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-580
Non-Confidential
A Signal Descriptions
A.11 ACP interface signals
Note
The ACP interface uses the AXI4 defined default values for the following input signals:
0b100
AWSIZES[2:0].
0b01
AWBURSTS[1:0].
0b0
AWLOCKS.
Related information
7.8.2 ACP ARUSER and AWUSER signals on page 7-334.
The following table shows the write data channel signals for the ACP interface.
The following table shows the write response channel signals for the ACP interface.
The following table shows the read address channel signals for the ACP interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-581
Non-Confidential
A Signal Descriptions
A.11 ACP interface signals
Note
The ACP interface uses the AXI4 defined default values for the following input signals:
0b100
ARSIZES[2:0].
0b01
ARBURSTS[1:0].
0b0
ARLOCKS.
Related information
7.8.2 ACP ARUSER and AWUSER signals on page 7-334.
The following table shows the read data channel signals for the ACP interface.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-582
Non-Confidential
A Signal Descriptions
A.12 Debug interface signals
PENABLEDBG Input Indicates the second and subsequent cycles of an APB transfer.
PWRITEDBG Input APB read or write signal:
0 Reads from APB.
1 Writes to APB.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-583
Non-Confidential
A Signal Descriptions
A.12 Debug interface signals
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-584
Non-Confidential
A Signal Descriptions
A.12 Debug interface signals
COMMRX[N:0] Output Communications channel receive. Receive portion of Data Transfer Register full
flag:
0
Empty.
1
Full.
COMMTX[N:0] Output Communication channel transmit. Transmit portion of Data Transfer Register empty
flag:
0
Full.
1
Empty.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-585
Non-Confidential
A Signal Descriptions
A.12 Debug interface signals
DBGL1RSTDISABLEfk Input Disable L1 data cache and L2 snoop tag RAM automatic invalidate on reset
functionality.
0
Enable automatic invalidation of L1 data cache and L2 snoop tag RAMs on
reset.
1
Disable automatic invalidation of L1 data cache and L2 snoop tag RAMs on
reset
This signal is sampled only during reset of the processor.
Related information
WARMRSTREQ and DBGRSTREQ on page 2-41.
External debug over powerdown on page 2-59.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-586
Non-Confidential
A Signal Descriptions
A.13 ETM interface
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-587
Non-Confidential
A Signal Descriptions
A.13 ETM interface
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-588
Non-Confidential
A Signal Descriptions
A.14 Cross trigger channel interface
The following table shows the cross trigger channel interface signals.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-589
Non-Confidential
A Signal Descriptions
A.15 PMU signals
Related information
11.8 Events on page 11-450.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-590
Non-Confidential
A Signal Descriptions
A.16 DFT and MBIST signals
The following table shows the Memory Built-In Self Test (MBIST) interface signals.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-A-591
Non-Confidential
Appendix B
AArch32 Unpredictable Behaviors
This appendix describes specific Cortex-A57 processor UNPREDICTABLE behaviors that are of particular
interest.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-B-592
Non-Confidential
B AArch32 Unpredictable Behaviors
B.1 Unpredictable behaviors
The Cortex-A57 processor does not implement a Read 0 policy on UNPREDICTABLE use of R15 by
instruction. Instead, the processor reads the PC with the standard offset that applies for the current
instruction set with alignment to a word boundary.
Word-alignment of the PC is imposed for all T32 instructions that are either:
• Defined as loads in the definition of PMU event 0x70.
• Defined as stores in the definition of PMU event 0x71.
With the notable exceptions to this alignment policy that:
• The PC value for TBB and TBH instructions is explicitly not forced to a word-aligned value. TBB and
TBH are technically PMU loads but for the processor to comply with the architecture, it cannot force
the PC to a word-aligned value for these instructions.
• The PC value for ADR instructions is explicitly forced to a word-aligned value. ADR is not a PMU load
or a PMU store, but the architecture specifies word-aligned PC for ADR instructions.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-B-593
Non-Confidential
B AArch32 Unpredictable Behaviors
B.1 Unpredictable behaviors
This section describes load or store accesses that cross page boundaries.
The behavior of the Cortex-A57 processor is as follows:
• Store crosses a page boundary:
— The processor performs two stores, one to each page. The stores behave according to the
attributes of the page that each store hits.
• Load crosses a page boundary:
Device to Device, Normal to Normal
The processor performs two loads, one from each page. The loads behave according to the
attributes of the page that each load hits.
Device to Normal, Normal to Device
The processor generates an Alignment fault.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-B-594
Non-Confidential
B AArch32 Unpredictable Behaviors
B.2 Debug UNPREDICTABLE behaviors
This section describes the behavior that the Cortex-A57 processor implements when:
• A topic has multiple options.
• The behavior differs from either or both of the Options and Preferences behaviors.
Note
This section does not describe the behavior when a topic only has a single option and the processor
implements the preferred behavior.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-B-595
Non-Confidential
B AArch32 Unpredictable Behaviors
B.2 Debug UNPREDICTABLE behaviors
• B.2.26 Exiting Debug state while instruction issued through EDITR is in flight
on page Appx-B-599.
• B.2.27 Using memory-access mode with a non-word-aligned address on page Appx-B-599.
• B.2.28 Access to memory-mapped registers mapped to Normal memory on page Appx-B-599.
• B.2.29 Not word-sized accesses or (AArch64 only) doubleword-sized accesses
on page Appx-B-599.
• B.2.30 External debug write to register that is being reset on page Appx-B-599.
• B.2.31 Accessing reserved debug registers on page Appx-B-600.
• B.2.32 Clearing the clear-after-read EDPRSR bits when Core power domain is on, and
DoubleLockStatus() is TRUE on page Appx-B-600.
The processor generates a breakpoint on the instruction, unless it is a breakpoint on the second half of the
first 32-bit instruction in an aligned 128-bit region or following a taken branch. In this case the
breakpoint is taken on the following instruction.
An address match occurs, unless the instruction is the first instruction within an instruction fetch, that is
the first instruction in a 128-bit aligned region for a sequential fetch, or first instruction following a taken
branch. In this case the breakpoint is taken on the following instruction.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-B-596
Non-Confidential
B AArch32 Unpredictable Behaviors
B.2 Debug UNPREDICTABLE behaviors
B.2.7 Other mismatch breakpoint matches any address in current mode and state
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-B-597
Non-Confidential
B AArch32 Unpredictable Behaviors
B.2 Debug UNPREDICTABLE behaviors
B.2.17 Execute instruction at a given EL when the corresponding EDECCR bit is 1 and Halting is
allowed
B.2.18 Unlinked Context matching and Address mismatch breakpoints taken to Abort mode
Note
The debug event is subject to the same CONSTRAINED UNPREDICTABLE behavior, so the Breakpoint debug
event repeats for an UNKNOWN number of times.
B.2.19 Vector catch on Data or Prefetch Abort, and taken to Abort mode
Note
The debug event is subject to the same CONSTRAINED UNPREDICTABLE behavior, so the Vector catch debug
event repeats for an UNKNOWN number of times.
B.2.20 H > N or H = 0 at Non-secure EL1 and EL0, including value read from PMCR_EL0.N
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-B-598
Non-Confidential
B AArch32 Unpredictable Behaviors
B.2 Debug UNPREDICTABLE behaviors
B.2.26 Exiting Debug state while instruction issued through EDITR is in flight
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-B-599
Non-Confidential
B AArch32 Unpredictable Behaviors
B.2 Debug UNPREDICTABLE behaviors
The processor deviates from the preferred behavior because the hardware cost to decode some of the
addresses in the debug power domain is significant.
The processor behavior is:
1. For reserved debug registers 0x000 - 0xCFC and reserved Performance Monitors registers 0x000 -
0xF00, the response is CONSTRAINED UNPREDICTABLE Error, when any of the following apply:
Off
Core power domain is either completely off, or in a low-power state where the Core power
domain registers are not accessible.
DLK
DoubleLockStatus() is TRUE, OS double-lock is locked, that is, EDPRSR.DLK is 1.
OSLK
OSLSR_EL1.OSLK is 1, OS Lock is locked.
2. For reserved debug registers in the address ranges 0x400 - 0x4FC and 0x800 - 0x8FC, the response is
CONSTRAINED UNPREDICTABLE Error when the conditions in 1 do not apply and:
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 CONSTRAINED UNPREDICTABLE Error when the conditions in 1 and 2 do not apply but the
following condition applies:
EPMAD
AllowExternalPMUAccess() is FALSE (external Performance Monitors access is disabled).
B.2.32 Clearing the clear-after-read EDPRSR bits when Core power domain is on, and
DoubleLockStatus() is TRUE
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-B-600
Non-Confidential
Appendix C
Revisions
This appendix describes the technical changes between released issues of this book.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-C-601
Non-Confidential
C Revisions
C.1 Revisions
C.1 Revisions
Added the WFE option 2.4.3 Power modes on page 2-54 All
Updated the step instructions for entering L2 L2 RAMs dynamic retention on page 2-50 All
RAMs dynamic retention
Updated reset value of Main ID Register • 4.2.1 AArch64 identification registers on page 4-77 r0p1
• 4.3.1 Main ID Register, EL1 on page 4-92
• 4.4.1 c0 registers on page 4-226
• 4.4.17 Identification registers on page 4-237
Updated reset value for ID_ISAR4 • 4.2.1 AArch64 identification registers on page 4-77 All
• 4.4.17 Identification registers on page 4-237
• 4.4.18 CPUID registers on page 4-240
Updated reset value and footnote for • 4.2.1 AArch64 identification registers on page 4-77 All
L2ACTLR • 4.2.15 AArch64 IMPLEMENTATION DEFINED registers
on page 4-88
• 4.4.31 Implementation defined registers on page 4-250
Corrected the reset value of AIDR_EL1 4.2.1 AArch64 identification registers on page 4-77 All
Updated reset value of TRCIDR1 13.7.18 Trace ID Register 1 on page 13-509 r0p1
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-C-602
Non-Confidential
C Revisions
C.1 Revisions
Added information related to the SLVERR 7.8.2 ACP ARUSER and AWUSER signals on page 7-334 All
response
Updated the value for Peripheral ID2 register • 10.11.4 ROM table Debug Peripheral Identification r0p1
Registers on page 10-408
• 10.8.8 Peripheral Identification Registers on page 10-393
• 11.7.12 PMU Peripheral Identification Registers
on page 11-441
• 13.7.37 ETM Peripheral Identification Registers
on page 13-528
• 10.11.4 ROM table Debug Peripheral Identification
Registers on page 10-408
• For PMPIDR2 in 10.11.4 ROM table Debug Peripheral
Identification Registers on page 10-408
• 13.7.37 ETM Peripheral Identification Registers
on page 13-528
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-C-603
Non-Confidential
C Revisions
C.1 Revisions
Updated the product revision information • 4.3.1 Main ID Register, EL1 on page 4-92 r1p0
• Debug Peripheral Identification Register 2
on page 10-395
• 10.11.4 ROM table Debug Peripheral Identification
Registers on page 10-408
• ROM table Debug Peripheral Identification Register 2
on page 10-410
• 11.7.12 PMU Peripheral Identification Registers
on page 11-441
• PMU Peripheral Identification Register 2 on page 11-443
• 13.7.18 Trace ID Register 1 on page 13-509
• 13.7.37 ETM Peripheral Identification Registers
on page 13-528
• ETM Peripheral Identification Register 2 on page 13-530
Updated the purpose field of the register 4.3.17 AArch32 Instruction Set Attribute Register 5, EL1 All revisions
characteristics on page 4-114
Updated the description of 4.3.23 Cache Level ID Register, EL1 on page 4-123 All revisions
CLIDR_EL1.LoUU
Updated the description of 4.3.59 L2 Extended Control Register, EL1 on page 4-182 All revisions
L2ECTLR_EL1.[29]
Updated the bit ranges for DL1DATA<n> L1-D TLB array on page 4-194 All revisions
Updated the state values for • L1-D Tag RAM on page 4-193 All revisions
DL1DATA[1:0] • L2 Snoop Tag RAM on page 4-196
Updated the description of 4.3.65 L2 Auxiliary Control Register, EL1 on page 4-200 r1p0
L2ACTLR_EL1[21:20]
Updated the description for 4.3.67 CPU Extended Control Register, EL1 on page 4-216 All revisions
CPUECTLR_EL1[36:35] and [33:32]
Updated the description of fetches 6.3.4 Non-cacheable fetching on page 6-305 All revisions
Updated the description of the L2 cache 7.4 L2 cache prefetcher on page 7-323 All revisions
prefetcher
Updated the issuing capability information 7.7.1 L2 memory interface attributes on page 7-326 All revisions
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-C-604
Non-Confidential
C Revisions
C.1 Revisions
Updated the configuration information of 12.6.12 CTI Component Identification Registers All revisions
all CTI Peripheral Identification Registers on page 12-477
Updated the number of processors 13.2 ETM trace generation options and resources All revisions
available for tracing on page 13-483
Updated list of ACE supported transfers 7.7.8 ACE supported transfers on page 7-330 All revisions
Corrected register bits used to disable L2 Individual core powerdown on page 2-55 All revisions
prefetches during individual processor
powerdown.
Removed AINACTS from timing diagram. Figure 2-16 L2 dynamic retention timing on page 2-51 All
Removed statement about dirty cache lines Processor powerdown with system driven L2 flush on page 2-57 All
being written back to the system.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-C-605
Non-Confidential
C Revisions
C.1 Revisions
Updated reset value of TRCIDR1 13.7.18 Trace ID Register 1 on page 13-509 r1p2
Updated reset value of bits [11:0] of the 13.7.20 Trace ID Register 3 on page 13-511 All
TRCIDR3
Added Cortex-A57 implementation-defined • 4.3.50 Exception Syndrome Register, EL1 and EL3 All
SError Interrupt exception classes. on page 4-164
• 4.3.54 Exception Syndrome Register, EL2 on page 4-171
Updated information on when not to assert the • Dormant mode on page 2-57 r1p2
ACVALIDMsignal when using the ACE • L2 Wait for Interrupt on page 2-46
interface.
• Processor powerdown with system driven L2 flush
on page 2-57
Updated number of cores that can be used for 13.2 ETM trace generation options and resources r1p2
tracing. on page 13-483
Updated TRCCCCTLR.THRESHOLD 13.7.20 Trace ID Register 3 on page 13-511 r1p2
minimum value.
ARM DDI0488F Copyright © 2013, 2014 ARM. All rights reserved. Appx-C-606
Non-Confidential