Cortex™-A9 Technical Reference Manual

Revision: r2p2


Table of Contents

Preface
About this manual
Product revision status
Intended audience
Using this manual
Conventions
Typographical
Timing diagrams
Signals
Additional reading
ARM publications
Other publications
Feedback
Feedback on this product
Feedback on this book
1. Introduction
1.1. About the Cortex-A9 processor
1.1.1. Data Engine
1.1.2. System design components
1.2. Cortex-A9 variants
1.3. Compliance
1.4. Features
1.5. Interfaces
1.6. Configurable options
1.7. Test features
1.8. Product documentation, design flow, and architecture
1.8.1. Documentation
1.8.2. Design flow
1.8.3. Architecture and protocol information
1.9. Product revisions
1.9.1. Differences in functionality between r0p0 and r0p1
1.9.2. Differences in functionality between r0p1 and r1p0
1.9.3. Differences in functionality between r1p0 and r2p0
1.9.4. Differences in functionality between r2p0 and r2p1
1.9.5. Differences in functionality between r2p1 and r2p2
2. Functional Description
2.1. About the functions
2.1.1. Register renaming
2.1.2. Instruction queue
2.1.3. Dynamic branch prediction
2.1.4. PTM interface
2.1.5. Performance monitoring
2.1.6. Virtualization of interrupts
2.2. Interfaces
2.2.1. Program Flow Trace and the Program Trace Macrocell interface
2.3. Clocking and resets
2.3.1. Synchronous clocking
2.3.2. Reset
2.3.3. Dynamic high level clock gating
2.4. Power management
2.4.1. Energy efficiency features
2.4.2. Cortex-A9 processor power control
2.4.3. Power domains
2.4.4. Cortex-A9 voltage domains
2.5. Constraints and limitations of use
3. Programmers Model
3.1. About the programmers model
3.2. ThumbEE architecture
3.3. Advanced SIMD architecture
3.4. Security Extensions architecture
3.4.1. System boot sequence
3.5. Multiprocessing Extensions
3.6. The Jazelle Extension
3.7. Memory model
3.8. Addresses in the Cortex-A9 processor
4. System Control
4.1. About system control
4.1.1. Deprecated registers
4.2. Register summary
4.3. Register descriptions
4.3.1. CP15 c0 register summary
4.3.2. TLB Type Register
4.3.3. Multiprocessor Affinity Register
4.3.4. Cache Size Identification Register
4.3.5. Cache Level ID Register
4.3.6. Auxiliary ID Register
4.3.7. Cache Size Selection Register
4.3.8. CP15 c1 register summary
4.3.9. System Control Register
4.3.10. Auxiliary Control Register
4.3.11. Coprocessor Access Control Register
4.3.12. Secure Debug Enable Register
4.3.13. Non-secure Access Control Register
4.3.14. Virtualization Control Register
4.3.15. CP15 c2 register summary
4.3.16. CP15 c3 register summary
4.3.17. CP15 c4, not used
4.3.18. CP15 c5 register summary
4.3.19. CP15 c6 register summary
4.3.20. CP15 c7 register summary
4.3.21. CP15 c8 register summary
4.3.22. CP15 c9 register summary
4.3.23. CP15 c10 register summary
4.3.24. TLB Lockdown Register
4.3.25. CP15 c11 register summary
4.3.26. PLE ID Register
4.3.27. PLE Activity Status Register
4.3.28. PLE FIFO Status Register
4.3.29. Preload Engine User Accessibility Register
4.3.30. Preload Engine Parameters Control Register
4.3.31. CP15 c12 register summary
4.3.32. Virtualization Interrupt Register
4.3.33. CP15 c13 register summary
4.3.34. CP15 c14, not used
4.3.35. CP15 c15 register summary
4.3.36. Power Control Register
4.3.37. NEON busy Register
4.3.38. Configuration Base Address Register
4.3.39. TLB lockdown operations
5. Jazelle DBX registers
5.1. About coprocessor CP14
5.2. CP14 Jazelle register summary
5.3. CP14 Jazelle register descriptions
5.3.1. Jazelle ID Register
5.3.2. Jazelle Operating System Control Register
5.3.3. Jazelle Main Configuration Register
5.3.4. Jazelle Parameters Register
5.3.5. Jazelle Configurable Opcode Translation Table Register
6. Memory Management Unit
6.1. About the MMU
6.1.1. Memory Management Unit
6.2. TLB Organization
6.2.1. Micro TLB
6.2.2. Main TLB
6.3. Memory Access Sequence
6.4. MMU enabling or disabling
6.5. External aborts
6.5.1. External aborts on data read or write
6.5.2. Synchronous and asynchronous aborts
7. Level 1 Memory System
7.1. About the L1 memory system
7.1.1. Memory system
7.2. Security Extensions support
7.3. About the L1 instruction side memory system
7.3.1. Enabling program flow prediction
7.3.2. Program flow prediction
7.4. About the L1 data side memory system
7.4.1. Local Monitor
7.4.2. External aborts handling
7.5. About DSB
7.6. Data prefetching
7.6.1. The PLD instruction
7.6.2. Data prefetching and monitoring
7.7. Parity error support
7.7.1. GHB and BTAC data corruption
8. Level 2 Memory Interface
8.1. Cortex-A9 L2 interface
8.1.1. About the Cortex-A9 L2 interface
8.1.2. AXI transaction IDs
8.1.3. AXI USER bits
8.1.4. Exclusive L2 cache
8.2. Optimized accesses to the L2 memory interface
8.2.1. Prefetch hint to the L2 memory interface
8.2.2. Early BRESP
8.2.3. Write full line of zeros
8.2.4. Speculative coherent requests
8.3. STRT instructions
9. Preload Engine
9.1. About the Preload Engine
9.2. PLE control register descriptions
9.3. PLE operations
9.3.1. Preload Engine FIFO flush operation
9.3.2. Preload Engine pause channel operation
9.3.3. Preload Engine resume channel operation
9.3.4. Preload Engine kill channel operation
9.3.5. PLE Program New Channel operation
10. Debug
10.1. About the debug interface
10.1.1. Debugging modes
10.1.2. Breakpoints and watchpoints
10.1.3. Asynchronous aborts
10.1.4. Processor interfaces
10.1.5. Effects of resets on debug registers
10.2. About the Cortex-A9 debug interface
10.2.1. Debug register access
10.3. Debug register descriptions
10.3.1. Debug State Cache Control Register (DBGDSCCR)
10.3.2. Breakpoint Value Registers
10.3.3. Breakpoint Control Registers
10.3.4. Watchpoint Value Registers
10.3.5. Watchpoint Control Registers
10.4. Debug management registers
10.4.1. Processor ID Registers
10.4.2. CoreSight Identification Registers
10.5. External debug interface
10.5.1. Authentication signals
10.5.2. Changing the authentication signals
10.5.3. Debug APB interface
10.5.4. External debug request interface
11. Performance Monitoring Unit
11.1. About the Performance Monitoring Unit
11.2. PMU management registers
11.2.1. Processor ID Registers
11.2.2. CoreSight Identification Registers
11.2.3. PMU APB interface
11.3. Performance monitoring events
11.3.1. Cortex-A9 specific events
A. Signal Descriptions
A.1. Clock and clock control signals
A.2. Resets and reset control
A.3. Interrupts
A.4. Configuration signals
A.5. Standby and Wait For Event signals
A.6. Power management signals
A.7. AXI interfaces
A.7.1. AXI Master0 signals data accesses
A.7.2. AXI Master1 signals instruction accesses
A.8. Performance monitoring signals
A.9. Exception flags signal
A.10. Parity signal
A.11. MBIST interface
A.12. Scan test signal
A.13. External Debug interface
A.13.1. Authentication interface
A.13.2. APB interface signals
A.13.3. CTI signals
A.13.4. Miscellaneous debug interface signals
A.14. PTM interface signals
B. Instruction Cycle Timings
B.1. About instruction cycle timing
B.2. Data-processing instructions
B.3. Load and store instructions
B.4. Multiplication instructions
B.5. Branch instructions
B.6. Serializing instructions
B.6.1. Serializing instructions
C. Revisions
Glossary

