Cortex™-R4 and Cortex-R4F Technical Reference Manual

Revision: r1p4

Table of Contents

About this book
Product revision status
Intended audience
Using this book
Additional reading
Feedback on this product
Feedback on content
1. Introduction
1.1. About the processor
1.2. Compliance
1.2.1. ARM architecture
1.2.2. Trace macrocell
1.2.3. Advanced Microcontroller Bus Architecture
1.2.4. Debug architecture
1.3. Features
1.4. Interfaces
1.5. Configurable options
1.5.1. Processor configurations
1.6. Test features
1.7. Product documentation, architecture and design flow
1.7.1. Documentation
1.7.2. Design flow
1.8. Product revisions
2. Functional Description
2.1. About the functions
2.1.1. Data Processing Unit
2.1.2. Load/store unit
2.1.3. Prefetch unit
2.1.4. L1 memory system
2.1.5. L2 AXI interfaces
2.1.6. Debug
2.1.7. System control coprocessor
2.1.8. Interrupt handling
2.1.9. Power management
2.2. Interfaces
2.2.1. AXI master interface
2.2.2. AXI slave interface
2.2.3. TCM interfaces
2.2.4. Interrupt and VIC interface
2.2.5. Configuration interface
2.2.6. Interrupt and event outputs
2.2.7. APB Debug interface
2.2.8. ETM interface
2.2.9. Test interface
2.3. Clocking and resets
2.3.1. Resets
2.3.2. Reset modes
2.3.3. Clocking
2.4. Operation
2.4.1. Initialization
3. Programmers Model
3.1. About the programmers model
3.2. Modes of operation and execution
3.2.1. Instruction set states
3.2.2. Operating modes
3.3. Memory model
3.3.1. Byte-invariant big-endian format
3.3.2. Little-endian format
3.4. Data structures
3.5. Registers
3.5.1. The register set
3.6. Program status registers
3.6.1. The N, Z, C, and V bits
3.6.2. The Q bit
3.6.3. The IT bits
3.6.4. The J bit
3.6.5. The DNM bits
3.6.6. The GE bits
3.6.7. The E bit
3.6.8. The A bit
3.6.9. The I and F bits
3.6.10. The T bit
3.6.11. The M bits
3.6.12. Modification of PSR bits by MSR instructions
3.7. Exceptions
3.7.1. Exception entry and exit summary
3.7.2. Reset
3.7.3. Interrupts
3.7.4. Aborts
3.7.5. Supervisor call instruction
3.7.6. Undefined instruction
3.7.7. Breakpoint instruction
3.7.8. Exception vectors
3.8. Acceleration of execution environments
3.9. Unaligned and mixed-endian data access support
3.10. Big-endian instruction support
4. System Control
4.1. About system control
4.1.1. System identification control and configuration
4.1.2. MPU control and configuration
4.1.3. Cache control and configuration
4.1.4. Interface control and configuration
4.1.5. System performance monitor
4.1.6. System validation
4.2. Register summary
4.3. Register descriptions
4.3.1. Register allocation
4.3.2. c0, Main ID Register
4.3.3. c0, Cache Type Register
4.3.4. c0, TCM Type Register
4.3.5. c0, MPU Type Register
4.3.6. c0, Multiprocessor ID Register
4.3.7. The Processor Feature Registers
4.3.8. c0, Debug Feature Register 0
4.3.9. c0, Auxiliary Feature Register 0
4.3.10. Memory Model Feature Registers
4.3.11. Instruction Set Attributes Registers
4.3.12. c0, Current Cache Size Identification Register
4.3.13. c0, Current Cache Level ID Register
4.3.14. c0, Cache Size Selection Register
4.3.15. c1, System Control Register
4.3.16. c1, Auxiliary Control Register
4.3.17. c15, Secondary Auxiliary Control Register
4.3.18. c1, Coprocessor Access Register
4.3.19. Fault Status and Address Registers
4.3.20. c6, MPU memory region programming registers
4.3.21. Cache operations
4.3.22. c9, BTCM Region Register
4.3.23. c9, ATCM Region Register
4.3.24. c9, TCM Selection Register
4.3.25. c11, Slave Port Control Register
4.3.26. c13, FCSE PID Register
4.3.27. c13, Context ID Register
4.3.28. c13, Thread and Process ID Registers
4.3.29. Validation Registers
4.3.30. Correctable Fault Location Register
4.3.31. Build Options Registers
5. Prefetch Unit
5.1. About the prefetch unit
5.2. Branch prediction
5.2.1. Branch predictor
5.2.2. Incorrect predictions and correction
5.3. Return stack
5.4. Controlling instruction prefetch and program flow prediction
6. Events and Performance Monitor
6.1. About the events
6.2. About the PMU
6.3. Performance monitoring registers
6.3.1. c9, Performance Monitor Control Register
6.3.2. c9, Count Enable Set Register
6.3.3. c9, Count Enable Clear Register
6.3.4. c9, Overflow Flag Status Register
6.3.5. c9, Software Increment Register
6.3.6. c9, Performance Counter Selection Register
6.3.7. c9, Cycle Count Register
6.3.8. c9, Event Type Selection Register
6.3.9. c9, Event Count Registers
6.3.10. c9, User Enable Register
6.3.11. c9, Interrupt Enable Set Register
6.3.12. c9, Interrupt Enable Clear Register
6.4. Event bus interface
6.4.1. Use of the event bus and counters
7. Memory Protection Unit
7.1. About the MPU
7.1.1. Memory regions
7.1.2. Overlapping regions
7.1.3. Background regions
7.1.4. TCM regions
7.2. Memory types
7.2.1. Using memory types
7.3. Region attributes
7.4. MPU interaction with memory system
7.5. MPU faults
7.5.1. Background fault
7.5.2. Permission fault
7.5.3. Alignment fault
7.6. MPU software-accessible registers
8. Level One Memory System
8.1. About the L1 memory system
8.2. About the error detection and correction schemes
8.2.1. Parity
8.2.2. Error checking and correction
8.2.3. Read-Modify-Write
8.2.4. Hard errors
8.2.5. Error correction
8.3. Fault handling
8.3.1. Faults
8.3.2. Fault status information
8.3.3. Correctable Fault Location Register
8.3.4. Usage models
8.4. About the TCMs
8.4.1. TCM attributes and permissions
8.4.2. ATCM and BTCM configuration
8.4.3. TCM internal error detection and correction
8.4.4. TCM arbitration
8.4.5. TCM initialization
8.4.6. TCM port protocol
8.4.7. External TCM errors
8.4.8. AXI slave interfaces for TCMs
8.5. About the caches
8.5.1. Store buffer
8.5.2. Cache maintenance operations
8.5.3. Cache error detection and correction
8.5.4. Cache RAM organization
8.5.5. Cache interaction with memory system
8.6. Internal exclusive monitor
8.7. Memory types and L1 memory system behavior
8.8. Error detection events
8.8.1. TCM error events
8.8.2. Instruction-cache error events
8.8.3. Data-cache error events
8.8.4. Events and the CFLR
9. Level Two Interface
9.1. About the L2 interface
9.2. AXI master interface
9.2.1. Identifiers for AXI bus accesses
9.2.2. Write response
9.2.3. Linefill buffers and the AXI master interface
9.2.4. Eviction buffer
9.2.5. Memory attributes
9.3. AXI master interface transfers
9.3.1. Restrictions on AXI transfers
9.3.2. Strongly-ordered and Device transactions
9.3.3. Linefills
9.3.4. Cache line write-back (eviction)
9.3.5. Non-cacheable reads
9.3.6. Non-cacheable or write-through writes
9.3.7. AXI transaction splitting
9.3.8. Normal write merging
9.4. AXI slave interface
9.4.1. AXI slave interface for cache RAMs
9.4.2. TCM parity and ECC support
9.4.3. External TCM errors
9.4.4. Cache parity and ECC support
9.4.5. AXI slave control
9.4.6. AXI slave characteristics
9.5. Enabling or disabling AXI slave accesses
9.6. Accessing RAMs using the AXI slave interface
9.6.1. TCM RAM access
9.6.2. Cache RAM access
10. Power Control
10.1. About power control
10.2. Power management
10.2.1. Run mode
10.2.2. Standby mode
10.2.3. Dormant mode
10.2.4. Shutdown mode
10.2.5. Communication to the Power Management Controller
11. FPU Programmers Model
11.1. About the FPU programmers model
11.1.1. FPU functionality
11.1.2. About the VFPv3-D16 architecture
11.2. General-purpose registers
11.2.1. FPU views of the register bank
11.3. System registers
11.3.1. Floating-Point System ID Register
11.3.2. Floating-Point Status and Control Register, FPSCR
11.3.3. Floating-Point Exception Register, FPEXC
11.3.4. Media and VFP Feature Registers, MVFR0 and MVFR1
11.4. Modes of operation
11.4.1. Full-compliance mode
11.4.2. Flush-to-zero mode
11.4.3. Default NaN mode
11.5. Compliance with the IEEE 754 standard
11.5.1. Complete implementation of the IEEE 754 standard
11.5.2. IEEE 754 standard implementation choices
11.5.3. Exceptions
12. Debug
12.1. Debug systems
12.1.1. Debug host
12.1.2. Protocol converter
12.1.3. Debug target
12.2. About the debug unit
12.2.1. Halting debug-mode debugging
12.2.2. Monitor debug-mode debugging
12.2.3. Programming the debug unit
12.3. Debug register interface
12.3.1. Coprocessor registers
12.3.2. CP14 access permissions
12.3.3. Coprocessor registers summary
12.3.4. Memory-mapped registers
12.3.5. Memory addresses for breakpoints and watchpoints
12.3.6. Power domains
12.3.7. Effects of resets on debug registers
12.3.8. APB port access permissions
12.4. Debug register descriptions
12.4.1. Accessing debug registers
12.4.2. CP14 c0, Debug ID Register
12.4.3. CP14 c0, Debug ROM Address Register
12.4.4. CP14 c0, Debug Self Address Offset Register
12.4.5. CP14 c1, Debug Status and Control Register
12.4.6. Data Transfer Register
12.4.7. Watchpoint Fault Address Register
12.4.8. Vector Catch Register
12.4.9. Debug State Cache Control Register
12.4.10. Instruction Transfer Register
12.4.11. Debug Run Control Register
12.4.12. Breakpoint Value Registers
12.4.13. Breakpoint Control Registers
12.4.14. Watchpoint Value Registers
12.4.15. Watchpoint Control Registers
12.4.16. Operating System Lock Status Register
12.4.17. Authentication Status Register
12.4.18. Device Power-down and Reset Control Register
12.4.19. Device Power-down and Reset Status Register
12.5. Management registers
12.5.1. Processor ID Registers
12.5.2. Claim Registers
12.5.3. Lock Access Register
12.5.4. Lock Status Register
12.5.5. Device Type Register
12.5.6. Debug Identification Registers
12.6. Debug events
12.6.1. Software debug event
12.6.2. Halting debug event
12.6.3. Behavior of the processor on debug events
12.6.4. Debug event priority
12.6.5. Watchpoint debug events
12.7. Debug exception
12.7.1. Effect of debug exceptions on CP15 registers and DBGWFAR
12.7.2. Avoiding unrecoverable states
12.8. Debug state
12.8.1. Entering debug state
12.8.2. Behavior of the PC and CPSR in debug state
12.8.3. Executing instructions in debug state
12.8.4. Writing to the CPSR in debug state
12.8.5. Privilege
12.8.6. Accessing registers and memory
12.8.7. Coprocessor instructions
12.8.8. Effect of debug state on non-invasive debug
12.8.9. Effects of debug events on processor registers
12.8.10. Exceptions in debug state
12.8.11. Leaving debug state
12.9. Cache debug
12.9.1. Cache pollution in debug state
12.9.2. Cache coherency in debug state
12.9.3. Cache usage profiling
12.10. External debug interface
12.10.1. APB signals
12.10.2. Miscellaneous debug signals
12.10.3. Authentication signals
12.11. Using the debug functionality
12.11.1. Debug communications channel
12.11.2. Programming breakpoints and watchpoints
12.11.3. Single-stepping
12.11.4. Debug state entry
12.11.5. Debug state exit
12.11.6. Accessing registers and memory in debug state
12.12. Debugging systems with energy management capabilities
12.12.1. Emulating power down
13. Integration Test Registers
13.1. About Integration Test Registers
13.2. Summary of the processor registers used for integration testing
13.3. Processor integration testing
13.3.1. Using the Integration Test Registers
13.3.2. Performing integration testing
13.3.3. DBGITETMIF Register (ETM interface)
13.3.4. DBGITMISCOUT Register (Miscellaneous Outputs)
13.3.5. DBGITMISCIN Register (Miscellaneous Inputs)
13.3.6. Integration Mode Control Register
A. Signal Descriptions
A.1. About the processor signal descriptions
A.2. Global signals
A.3. Configuration signals
A.4. Interrupt signals, including VIC interface signals
A.5. L2 interface signals
A.5.1. AXI master port
A.5.2. AXI master port error detection signals
A.5.3. AXI slave port
A.5.4. AXI slave port error detection signals
A.6. TCM interface signals
A.7. Redundant processor signals
A.8. Debug interface signals
A.9. ETM interface signals
A.10. Test signals
A.11. MBIST signals
A.12. Validation signals
A.13. FPU signals
B. AC Characteristics
B.1. Processor timing
B.2. Processor timing parameters
B.2.1. Input port timing parameters
B.2.2. Output ports timing parameters
C. Cycle Timings and Interlock Behavior
C.1. About cycle timings and interlock behavior
C.1.1. Instruction execution overview
C.1.2. Conditional instructions
C.1.3. Flag-setting instructions
C.1.4. Definition of terms
C.1.5. Assembler language syntax
C.2. Register interlock examples
C.3. Data processing instructions
C.3.1. Cycle counts if destination is not PC
C.3.2. Cycle counts if destination is the PC
C.3.3. Example interlocks
C.4. QADD, QDADD, QSUB, and QDSUB instructions
C.5. Media data-processing
C.6. Sum of Absolute Differences (SAD)
C.6.1. Example interlocks
C.7. Multiplies
C.8. Divide
C.9. Branches
C.10. Processor state updating instructions
C.11. Single load and store instructions
C.11.1. Base register update
C.12. Load and Store Double instructions
C.13. Load and Store Multiple instructions
C.13.1. Load and Store Multiples, other than load multiples including the PC
C.13.2. Load Multiples, where the PC is in the register list
C.13.3. Example Interlocks
C.14. RFE and SRS instructions
C.15. Synchronization instructions
C.16. Coprocessor instructions
C.17. SVC, BKPT, Undefined, and Prefetch Aborted instructions
C.18. Miscellaneous instructions
C.19. Floating-point register transfer instructions
C.20. Floating-point load/store instructions
C.21. Floating-point single-precision data processing instructions
C.22. Floating-point double-precision data processing instructions
C.23. Dual issue
C.23.1. Dual issue rules
C.23.2. Permitted combinations
D. ECC Schemes
D.1. ECC scheme selection guidelines
E. Revisions

