- •Contents
- •List of Tables
- •List of Figures
- •Preface
- •About this manual
- •Product revision status
- •Intended audience
- •Using this manual
- •Conventions
- •Additional reading
- •Feedback
- •Feedback on the product
- •Feedback on this book
- •Introduction
- •1.1 About the processor
- •1.2 Extensions to ARMv6
- •1.3 TrustZone security extensions
- •1.4.1 Instruction compression
- •1.4.2 The Thumb instruction set
- •1.4.3 Java bytecodes
- •1.5 Components of the processor
- •1.5.1 Integer core
- •1.5.2 Load Store Unit (LSU)
- •1.5.3 Prefetch unit
- •1.5.4 Memory system
- •1.5.5 AMBA AXI interface
- •1.5.6 Coprocessor interface
- •1.5.7 Debug
- •1.5.8 Instruction cycle summary and interlocks
- •1.5.9 System control
- •1.5.10 Interrupt handling
- •1.6 Power management
- •1.7 Configurable options
- •1.8 Pipeline stages
- •1.9 Typical pipeline operations
- •1.9.1 Instruction progression
- •1.10.1 Extended ARM instruction set summary
- •1.10.2 Thumb instruction set summary
- •1.11 Product revisions
- •Programmer’s Model
- •2.1 About the programmer’s model
- •2.2.1 TrustZone model
- •2.2.2 How the Secure model works
- •2.2.3 TrustZone write access disable
- •2.2.4 Secure Monitor bus
- •2.3 Processor operating states
- •2.3.1 Switching state
- •2.3.2 Interworking ARM and Thumb state
- •2.4 Instruction length
- •2.5 Data types
- •2.6 Memory formats
- •2.7 Addresses in a processor system
- •2.8 Operating modes
- •2.9 Registers
- •2.9.1 The ARM state core register set
- •2.9.2 The Thumb state core register set
- •2.9.3 Accessing high registers in Thumb state
- •2.9.4 ARM state and Thumb state registers relationship
- •2.10 The program status registers
- •2.10.1 The condition code flags
- •2.10.2 The Q flag
- •2.10.4 The GE[3:0] bits
- •2.10.7 The control bits
- •2.10.8 Modification of PSR bits by MSR instructions
- •2.10.9 Reserved bits
- •2.11 Additional instructions
- •2.11.1 Load or Store Byte Exclusive
- •2.11.2 Load or Store Halfword Exclusive
- •2.11.3 Load or Store Doubleword
- •2.11.4 CLREX
- •2.12 Exceptions
- •2.12.1 New instructions for exception handling
- •2.12.2 Exception entry and exit summary
- •2.12.3 Entering an ARM exception
- •2.12.4 Leaving an ARM exception
- •2.12.5 Reset
- •2.12.6 Fast interrupt request
- •2.12.7 Interrupt request
- •2.12.8 Low interrupt latency configuration
- •2.12.9 Interrupt latency example
- •2.12.10 Aborts
- •2.12.11 Imprecise Data Abort mask in the CPSR/SPSR
- •2.12.12 Supervisor call instruction
- •2.12.13 Secure Monitor Call (SMC)
- •2.12.14 Undefined instruction
- •2.12.15 Breakpoint instruction (BKPT)
- •2.12.16 Exception vectors
- •2.12.17 Exception priorities
- •2.13 Software considerations
- •2.13.1 Branch Target Address Cache flush
- •2.13.2 Waiting for DMA to complete
- •System Control Coprocessor
- •3.1 About the system control coprocessor
- •3.1.1 System control coprocessor functional groups
- •3.1.2 System control and configuration
- •3.1.3 MMU control and configuration
- •3.1.4 Cache control and configuration
- •3.1.5 TCM control and configuration
- •3.1.6 Cache Master Valid Registers
- •3.1.7 DMA control
- •3.1.8 System performance monitor
- •3.1.9 System validation
- •3.1.10 Use of the system control coprocessor
- •3.2 System control processor registers
- •3.2.1 Register allocation
- •3.2.2 c0, Main ID Register
- •3.2.3 c0, Cache Type Register
- •3.2.4 c0, TCM Status Register
- •3.2.5 c0, TLB Type Register
- •3.2.6 c0, CPUID registers
- •3.2.7 c1, Control Register
- •3.2.8 c1, Auxiliary Control Register
- •3.2.9 c1, Coprocessor Access Control Register
- •3.2.10 c1, Secure Configuration Register
- •3.2.11 c1, Secure Debug Enable Register
- •3.2.13 c2, Translation Table Base Register 0
- •3.2.14 c2, Translation Table Base Register 1
- •3.2.15 c2, Translation Table Base Control Register
- •3.2.16 c3, Domain Access Control Register
- •3.2.17 c5, Data Fault Status Register
- •3.2.18 c5, Instruction Fault Status Register
- •3.2.19 c6, Fault Address Register
- •3.2.20 c6, Watchpoint Fault Address Register
- •3.2.21 c6, Instruction Fault Address Register
- •3.2.22 c7, Cache operations
- •3.2.23 c8, TLB Operations Register
- •3.2.24 c9, Data and instruction cache lockdown registers
- •3.2.25 c9, Data TCM Region Register
- •3.2.26 c9, Instruction TCM Region Register
- •3.2.29 c9, TCM Selection Register
- •3.2.30 c9, Cache Behavior Override Register
- •3.2.31 c10, TLB Lockdown Register
- •3.2.32 c10, Memory region remap registers
- •3.2.33 c11, DMA identification and status registers
- •3.2.34 c11, DMA User Accessibility Register
- •3.2.35 c11, DMA Channel Number Register
- •3.2.36 c11, DMA enable registers
- •3.2.37 c11, DMA Control Register
- •3.2.38 c11, DMA Internal Start Address Register
- •3.2.39 c11, DMA External Start Address Register
- •3.2.40 c11, DMA Internal End Address Register
- •3.2.41 c11, DMA Channel Status Register
- •3.2.42 c11, DMA Context ID Register
- •3.2.44 c12, Monitor Vector Base Address Register
- •3.2.45 c12, Interrupt Status Register
- •3.2.46 c13, FCSE PID Register
- •3.2.47 c13, Context ID Register
- •3.2.48 c13, Thread and process ID registers
- •3.2.49 c15, Peripheral Port Memory Remap Register
- •3.2.51 c15, Performance Monitor Control Register
- •3.2.52 c15, Cycle Counter Register
- •3.2.53 c15, Count Register 0
- •3.2.54 c15, Count Register 1
- •3.2.55 c15, System Validation Counter Register
- •3.2.56 c15, System Validation Operations Register
- •3.2.57 c15, System Validation Cache Size Mask Register
- •3.2.58 c15, Instruction Cache Master Valid Register
- •3.2.59 c15, Data Cache Master Valid Register
- •3.2.60 c15, TLB lockdown access registers
- •Unaligned and Mixed-endian Data Access Support
- •4.2 Unaligned access support
- •4.2.1 Legacy support
- •4.2.2 ARMv6 extensions
- •4.2.3 Legacy and ARMv6 configurations
- •4.2.4 Legacy data access in ARMv6 (U=0)
- •4.2.5 Support for unaligned data access in ARMv6 (U=1)
- •4.2.6 ARMv6 unaligned data access restrictions
- •4.3 Endian support
- •4.3.1 Load unsigned byte, endian independent
- •4.3.2 Load signed byte, endian independent
- •4.3.3 Store byte, endian independent
- •4.4 Operation of unaligned accesses
- •4.5.1 Legacy fixed instruction and data endianness
- •4.5.3 Reset values of the U, B, and EE bits
- •4.6.1 All load and store operations
- •4.7 Instructions to change the CPSR E bit
- •Program Flow Prediction
- •5.1 About program flow prediction
- •5.2 Branch prediction
- •5.2.1 Enabling program flow prediction
- •5.2.2 Dynamic branch predictor
- •5.2.3 Static branch predictor
- •5.2.4 Branch folding
- •5.2.5 Incorrect predictions and correction
- •5.3 Return stack
- •5.4 Memory Barriers
- •5.4.1 Instruction Memory Barriers (IMBs)
- •5.5.1 Execution of IMB instructions
- •Memory Management Unit
- •6.1 About the MMU
- •6.2 TLB organization
- •6.2.1 MicroTLB
- •6.2.2 Main TLB
- •6.2.3 TLB control operations
- •6.2.5 Supersections
- •6.3 Memory access sequence
- •6.3.1 TLB match process
- •6.3.2 Virtual to physical translation mapping restrictions
- •6.4 Enabling and disabling the MMU
- •6.4.1 Enabling the MMU
- •6.4.2 Disabling the MMU
- •6.4.3 Behavior with MMU disabled
- •6.5 Memory access control
- •6.5.1 Domains
- •6.5.2 Access permissions
- •6.5.3 Execute never bits in the TLB entry
- •6.6 Memory region attributes
- •6.6.1 C and B bit, and type extension field encodings
- •6.6.2 Shared
- •6.6.3 NS attribute
- •6.7 Memory attributes and types
- •6.7.1 Normal memory attribute
- •6.7.2 Device memory attribute
- •6.7.3 Strongly Ordered memory attribute
- •6.7.4 Ordering requirements for memory accesses
- •6.7.5 Explicit Memory Barriers
- •6.7.6 Backwards compatibility
- •6.8 MMU aborts
- •6.8.1 External aborts
- •6.9 MMU fault checking
- •6.9.1 Fault checking sequence
- •6.9.2 Alignment fault
- •6.9.3 Translation fault
- •6.9.4 Access bit fault
- •6.9.5 Domain fault
- •6.9.6 Permission fault
- •6.9.7 Debug event
- •6.10 Fault status and address
- •6.11 Hardware page table translation
- •6.11.2 ARMv6 page table translation subpage AP bits disabled
- •6.11.3 Restrictions on page table mappings page coloring
- •6.12 MMU descriptors
- •Level One Memory System
- •7.1 About the level one memory system
- •7.2 Cache organization
- •7.2.1 Features of the cache system
- •7.2.2 Cache functional description
- •7.2.3 Cache control operations
- •7.2.4 Cache miss handling
- •7.2.5 Cache disabled behavior
- •7.2.6 Unexpected hit behavior
- •7.3.1 TCM behavior
- •7.3.2 Restriction on page table mappings
- •7.3.3 Restriction on page table attributes
- •7.5 TCM and cache interactions
- •7.5.1 Overlapping between TCM regions
- •7.5.2 DMA and core access arbitration
- •7.5.3 Instruction accesses to TCM
- •7.5.4 Data accesses to the Instruction TCM
- •7.6 Write buffer
- •Level Two Interface
- •8.1 About the level two interface
- •8.1.1 AXI parameters for the level 2 interconnect interfaces
- •8.2 Synchronization primitives
- •8.2.3 Example of LDREX and STREX usage
- •8.3 AXI control signals in the processor
- •8.3.1 Channel definition
- •8.3.2 Signal name suffixes
- •8.3.3 Address channel signals
- •8.4 Instruction Fetch Interface transfers
- •8.4.1 Cacheable fetches
- •8.4.2 Noncacheable fetches
- •8.5 Data Read/Write Interface transfers
- •8.5.1 Linefills
- •8.5.2 Noncacheable LDRB
- •8.5.3 Noncacheable LDRH
- •8.5.4 Noncacheable LDR or LDM1
- •8.5.5 Noncacheable LDRD or LDM2
- •8.5.6 Noncacheable LDM3
- •8.5.7 Noncacheable LDM4
- •8.5.8 Noncacheable LDM5
- •8.5.9 Noncacheable LDM6
- •8.5.10 Noncacheable LDM7
- •8.5.11 Noncacheable LDM8
- •8.5.12 Noncacheable LDM9
- •8.5.13 Noncacheable LDM10
- •8.5.14 Noncacheable LDM11
- •8.5.15 Noncacheable LDM12
- •8.5.16 Noncacheable LDM13
- •8.5.17 Noncacheable LDM14
- •8.5.18 Noncacheable LDM15
- •8.5.19 Noncacheable LDM16
- •8.6 Peripheral Interface transfers
- •8.7 Endianness
- •8.8 Locked access
- •Clocking and Resets
- •9.1 About clocking and resets
- •9.2 Clocking and resets with no IEM
- •9.2.1 Processor clocking with no IEM
- •9.2.2 Reset with no IEM
- •9.3 Clocking and resets with IEM
- •9.3.1 Processor clocking with IEM
- •9.3.2 Reset with IEM
- •9.4 Reset modes
- •9.4.1 Power-on reset
- •9.4.2 CP14 debug logic
- •9.4.3 Processor reset
- •9.4.4 DBGTAP reset
- •9.4.5 Normal operation
- •Power Control
- •10.1 About power control
- •10.2 Power management
- •10.2.1 Run mode
- •10.2.2 Standby mode
- •10.2.3 Shutdown mode
- •10.2.4 Dormant mode
- •10.2.5 Communication to the Power Management Controller
- •10.3 Intelligent Energy Management
- •10.3.1 Purpose of IEM
- •10.3.2 Structure of IEM
- •10.3.3 Operation of IEM
- •Coprocessor Interface
- •11.1 About the coprocessor interface
- •11.2 Coprocessor pipeline
- •11.2.1 Coprocessor instructions
- •11.2.2 Coprocessor control
- •11.2.3 Pipeline synchronization
- •11.2.4 Pipeline control
- •11.2.5 Instruction tagging
- •11.2.6 Flush broadcast
- •11.3 Token queue management
- •11.3.1 Queue implementation
- •11.3.2 Queue modification
- •11.3.3 Queue flushing
- •11.4 Token queues
- •11.4.1 Instruction queue
- •11.4.2 Length queue
- •11.4.3 Accept queue
- •11.4.4 Cancel queue
- •11.4.5 Finish queue
- •11.5 Data transfer
- •11.5.1 Loads
- •11.5.2 Stores
- •11.6 Operations
- •11.6.1 Normal operation
- •11.6.2 Cancel operations
- •11.6.3 Bounce operations
- •11.6.4 Flush operations
- •11.6.5 Retirement operations
- •11.7 Multiple coprocessors
- •11.7.1 Interconnect considerations
- •11.7.2 Coprocessor selection
- •11.7.3 Coprocessor switching
- •Vectored Interrupt Controller Port
- •12.1 About the PL192 Vectored Interrupt Controller
- •12.2 About the processor VIC port
- •12.2.1 Synchronization of the VIC port signals
- •12.2.2 Interrupt handler exit
- •12.3 Timing of the VIC port
- •12.3.1 PL192 VIC timing
- •12.3.2 Core timing
- •12.4 Interrupt entry flowchart
- •Debug
- •13.1 Debug systems
- •13.1.1 The debug host
- •13.1.2 The protocol converter
- •13.1.3 The processor
- •13.2 About the debug unit
- •13.2.3 Secure Monitor mode and debug
- •13.2.4 Virtual addresses and debug
- •13.2.5 Programming the debug unit
- •13.3 Debug registers
- •13.3.1 Accessing debug registers
- •13.3.2 CP14 c0, Debug ID Register (DIDR)
- •13.3.3 CP14 c1, Debug Status and Control Register (DSCR)
- •13.3.4 CP14 c5, Data Transfer Registers (DTR)
- •13.3.5 CP14 c6, Watchpoint Fault Address Register (WFAR)
- •13.3.6 CP14 c7, Vector Catch Register (VCR)
- •13.3.10 CP14 c112-c113, Watchpoint Control Registers (WCR)
- •13.3.11 CP14 c10, Debug State Cache Control Register
- •13.3.12 CP14 c11, Debug State MMU Control Register
- •13.4 CP14 registers reset
- •13.5 CP14 debug instructions
- •13.5.1 Executing CP14 debug instructions
- •13.6 External debug interface
- •13.7 Changing the debug enable signals
- •13.8 Debug events
- •13.8.1 Software debug event
- •13.8.2 External debug request signal
- •13.8.3 Halt DBGTAP instruction
- •13.8.4 Behavior of the processor on debug events
- •13.8.5 Effect of a debug event on CP15 registers
- •13.9 Debug exception
- •13.10 Debug state
- •13.10.1 Behavior of the PC in Debug state
- •13.10.2 Interrupts
- •13.10.3 Exceptions
- •13.11 Debug communications channel
- •13.12 Debugging in a cached system
- •13.12.1 Data cache writes
- •13.13 Debugging in a system with TLBs
- •13.14 Monitor debug-mode debugging
- •13.14.1 Entering the debug monitor target
- •13.14.2 Setting breakpoints, watchpoints, and vector catch debug events
- •13.14.3 Setting software breakpoint debug events (BKPT)
- •13.14.4 Using the debug communications channel
- •13.15 Halting debug-mode debugging
- •13.15.1 Entering Debug state
- •13.15.2 Exiting Debug state
- •13.15.3 Programming debug events
- •13.16 External signals
- •Debug Test Access Port
- •14.1 Debug Test Access Port and Debug state
- •14.2 Synchronizing RealView ICE
- •14.3 Entering Debug state
- •14.4 Exiting Debug state
- •14.5 The DBGTAP port and debug registers
- •14.6 Debug registers
- •14.6.1 Bypass register
- •14.6.2 Device ID code register
- •14.6.3 Instruction register
- •14.6.4 Scan chain select register (SCREG)
- •14.6.5 Scan chains
- •14.6.6 Reset
- •14.7 Using the Debug Test Access Port
- •14.7.1 Entering and leaving Debug state
- •14.7.2 Executing instructions in Debug state
- •14.7.3 Using the ITRsel IR instruction
- •14.7.4 Transferring data between the host and the core
- •14.7.5 Using the debug communications channel
- •14.7.6 Target to host debug communications channel sequence
- •14.7.7 Host to target debug communications channel
- •14.7.8 Transferring data in Debug state
- •14.7.9 Example sequences
- •14.8 Debug sequences
- •14.8.1 Debug macros
- •14.8.2 General setup
- •14.8.3 Forcing the processor to halt
- •14.8.4 Entering Debug state
- •14.8.5 Leaving Debug state
- •14.8.8 Reading the CPSR/SPSR
- •14.8.9 Writing the CPSR/SPSR
- •14.8.10 Reading the PC
- •14.8.11 Writing the PC
- •14.8.12 General notes about reading and writing memory
- •14.8.13 Reading memory as words
- •14.8.14 Writing memory as words
- •14.8.15 Reading memory as halfwords or bytes
- •14.8.16 Writing memory as halfwords/bytes
- •14.8.17 Coprocessor register reads and writes
- •14.8.18 Reading coprocessor registers
- •14.8.19 Writing coprocessor registers
- •14.9 Programming debug events
- •14.9.1 Reading registers using scan chain 7
- •14.9.2 Writing registers using scan chain 7
- •14.9.3 Setting breakpoints, watchpoints and vector traps
- •14.9.4 Setting software breakpoints
- •14.10 Monitor debug-mode debugging
- •14.10.1 Receiving data from the core
- •14.10.2 Sending data to the core
- •Trace Interface Port
- •15.1 About the ETM interface
- •15.1.1 Instruction interface
- •15.1.2 Secure control bus
- •15.1.3 Data address interface
- •15.1.4 Data value interface
- •15.1.5 Pipeline advance interface
- •15.1.6 Coprocessor interface
- •15.1.7 Other connections to the core
- •Cycle Timings and Interlock Behavior
- •16.1 About cycle timings and interlock behavior
- •16.1.1 Changes in instruction flow overview
- •16.1.2 Instruction execution overview
- •16.1.3 Conditional instructions
- •16.1.4 Opposite condition code checks
- •16.1.5 Definition of terms
- •16.2 Register interlock examples
- •16.3 Data processing instructions
- •16.3.1 Cycle counts if destination is not PC
- •16.3.2 Cycle counts if destination is the PC
- •16.3.3 Example interlocks
- •16.4 QADD, QDADD, QSUB, and QDSUB instructions
- •16.6 ARMv6 Sum of Absolute Differences (SAD)
- •16.6.1 Example interlocks
- •16.7 Multiplies
- •16.8 Branches
- •16.9 Processor state updating instructions
- •16.10 Single load and store instructions
- •16.10.1 Base register update
- •16.11 Load and Store Double instructions
- •16.12 Load and Store Multiple Instructions
- •16.12.1 Load and Store Multiples, other than load multiples including the PC
- •16.12.2 Load Multiples, where the PC is in the register list
- •16.12.3 Example Interlocks
- •16.13 RFE and SRS instructions
- •16.14 Synchronization instructions
- •16.15 Coprocessor instructions
- •16.16 SVC, SMC, BKPT, Undefined, and Prefetch Aborted instructions
- •16.17 No operation
- •16.18 Thumb instructions
- •AC Characteristics
- •17.1 Processor timing diagrams
- •17.2 Processor timing parameters
- •Signal Descriptions
- •A.1 Global signals
- •A.2 Static configuration signals
- •A.3 TrustZone internal signals
- •A.4 Interrupt signals, including VIC interface
- •A.5 AXI interface signals
- •A.5.1 Instruction read port signals
- •A.5.2 Data port signals
- •A.5.3 Peripheral port signals
- •A.5.4 DMA port signals
- •A.6 Coprocessor interface signals
- •A.7 Debug interface signals, including JTAG
- •A.8 ETM interface signals
- •A.9 Test signals
- •B.1 About the differences between the ARM1136J-S and ARM1176JZ-S processors
- •B.2 Summary of differences
- •B.2.1 TrustZone
- •B.2.2 ARMv6k extensions support
- •B.2.3 Power management
- •B.2.4 SmartCache
- •B.2.7 Tightly-Coupled Memories
- •B.2.8 Fault Address Register
- •B.2.9 Fault Status Register
- •B.2.10 Prefetch Unit
- •B.2.11 System control coprocessor operations
- •B.2.13 Debug
- •B.2.14 Level two interface
- •B.2.15 Memory BIST
- •Revisions
- •Glossary
System Control Coprocessor
3.2System control processor registers
This section gives details of all the registers in the system control coprocessor. The section presents a summary of the registers and detailed descriptions in register order of CRn, Opcode_1, CRm, Opcode_2.
You can access CP15 registers with MRC and MCR instructions:
MCR{cond} P15,<Opcode_1>,<Rd>,<CRn>,<CRm>,<Opcode_2>
MRC{cond} P15,<Opcode_1>,<Rd>,<CRn>,<CRm>,<Opcode_2>
3.2.1Register allocation
Table 3-2 on page 3-15 lists the allocation and reset values of the registers of the system control coprocessor where:
•CRn is the register number within CP15
•Op1 is the Opcode_1 value for the register
•CRm is the operational register
•Op2 is the Opcode_2 value for the register.
•Type applies to the Secure, S, or the Non-secure, NS, world and is:
—B, registers banked in Secure and Non-secure worlds. If the registers are not banked then they are common to both worlds or only accessible in one world.
—NA, no access
—RO, read-only access
—RO, read-only access in privileged modes only
—R/W, read/write access
—R/W, read/write access in privileged modes only
—WO, write-only access
—WO, write-only access in privileged modes only
—X, access depends on another register or external signal.
ARM DDI 0333H |
Copyright © 2004-2009 ARM Limited. All rights reserved. |
3-14 |
ID012410 |
Non-Confidential, Unrestricted Access |
|
System Control Coprocessor
Table 3-2 Summary of CP15 registers and operations
CRn |
Op1 |
CRm |
Op2 |
Register or operation |
S type |
NS |
Reset |
Page |
|
type |
value |
||||||||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
c0 |
0 |
c0 |
0 |
Main ID |
RO |
RO |
0x41xFB76xa |
page 3-20 |
|
|
|
|
1 |
Cache Type |
RO |
RO |
0x10152152b |
page 3-21 |
|
|
|
|
2 |
TCM Status |
RO |
RO |
0x00020002c |
page 3-24 |
|
|
|
|
3 |
TLB Type |
RO |
RO |
0x00000800 |
page 3-25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c1 |
0 |
Processor Feature 0 |
RO |
RO |
0x00000111 |
page 3-27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Processor Feature 1 |
RO |
RO |
0x00000011 |
page 3-28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Debug Feature 0 |
RO |
RO |
0x00000033 |
page 3-29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
Auxiliary Feature 0 |
RO |
RO |
0x00000000 |
page 3-30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
Memory Model Feature 0 |
RO |
RO |
0x01130003 |
page 3-31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
Memory Model Feature 1 |
RO |
RO |
0x10030302 |
page 3-32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
Memory Model Feature 2 |
RO |
RO |
0x01222100 |
page 3-34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
Memory Model Feature 3 |
RO |
RO |
0x00000000 |
page 3-35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c2 |
0 |
Instruction Set Feature |
RO |
RO |
0x00140011 |
page 3-36 |
|
|
|
|
|
Attribute 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Instruction Set Feature |
RO |
RO |
0x12002111 |
page 3-38 |
|
|
|
|
|
Attribute 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Instruction Set Feature |
RO |
RO |
0x11231121 |
page 3-39 |
|
|
|
|
|
Attribute 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
Instruction Set Feature |
RO |
RO |
0x01102131 |
page 3-40 |
|
|
|
|
|
Attribute 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
Instruction Set Feature |
RO |
RO |
0x00001141 |
page 3-42 |
|
|
|
|
|
Attribute 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
Instruction Set Feature |
RO |
RO |
0x00000000 |
page 3-43 |
|
|
|
|
|
Attribute 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6-7 |
Reserved |
- |
- |
- |
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
c3-c7 |
- |
Reserved |
- |
- |
- |
- |
|
|
|
|
|
|
|
|
|
|
|
c1 |
0 |
c0 |
0 |
Control |
R/W, Bd, X |
R/W |
0x00050078e |
page 3-44 |
|
|
|
|
1 |
Auxiliary Control |
R/W |
RO |
0x00000007 |
page 3-49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Coprocessor Access Control |
R/W |
R/W |
0x00000000 |
page 3-51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c1 |
0 |
Secure Configuration |
R/W |
NA |
0x00000000 |
page 3-52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Secure Debug Enable |
R/W |
NA |
0x00000000 |
page 3-54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Non-Secure Access Control |
R/W |
RO |
0x00000000 |
page 3-55 |
ARM DDI 0333H |
Copyright © 2004-2009 ARM Limited. All rights reserved. |
3-15 |
ID012410 |
Non-Confidential, Unrestricted Access |
|
System Control Coprocessor
Table 3-2 Summary of CP15 registers and operations (continued)
CRn |
Op1 |
CRm |
Op2 |
Register or operation |
S type |
NS |
Reset |
Page |
|
type |
value |
||||||||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
c2 |
0 |
c0 |
0 |
Translation Table Base 0 |
R/W, B, X |
R/W |
0x00000000 |
page 3-57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Translation Table Base 1 |
R/W, B |
R/W |
0x00000000 |
page 3-59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Translation Table Base Control |
R/W, B, X |
R/W |
0x00000000 |
page 3-61 |
|
|
|
|
|
|
|
|
|
|
|
c3 |
0 |
c0 |
0 |
Domain Access Control |
R/W, B, X |
R/W |
0x00000000 |
page 3-63 |
|
|
|
|
|
|
|
|
|
|
|
c4 |
|
|
|
Not used |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c5 |
0 |
c0 |
0 |
Data Fault Status |
R/W, B |
R/W |
0x00000000 |
page 3-64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Instruction Fault Status |
R/W, B |
R/W |
0x00000000 |
page 3-66 |
|
|
|
|
|
|
|
|
|
|
|
c6 |
0 |
c0 |
0 |
Fault Address |
R/W, B |
R/W |
0x00000000 |
page 3-68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Watchpoint Fault Address |
R/W |
NA |
0x00000000 |
page 3-69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Instruction Fault Address |
R/W, B |
R/W |
0x00000000 |
page 3-69 |
|
|
|
|
|
|
|
|
|
|
|
c7 |
0 |
c0 |
4 |
Wait For Interrupt |
WO |
WO |
- |
page 3-85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c4 |
0 |
PA |
R/W, B |
R/W |
0x00000000 |
page 3-80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c5 |
0 |
Invalidate Entire Instruction |
WO |
WO, X |
- |
page 3-71 |
|
|
|
|
|
Cache |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Invalidate Instruction Cache |
WO |
WO |
- |
page 3-71 |
|
|
|
|
|
Line by MVA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Invalidate Instruction Cache |
WO |
WO |
- |
page 3-71 |
|
|
|
|
|
Line by Index |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
Flush Prefetch Buffer |
WO |
WO |
- |
page 3-79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
Flush Entire Branch Target |
WO |
WO |
- |
page 3-79 |
|
|
|
|
|
Cache |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
Flush Branch Target Cache |
WO |
WO |
- |
page 3-79 |
|
|
|
|
|
Entry by MVA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c6 |
0 |
Invalidate Entire Data Cache |
WO |
NA |
- |
page 3-71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Invalidate Data Cache Line by |
WO |
WO |
- |
page 3-71 |
|
|
|
|
|
MVA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Invalidate Data Cache Line by |
WO |
WO |
- |
page 3-71 |
|
|
|
|
|
Index |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c7 |
0 |
Invalidate Both Caches |
WO |
NA |
- |
page 3-71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c8 |
0-3 |
VA to PA translation in the |
WO |
WO |
- |
page 3-82 |
|
|
|
|
|
current world |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4-7 |
VA to PA translation in the |
WO |
NA |
- |
page 3-83 |
|
|
|
|
|
other world |
|
|
|
|
ARM DDI 0333H |
Copyright © 2004-2009 ARM Limited. All rights reserved. |
3-16 |
ID012410 |
Non-Confidential, Unrestricted Access |
|
System Control Coprocessor
Table 3-2 Summary of CP15 registers and operations (continued)
CRn |
Op1 |
CRm |
Op2 |
Register or operation |
S type |
NS |
Reset |
Page |
|
type |
value |
||||||||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
c7 |
0 |
c10 |
0 |
Clean Entire Data Cache |
WO, X |
WO, X |
- |
page 3-71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Clean Data Cache Line by |
WO |
WO |
- |
page 3-71 |
|
|
|
|
|
MVA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Clean Data Cache Line by |
WO |
WO |
- |
page 3-71 |
|
|
|
|
|
Index |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
Data Synchronization Barrier |
WO |
WO |
- |
page 3-84 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
Data Memory Barrier |
WO |
WO |
- |
page 3-85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
Cache Dirty Status |
RO, B |
RO |
0x00000000 |
page 3-78 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c13 |
1 |
Prefetch Instruction Cache |
WO |
WO |
- |
page 3-71 |
|
|
|
|
|
Line |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c14 |
0 |
Clean and Invalidate Entire |
WO, X |
WO, X |
- |
page 3-71 |
|
|
|
|
|
Data Cache |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Clean and Invalidate Data |
WO |
WO |
- |
page 3-71 |
|
|
|
|
|
Cache Line by MVA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Clean and Invalidate Data |
WO |
WO |
- |
page 3-71 |
|
|
|
|
|
Cache Line by Index |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c8 |
0 |
c5 |
0 |
Invalidate Instruction TLB |
WO, B |
WO |
- |
page 3-86 |
|
|
|
|
|
unlocked entries |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Invalidate Instruction TLB |
WO, B |
WO |
- |
page 3-86 |
|
|
|
|
|
entry by MVA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Invalidate Instruction TLB |
WO, B |
WO |
- |
page 3-86 |
|
|
|
|
|
entry on ASID match |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c8 |
0 |
c6 |
0 |
Invalidate Data TLB unlocked |
WO, B |
WO |
- |
page 3-86 |
|
|
|
|
|
entries |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Invalidate Data TLB entry by |
WO, B |
WO |
- |
page 3-86 |
|
|
|
|
|
MVA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Invalidate Data TLB entry on |
WO, B |
WO |
- |
page 3-86 |
|
|
|
|
|
ASID match |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c7 |
0 |
Invalidate unified TLB |
WO, B |
WO |
- |
page 3-86 |
|
|
|
|
|
unlocked entries |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Invalidate unified TLB entry |
WO, B |
WO |
- |
page 3-86 |
|
|
|
|
|
by MVA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Invalidate unified TLB entry |
WO, B |
WO |
- |
page 3-86 |
|
|
|
|
|
on ASID match |
|
|
|
|
ARM DDI 0333H |
Copyright © 2004-2009 ARM Limited. All rights reserved. |
3-17 |
ID012410 |
Non-Confidential, Unrestricted Access |
|
System Control Coprocessor
Table 3-2 Summary of CP15 registers and operations (continued)
CRn |
Op1 |
CRm |
Op2 |
Register or operation |
S type |
NS |
Reset |
Page |
|
type |
value |
||||||||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
c9 |
0 |
c0 |
0 |
Data Cache Lockdown |
R/W |
R/W, X |
0xFFFFFFF0 |
page 3-88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Instruction Cache Lockdown |
R/W |
R/W, X |
0xFFFFFFF0 |
page 3-88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c1 |
0 |
Data TCM Region |
R/W, X |
R/W, X |
0x00000014f |
page 3-90 |
|
|
|
|
1 |
Instruction TCM Region |
R/W, X |
R/W, X |
0x00000014g |
page 3-92 |
|
|
|
|
2 |
Data TCM Non-secure Control |
R/W, X |
NA |
0x00000000 |
page 3-94 |
|
|
|
|
|
Access |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
Instruction TCM Non-secure |
R/W, X |
NA |
0x00000000 |
page 3-95 |
|
|
|
|
|
Control Access |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c2 |
0 |
TCM Selection |
R/W, B |
R/W |
0x00000000 |
page 3-97 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c8 |
0 |
Cache Behavior Override |
R/Wh |
R/W |
0x00000000 |
page 3-98 |
|
c10 |
0 |
c0 |
0 |
TLB Lockdown |
R/W, X |
R/W, X |
0x00000000 |
page 3-100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c2 |
0 |
Primary Region Memory |
R/W, B, X |
R/W |
0x00098AA4 |
page 3-101 |
|
|
|
|
|
Remap Register |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Normal Memory Region |
R/W, B, X |
R/W |
0x44E048E0 |
page 3-101 |
|
|
|
|
|
Remap Register |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c11 |
0 |
c0 |
0-3 |
DMA identification and status |
RO |
RO, X |
0x0000000Bi |
page 3-105 |
|
|
|
c1 |
0 |
DMA User Accessibility |
R/W |
R/W, X |
0x00000000 |
page 3-107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c2 |
0 |
DMA Channel Number |
R/W, X |
R/W, X |
0x00000000 |
page 3-109 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c3 |
0-2 |
DMA enable |
WO, X |
WO, X |
- |
page 3-110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c4 |
0 |
DMA Control |
R/W, X |
R/W, X |
0x08000000 |
page 3-111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c5 |
0 |
DMA Internal Start Address |
R/W, X |
R/W, X |
- |
page 3-114 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c6 |
0 |
DMA External Start Address |
R/W, X |
R/W, X |
- |
page 3-115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c7 |
0 |
DMA Internal End Address |
R/W, X |
R/W, X |
- |
page 3-116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c8 |
0 |
DMA Channel Status |
RO, X |
RO, X |
0x00000000 |
page 3-117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c15 |
0 |
DMA Context ID |
R/W |
R/W, X |
- |
page 3-120 |
|
|
|
|
|
|
|
|
|
|
|
c12 |
0 |
c0 |
0 |
Secure or Non-secure Vector |
R/W, B, X |
R/W |
0x00000000 |
page 3-121 |
|
|
|
|
|
Base Address |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Monitor Vector Base Address |
R/W, X |
NA |
0x00000000 |
page 3-122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c1 |
0 |
Interrupt Status |
RO |
RO |
0x00000000j |
page 3-123 |
ARM DDI 0333H |
Copyright © 2004-2009 ARM Limited. All rights reserved. |
3-18 |
ID012410 |
Non-Confidential, Unrestricted Access |
|
System Control Coprocessor
Table 3-2 Summary of CP15 registers and operations (continued)
CRn |
Op1 |
CRm |
Op2 |
Register or operation |
S type |
NS |
Reset |
Page |
|
type |
value |
||||||||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
c13 |
0 |
c0 |
0 |
FCSE PID |
R/W, B, X |
R/W |
0x00000000 |
page 3-125 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Context ID |
R/W, B |
R/W |
0x00000000 |
page 3-127 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
User Read/Write Thread and |
R/W, B |
R/W |
0x00000000 |
page 3-128 |
|
|
|
|
|
Process ID |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
User Read-only Thread and |
R/W, RO, |
R/W, |
0x00000000 |
page 3-128 |
|
|
|
|
|
Process ID |
Bk |
RO |
|
|
|
|
|
|
4 |
Privileged Only Thread and |
R/W, B |
R/W |
0x00000000 |
page 3-128 |
|
|
|
|
|
Process ID |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c14 |
|
|
|
Not used |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c15 |
0 |
c2 |
4 |
Peripheral Port Memory |
R/W, B, X |
R/W |
0x00000000 |
page 3-130 |
|
|
|
|
|
Remap |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c9 |
0 |
Secure User and Non-secure |
R/W, X |
NA |
0x00000000 |
page 3-132 |
|
|
|
|
|
Access Validation Control |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c12 |
0 |
Performance Monitor Control |
R/W, X |
R/W, X |
0x00000000 |
page 3-133 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Cycle Counter |
R/W, X |
R/W, X |
0x00000000 |
page 3-137 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Count 0 |
R/W, X |
R/W, X |
0x00000000 |
page 3-138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
Count 1 |
R/W, X |
R/W, X |
0x00000000 |
page 3-139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4-7 |
System Validation Counter |
R/W, X |
R/W, X |
0x00000000 |
page 3-140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c13 |
1-7 |
System Validation Operations |
R/W, X |
R/W, X |
0x00000000 |
page 3-142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c14 |
0 |
System Validation Cache Size |
R/W, X |
R/W, X |
0x00006655l |
page 3-145 |
|
|
|
|
|
Mask |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c15 |
1 |
c13 |
0-7 |
System Validation Operations |
R/W, X |
R/W, X |
0x00000000 |
page 3-142 |
|
|
|
|
|
|
|
|
|
|
|
c15 |
2 |
c13 |
1-7 |
System Validation Operations |
R/W, X |
R/W, X |
0x00000000 |
page 3-142 |
|
|
|
|
|
|
|
|
|
|
|
c15 |
3 |
c8 |
0-7 |
Instruction Cache Master Valid |
R/W, X |
NA |
0x00000000 |
page 3-147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c12 |
0-7 |
Data Cache Master Valid |
R/W, X |
NA |
0x00000000 |
page 3-148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c13 |
0-7 |
System Validation Operations |
R/W, X |
R/W, X |
0x00000000 |
page 3-142 |
|
|
|
|
|
|
|
|
|
|
|
c15 |
4 |
c13 |
0-7 |
System Validation Operations |
R/W, X |
R/W, X |
0x00000000 |
page 3-142 |
|
|
|
|
|
|
|
|
|
|
|
c15 |
5 |
c4 |
2 |
TLB Lockdown Index |
R/W, X |
NA |
0x00000000 |
page 3-149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c5 |
2 |
TLB Lockdown VA |
R/W, X |
NA |
- |
page 3-149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c6 |
2 |
TLB Lockdown PA |
R/W, X |
NA |
- |
page 3-149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c7 |
2 |
TLB Lockdown Attributes |
R/W, X |
NA |
- |
page 3-149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
c13 |
0-7 |
System Validation Operations |
R/W, X |
R/W, X |
0x00000000 |
page 3-142 |
|
|
|
|
|
|
|
|
|
|
|
c15 |
6 |
c13 |
0-7 |
System Validation Operations |
R/W, X |
R/W, X |
0x00000000 |
page 3-142 |
|
|
|
|
|
|
|
|
|
|
|
c15 |
7 |
c13 |
0-7 |
System Validation Operations |
R/W, X |
R/W, X |
0x00000000 |
page 3-142 |
a. See c0, Main ID Register on page 3-20 for the values of bits [23:20] and bits [3:0].
ARM DDI 0333H |
Copyright © 2004-2009 ARM Limited. All rights reserved. |
3-19 |
ID012410 |
Non-Confidential, Unrestricted Access |
|