List of Figures

1. Key to timing diagram conventions
1.1. Cortex-A9 uniprocessor system.
2.1. Cortex-A9 processor top-level diagram
2.2. PTM interface signals
2.3. ACLKENM0 used with a 3:1 clock ratio
2.4. Power domains for Cortex-A9 r2 designs
4.1. TLBTR bit assignments
4.2. MPIDR bit assignments
4.3. CCSIDR bit assignments
4.4. CLIDR bit assignments
4.5. CSSELR bit assignments
4.6. SCTLR bit assignments
4.7. ACTLR bit assignments
4.8. CPACR bit assignments
4.9. SDER bit assignments
4.10. NSACR bit assignments
4.11. VCR bit assignments
4.12. TLB Lockdown Register bit assignments
4.13. PLEIDR bit assignments
4.14. PLEASR bit assignments
4.15. PLESFR bit assignments
4.16. PLEUAR bit assignments
4.17. PLEPCR bit assignments
4.18. VIR bit assignments
4.19. Power Control Register bit assignments
4.20. NEON busy register bit assignments
4.21. Configuration Base Address Register bit assignments
4.22. Lockdown TLB index bit assignments
4.23. TLB VA Register bit assignments
4.24. Memory space identifier format
4.25. TLB PA Register bit assignments
4.26. Main TLB Attributes Register bit assignments
5.1. JIDR bit assignment
5.2. JOSCR bit assignments
5.3. JMCR bit assignments
5.4. Jazelle Parameters Register bit assignments
5.5. Jazelle Configurable Opcode Translation Table Register bit assignments
7.1. Branch prediction and instruction cache
7.2. Parity support
9.1. Program new channel operation bit assignments
10.1. Debug registers interface and CoreSight infrastructure
10.2. Breakpoint Control Registers bit assignments
10.3. Watchpoint Control Registers bit assignments
10.4. External debug interface signals
10.5. Debug request restart-specific connections