List of Figures

1. Key to timing diagram conventions
1.1. Example Cortex-R4 system
2.1. Processor block diagram
2.2. Power-on reset
2.3. AXI interface clocking
2.4. Standby, wake-up
3.1. Byte-invariant big-endian (BE-8) format
3.2. Little-endian format
3.3. Register organization
3.4. Program status register bit assignments
3.5. Interrupt entry sequence
4.1. System control and configuration registers
4.2. MPU control and configuration registers
4.3. Cache control and configuration registers
4.4. TCM control and configuration registers
4.5. System performance monitor registers
4.6. System validation registers
4.7. MIDR Register bit assignments
4.8. CTR Register bit assignments
4.9. TCMTR Register bit assignments
4.10. MPUIR Register bit assignments
4.11. PFR0 Register bit assignments
4.12. PFR1 Register bit assignments
4.13. ID_DFR0 Register bit assignments
4.14. ID_MMFR0 Register bit assignments
4.15. ID_MMFR1 Register bit assignments
4.16. ID_MMFR2 Register bit assignments
4.17. ID_MMFR3 bit assignments
4.18. ID_ISAR0 Register bit assignments
4.19. ID_ISAR1 Register bit assignments
4.20. ID_ISAR2 Register bit assignments
4.21. ID_ISAR3 Register bit assignments
4.22. ID_ISAR4 Register bit assignments
4.23. CCSIDR Register bit assignments
4.24. CLIDR Register bit assignments
4.25. CSSELR Register bit assignments
4.26. SCTLR Register bit assignments
4.27. ACTLR Register bit assignments
4.28. Secondary Auxiliary Control Register bit assignments
4.29. CPACR Register bit assignments
4.30. DFSR Register bit assignments
4.31. IFSR Register bit assignments
4.32. Auxiliary fault status register bit assignments
4.33. MPU Region Base Address Registers bit assignments
4.34. MPU Region Size and Enable Registers bit assignments
4.35. MPU Region Access Control Register bit assignments
4.36. RGNR Register bit assignments
4.37. Cache operations
4.38. Set and Way bit assignments
4.39. Invalidate and clean operations bit assignments
4.40. BTCM Region Register bit assignments
4.41. ATCM Region Register bit assignments
4.42. Slave Port Control Register bit assignments
4.43. nVAL IRQ Enable Set Register bit assignments
4.44. nVAL FIQ Enable Set Register bit assignments
4.45. nVAL Reset Enable Set Register bit assignments
4.46. VAL Debug Request Enable Set Register bit assignments
4.47. nVAL IRQ Enable Clear Register bit assignments
4.48. nVAL FIQ Enable Clear Register bit assignments
4.49. nVAL Reset Enable Clear Register bit assignments
4.50. VAL Debug Request Enable Clear Register bit assignments
4.51. Cache Size Override Register bit assignments
4.52. CFLR - cache, bit assignments
4.53. CFLR - TCM, bit assignments
4.54. Build Options 1 Register bit assignments
4.55. Build Options 2 Register bit assignments
6.1. PMCR Register bit assignments
6.2. PMCNTENSET Register bit assignments
6.3. PMCNTENCLR Register bit assignments
6.4. PMOVSR Register bit assignments
6.5. PMSWINC Register bit assignments
6.6. PMSELR Register bit assignments
6.7. PMXEVTYPERx Register bit assignments
6.8. PMUSERENR Register bit assignments
6.9. PMINTENSET Register bit assignments
6.10. PMINTENCLR Register bit assignments
7.1. Overlapping memory regions
7.2. Overlay for stack protection
7.3. Overlapping subregion of memory
8.1. L1 memory system block diagram
8.2. Error detection and correction schemes
8.3. Nonsequential read operation performed with one RAM access.
8.4. Sequential read operation performed with one RAM access
11.1. FPU register bank
11.2. FPSID Register bit assignments
11.3. FPSCR Register bit assignments
11.4. FPEXC Register bit assignments
11.5. MVFR0 Register bit assignments
11.6. MVFR1 Register bit assignments
12.1. Typical debug system
12.2. DBGDIDR Register bit assignments
12.3. DBGDRAR Register bit assignments
12.4. DBGDSAR Register bit assignments
12.5. DBGDSCR Register bit assignments
12.6. DBGWFAR Register bit assignments
12.7. DBGVCR Register bit assignments
12.8. DBGDSCCR Register bit assignments
12.9. DBGDRCR Register bit assignments
12.10. DBGBCR Register bit assignments
12.11. DBGWCR Register bit assignments
12.12. DBGOSLSR Register bit assignments
12.13. DBGAUTHSTATUS Register bit assignments
12.14. DBGPRCR Register bit assignments
12.15. DBGPRSR Register bit assignments
12.16. DBGCLAIMSET Register bit assignments
12.17. DBGCLAIMCLR Register bit assignments
12.18. DBGLSR Register bit assignments
12.19. DBGDEVTYPE Register bit assignments
13.1. DBGITETMIF Register bit assignments
13.2. DBGITMISCOUT Register bit assignments
13.3. DBGITMISCIN Register bit assignments
13.4. DBGITCTRL Register bit assignments

