Cortex A9 Mpcore TRM 100486 0401 10 en
Cortex A9 Mpcore TRM 100486 0401 10 en
Revision: r4p1
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 © [2008-2012, 2016], 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 ...................................................... ...................................................... 7
Feedback .................................................................................................................... 10
Chapter 1 Introduction
1.1 About the Cortex-A9 MPCore processor ................................ ................................ 1-12
1.2 Compliance .............................................................................................................. 1-14
1.3 Configurable options ................................................................................................ 1-15
1.4 Test features ............................................................................................................ 1-16
1.5 Private Memory Region ............................................. ............................................. 1-17
1.6 Interfaces ........................................................ ........................................................ 1-19
1.7 MPCore considerations ............................................. ............................................. 1-20
1.8 Product documentation and design flow .................................................................. 1-21
1.9 Product revisions .................................................. .................................................. 1-23
Chapter 6 Debug
6.1 External Debug Interface signals ...................................... ...................................... 6-87
6.2 Cortex-A9 MPCore APB Debug interface and memory map ................. ................. 6-88
Appendix B Revisions
B.1 Revisions .................................................. .................................................. Appx-B-123
This preface introduces the ARM® Cortex®-A9 MPCore Technical Reference Manual.
It contains the following:
• About this book on page 7.
• Feedback on page 10.
Intended audience
This book is written for hardware and software engineers implementing Cortex®-A9 system designs. The
manual describes the external functionality of the Cortex-A9 MPCore. It provides information that
enables designers to integrate the processor into a target system.
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® Architecture Reference Manual, ARMv7-A and ARMv7-R edition (ARM DDI 0406).
• ARM® Cortex®-A9 Technical Reference Manual (ARM DDI 0388).
• ARM® Cortex®-A9 Floating-Point Unit Technical Reference Manual (ARM DDI 0408).
• ARM® Cortex®-A9 NEON™ Media Processing Engine Technical Reference Manual (ARM
DDI 0409).
• ARM® Cortex®-A9 MBIST Technical Reference Manual (ARM DDI 0414).
• ARM® Cortex®-A9 Configuration and Sign-Off Guide (ARM DII 0146).
• AMBA® AXI Protocol Specification (ARM IHI 0022).
• ARM® Generic Interrupt Controller Architecture Specification (ARM IHI 0048).
• CoreSight™ PTM-A9 Technical Reference Manual (ARM DDI 0401).
• CoreSight™ PTM-A9 Integration Manual (ARM DII 0162).
• CoreSight™ Program Flow Trace Architecture Specification (ARM IHI 0035).
• CoreSight™ Technology System Design Guide (ARM DGI 0012).
• CoreSight™ Architecture Specification (ARM IHI 0029).
• ARM Debug Interface v5 Architecture Specification (ARM IHI 0031).
• CoreLink™ Level 2 Cache Controller L2C-310 Technical Reference Manual (ARM DDI
0246).
• RealView ICE and RealView Trace User Guide (ARM DUI 0155).
Other publications
• JEP106M, Standard Manufacture’s Identification Code, JEDEC Solid State Technology
Association.
Feedback
Feedback on content
If you have comments on content then send an e-mail to [email protected]. Give:
• The title ARM® Cortex®-A9 MPCore Technical Reference Manual.
• The number ARM 100486_0401_10_en.
• If applicable, the page number(s) to which your comments refer.
• A concise explanation of your comments.
ARM also welcomes general suggestions for additions and improvements.
Note
ARM tests the PDF only in Adobe Acrobat and Acrobat Reader, and cannot guarantee the quality of the
represented document when used with any other PDF reader.
This chapter introduces the Cortex-A9 MPCore processor and its features.
It contains the following sections:
• 1.1 About the Cortex-A9 MPCore processor on page 1-12.
• 1.2 Compliance on page 1-14.
• 1.3 Configurable options on page 1-15.
• 1.4 Test features on page 1-16.
• 1.5 Private Memory Region on page 1-17.
• 1.6 Interfaces on page 1-19.
• 1.7 MPCore considerations on page 1-20.
• 1.8 Product documentation and design flow on page 1-21.
• 1.9 Product revisions on page 1-23.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-11
Non-Confidential
1 Introduction
1.1 About the Cortex-A9 MPCore processor
Related references
1.3 Configurable options on page 1-15.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-12
Non-Confidential
1 Introduction
1.1 About the Cortex-A9 MPCore processor
Cortex-A9 MPCore
Instruction, data, and coherency buses Instruction, data, and coherency buses
Cache to
Snoop filtering
cache transfers
Accelerator
Coherency
Master 0 Master 1 (optional) with Port (ACP)
address filtering capabilities (optional)
AXI RW AXI RW
64-bit bus 64-bit bus
L2 memory
Note
It is possible to implement only one Cortex-A9 processor in a Cortex-A9 MPCore processor design. In
this configuration, an SCU is still provided. The ACP, and an additional master port, are still available as
configuration options.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-13
Non-Confidential
1 Introduction
1.2 Compliance
1.2 Compliance
The Cortex-A9 processor complies with, or implements, several specifications. This manual
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-14.
• 1.2.2 Advanced Microcontroller Bus Architecture on page 1-14.
• 1.2.3 Program Flow Trace architecture on page 1-14.
• 1.2.4 Debug architecture on page 1-14.
• 1.2.5 Generic Interrupt Controller architecture on page 1-14.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-14
Non-Confidential
1 Introduction
1.3 Configurable options
Feature Options
TLB size per Cortex-A9 processor 64, 128, 256 or 512 entries
BTAC size per Cortex-A9 processor 512, 1024, 2048 or 4096 entries
Media Processing Engine with NEON technology per Cortex-A9 processor Included or not a
Number of entries in the Preload Engine FIFO per Cortex-A9 processor 16, 8, or 4
Program Trace Macrocell (PTM) interface per Cortex-A9 processor Included or not
a Includes support for floating-point operations. If this option is implemented, then the FPU option cannot also be implemented.
b If this option is implemented then the Media Processing Engine with NEON technology option cannot also be implemented.
c The ARM® Cortex®-A9 Technical Reference Manual describes the parity error scheme. See A.11 Parity error signals on page Appx-A-112 for a description of the
signals.
Parity error detection is not supported on the GHB RAMs when implementing an 8192 or 16384-entry GHB configuration.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-15
Non-Confidential
1 Introduction
1.4 Test features
Related references
Appendix A Signal Descriptions on page Appx-A-90.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-16
Non-Confidential
1 Introduction
1.5 Private Memory Region
Interrupt distributor
Note
Halfword or doubleword accesses cause an abort to the requesting Cortex-A9 processor and the Fault
Status Register shows this as a SLVERR.
A word access with strobes not all set causes an abort to the requesting Cortex-A9 processor and the
Fault Status Register shows this as a SLVERR.
The Accelerator Coherency Port (ACP) cannot access any of the registers in this memory region.
The following table shows register addresses for the Cortex-A9 MPCore processor relative to this base
address.
0x0000 - 0x00FC SCU registers Chapter 2 Snoop Control Unit on page 2-24
0x0200 - 0x02FF Global timer 4.3 About the Global Timer on page 4-70
0x0300 - 0x03FF - -
0x0400 - 0x04FF - -
0x0500 - 0x05FF - -
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-17
Non-Confidential
1 Introduction
1.5 Private Memory Region
0x0600 - 0x06FF Private timers and 4.2 Private timer and watchdog registers on page 4-64
watchdogs
0x0700 - 0x07FF Reserved Double word and halfword accesses generate a SLVERR data abort. Byte and
word accesses complete without error.
0x0800 - 0x08FF
0x0900 - 0x09FF
0x0A00 - 0x0AFF
0x0B00 - 0x0FFF
0x1000 - 0x1FFF Interrupt Distributor 3.1.2 Interrupt Distributor interrupt sources on page 3-48
Related references
A.4 Configuration signals on page Appx-A-95.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-18
Non-Confidential
1 Introduction
1.6 Interfaces
1.6 Interfaces
The Cortex-A9 MPCore processor has the four different interfaces. These interfaces are the AMBA AXI
interfaces, the interrupts interface, the debug interfaces, and the Design for Test interface.
This section contains the following subsections:
• 1.6.1 AMBA AXI interfaces on page 1-19.
• 1.6.2 Interrupts interface on page 1-19.
• 1.6.3 Debug interfaces on page 1-19.
• 1.6.4 Design for Test interface on page 1-19.
Related concepts
2.3 AMBA AXI Master Port Interfaces on page 2-36.
Related references
Chapter 3 Interrupt Controller on page 3-47.
Related references
Chapter 6 Debug on page 6-86.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-19
Non-Confidential
1 Introduction
1.7 MPCore considerations
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-20
Non-Confidential
1 Introduction
1.8 Product documentation and design flow
1.8.1 Documentation
The Cortex-A9 MPCore documentation is summarized in the Technical Reference Manual (TRM).
Technical Reference Manual
The TRM describes the functionality and the effects of functional options on the behavior of the
Cortex-A9 MPCore 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 Cortex-A9 MPCore processor, then contact:
• The implementer to determine:
— The build configuration of the implementation.
— What integration, if any, was performed before implementing the Cortex-A9 MPCore
processor.
• The integrator to determine the pin configuration of the device that you are using.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-21
Non-Confidential
1 Introduction
1.8 Product documentation and design flow
Configuration inputs
The integrator configures some features of the Cortex-A9 MPCore processor by tying inputs to
specific values. These configurations affect the start-up behavior before any software
configuration is made. They can also limit the options available to the software.
Software configuration
The programmer configures the Cortex-A9 MPCore processor by programming particular
values into registers. This affects the behavior of the Cortex-A9 MPCore processor.
Note
This manual refers to implementation-defined features that are applicable to build configuration options.
Reference to a feature that is included means that the appropriate build and pin configuration options are
selected. Reference to an enabled feature means one that has also been configured by software.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-22
Non-Confidential
1 Introduction
1.9 Product revisions
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 1-23
Non-Confidential
Chapter 2
Snoop Control Unit
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-24
Non-Confidential
2 Snoop Control Unit
2.1 About the SCU
Note
The Cortex-A9 SCU does not support hardware management of coherency of the instruction cache.
Related references
2.2.8 SCU Access Control Register (SAC) on page 2-33.
2.2.9 SCU Non-secure Access Control Register on page 2-34.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-25
Non-Confidential
2 Snoop Control Unit
2.2 SCU registers
Note
Secure RW and WO registers are writable if the relevant bits in the SAC are set.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-26
Non-Confidential
2 Snoop Control Unit
2.2 SCU registers
Usage constraints • This register is writable in Secure state if the relevant bit in the SAC register is
set.
• This register is writable in Non-secure state if the relevant bits in the SAC and
SNSAC registers are set.
Configurations Available in all Cortex-A9 multiprocessor configurations.
Attributes See the register summary in 2.2.1 SCU register summary on page 2-26.
The following figure shows the SCU Control Register bit assignments.
31 7 6 5 4 3 2 1 0
Reserved
IC standby enable
SCU standby enable
Force all Device to port0 enable
SCU speculative linefill enable
SCU RAMs parity enable
Address filtering enable
SCU enable
The following table shows the SCU Control Register bit assignments.
[31:7] - Reserved
[6] IC standby enable When set, this stops the Interrupt Controller clock when no interrupts are pending, and no CPU is
performing a read/write request.
This bit is set to 0 by default
[5] SCU standby enable When set, SCU CLK is turned off when all processors are in WFI mode, there is no pending request on
the ACP, if implemented, and there is no remaining activity in the SCU.
When SCU CLK is off, ARREADYS, AWREADYS, and WREADYS on the ACP are forced LOW.
The clock is turned on when any processor leaves WFI mode, or if there is a new request on the ACP.
This bit is set to 0 by default
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-27
Non-Confidential
2 Snoop Control Unit
2.2 SCU registers
[4] Force all Device to When set, all requests from the ACP or processors with AxCACHE = Noncacheable Bufferable are
port0 enable forced to be issued on the AXI Master port M0. See 2.3.5 Address filtering capabilities on page 2-40.
This bit is set to 0 by default
[3] SCU Speculative When set, coherent linefill requests are sent speculatively to the L2C-310 in parallel with the tag look-
linefills enable up. If the tag look-up misses, the confirmed linefill is sent to the L2C-310 and gets RDATA earlier
because the data request was already initiated by the speculative request. This feature works only if the
L2C-310 is present in the design.
This bit is set to 0 by default
[2] SCU RAMs Parity 0 Parity off. This is the default setting.
enable
1 Parity on.
The default value is the value of FILTEREN sampled when nSCURESET is deasserted.
This bit is always zero if the SCU is implemented in the single master port configuration. See
2.3.5 Address filtering capabilities on page 2-40.
The following figure shows the SCU Configuration Register bit assignments.
31 16 15 8 7 4 3 2 1 0
CPUs in Number of
coherency CPUs
mode
The following table shows the SCU Configuration Register bit assignments.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-28
Non-Confidential
2 Snoop Control Unit
2.2 SCU registers
[15:8] Tag RAM Bits [15:14] indicate Cortex-A9 processor CPU3 tag RAM size if present.
sizes
Bits [13:12] indicate Cortex-A9 processor CPU2 tag RAM size if present.
Bits [11:10] indicate Cortex-A9 processor CPU1 tag RAM size if present.
Bits [9:8] indicate Cortex-A9 processor CPU0 tag RAM size.
The encoding is as follows:
0b00 16KB cache, 64 indexes per tag RAM.
0b01 32KB cache, 128 indexes per tag RAM.
0b10 64KB cache, 256 indexes per tag RAM.
0b11 Reserved
Non-present CPUs have a Tag RAM size of 0b00, the same as 16KB.
[7:4] CPUs SMP Shows the Cortex-A9 processors that are in Symmetric Multi-processing (SMP) or Asymmetric Multi-
processing (AMP) mode.
0 This Cortex-A9 processor is in AMP mode, not taking part in coherency, or not present.
1 This Cortex-A9 processor is in SMP mode, taking part in coherency.
[1:0] CPU number Number of CPUs present in the Cortex-A9 MPCore processor
0b00 One Cortex-A9 processor, CPU0.
0b01 Two Cortex-A9 processors, CPU0 and CPU1.
0b10 Three Cortex-A9 processors, CPU0, CPU1, and CPU2.
0b11 Four Cortex-A9 processors, CPU0, CPU1, CPU2, and CPU3.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-29
Non-Confidential
2 Snoop Control Unit
2.2 SCU registers
Usage This register is writable in Secure state if the relevant bit in the SAC register is set.
constraints
This register is writable in Non-secure state if the relevant bits in the SAC and
SNSAC registers are set.
Dormant mode and powered-off mode are controlled by an external power
controller. SCU CPU Status Register bits indicate to the external power controller
the power domains that can be powered down.
Before entering any other power mode than Normal, the Cortex-A9 processor must
set its status field to signal to the power controller the mode it is about to enter. The
Cortex-A9 processor then executes a WFI entry instruction. When in WFI state, the
PWRCTLOn bus is enabled and signals to the power controller what it must do
with power domains.
The SCU CPU Power Status Register bits can also be read by a Cortex-A9 processor
exiting low-power mode to determine its state before executing its reset setup.
Cortex-A9 processors status fields take PWRCTLIn values at reset, except for
nonpresent Cortex-A9 processors. For nonpresent Cortex-A9 processors, writing to
this field has no effect.
Configurations Available in all Cortex-A9 multiprocessor configurations.
Attributes See the register summary in 2.2.1 SCU register summary on page 2-26.
The following figure shows the SCU CPU Power Status Register bit assignments.
31 26 25 24 23 18 17 16 15 10 9 8 7 2 1 0
The following table shows the SCU CPU Power Status Register bit assignments.
The default value is 0b00 when CPU3 processor is present, else 0b11
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-30
Non-Confidential
2 Snoop Control Unit
2.2 SCU registers
Table 2-4 SCU CPU Power Status Register bit assignments (continued)
The following figure shows the SCU Invalidate All Register in Secure state bit assignments.
31 16 15 12 11 8 7 4 3 0
Figure 2-4 SCU Invalidate All Registers in Secure state bit assignments
The following table shows the SCU Invalidate All Register in Secure state bit assignments.
Table 2-5 SCU Invalidate All Registers in Secure state bit assignments
[31:16] - -
[15:12] CPU3 ways Specifies the ways that must be invalidated for CPU3. Writing to these bits has no effect if the Cortex-A9
MPCore processor has fewer than four processors.
[11:8] CPU2 ways Specifies the ways that must be invalidated for CPU2. Writing to these bits has no effect if the Cortex-A9
MPCore processor has fewer than three processors.
[7:4] CPU1 ways Specifies the ways that must be invalidated for CPU1. Writing to these bits has no effect if the Cortex-A9
MPCore processor has fewer than two processors.
[3:0] CPU0 ways Specifies the ways that must be invalidated for CPU0.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-31
Non-Confidential
2 Snoop Control Unit
2.2 SCU registers
Configurations Available in all two-master port configurations. When only one master port is
present, these registers are not implemented. Writes have no effect and reads return
a value 0x0 for all filtering registers.
Attributes See the register summary in 2.2.1 SCU register summary on page 2-26.
The following figure shows the Filtering Start Address Register bit assignments.
31 20 19 0
The following table shows the Filtering Start Address Register bit assignments.
[31:20] Filtering start Start address for use with master port 1 in a two-master port configuration when address filtering is
address enabled.
The default value is the value of FILTERSTART sampled on exit from reset. The value on the pin
gives the upper address bits with 1MB granularity.
[19:0] - SBZ
Related references
A.4 Configuration signals on page Appx-A-95.
The following figure shows the Filtering End Address Register bit assignments.
31 20 19 0
The following table shows the Filtering End Address Register bit assignments.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-32
Non-Confidential
2 Snoop Control Unit
2.2 SCU registers
[31:20] Filtering end End address for use with master port 1 in a two-master port configuration, when address filtering is
address enabled.
The default value is the value of FILTEREND sampled on exit from reset. The value on the pin gives
the upper address bits with 1MB granularity.
[19:0] - SBZ.
Related references
A.4 Configuration signals on page Appx-A-95.
SBZ
CPU3
CPU2
CPU1
CPU0
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-33
Non-Confidential
2 Snoop Control Unit
2.2 SCU registers
[31:4] SBZ -
d The accessible registers are the SAC Register, the SCU Control Register, the SCU CPU Status Register, the SCU Invalidate All Register in Secure State, the
filtering registers, and the SCU CPU Power Status register.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-34
Non-Confidential
2 Snoop Control Unit
2.2 SCU registers
31 12 11 10 9 8 7 6 5 4 3 2 1 0
SBZ
[31:12] SBZ -
[11] CPU3 global Non-secure access to the global timer for CPU<n>.
timer • <n> is 3 for bit[11]
• <n> is 2 for bit[10]
[10] CPU2 global
• <n> is 1 for bit[9]
timer
• <n> is 0 for bit[8].
[9] CPU1 global
0 Secure accesses only. This is the default value.
timer
1 Secure accesses and Non-secure accesses.
[8] CPU0 global
timer
[7] Private timers for Non-secure access to the private timer and watchdog for CPU<n>.
CPU<n> • <n> is 3 for bit[7]
[6]
• <n> is 2 for bit[6]]
[5] • <n> is 1 for bit[5]
• <n> is 0 for bit[4].
[4]
0 Secure accesses only. Non-secure reads return 0. This is the default value.
1 Secure accesses and Non-secure accesses.
e The accessible registers are the SAC Register, the SCU Control Register, the SCU CPU Status Register, the filtering registers, and the SCU CPU Power Status
Register.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-35
Non-Confidential
2 Snoop Control Unit
2.3 AMBA AXI Master Port Interfaces
Attribute Format
Write ID Capability 32
Write ID Width 6
Read ID Capability 32
Read ID Width 6
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-36
Non-Confidential
2 Snoop Control Unit
2.3 AMBA AXI Master Port Interfaces
The AXI protocol and meaning of each AXI signal are not described in this document. For more
information, see AMBA® AXI Protocol v1.0 Specification.
Note
These numbers are the theoretical maximums for the Cortex-A9 MP processor. A typical system is
unlikely to reach these numbers. ARM recommends that you perform profiling to tailor your system
resources appropriately for optimum performance.
Related concepts
2.3.5 Address filtering capabilities on page 2-40.
ARIDMx[5:0] encodings
List of ARIDMx[5:0] encodings for read transactions.
As the following table shows, the ARIDMx[2] encodings distinguish between transactions originating
from Cortex-A9 processors and transactions originating from the ACP:
• ARIDMx[2] = 0 the transaction originates from one of the Cortex-A9 processors.
• ARIDMx[2] = 1 the transaction originates from the ACP.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-37
Non-Confidential
2 Snoop Control Unit
2.3 AMBA AXI Master Port Interfaces
Transaction types
AWIDMx[5:0] encodings
List of AWIDMx[5:0] encodings for write transactions.
As the following table shows, the AWIDMx[2] encodings distinguish between transactions originating
from Cortex-A9 processors and transactions originating from the ACP:
• AWIDMx[2] = 0 the transaction originates from one of the Cortex-A9 processors.
• AWIDMx[2] = 1 the transaction originates from the ACP.
Transaction types
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-38
Non-Confidential
2 Snoop Control Unit
2.3 AMBA AXI Master Port Interfaces
ARUSERMx[6:0] encodings
List of ARUSERMx[6:0] encodings for read transactions.
As the following table shows, the value and the meaning of the ARUSERMx encodings depend on the
source of the transaction. There are transactions originating from Cortex-A9 processors and transactions
originating from the ACP:
• ARIDMx[2] = 0 from one of the Cortex-A9 processors.
• ARIDMx[2] = 1 from the ACP.
Transaction types
AWUSERMx[8:0] encodings
List of AWUSERMx[8:0] encodings for write transactions.
As the following table shows, the value and the meaning of the AWUSERMx encodings depend on the
source of the transaction:
• AWIDMx[2] = 0 from one of the Cortex-A9 processors.
• AWIDMx[2] = 1 from the ACP.
Transaction types
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-39
Non-Confidential
2 Snoop Control Unit
2.3 AMBA AXI Master Port Interfaces
Transaction types
Related references
2.2.6 Filtering Start Address Register on page 2-31.
2.2.7 Filtering End Address Register on page 2-32.
2.2.2 SCU Control Register on page 2-27.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-40
Non-Confidential
2 Snoop Control Unit
2.3 AMBA AXI Master Port Interfaces
Related references
2.2.2 SCU Control Register on page 2-27.
RDATA (output D0 D1 D2 D3 D4 D5
from slave)
CPU CLK
INCLKEN
RDATA (sampled D0 D1 D2 D3 D4
by CPU)
Figure 2-9 Timing diagram for INCLKEN with three-to-two clock ratio between CPU and AXI Slave
CLK
RDATA (output D0 D1 D2
from slave)
CPU CLK
INCLKEN
RDATA (sampled D0 D1 D2
by CPU)
Figure 2-10 Timing diagram for INCLKEN with five-to-two clock ratio between CPU and AXI Slave
CLK
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-41
Non-Confidential
2 Snoop Control Unit
2.3 AMBA AXI Master Port Interfaces
CPU CLK
OUTCLKEN
WDATA (issued D0 D1 D2 D3 D4
by CPU)
AXI Slave CLK
WDATA (sampled D0 D1 D2 D3 D4
by slave)
Figure 2-11 Timing diagram for OUTCLKEN with three-to-two clock ratio between CPU and AXI
Slave CLK
CPU CLK
OUTCLKEN
WDATA (issued D0 D1 D2
by CPU)
AXI Slave CLK
WDATA (sampled D0 D1 D2
by slave)
Figure 2-12 Timing diagram for OUTCLKEN with five-to-two clock ratio between CPU and AXI
Slave CLK
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-42
Non-Confidential
2 Snoop Control Unit
2.4 Accelerator Coherency Port
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-43
Non-Confidential
2 Snoop Control Unit
2.4 Accelerator Coherency Port
CLK
ACLK
ACLKENS
The ACP slave port samples the AXI input requests, and the AXI output values, only on the rising edge
of CLK when ACLKENS is HIGH.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-44
Non-Confidential
2 Snoop Control Unit
2.4 Accelerator Coherency Port
As a consequence, it is not possible to use the LDREX/STREX mechanism through the ACP to gain
exclusive access to coherent memory regions, that are marked with AxUSER[0] = 1 and AxCACHE[1]
= 1.
However, the LDREX/STREX mechanism is fully supported through the ACP for non-coherent memory
regions, marked with AxUSER[0] = 0 or AxCACHE[1] = 0.
Related references
2.4.2 ACP interface clocking on page 2-44.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-45
Non-Confidential
2 Snoop Control Unit
2.5 Event communication with an external agent using WFE/SEV
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 2-46
Non-Confidential
Chapter 3
Interrupt Controller
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-47
Non-Confidential
3 Interrupt Controller
3.1 About the Interrupt Controller
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-48
Non-Confidential
3 Interrupt Controller
3.1 About the Interrupt Controller
Related references
1.5 Private Memory Region on page 1-17.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-49
Non-Confidential
3 Interrupt Controller
3.2 Security extensions support
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-50
Non-Confidential
3 Interrupt Controller
3.3 Distributor register descriptions
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-51
Non-Confidential
3 Interrupt Controller
3.3 Distributor register descriptions
0x7FC - - - - Reserved
0x800 - 0x8FC ICDIPTRn RW 0x0000000 32 3.3.7 Interrupt Processor Targets Registers on page 3-56
0xBFC - - - - Reserved
0xC00 ICDICFRn RW 0xAAAAAAAA 32 3.3.8 Interrupt Configuration Registers on page 3-56
0xC04 0x7DC00000
0xD04- 0xD1C ICSPISRn RO 0x00000000 32 3.3.10 SPI Status Registers on page 3-57
g Reset value is 0x55555555 when the corresponding interrupts are present, else 0x00000000
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-52
Non-Confidential
3 Interrupt Controller
3.3 Distributor register descriptions
Attributes See the register summary in 3.3.1 Distributor register summary on page 3-51.
The following figure shows the ICDDCR bit assignments for Secure accesses.
31 2 1 0
Reserved
Enable Non-secure
Enable secure
The following table shows the ICDDCR bit assignments for secure accesses.
[31:2] - Reserved
[1] Enable Non-secure 0 Disables all Non-secure interrupt control bits in the distributor from changing state because of any
external stimulus change that occurs on the corresponding SPI or PPI signals.
1 Enables the distributor to update register locations for Non-secure interrupts.
[0] Enable secure 0 Disables all Secure interrupt control bits in the distributor from changing state because of any external
stimulus change that occurs on the corresponding SPI or PPI signals.
1 Enables the distributor to update register locations for Secure interrupts.
The following figure shows the ICDDCR bit assignments for Non-secure accesses.
31 1 0
Reserved
Enable Non-secure
The following table shows the ICDDCR bit assignments for Non-secure accesses.
[31:1] - Reserved
[0] Enable Non-secure 0 Disables all Non-secure interrupts control bits in the distributor from changing state because of any
external stimulus change that occurs on the corresponding SPI or PPI signals.
1 Enables the distributor to update register locations for Non-secure interrupts.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-53
Non-Confidential
3 Interrupt Controller
3.3 Distributor register descriptions
Lockable SPIs
SecurityExtn
CPU number
IT lines number
[31:16] - Reserved
[15:11] LSPI Returns the number of Lockable Shared Peripheral Interrupts (LSPIs) that the controller contains. The
encoding is:
0b11111 31 LSPIs, that are the interrupts of IDs 32-62.
When CFGSDISABLE is HIGH, the interrupt controller prevents writes to any register location that
controls the operating state of an LSPI.
[10] SecurityExtn Returns the number of security domains that the controller contains:
1 The controller contains two security domains.
[9:8] - Reserved
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-54
Non-Confidential
3 Interrupt Controller
3.3 Distributor register descriptions
[23:12] 0x020 Revision number Returns the revision number of the controller.
h The distributor always uses interrupts of IDs 0 to 31 to control any SGIs and PPIs that the Interrupt Controller might contain.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-55
Non-Confidential
3 Interrupt Controller
3.3 Distributor register descriptions
There are 31 LSPIs, interrupts 32-62. You can configure and then lock these interrupts against
more change using CFGSDISABLE. The LSPIs are present only if the SPIs are present.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-56
Non-Confidential
3 Interrupt Controller
3.3 Distributor register descriptions
Attributes See the register summary in 3.3.1 Distributor register summary on page 3-51.
Reserved SBZ
PPI(4) status
PPI(3) status
PPI(2) status
PPI(1) status
PPI(0) status
[31:16] - Reserved
[15:11] ppi_status Returns the status of the PPI(4:0) inputs on the distributor:
• PPI[4] is nIRQ
• PPI[3] is the private watchdog
• PPI[2] is the private timer
• PPI[1] is nFIQ
• PPI[0] is the global timer.
PPI[1] and PPI[4] are active LOW
PPI[0], PPI[2], and PPI[3] are active HIGH.
Note
These bits return the actual status of the PPI(4:0) signals. The ICDISPRn and ICDICPRn registers can also
provide the PPI(4:0) status but because you can write to these registers then they might not contain the actual
status of the PPI(4:0) signals.
[10:0] - SBZ
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-57
Non-Confidential
3 Interrupt Controller
3.3 Distributor 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
spi[N] status
spi[N+1] status
spi[N+2] status
.
.
.
spi[N+31] status
[31:0] spi_status Returns the status of the IRQS[N:0] inputs on the distributor:
Bit [X] = 0 IRQS[X] is LOW
Bit [X] = 1 IRQS[X] is HIGH.
Note
• The IRQS that X refers to depends on its bit position and the base address offset of the spi_status Register as
the following figure shows.
• These bits return the actual status of the IRQS signals. The pending_set and pending_clr Registers can also
provide the IRQS status but because you can write to these registers then they might not contain the actual
status of the IRQS signals.
The following figure shows the address map that the distributor provides for the SPIs.
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
0xD04 spi_status for SPI[31:0]
31 2 1 0
223 192
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-58
Non-Confidential
3 Interrupt Controller
3.3 Distributor register descriptions
configure the Interrupt Controller to use fewer than 224 SPIs, then it reduces the number of registers
accordingly. For locations where interrupts are not implemented then the distributor:
• Ignores writes to the corresponding bits.
• Returns 0 when it reads from these bits.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-59
Non-Confidential
3 Interrupt Controller
3.4 Interrupt interface register descriptions
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-60
Non-Confidential
3 Interrupt Controller
3.4 Interrupt interface register descriptions
[15:12] 0x2 Revision number Returns the revision number of the Interrupt Controller. The implementer defines the format
of this field.
[11:0] 0x43B Implementer Returns the JEP106 code of the company that implemented the Cortex-A9 processor interface
RTL. It uses the following construct:
[11:8] The JEP106 continuation code of the implementer.
[7] 0.
[6:0] The JEP106 code [6:0] of the implementer.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 3-61
Non-Confidential
Chapter 4
Global timer, private timers, and watchdog
registers
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-62
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.1 About the private timer and watchdog blocks
(PRESCALER_value+1) x (Load_value+1)
( PERIPHCLK )
Figure 4-1 Equation for timer intervals
This equation can be used to calculate the period between two events generated by a timer or watchdog.
Related references
2.2.9 SCU Non-secure Access Control Register on page 2-34.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-63
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.2 Private timer and watchdog registers
0x0C RW 0x00000000 4.2.5 Private Timer Interrupt Status Register on page 4-66
Note
The private timers stop counting when the associated processor is in debug state.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-64
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.2 Private timer and watchdog registers
Timer enable
IRQ enable Auto reload
The following table shows the Private Timer Control Register bit assignments.
[31:16] - UNK/SBZP.
[15:8] Prescaler The prescaler modifies the clock period for the decrementing event for the Counter Register. See
4.1.1 Calculating timer intervals on page 4-63 for the equation.
[7:3] - UNK/SBZP.
[2] IRQ Enable If set, the interrupt ID 29 is set as pending in the Interrupt Distributor when the event flag is set in the Timer
Status Register.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-65
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.2 Private timer and watchdog registers
[1] Auto reload 0 Single shot mode.Counter decrements down to zero, sets the event flag and stops.
1 Auto-reload mode. Each time the Counter Register reaches zero, it is reloaded with the value contained in
the Timer Load Register.
The timer is incremented every prescaler value+1. For example, if the prescaler has a value of five then
the global timer is incremented every six clock cycles. PERIPHCLK is the reference clock for this.
UNK/SBZP
Event flag
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-66
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.2 Private timer and watchdog registers
Timer mode When the Watchdog Counter Register reaches zero, the watchdog interrupt status event
flag is set and the interrupt ID 30 is set as pending in the Interrupt Distributor, if interrupt
generation is enabled in the Watchdog Control Register.
Watchdog If a software failure prevents the Watchdog Counter Register from being refreshed, the
mode Watchdog Counter Register reaches zero, the Watchdog reset status flag is set, and the
associated WDRESETREQ reset request output pin is asserted for one PERIPHCLK
cycle. The external reset source is then responsible for resetting all or part of the
Cortex-A9 MPCore design.
The following table shows the Watchdog Control Register bit assignments.
[31:16] - Reserved.
[15:8] Prescaler The prescaler modifies the clock period for the decrementing event for the Counter Register. See
4.1.1 Calculating timer intervals on page 4-63.
[7:4] - Reserved.
[2] IT Enable If set, the interrupt ID 30 is set as pending in the Interrupt Distributor when the event flag is set in the
watchdog Status Register.
In watchdog mode, this bit is ignored.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-67
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.2 Private timer and watchdog registers
Reserved
Event flag
The event flag is a sticky bit that is automatically set when the Counter Register reaches zero in timer
mode. If the watchdog interrupt is enabled, Interrupt ID 30 is set as pending in the Interrupt Distributor
after the event flag is set. The event flag is cleared when written with a value of 1. Trying to write a zero
to the event flag or a one when it is not set has no effect.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-68
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.2 Private timer and watchdog registers
Reserved
Reset flag
The reset flag is a sticky bit that is automatically set, in watchdog mode, when the Counter Register
reaches zero and a reset request is sent accordingly.
The reset flag is cleared when written with a value of 1. Trying to write a zero to the reset flag or a one
when it is not set has no effect. This flag is not reset by normal Cortex-A9 processor resets but has its
own reset line, nWDRESET. nWDRESET must not be asserted when the Cortex-A9 processor reset
assertion is the result of a watchdog reset request with WDRESETREQ. This distinction enables
software to differentiate between a normal boot sequence, reset flag is zero, and one caused by a previous
watchdog time-out, reset flag set to one.
Related references
4.2.8 Watchdog Control Register on page 4-67.
Related references
1.6 Interfaces on page 1-19.
A.2 Resets and reset control signals on page Appx-A-92.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-69
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.3 About the Global Timer
Note
• From r2p0, the comparators for each processor with the global timer fire when the timer value is
greater than or equal to. In previous revisions the comparators fired when the timer value was equal
to.
• The global timer does not stop counting when any of the processors are in debug state.
Related references
1.5 Private Memory Region on page 1-17.
2.2.9 SCU Non-secure Access Control Register on page 2-34.
3.1.2 Interrupt Distributor interrupt sources on page 3-48.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-70
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.4 Global timer registers
Procedure
1. Clear the timer enable bit in the Global Timer Control Register
2. Write the lower 32-bit timer counter register.
3. Write the upper 32-bit timer counter register.
i Some bits
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-71
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.4 Global timer registers
Procedure
1. Read the upper 32-bit timer counter register.
2. Read the lower 32-bit timer counter register.
3. Read the upper 32-bit timer counter register again. If the value is different to the 32-bit upper value
read previously, go to the previous step. Otherwise the 64-bit timer counter value is correct.
The following table shows the Global Timer Control Register bit assignments.
[31:16] - Reserved
[15:8] Prescaler The prescaler modifies the clock period for the decrementing event for the Counter Register. See
4.1.1 Calculating timer intervals on page 4-63 for the equation.
[7:4] - Reserved
j When the Auto-increment and Comp enable bits are set, an IRQ is generated every auto-increment register value.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-72
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.4 Global timer registers
UNK/SBZP
Event flag
Setting the Comp enable bit and the IRQ enable bit
Ensuring that updates to this register do not set the Interrupt Status Register.
Procedure
1. Clear the Comp Enable bit in the Timer Control Register.
2. Write the lower 32-bit Comparator Value Register.
3. Write the upper 32-bit Comparator Value Register.
4. Set the Comp Enable bit and, if necessary, the IRQ enable bit.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-73
Non-Confidential
4 Global timer, private timers, and watchdog registers
4.4 Global timer registers
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 4-74
Non-Confidential
Chapter 5
Clocks, Resets, and Power Management
This chapter describes the clocks, resets, and power management features of the Cortex-A9 MPCore.
It contains the following sections:
• 5.1 Clocks on page 5-76.
• 5.2 Resets on page 5-77.
• 5.3 Power management on page 5-81.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 5-75
Non-Confidential
5 Clocks, Resets, and Power Management
5.1 Clocks
5.1 Clocks
List of functional clock inputs of the processor and an example of the PERIPHCLK.
The Cortex-A9 MPCore processor does not have any asynchronous interfaces. Therefore, all the bus
interfaces and the interrupt signals must be synchronous with reference to CLK.
CLK
This is the main clock of the Cortex-A9 processor.
All Cortex-A9 processors in the Cortex-A9 MPCore processor and the SCU are clocked with a
distributed version of CLK.
PERIPHCLK
The Interrupt Controller, global timer, private timers, and watchdogs are clocked with
PERIPHCLK.
PERIPHCLK must be synchronous with CLK, and the PERIPHCLK clock period, N, must
be configured as a multiple of the CLK clock period. This multiple N must be equal to, or
greater than two.
PERIPHCLKEN
This is the clock enable signal for the Interrupt Controller and timers. The PERIPHCLKEN
signal is generated at CLK clock speed. PERIPHCLKEN HIGH on a CLK rising edge
indicates that there is a corresponding PERIPHCLK rising edge.
The following figure shows an example with the PERIPHCLK clock period N as three.
CLK
PERIPHCLK N=3
PERIPHCLKEN
Note
From r2p0 onwards, PERIPHCLK can remain inactive in cases when you do not use any of the
peripherals in the Private Memory Region.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 5-76
Non-Confidential
5 Clocks, Resets, and Power Management
5.2 Resets
5.2 Resets
The reset signals present in the Cortex-A9 MPCore processor design enable you to reset different parts of
the design independently.
This section contains the following subsections:
• 5.2.1 Reset combinations on page 5-77.
• 5.2.2 Cortex-A9 MPCore power-on reset on page 5-77.
• 5.2.3 Cortex-A9 MPCore software reset on page 5-78.
• 5.2.4 Individual processor power-on reset on page 5-78.
• 5.2.5 Individual processor software reset on page 5-79.
• 5.2.6 Individual processor power-on SIMD MPE reset on page 5-79.
• 5.2.7 Cortex-A9 MPCore debug reset on page 5-79.
• 5.2.8 Individual processor debug reset on page 5-80.
• 5.2.9 Individual processor watchdog flag reset on page 5-80.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 5-77
Non-Confidential
5 Clocks, Resets, and Power Management
5.2 Resets
Procedure
1. Apply all resets: nCPURESET, nDBGRESET, nWDRESET, nSCURESET, nPERIPHRESET,
and nNEONRESET if the SIMD MPE is present.
2. Apply at least nine CLK cycles, plus at least one cycle in each other clock domain, or more if the
documentation for other components requests it. There is no harm in applying more clock cycles than
this, and maximum redundancy can be achieved by applying 15 cycles on every clock domain.
3. Assert all CPUCLKOFF signals with a value of 0b1 and, if there is an SIMD MPE present, all
NEONCLKOFF.
4. Stop CLK and PERIPHCLK.
5. Wait for the equivalent of approximately ten cycles, depending on your implementation. This
compensates for clock and reset tree latencies.
6. Release resets.
7. Wait for the equivalent of another approximately ten cycles, again to compensate for clock and reset
tree latencies.
8. Deassert all CPUCLKOFF and NEONCLKOFF. This ensures that all registers in the design see the
same CLK edge on exit from the reset sequence.
9. Start CLK and PERIPHCLK.
Related tasks
Performing a reset sequence on power-on on page 5-78.
Procedure
1. Apply nCPURESET[n] and nDBGRESET[n], plus nNEONRESET[n] if the SIMD MPE is
present. nWDRESET[n] reset can also be applied optionally if you want to reset the corresponding
Watchdog flag.
2. Wait for at least nine CLK cycles, plus at least one cycle in each other clock domain, or more if the
documentation for other components requests it. There is no harm in applying more clock cycles than
this, and maximum redundancy can be achieved by for example applying 15 cycles on every clock
domain.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 5-78
Non-Confidential
5 Clocks, Resets, and Power Management
5.2 Resets
3. Assert CPUCLKOFF[n] with a value of 0b1 and, if there is a SIMD MPE present,
NEONCLKOFF[n].
4. Wait for the equivalent of approximately ten cycles, depending on your implementation. This
compensates for clock and reset tree latencies.
5. Release all resets.
6. Wait for the equivalent of another approximately ten cycles, again to compensate for clock and reset
tree latencies.
7. Deassert CPUCLKOFF[n] and NEONCLKOFF[n]. This ensures that all registers in the processor,
and in the SIMD MPE, see the same CLK edge on exit from the reset sequence.
Related tasks
Performing a power-on reset sequence on a single processor on page 5-78.
Procedure
1. Apply nNEONRESET[n].
2. Wait for at least nine CLK cycles. There is no harm in applying more clock cycles than this, and
maximum redundancy can be achieved by for example applying 15 cycles on every clock domain.
3. Assert NEONCLKOFF[n] with a value of 0b1.
4. Wait for the equivalent of approximately ten cycles, depending on your implementation. This
compensates for clock and reset tree latencies.
5. Release nNEONRESET[n].
6. Wait for the equivalent of approximately another ten cycles, again to compensate for clock and reset
tree latencies.
7. Deassert NEONCLKOFF[n]. This ensures that all registers in the SIMD MPE part of the processor
see the same CLK edge on exit from the reset sequence.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 5-79
Non-Confidential
5 Clocks, Resets, and Power Management
5.2 Resets
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 5-80
Non-Confidential
5 Clocks, Resets, and Power Management
5.3 Power management
Standby modes Powered-up Powered-up Standard Standby modes wake up events. See Standby modes
on page 5-82.
Only wake-up logic clocked
Dormant Powered-off Retention state/ External wake-up event to power controller, that can perform
voltage a reset of the processor.
Shutdown Powered-off Powered-off External wake-up event to power controller, that can perform
a reset of the processor.
Entry to Dormant or powered-off mode must be controlled through an external power controller. The
CPU Status Register in the SCU is used with the CPU WFI entry flag to signal to the power controller
the power domain that it can cut, using the PWRCTL bus.
Run mode
Run mode is the normal mode of operation, where all the functionality of the Cortex-A9 processor is
available.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 5-81
Non-Confidential
5 Clocks, Resets, and Power Management
5.3 Power management
Standby modes
WFI and WFE Standby modes disable most of the clocks in a processor, while keeping its logic powered
up. This reduces the power drawn to the static leakage current, leaving a tiny clock power overhead
requirement to enable the device to wake up.
Entry into WFI Standby mode is performed by executing the WFI instruction.
The transition from the WFI Standby mode to the Run mode is caused by:
• An IRQ interrupt, regardless of the value of the CSPR.I bit.
• An FIQ interrupt, regardless of the value of the CSPR.F bit.
• An asynchronous abort, regardless of the value of the CPSR.A bit.
• A debug event, if invasive debug is enabled and the debug event is permitted.
• A CP15 maintenance request broadcast by other processors.
Entry into WFE Standby mode is performed by executing the WFE instruction.
The transition from the WFE Standby mode to the Run mode is caused by:
• An IRQ interrupt, unless masked by the CPSR.I bit.
• An FIQ interrupt, unless masked by the CPSR.F bit.
• An asynchronous abort, unless masked by the CPSR.A bit.
• A debug event, if invasive debug is enabled and the debug event is permitted.
• The assertion of the EVENTI input signal.
• The execution of an SEV instruction on any processor in the multiprocessor system.
• A CP15 maintenance request broadcast by other processors.
The debug request can be generated by an externally generated debug request, using the EDBGRQ pin
on the Cortex-A9 processor, or from a Debug Halt instruction issued to the Cortex-A9 processor through
the APB debug port.
The debug channel remains active throughout a WFI instruction.
Note
When a processor in Standby mode receives an SCU coherency request, the clock on its L1 memory
system is restored temporarily so that the request can be handled. This mechanism prevents the
requirement for a processor about to enter Standby mode from having to flush its L1 data cache by
ensuring that its coherent data remain accessible by other processors.
Dormant mode
Dormant mode is designed to enable the Cortex-A9 processor to be powered down, while leaving the
caches powered up and maintaining their state.
The RAM blocks that are to remain powered up must be implemented on a separate power domain, and
there is a requirement to clamp all the inputs to the RAMs to a known logic level, with the chip enable
being held inactive. This clamping is not implemented in gates as part of the default synthesis flow
because it would contribute to a tight critical path. Implementations that want to implement Dormant
mode must add these clamps around the RAMs, either as explicit gates in the RAM power domain, or as
pull-down transistors that clamp the values while the Cortex-A9 processor is powered down. The RAM
blocks that must remain powered up during Dormant mode are:
• All Data RAMs associated with the cache.
• All Tag RAMs associated with the cache.
Before entering Dormant mode, the state of the Cortex-A9 processor, excluding the contents of the
RAMs that remain powered up in dormant mode, must be saved to external memory. These state saving
operations must ensure that the following occur:
• All ARM registers, including CPSR and SPSR registers are saved.
• All system registers are saved.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 5-82
Non-Confidential
5 Clocks, Resets, and Power Management
5.3 Power management
Related references
2.2.4 SCU CPU Power Status Register on page 2-29.
Shutdown mode
Shutdown mode has the entire device powered down, and all state, including cache, must be saved
externally by software.
The part is returned to the run state by the assertion of reset. This state saving is performed with
interrupts disabled, and finishes with a DSB operation. The Cortex-A9 processor then communicates
with a power controller that the device is ready to be powered down in the same manner as when
entering Dormant Mode.
Related references
2.2.4 SCU CPU Power Status Register on page 2-29.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 5-83
Non-Confidential
5 Clocks, Resets, and Power Management
5.3 Power management
Core0 Core1
NEON NEON
SIMD SIMD
Vmpe0 Vmpe0
Clamp Clamp
Clamp Clamp
Clamp/
SCU
Level shifter SCU logic + GIC + Timers/Watchdogs
RAMS
Vscuram Vscu
Procedure
1. Invalidate:
• The SCU duplicate tags for all processors.
• The data cache.
2. Enable the SCU.
3. Enable the data cache, set the SMP mode with ACTLR.SMP=1.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 5-84
Non-Confidential
5 Clocks, Resets, and Power Management
5.3 Power management
Procedure
1. Invalidate the data cache.
2. Wait for the SCU to be enabled by the primary processor.
3. Enable the data cache, set the SMP mode with ACTLR.SMP=1.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 5-85
Non-Confidential
Chapter 6
Debug
This chapter describes some of the debug and trace considerations in Cortex-A9 MPCore designs.
It contains the following sections:
• 6.1 External Debug Interface signals on page 6-87.
• 6.2 Cortex-A9 MPCore APB Debug interface and memory map on page 6-88.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 6-86
Non-Confidential
6 Debug
6.1 External Debug Interface signals
DBGEN[N:0] PADDRDBG[n:2]
SPIDEN[N:0] PSELDBG
NIDEN[N:0] PADDRDBG31
SPNIDEN[N:0] PENABLEDBG
PREADYDBG
PSLVERRDBG
COMMTX[N:0]
PWRITEDBG
COMMRX[N:0]
PWDATADBG[31:0]
Cortex-A9
PRDATADBG[31:0]
processor
DBGCPUDONE[N:0]
DBGACK[N:0] nDBGRESET[N:0]
EDBGRQ[N:0]
DBGRESTARTED[N:0] DBGROMADDR[31:12]
DBGRESTART[N:0] DBGROMADDRV
DBGSELFADDR[31:15]
DBGNOPWRDWN[N:0] DBGSELFADDRV
DBGSWENABLE[N:0]
A few signals on the Cortex-A9 MPCore debug interface are common to all Cortex-A9 processors in the
cluster. This is the case for the APB debug interface.
The CortexA9 MPCore external debug interface does not implement:
• DBGTRIGGER.
• DBGPWRDUP.
• DBGOSLOCKINIT.
Related references
6.2 Cortex-A9 MPCore APB Debug interface and memory map on page 6-88.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 6-87
Non-Confidential
6 Debug
6.2 Cortex-A9 MPCore APB Debug interface and memory map
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 6-88
Non-Confidential
6 Debug
6.2 Cortex-A9 MPCore APB Debug interface and memory map
Note
In this configuration, the external CoreSight system must ensure that the Cortex-A9 MPCore is never
accessed with PADDRDBG[14:13] = 11. When PADDRDBG[14:13] = 11, PSELDBG must not be
asserted.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. 6-89
Non-Confidential
Appendix A
Signal Descriptions
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-90
Non-Confidential
A Signal Descriptions
A.1 Clock and clock control signals
MAXCLKLATENCY[2:0] I Implementation-specific static Control dynamic clock gating delays. These pins are sampled
value during reset of the processor.
PERIPHCLK I Clock controller Clock for the timer and Interrupt Controller
PERIPHCLKEN I Clock controller Clock enable for the timer and Interrupt Controller
Related references
Chapter 5 Clocks, Resets, and Power Management on page 5-75.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-91
Non-Confidential
A Signal Descriptions
A.2 Resets and reset control signals
CPUCLKOFF[N:0] I Reset controller Individual Cortex-A9 processor CPU clock enable, active-LOW:
0 Clock is enabled.
1 Clock is stopped.
Related references
Chapter 5 Clocks, Resets, and Power Management on page 5-75.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-92
Non-Confidential
A Signal Descriptions
A.2 Resets and reset control signals
Related references
Chapter 4 Global timer, private timers, and watchdog registers on page 4-62.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-93
Non-Confidential
A Signal Descriptions
A.3 Interrupts
A.3 Interrupts
List of interrupt line signals.
The processor treats the nIRQ input as level sensitive. To guarantee that an interrupt is taken,
ensure the nIRQ input remains asserted until the processor acknowledges the interrupt.
The processor treats the nFIQ input as level sensitive. To guarantee that an interrupt is taken,
ensure the nFIQ input remains asserted until the processor acknowledges the interrupt.
nIRQOUT[N:0] O Power Active-LOW output of individual processor nIRQ from the Interrupt Controller. For use when
controller processors are powered off and interrupts are handled by the Interrupt Controller under the
control of an external power controller.
nFIQOUT[N:0] O Active-LOW output of individual processor nFIQ from the Interrupt Controller. For use when
processors are powered off and interrupts are handled by the Interrupt Controller under the
control of an external power controller.
Note
For IRQS[x:0], nIRQ[N:0], and nFIQ[N:0], the minimum pulse width of signals driving external
interrupt lines is one PERIPHCLK cycle.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-94
Non-Confidential
A Signal Descriptions
A.4 Configuration signals
FILTEREN I For use with configurations with two master ports. Enables filtering of address
ranges at reset. See 2.2.2 SCU Control Register on page 2-27 for information on
setting this signal.
FILTERSTART[31:20] I For use with configurations with two master ports. Specifies the start address for
address filtering at reset. See 2.2.6 Filtering Start Address Register on page 2-31.
FILTEREND[31:20] I For use with configurations with two master ports. Specifies the end address for
address filtering. See 2.2.7 Filtering End Address Register on page 2-32.
PERIPHBASE[31:13] I Specifies the base address for Timers, Watchdogs, Interrupt Controller, and SCU
registers. Only accessible with memory-mapped accesses. This value can be
retrieved by a Cortex-A9 processor using the CP15 c15 Configuration Base
Address Register.
SMPnAMP[N:0] O System integrity Signals AMP or SMP mode for each Cortex-A9 processor.
controller
0 Asymmetric.
1 Symmetric.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-95
Non-Confidential
A Signal Descriptions
A.4 Configuration signals
TEINIT[N:0] I System Individual Cortex-A9 processor out-of-reset default exception handling state.
configuration When set to:
0 ARM.
1 Thumb.
This pin is only sampled during reset of the processor. It sets the initial value of
SCTLR.TE.
VINITHI[N:0] I Individual Cortex-A9 processor control of the location of the exception vectors at
reset:
0 Exception vectors start at address 0x00000000.
1 Exception vectors start at address 0xFFFF0000.
This pin is only sampled during reset of the processor. It sets the initial value of
SCTLR.V.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-96
Non-Confidential
A Signal Descriptions
A.5 Security control signals
CFGSDISABLE I Security controller Disables write access to some system control processor registers:
0 Not enabled.
1 Enabled.
CP15SDISABLE[N:0] I Individual Cortex-A9 processor write access disable for some system control
processor registers.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-97
Non-Confidential
A Signal Descriptions
A.6 WFE and WFI Standby signals
EVENTI I External coherent agent Event input for Cortex-A9 processor to wake up from WFE Standby mode.
EVENTO O Event output. This signal is active when one SEV instruction is executed.
Related concepts
5.3.1 Individual Cortex-A9 processor power management on page 5-81.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-98
Non-Confidential
A Signal Descriptions
A.7 Power management signals
PWRCTLI0[1:0] I Reset value for CPU0 status field, bits [1:0] of SCU CPU Power Status
Register.
PWRCTLI1[1:0] I Reset value for CPU1 status field, bits [9:8] of SCU CPU Power Status
Register.
PWRCTLI2[1:0] I Reset value for CPU2 status field, bits [17:16] of SCU CPU Power Status
Register.
PWRCTLI3[1:0] I Reset value for CPU3 status field, bits [25:24] of SCU CPU Power Status
Register.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-99
Non-Confidential
A Signal Descriptions
A.7 Power management signals
SCUIDLE O L2C-310 or power In the case of the L2C-310, the SCUIDLE output of the Cortex-A9 MPCore
controller can be connected to the STOPCLK input of the L2C-310.
Related references
2.2.4 SCU CPU Power Status Register on page 2-29.
5.3.2 Communication to the Power Management Controller on page 5-83.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-100
Non-Confidential
A Signal Descriptions
A.8 AXI interfaces
AWIDM0[5:0] O Request ID
See AWIDMx[5:0] encodings on page 2-38.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-101
Non-Confidential
A Signal Descriptions
A.8 AXI interfaces
AWLENM0[3:0] O L2C-310 or other system AXI The number of data transfers that can occur within each burst.
devices
AWLOCKM0[1:0] O Lock type.
WIDM0[5:0] O Write ID
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-102
Non-Confidential
A Signal Descriptions
A.8 AXI interfaces
In the case of reads from the ACP, the burst type can also be FIXED
(BURST = 00) and this value can be forwarded onto the AXI Master0
port.
Other values are Reserved.
ARIDM0[5:0] O Request ID
See ARIDMx[5:0] encodings on page 2-37.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-103
Non-Confidential
A Signal Descriptions
A.8 AXI interfaces
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-104
Non-Confidential
A Signal Descriptions
A.8 AXI interfaces
RIDM0[5:0] I Read ID
INCLKENM0 I Clock Clock enable for the AXI bus that enables the AXI interface to operate at either:
controller • Integer ratios of the system clock.
• Half integer ratios of the system clock.
See 1.6 Interfaces on page 1-19.
OUTCLKENM0 I Clock enable for the AXI bus that enables the AXI interface to operate at either:
• Integer ratios of the system clock.
• Half integer ratios of the system clock.
See 1.6 Interfaces on page 1-19.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-105
Non-Confidential
A Signal Descriptions
A.8 AXI interfaces
AWIDS[2:0] I Request ID
AWLENS[3:0] I The number of data transfers that can occur within each burst.
[0] shared.
See 2.3.4 AXI USER attributes encodings on page 2-38.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-106
Non-Confidential
A Signal Descriptions
A.8 AXI interfaces
WIDS[2:0] I Write ID
ARIDS[2:0] I Request ID
ARLENS[3:0] I The number of data transfers that can occur within each burst.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-107
Non-Confidential
A Signal Descriptions
A.8 AXI interfaces
RIDS[2:0] O Read ID
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-108
Non-Confidential
A Signal Descriptions
A.8 AXI interfaces
ACLKENS I Clock controller Bus clock enable. See 2.4.2 ACP interface clocking on page 2-44.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-109
Non-Confidential
A Signal Descriptions
A.9 Performance monitoring signals
PMUEVENTn[57:0] O Performance Monitoring Unit Performance Monitoring Unit event bus for CPUn.
(PMU) or External Performance
The Cortex®-A9 Technical Reference Manual describes the signals and
Monitoring Unit
events.
PMUIRQ[N:0] O System Integrity Controller or Interrupt requests by system metrics, one per Cortex-A9 processor.
External Performance
Monitoring unit
PMUSECURE[N:0] O External Performance Gives the security status of the Cortex-A9 processor:
Monitoring unit
0 In Non-secure state.
1 In Secure state.
This signal does not provide input to the CoreSight Trace delivery
infrastructure.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-110
Non-Confidential
A Signal Descriptions
A.10 Exception flags signals
DEFLAGSn[6:0] O System integrity Data Engine output flags. Only implemented if the Cortex-A9 processor includes a Data
controller Engine.
If the DE is NEON SIMD unit:
• Bit[6] gives the value of FPSCR[27]
• Bit[5] gives the value of FPSCR[7]
• Bits[4:0] give the value of FPSCR[4;0].
If the DE is FPU:
• Bit[6] is zero.
• Bit[5] gives the value of FPSCR[7]
• Bits[4:0] give the value of FPSCR[4;0].
SCUEVABORT O Indicates an external abort has occurred during a coherency writeback. SCUEVABORT
is a pulse signal that is asserted for one CLK clock cycle.
For additional information on the FPSCR, see the ARM® Cortex®-A9 Floating-Point Unit (FPU)
Technical Reference Manual and the ARM® Cortex®-A9 NEON™ Media Processing Engine Technical
Reference Manual.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-111
Non-Confidential
A Signal Descriptions
A.11 Parity error signals
PARITYFAILn[7:0] O System integrity Parity output pin from the RAM array for Cortex-A9 processor n.
controller
Indicates a parity fail:
0 No parity fail.
1 Parity fail.
PARITYFAILSCU[N:0] O Parity output pin from the SCU tag RAMs. ORed output from each Cortex-A9
processor present in the design.
PARITYSCU are pulse signals that are asserted for one CLK clock cycle.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-112
Non-Confidential
A Signal Descriptions
A.12 MBIST interface
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-113
Non-Confidential
A Signal Descriptions
A.13 Scan test signal
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-114
Non-Confidential
A Signal Descriptions
A.14 External Debug interface
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-115
Non-Confidential
A Signal Descriptions
A.14 External Debug interface
PADDRDBG[x:2] I CoreSight APB device Programming address. The width of x:2 depends on the configuration:
[12:2] A uniprocessor or multiprocessor configuration with a single Cortex-A9
processor.
[13:2] A multiprocessor configuration with two Cortex-A9 processors.
[14:2] A multiprocessor configuration with three or four Cortex-A9
processors.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-116
Non-Confidential
A Signal Descriptions
A.14 External Debug interface
DBGRESTART[N:0] I Causes the core to exit from Debug state. It must be held HIGH
until DBGRESTARTED is deasserted.
0 Not enabled.
1 Enabled.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-117
Non-Confidential
A Signal Descriptions
A.14 External Debug interface
DBGSWENABLE[N:0] I When LOW only the external debug agent can modify debug registers.
0 Not enabled.
1 Enabled. Access by the software through the extended cp14
interface is permitted. External cp14 and external debug accesses
are permitted.
DBGROMADDR[31:12] I CoreSight System Specifies bits [31:12] of the ROM table physical address.
configuration
If the address cannot be determined tie off this signal to zero.
DBGSELFADDR[31:15] I Specifies bits [31:15] of the two’s complement signed offset from the
ROM Table physical address to the physical address where the debug
registers are memory-mapped.
If the offset cannot be determined tie off this signal to zero.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-118
Non-Confidential
A Signal Descriptions
A.15 PTM interface signals
WPTFIFOEMPTYn O PTM device There are no speculative waypoints in the PTM interface FIFO.
WPTENABLEn I Enable waypoint. When set, enables the Cortex-A9 processor to output
waypoints.
WPTFLUSHn O Flush signal from core exception FIFO. All as yet uncommitted waypoints are
flushed.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-119
Non-Confidential
A Signal Descriptions
A.15 PTM interface signals
WPTnSECUREn O PTM device Instructions following the waypoint are executed in Non-secure state. An
instruction is in Non-secure state if the NS bit is set and the processor is not in
secure monitor mode.
WPTT32LINKn O Indicates the size of the last executed address when in Thumb state:
0 16-bit instruction.
1 32-bit instruction.
WPTTAKENn O The waypoint passed its condition codes. The address is still used, irrespective
of the value of this signal.
Must be set for all waypoints except branch.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-120
Non-Confidential
A Signal Descriptions
A.15 PTM interface signals
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-A-121
Non-Confidential
Appendix B
Revisions
This appendix describes the technical changes between released issues of this book.
It contains the following sections:
• B.1 Revisions on page Appx-B-123.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-B-122
Non-Confidential
B Revisions
B.1 Revisions
B.1 Revisions
Changes between each issue of this book.
Change Location
First release -
Change Location
Clarify the relationship between the GIC (PL390) and the Chapter 3 Interrupt Controller on page 3-47.
Cortex-A9 Interrupt Controller
Clarify the role of the SCU with reference to data coherency 2.1 About the SCU on page 2-25.
and the non-support of instruction cache coherency
Added information about exclusive accesses and address 2.2.2 SCU Control Register on page 2-27
filtering
SSAC description corrected 2.2.9 SCU Non-secure Access Control Register on page 2-34.
SSAC bit assignments corrected 2.2.9 SCU Non-secure Access Control Register on page 2-34.
Change STI, Software Triggered Interrupt, to SGI, Software Throughout Chapter 3 Interrupt Controller on page 3-47.
Generated Interrupt
INTID descriptions extended and clarified Throughout Chapter 3 Interrupt Controller on page 3-47.
Reset information added 4.2.1 Private timer and watchdog register summary on page 4-64
AXI transaction IDs section extended 2.3.3 AXI transaction IDs on page 2-37
AXI USER encodings section added 2.3.4 AXI USER attributes encodings on page 2-38
EVENTI information extended and EVENTO information 2.5 Event communication with an external agent using WFE/SEV
added on page 2-46
Change Location
New entries in the Private Memory map 4.2 Private timer and watchdog registers on page 4-64
Timers and watchdogs renamed Private timers and watchdogs 4.2 Private timer and watchdog registers on page 4-64
TLB size added as a configurable option 1.3 Configurable options on page 1-15.
Timing diagrams added 2.3.7 AXI master interface clocking on page 2-41
CPUCLKOFF and DECLKOFF added to Power-on reset 5.2.2 Cortex-A9 MPCore power-on reset on page 5-77 and A.
4 Configuration signals on page Appx-A-95.
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-B-123
Non-Confidential
B Revisions
B.1 Revisions
Change Location
Correction to Tag RAM sizes values 2.2.3 SCU Configuration Register on page 2-28
Change in SCU Power Status Register layout 2.2.4 SCU CPU Power Status Register on page 2-29
Additional PPI. There are five PPIs per Cortex-A9 processor 3.1.2 Interrupt Distributor interrupt sources on page 3-48
interface
PPI(4) added to the PPI Status Register 3.3.9 PPI Status Register on page 3-56.
INT renamed IRQS 3.3.10 SPI Status Registers on page 3-57. A.3 Interrupts
on page Appx-A-94.
Chapter 5 renamed. It was “Private timers and Watchdog Chapter 4 Global timer, private timers, and watchdog registers
Registers”. on page 4-62.
AXI descriptions corrected and extended A.8 AXI interfaces on page Appx-A-101.
AWLOCKS[1:0] corrected to AWLOCKS[0]. Write address signals for AXI ACP on page Appx-A-105.
Performance monitoring signals extended and new signals A.9 Performance monitoring signals on page Appx-A-110.
added.
SCUEVABORT moved to Performance Monitoring from A.9 Performance monitoring signals on page Appx-A-110.
Parity error signals section.
Change Location
Global timer re-positioned. Other timers re-named private 1.1.2 Example configuration on page 1-12
timers.
Table 1-1 AXI master interface attributes moved 2.3.1 AXI issuing capabilities on page 2-36
Table 1-2 ARID encodings moved 2.3.3 AXI transaction IDs on page 2-37
Table 1-3 AWIDMx encodings moved 2.3.3 AXI transaction IDs on page 2-37
Compliance content moved and extended 1.7.1 About Cortex-A9 MPCore coherency on page 1-20
Configurable options includes Preload Engine options and 1.3 Configurable options on page 1-15
ARM_BIST
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-B-124
Non-Confidential
B Revisions
B.1 Revisions
Change Location
Private Memory Region content re-arranged. Table added 1.5 Private Memory Region on page 1-17
Figure 1-2 moved 6.1 External Debug Interface signals on page 6-87
Figure 1-3 Three-to-one timing ratio moved 5.1 Clocks on page 5-76
Figure 1-4 moved Timing diagram for INCLKEN with three-to-two ratio on page 2-41
Figure 1-5 moved Timing diagram for INCLKEN with five-to-two ratio on page 2-41
Figure 1-6 moved Timing diagram for OUTCLKEN with three-to-two ratio
on page 2-41
Figure 1-7 moved Timing diagram for OUTCLKEN with five-to-two ratio on page 2-42
Figure 1-8 moved Timing diagram for OUTCLKEN with five-to-two ratio on page 2-42
Figure 1-9 moved and renamed 5.3.3 Cortex-A9 MPCore power domains on page 5-83
Table 1-7 Configurable options moved 1.3 Configurable options on page 1-15
Table 1-8 PADDRDBG width replaced and extended 6.2 Cortex-A9 MPCore APB Debug interface and memory map
on page 6-88
Table 1-9 Cortex-A9 MPCore reset signals moved 5.2.1 Reset combinations on page 5-77
Table 1-10 Cortex-A9 MPCore power modes moved 5.3.1 Individual Cortex-A9 processor power management
on page 5-81
Table 2-1 Cortex-A9 MPCore memory region moved 1.5 Private Memory Region on page 1-17
ACP behavior description moved and extended 2.4 Accelerator Coherency Port on page 2-43
Snoop Control Unit chapter updated and extended to include Chapter 2 Snoop Control Unit on page 2-24
detailed interface descriptions
Table 3-1 SCU registers summary moved and corrected 2.2.1 SCU register summary on page 2-26
Table 3-2 moved and retitled 2.2.2 SCU Control Register on page 2-27
Figure 3-1 SCU Control Register format moved and retitled 2.2.2 SCU Control Register on page 2-27
Table 3-3 moved and retitled 2.2.3 SCU Configuration Register on page 2-28
Figure 3-2 moved and retitled 2.2.3 SCU Configuration Register on page 2-28
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-B-125
Non-Confidential
B Revisions
B.1 Revisions
Change Location
Table 3-4 moved and retitled 2.2.4 SCU CPU Power Status Register on page 2-29
Figure 3-3 moved and retitled 2.2.4 SCU CPU Power Status Register on page 2-29
Table 3-5 moved and retitled 2.2.5 SCU Invalidate All Registers in Secure State Register
on page 2-31
Figure 3-5 SCU Invalidate All Registers in Secure state format 2.2.5 SCU Invalidate All Registers in Secure State Register
moved on page 2-31
Table 3-6 moved 2.2.5 SCU Invalidate All Registers in Secure State Register
on page 2-31
Figure 3-6 moved 2.2.6 Filtering Start Address Register on page 2-31
Table 3-7 moved 2.2.6 Filtering Start Address Register on page 2-31
Figure 3-7 moved 2.2.7 Filtering End Address Register on page 2-32
Table 3-8 moved 2.2.7 Filtering End Address Register on page 2-32
Figure 3-8 moved 2.2.8 SCU Access Control Register (SAC) on page 2-33
Table 3-9 2.2.8 SCU Access Control Register (SAC) on page 2-33
Figure 3-9 renamed and moved 2.2.9 SCU Non-secure Access Control Register on page 2-34
Table 3-10 2.2.9 SCU Non-secure Access Control Register on page 2-34
Removal of content that repeats GIC Architecture content Chapter 3 Interrupt Controller on page 3-47
4.2 TrustZone® support renamed and specification content 3.2 Security extensions support on page 3-50
removed
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-B-126
Non-Confidential
B Revisions
B.1 Revisions
Change Location
Chapter 5 Timer and Watchdog Registers updated and corrected Chapter 4 Global timer, private timers, and watchdog registers
on page 4-62
5.1 About the timer and watchdog blocks renamed 4.1 About the private timer and watchdog blocks on page 4-63
Table 5-1 moved 4.2.1 Private timer and watchdog register summary on page 4-64
5.2 Timer and watchdog registers moved and renamed 4.2.1 Private timer and watchdog register summary on page 4-64
Note about private timer behavior added below Table 4-1 4.2.1 Private timer and watchdog register summary on page 4-64
Corrections to Timer Control Register section 4.2.4 Private Timer Control Register on page 4-65
Corrections to Timer Interrupt Status Register 4.2.5 Private Timer Interrupt Status Register on page 4-66
Clarification of behavior in relation to Interrupt ID 29 4.2.5 Private Timer Interrupt Status Register on page 4-66
Comparator Value Registers, 0x10 and 0x14 moved and 4.4.5 Comparator Value Registers, 0x10 and 0x14 on page 4-73
corrected
Auto-increment Register, 0x18 moved and corrected 4.4.6 Auto-increment Register, 0x18 on page 4-73
5.3 About the Global Timer moved and corrected 4.3 About the Global Timer on page 4-70
Global Timer Control Register section added 4.4.3 Global Timer Control Register on page 4-72
Global Timer Interrupt Status Register added 4.4.4 Global Timer Interrupt Status Register on page 4-73
Signals lists updated Source or destination column added to all signal lists
nNEONRESET[N:0] replaces nDERESET[N:0] A.2 Resets and reset control signals on page Appx-A-92
Duplicated AXI user encodings removed A.8.1 AXI Master0 signals on page Appx-A-101
Speculative read interface signals section added Speculative read interface signals for M0 on page Appx-A-104
[4:0] in AWUSERS[4:0] corrected to [4:1] Write address signals for AXI ACP on page Appx-A-105
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-B-127
Non-Confidential
B Revisions
B.1 Revisions
Change Location
NEON SIMD unit replaces MPE A.9 Performance monitoring signals on page Appx-A-110
DEFLAGS and SCUEVABORT have a separate table A.10 Exception flags signals on page Appx-A-111
MBISTBE[31:0] becomes MBISTBE[32:0] A.12.2 MBIST interface signals with parity support
on page Appx-A-113
Description of DBGSWENABLE[N:0] amended A.14.4 Miscellaneous debug interface signals on page Appx-A-117
WPTCOMMITn bits corrected to [1:0] A.15 PTM interface signals on page Appx-A-119
Symmetric configurations corrected to uniform configurations 1.1 About the Cortex-A9 MPCore processor on page 1-12
Tag RAMs renamed to Cache line directory 1.1.2 Example configuration on page 1-12
Coherency description reworded for clarity 1.7.1 About Cortex-A9 MPCore coherency on page 1-20
SCU control register corrections 2.2.2 SCU Control Register on page 2-27
Note about theoretical maximums added 2.3.1 AXI issuing capabilities on page 2-36
Corrections to INCR values 2.3.2 Cortex-A9 MPCore AXI transactions on page 2-37
Data linefill buffer corrected 2.3.3 AXI transaction IDs on page 2-37
Clarification about ratios added 2.3.7 AXI master interface clocking on page 2-41
Register names aligned with GIC Architecture names Chapter 3 Interrupt Controller on page 3-47
Access description corrected 3.1 About the Interrupt Controller on page 3-48
Corrected information about interrupt sources 3.1.2 Interrupt Distributor interrupt sources on page 3-48
Paragraph about single processor designs moved 3.3.7 Interrupt Processor Targets Registers on page 3-56
Interrupt Configuration Registers section added 3.3.8 Interrupt Configuration Registers on page 3-56
Values column added to Table 3-5 3.3.4 Distributor Implementer Identification Register on page 3-55
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-B-128
Non-Confidential
B Revisions
B.1 Revisions
Address offset sentence below Figure 3-6 removed 3.3.10 SPI Status Registers on page 3-57
Description of prescaler added to features list 4.1 About the private timer and watchdog blocks on page 4-63
PERIPHCLK added as reference clock 4.2.4 Private Timer Control Register on page 4-65
Global timer behavior feature added 4.3 About the Global Timer on page 4-70
Comparator register offsets added 4.4.5 Comparator Value Registers, 0x10 and 0x14 on page 4-73
Lead processor replaced by primary processor 5.3.4 About multiprocessor bring-up on page 5-84
Missing [N:0] added to signal names A.2 Resets and reset control signals on page Appx-A-92
Signal descriptions corrected A.6 WFE and WFI Standby signals on page Appx-A-98
STATIC replaced by FIXED Write address signals for AXI Master0 on page Appx-A-101
ARLENM0[3:0] corrected, repeated AXI information removed Read address signals on page Appx-A-103
ARLOCKM0[1:0] corrected, repeated AXI information removed Read address signals on page Appx-A-103
AWBURSTS[1:0] corrected, repeated AXI information removed Write address signals for AXI ACP on page Appx-A-105
AWLENS[3:0] description expanded and corrected Write address signals for AXI ACP on page Appx-A-105
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-B-129
Non-Confidential
B Revisions
B.1 Revisions
Correct section title for Read address signals Read address signals on page Appx-A-103 All releases
ACP interface clocking moved to Accelerator 2.4.2 ACP interface clocking on page 2-44- All releases
Coherency Port Section
Correct description of Read address channel Read address channel signals on page Appx-A-107 All releases
Correct description of Clock enable slave Clock enable slave signal on page Appx-A-108 All releases
signal
Power management standby modes section Standby modes on page 5-82 All releases
updated
Update interrupt controller behavior 3.1.4 Cortex-A9 MPCore 1-N interrupt model handling on page 3-49 All releases
Update AXI master interface timing diagrams 2.3.7 AXI master interface clocking on page 2-41 All releases
Updated SCU register summary table to 2.2.1 SCU register summary on page 2-26 All releases
include security state
Updated information about Tag RAM sizes 2.2.3 SCU Configuration Register on page 2-28 All releases
Updated description of SCU Invalidate All 2.2.5 SCU Invalidate All Registers in Secure State Register on page 2-31 All releases
Registers in Secure State
Updated description of SAC and SNSAC 2.2.8 SCU Access Control Register (SAC) on page 2-33 and 2.2.9 SCU All releases
Non-secure Access Control Register on page 2-34
Updated description of ACP functional ACP functional limitations on page 2-44 All releases
limitations
Updated interrupt controller description 3.1 About the Interrupt Controller on page 3-48 All releases
3.1.2 Interrupt Distributor interrupt sources on page 3-48
3.1.3 Interrupt Distributor arbitration on page 3-49
Updated ICDDCR usage constraints 3.3.2 Distributor Control Register on page 3-52 All releases
Updated SCU CPU Power Status Register 2.2.4 SCU CPU Power Status Register on page 2-29 All releases
reset value
Updated configuration options for TLB, BTAC and GHB sizes, and the 1.3 Configurable options on page 1-15 r4p0
number of entries in the Instruction micro TLB
Updated Interrupt Priority Registers in Distributor register summary 3.3.1 Distributor register summary on page 3-51 All releases
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-B-130
Non-Confidential
B Revisions
B.1 Revisions
MPE comment made into footnote. 1.3 Configurable options on page 1-15 r4p1
FPU comment made into footnote. 1.3 Configurable options on page 1-15 r4p1
Support for parity error detection comment made into 1.3 Configurable options on page 1-15 r4p1
footnote.
PERIPHBASE[31:13] Reserved Description updated 1.5 Private Memory Region on page 1-17 r4p1
SCU enable parameter descriptions corrected. 2.2.2 SCU Control Register on page 2-27 r4p1
CPU3 comment made into footnote. 2.2.8 SCU Access Control Register (SAC) on page 2-33 r4p1
SNSAC register bit assignment labelling corrected 2.2.8 SCU Access Control Register (SAC) on page 2-33 r4p1
SNSAC register bit assignments CPU0 description, 2.2.8 SCU Access Control Register (SAC) on page 2-33 r4p1
footnote added.
ARUSERMx[0] parameter description corrected 2.3.4 AXI USER attributes encodings on page 2-38 r4p1
ICDISRn Distributor Register Summary comment made 3.3.1 Distributor register summary on page 3-51 r4p1
into footnote.
ICDICFRn Distributor Register Summary comment made 3.3.1 Distributor register summary on page 3-51 r4p1
footnote.
Usage constraints description added. 3.3.2 Distributor Control Register on page 3-52 r4p1
ICDICTR IT lines number encoding 0b00000 comment 3.3.2 Distributor Control Register on page 3-52 r4p1
made into footnote
Processor Interface Register summary 0x01C footnote 3.4.1 Processor interface register summary on page 3-60 r4p1
added.
Column added to show the registers that are banked. 4.4.1 Global timer register summary on page 4-71 r4p1
Auto Increment and Comp Enable bits fotnotes added. 4.4.2 Global Timer Counter Registers, 0x00 and 0x04 r4p1
on page 4-71
Stop CLK and PERIPHCLK step added. 5.2.2 Cortex-A9 MPCore power-on reset on page 5-77 r4p1
Start CLK and PERIPHCLK step added. 5.2.2 Cortex-A9 MPCore power-on reset on page 5-77 r4p1
PWRCTL11[1:0], PWRCTL12[N:0] and A.7 Power management signals on page Appx-A-99 r4p1
PWRCTL13[N:0] descriptions corrected.
NEONCLAMP[N:0] comment made into footnote. A.7 Power management signals on page Appx-A-99 r4p1
ABURSTM0[1:0] signal description corrected. A.8.1 AXI Master0 signals on page Appx-A-101 r4p1
MBISTBE[32:0] signal corrected to MBISTDE[63:0] A.12.2 MBIST interface signals with parity support r4p1
on page Appx-A-113
MBISTBE[25:0] signal corrected to MBISTDE[63:0] A.12.3 MBIST interface signals without parity r4p1
on page Appx-A-113
ARM 100486_0401_10_en Copyright © 2008-2012, 2016 ARM. All rights reserved. Appx-B-131
Non-Confidential