List of Tables

1.1. Configurable options for the Cortex-A9 processor
2.1. Reset modes
2.2. Cortex-A9 processor power modes
3.1. Address types in the processor system
4.1. Summary of CP15 system control coprocessor registers
4.2. c0 system control registers
4.3. TLBTR bit assignments
4.4. MPIDR bit assignments
4.5. CCSIDR bit assignments
4.6. CLIDR bit assignments
4.7. CSSELR bit assignments
4.8. c1 system control registers
4.9. SCTLR bit assignments
4.10. ACTLR bit assignments
4.11. CPACR bit assignments
4.12. SDER bit assignments
4.13. NSACR bit assignments
4.14. VCR bit assignments
4.15. c2 system control registers
4.16. c3 system control register
4.17. c5 system control registers
4.18. c6 system control registers
4.19. c7 system control registers
4.20. c8 system control registers
4.21. c9 system control registers
4.22. c10 system control registers
4.23. TLB Lockdown Register bit assignments
4.24. c11 system control registers
4.25. PLEIDR bit assignments
4.26. PLEASR bit assignments
4.27. PLESFR bit assignments
4.28. PLEUAR bit assignments
4.29. PLEPCR bit assignments
4.30. c12 system control registers
4.31. Virtualization Interrupt Register bit assignments
4.32. c13 system control registers
4.33. c15 system control registers
4.34. Power Control Register bit assignments
4.35. Neon busy Register bit assignments
4.36. TLB lockdown operations
4.37. TLB VA Register bit assignments
4.38. TLB PA Register bit assignments
4.39. TLB Attributes Register bit assignments
5.1. CP14 Jazelle registers summary
5.2. JIDR bit assignments
5.3. JOSCR bit assignments
5.4. JMCR bit assignments
5.5. Jazelle Parameters Register bit assignments
5.6. Jazelle Configurable Opcode Translation Table Register bit assignments
8.1. AXI master 0 interface attributes
8.2. AXI master 1 interface attributes
8.3. ARUSERM0[6:0] encodings
8.4. ARUSERM1[6:0] encodings
8.5. ARUSERM0[8:0] encodings
8.6. Cortex-A9 mode and AxPROT values
9.1. PLE program new channel operation bit assignments
10.1. CP14 interface registers
10.2. BVRs and corresponding BCRs
10.3. Breakpoint Value Registers bit functions
10.4. Breakpoint Control Registers bit assignments
10.5. Meaning of BVR bits [22:20]
10.6. WVRs and corresponding WCRs
10.7. Watchpoint Value Registers bit functions
10.8. Watchpoint Control Registers bit assignments
10.9. Debug management registers
10.10. Processor Identifier Registers
10.11. Peripheral Identification Registers
10.12. Component Identification Registers
10.13. Authentication signal restrictions
10.14. PMU register names and Debug APB interface addresses
11.1. Performance monitoring instructions and Debug APB mapping
11.2. PMU Management registers
11.3. Processor Identifier Registers
11.4. Peripheral Identification Registers
11.5. Component Identification Registers
11.6. PMU register names and APB addresses
11.7. Cortex-A9 specific events
A.1. Clock and clock control signals for Cortex-A9
A.2. Cortex-A9 processor reset signals
A.3. Interrupt line signals
A.4. Configuration signals
A.5. CP15SDISABLE signal
A.6. Standby and wait for event signals
A.7. Power management signals
A.8. AXI-AW signals for AXI Master0
A.9. AXI-W signals for AXI Master0
A.10. AXI-B signals for AXI Master0
A.11. AXI-AR signals for AXI Master0
A.12. AXI-R signals for AXI Master0
A.13. AXI Master0 clock enable signal
A.14. AXI-AR signals for AXI Master1
A.15. AXI-R signals for AXI Master1
A.16. AXI Master1 clock enable signal
A.17. Performance monitoring signals
A.18. Event signals and event numbers
A.19. DEFLAGS signal
A.20. Parity signal
A.21. MBIST interface signals
A.22. MBIST signals with parity support implemented
A.23. MBIST signals without parity support implemented
A.24. Scan test signal
A.25. Authentication interface signals
A.26. APB interface signals
A.27. CTI signals
A.28. Miscellaneous debug signals
A.29. PTM interface signals
B.1. Data-processing instructions cycle timings
B.2. Single load and store operation cycle timings
B.3. Load multiple operations cycle timings
B.4. Store multiple operations cycle timings
B.5. Multiplication instruction cycle timings
C.1. Issue A
C.2. Differences between issue A and issue B
C.3. Differences between issue B and issue C
C.4. Differences between issue C and issue D
C.5. Differences between issue D and issue F