List of Tables

1.1. Configurable options
1.2. Configurable options at reset
2.1. Reset modes
3.1. Register mode identifiers
3.2. GE[3:0] settings
3.3. PSR mode bit values
3.4. Exception entry and exit
3.5. Configuration of exception vector address locations
3.6. Exception vectors
3.7. Jazelle register instruction summary
4.1. System control coprocessor register functions
4.2. Summary of CP15 registers and operations
4.3. MIDR Register bit assignments
4.4. CTR Register bit assignments
4.5. TCMTR Register bit assignments
4.6. MPUIR Register bit assignments
4.7. PFR0 Register bit assignments
4.8. PFR1 bit assignments
4.9. ID_DFR0 Register bit assignments
4.10. ID_MMFR0 Register bit assignments
4.11. ID_MMFR1 Register bit assignments
4.12. ID_MMFR2 bit assignments
4.13. ID_MMFR3 Register bit assignments
4.14. ID_ISAR0 Register bit assignments
4.15. ID_ISAR1 Register bit assignments
4.16. ID_ISAR2 Register bit assignments
4.17. ID_ISAR3 Register bit assignments
4.18. ISAR4 Register bit assignments
4.19. CCSIDR Register bit assignments
4.20. Bit field and register encodings for CCSIDR
4.21. CLIDR Register bit assignments
4.22. CSSELR Register bit assignments
4.23. SCTLR Register bit assignments
4.24. ACTLR Register bit assignments
4.25. Secondary Auxiliary Control Register bit assignments
4.26. CPACR Register bit assignments
4.27. Fault Status Register encodings
4.28. DFSR Register bit assignments
4.29. IFSR Register bit assignments
4.30. Auxiliary fault status register bit assignments
4.31. MPU Region Base Address Registers bit assignments
4.32. Region Size MPU Region Size and Enable Registers bit assignments
4.33. MPU Region Access Control Register bit assignments
4.34. TEX[2:0], C, and B encodings
4.35. Inner and Outer cache policy encoding
4.36. Access data permission bit encoding
4.37. RGNR Register bit assignments
4.38. Set and Way bit assignments
4.39. Widths of the set field for L1 cache sizes
4.40. Invalidate and clean operations bit assignments
4.41. BTCM Region Register bit assignments
4.42. ATCM Region Register bit assignments
4.43. Slave Port Control Register bit assignments
4.44. nVAL IRQ Enable Set Register bit assignments
4.45. nVAL FIQ Enable Set Register bit assignments
4.46. nVAL Reset Enable Set Register bit assignments
4.47. VAL Debug Request Enable Set Register bit assignments
4.48. nVAL IRQ Enable Clear Register bit assignments
4.49. nVAL FIQ Enable Clear Register bit assignments
4.50. nVAL Reset Enable Clear Register bit assignments
4.51. VAL Debug Request Enable Clear Register bit assignments
4.52. Cache Size Override Register bit assignments
4.53. instruction and data cache size encodings
4.54. CFLR - cache, bit assignments
4.55. CFLR - TCM, bit assignments
4.56. Build Options 1 Register bit assignments
4.57. Build Options 2 Register bit assignments
6.1. Event bus interface bit functions
6.2. PMCR Register bit assignments
6.3. PMCNTENSET Register bit assignments
6.4. PMCNTENCLR Register bit assignments
6.5. PMOVSR Register bit assignments
6.6. PMSWINC Register bit assignments
6.7. PMSELR Register bit assignments
6.8. PMXEVTYPERx Register bit assignments
6.9. PMUSERENR Register bit assignments
6.10. PMINTENSET Register bit assignments
6.11. PMINTENCLR Register bit assignments
7.1. Default memory map
7.2. Memory attributes summary
8.1. Types of aborts
8.2. Cache parity error behavior
8.3. Cache ECC error behavior
8.4. Tag RAM bit descriptions, with parity
8.5. Tag RAM bit descriptions, with ECC
8.6. Tag RAM bit descriptions, no parity or ECC
8.7. Cache sizes and tag RAM organization
8.8. Organization of a dirty RAM line
8.9. Instruction cache data RAM sizes, no parity or ECC
8.10. Data cache data RAM sizes, no parity or ECC
8.11. Instruction cache data RAM sizes, with parity
8.12. Data cache data RAM sizes, with parity
8.13. Data cache RAM bits, with parity
8.14. Instruction cache data RAM sizes with ECC
8.15. Data cache data RAM sizes with ECC
8.16. Data cache RAM bits, with ECC
8.17. Memory types and associated behavior
9.1. AXI master interface attributes
9.2. ARCACHEM and AWCACHEM encodings
9.3. ARUSERM and AWUSERM encodings
9.4. Non-cacheable LDRB
9.5. LDRH from Strongly-ordered or Device memory
9.6. LDR or LDM1 from Strongly-ordered or Device memory
9.7. LDM5, Strongly-ordered or Device memory
9.8. STRB to Strongly-ordered or Device memory
9.9. STRH to Strongly-ordered or Device memory
9.10. STR or STM1 to Strongly-ordered or Device memory
9.11. STM7 to Strongly-ordered or Device memory to word 0 or 1
9.12. Linefill behavior on the AXI interface
9.13. Cache line write-back
9.14. LDRH from Non-cacheable Normal memory
9.15. LDR or LDM1 from Non-cacheable Normal memory
9.16. LDM5, Non-cacheable Normal memory or cache disabled
9.17. STRH to cacheable write-through or Non-cacheable Normal memory
9.18. STR or STM1 to cacheable write-through or Non-cacheable Normal memory
9.19. AXI transaction splitting, all six words in same cache line
9.20. AXI transaction splitting, data in two cache lines
9.21. Non-cacheable LDR or LDM1 crossing a cache line boundary
9.22. Cacheable write-through or Non-cacheable STRH crossing a cache line boundary
9.23. AXI transactions for Strongly-ordered or Device type memory
9.24. AXI transactions for Non-cacheable Normal or Cacheable write-through memory
9.25. AXI slave interface attributes
9.26. RAM region decode
9.27. TCM chip-select decode
9.28. MSB bit for the different TCM RAM sizes
9.29. Cache RAM chip-select decode
9.30. Cache tag/valid RAM bank/address decode
9.31. Cache data RAM bank/address decode
9.32. Data format, instruction cache and data cache, no parity and no ECC
9.33. Data format, instruction cache and data cache, with parity
9.34. Data format, instruction cache, with ECC
9.35. Data format, data cache, with ECC
9.36. Tag register format for reads, no parity or ECC
9.37. Tag register format for reads, with parity
9.38. Tag register format for reads, with ECC
9.39. Tag register format for writes, no parity or ECC
9.40. Tag register format for writes, with parity
9.41. Tag register format for writes, with ECC
9.42. Dirty register format, with parity or with no error scheme
9.43. Dirty register format, with ECC
11.1. VFP system registers
11.2. Accessing VFP system registers
11.3. FPSID Register bit assignments
11.4. FPSCR Register bit assignments
11.5. FPEXC Register bit assignments
11.6. MVFR0 Register bit assignments
11.7. MVFR1 Register bit assignments
11.8. Default NaN values
11.9. QNaN and SNaN handling
12.1. Access to CP14 debug registers
12.2. CP14 debug registers summary
12.3. Debug memory-mapped registers
12.4. External debug interface access permissions
12.5. Terms used in register descriptions
12.6. CP14 debug register map
12.7. DBGDIDR Register bit assignments
12.8. DBGDRAR Register bit assignments
12.9. DBGDSAR Register bit assignments
12.10. DBGDSCR Register bit assignments
12.11. Data Transfer Register functions
12.12. DBGWFAR Register bit assignments
12.13. DBGVCR Register bit assignments
12.14. DBGDSCCR Register bit assignments
12.15. DBGDRCR Register bit assignments
12.16. Breakpoint Value Registers functions
12.17. DBGBCR Register bit assignments
12.18. Meaning of DBGBVR bits [22:20]
12.19. Watchpoint Value Register bit assignments
12.20. DBGWCR Register bit assignments
12.21. DBGOSLSR Register bit assignments
12.22. DBGAUTHSTATUS Register bit assignments
12.23. DBGPRCR Register bit assignments
12.24. DBGPRSR Register bit assignments
12.25. Management registers
12.26. Processor Identification Registers
12.27. DBGCLAIMSET Register bit assignments
12.28. DBGCLAIMCLR Register bit assignments
12.29. DBGLSR Register bit assignments
12.30. DBGDEVTYPE Register bit assignments
12.31. Peripheral Identification Registers
12.32. Fields in the Peripheral Identification Registers
12.33. Peripheral ID Register 0 functions
12.34. Peripheral ID Register 1 functions
12.35. Peripheral ID Register 2 functions
12.36. Peripheral ID Register 3 functions
12.37. Peripheral ID Register 4 functions
12.38. Component Identification Registers
12.39. Processor behavior on debug events
12.40. Values in link register after exceptions
12.41. Read PC value after debug state entry
12.42. Authentication signal restrictions
12.43. Values to write to DBGBCR for a simple breakpoint
12.44. Values to write to DBGWCR for a simple watchpoint
12.45. Example byte address masks for watchpointed objects
13.1. Integration Test Registers summary
13.2. Output signals that can be controlled by the Integration Test Registers
13.3. Input signals that can be read by the Integration Test Registers
13.4. DBGITETMIF Register bit assignments
13.5. DBGITMISCOUT Register bit assignments
13.6. DBGITMISCIN Register bit assignments
13.7. DBGITCTRL Register bit assignments
A.1. Global signals
A.2. Configuration signals
A.3. Interrupt signals
A.4. AXI master port signals for the L2 interface
A.5. AXI master port error detection signals
A.6. AXI slave port signals for the L2 interface
A.7. AXI slave port error detection signals
A.8. ATCM port signals
A.9. B0TCM port signals
A.10. B1TCM port signals
A.11. Dual core interface signals
A.12. Debug interface signals
A.13. Debug miscellaneous signals
A.14. ETM interface signals
A.15. Test signals
A.16. MBIST signals
A.17. Validation signals
A.18. FPU signals
B.1. Miscellaneous input ports timing parameters:
B.2. Configuration input port timing parameters
B.3. Interrupt input ports timing parameters
B.4. AXI master input port timing parameters
B.5. AXI slave input port timing parameters
B.6. Debug input ports timing parameters
B.7. ETM input ports timing parameters
B.8. Test input ports timing parameters
B.9. TCM interface input ports timing parameters
B.10. Miscellaneous output port timing parameter
B.11. Interrupt output ports timing parameters
B.12. AXI master output port timing parameters
B.13. AXI slave output ports timing parameters
B.14. Debug interface output ports timing parameters
B.15. ETM interface output ports timing parameters
B.16. Test output ports timing parameters
B.17. TCM interface output ports timing parameters
B.18. FPU output port timing parameters
C.1. Definition of cycle timing terms
C.2. Register interlock examples
C.3. Data Processing Instruction cycle timing behavior if destination is not PC
C.4. Data Processing instruction cycle timing behavior if destination is the PC
C.5. QADD, QDADD, QSUB, and QDSUB instruction cycle timing behavior
C.6. Media data-processing instructions cycle timing behavior
C.7. Sum of absolute differences instruction timing behavior
C.8. Example interlocks
C.9. Example multiply instruction cycle timing behavior
C.10. Branch instruction cycle timing behavior
C.11. Processor state updating instructions cycle timing behavior
C.12. Cycle timing behavior for stores and loads, other than loads to the PC
C.13. Cycle timing behavior for loads to the PC
C.14. <addr_md_1cycle> and <addr_md_3cycle> LDR example instruction explanation
C.15. Load and Store Double instructions cycle timing behavior
C.16. <addr_md_1cycle> and <addr_md_3cycle> LDRD example instruction explanation
C.17. Cycle timing behavior of Load and Store Multiples, other than load multiples including the PC
C.18. Cycle timing behavior of Load Multiples, with PC in the register list (64-bit aligned)
C.19. RFE and SRS instructions cycle timing behavior
C.20. Synchronization instructions cycle timing behavior
C.21. Coprocessor instructions cycle timing behavior
C.22. SVC, BKPT, Undefined, prefetch aborted instructions cycle timing behavior
C.23. IT and NOP instructions cycle timing behavior
C.24. Floating-point register transfer instructions cycle timing behavior
C.25. Floating-point load/store instructions cycle timing behavior
C.26. Floating-point single-precision data processing instructions cycle timing behavior
C.27. Floating-point double-precision data processing instructions cycle timing behavior
C.28. Permitted instruction combinations
E.1. Differences between issue B and issue C
E.2. Differences between issue C and issue D
E.3. Differences between issue D and issue E
E.4. Differences between issue E and issue F
E.5. Differences between issue F and issue G

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”.

Some material in this document is based on ANSI/IEEE Std 754-1985, IEEE Standard for Binary Floating-Point Arithmetic. The IEEE disclaims any responsibility or liability resulting from the placement and use in the described manner.

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 A15 May 2006First release for r0p1
Revision B22 October 2007First release for r1p2
Revision C16 June 2008First release for r1p3
Revision D11 September 2009Second release for r1p3
Revision E20 November 2009Documentation update for r1p3
Revision F12 February 2010Documentation update for r1p3
Revision G04 April 2011First release for r1p4
Copyright © 2006-2011 ARM Limited. All rights reserved.ARM DDI 0363G