Proprietary Notice

Words and logos marked with ® or ™ are registered trademarks or trademarks of ARM® in the EU and other countries, except as otherwise stated below in this proprietary notice. Other brands and names mentioned herein may be the trademarks of their respective owners.

Neither the whole nor any part of the information contained in, or the product described in, this document may be adapted or reproduced in any material form except with the prior written permission of the copyright holder.

The product described in this document is subject to continuous developments and improvements. All particulars of the product and its use contained in this document are given by ARM in good faith. However, all warranties implied or expressed, including but not limited to implied warranties of merchantability, or fitness for purpose, are excluded.

This document is intended only to assist the reader in the use of the product ARM shall not be liable for any loss or damage arising from the use of any information in this document, or any error or omission in such information, or any incorrect use of the product.

Where the term ARM is used it means “ARM or any of its subsidiaries as appropriate”.

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.

Product Status

The information in this document is final, that is for a developed product.

Revision History
Revision A31 March 2008First release for r0p0
Revision B08 July 2008First release for r0p1
Revision C17 December 2008First release for r1p0
Revision D30 September 2009First release for r2p0
Revision E27 November 2009Second release for r2p0
Revision F30 April 2010First release for r2p2
Copyright © 2008-2010 ARM. All rights reserved.ARM DDI 0388F
Non-ConfidentialID050110