| |||
| Home > System Control Coprocessor > System control processor register descriptions > c0, Core feature ID registers | |||
The section describes the core feature ID registers. These registers were added in the r1p0 release. They are all read-only registers, which can only be accessed in privileged mode. The registers are described in the following sections:
The purpose of the Processor Feature Register 0 is to provide information about the execution state support and programmer’s model for the processor.
Processor Feature Register 0 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.14 shows the bit arrangement for Processor Feature Register 0.
Table 3.18 lists the bit functions of the Processor Feature Register 0.
Table 3.18. Processor Feature Register 0 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:28] | - | Reserved. RAZ. |
| [27:24] | - | Reserved. RAZ. |
| [23:20] | - | Reserved. RAZ. |
| [19:16] | - | Reserved. RAZ. |
| [15:12] | State3 | Indicates support for Thumb-2™ execution environment.
|
| [11:8] | State2 | Indicates support for Java extension interface.
|
| [7:4] | State1 | Indicates type of Thumb encoding that the processor supports.
|
| [3:0] | State0 | Indicates support for 32-bit ARM instruction set.
|
Table 3.19 shows the results of attempted accesses to the Processor Feature Register 0 for each mode.
Table 3.19. Results of accesses to the Processor Feature Register 0
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Processor Feature Register 0 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c1
Opcode_2 set to 0.
For example:
MRC p15, 0, <Rd>, c0, c1, 0 ; Read Processor Feature Register 0
The purpose of the Processor Feature Register 1 is to provide information about the execution state support and programmer’s model for the processor.
Processor Feature Register 1 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.15 shows the bit arrangement for Processor Feature Register 1.
Table 3.20 lists the bit functions of the Processor Feature Register 1.
Table 3.20. Processor Feature Register 1 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:12] | - | Reserved. RAZ. |
| [11:8] | Microcontroller programmer’s model | Indicates support for the ARM microcontroller programmer’s model.
|
| [7:4] | Security extension | Indicates support for Security Extensions Architecture v1.
|
| [3:0] | Programmer’s model | Indicates support for standard ARMv4 programmer’s model.
|
Table 3.21 shows the results of attempted accesses to the Processor Feature Register 1 for each mode.
Table 3.21. Results of accesses to the Processor Feature Register 1
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Processor Feature Register 1 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c1
Opcode_2 set to 1.
For example:
MRC p15, 0, <Rd>, c0, c1, 1 ; Read Processor Feature Register 1
The purpose of the Debug Feature Register 0 is to provide information about the debug system for the processor.
Debug Feature Register 0 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.16 shows the bit arrangement for Debug Feature Register 0.
Table 3.22 lists the bit functions of the Debug Feature Register 0.
Table 3.22. Debug Feature Register 0 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:28] | - | Reserved. RAZ. |
| [27:24] | - | Reserved. RAZ. |
| [23:20] | - | Indicates the type of memory-mapped microcontroller debug model that the processor supports.
|
| [19:16] | - | Indicates the type of memory-mapped Trace debug model that the processor supports.
|
| [15:12] | - | Indicates the type of coprocessor-based Trace debug model that the processor supports.
|
| [11:8] | - | Indicates the type of embedded processor debug model that the processor supports.
|
| [7:4] | - | Indicates the type of Secure debug model that the processor supports.
|
| [3:0] | - | Indicates the type of applications processor debug model that the processor supports.
|
Table 3.23 shows the results of attempted accesses to the Debug Feature Register 0 for each mode.
Table 3.23. Results of accesses to the Debug Feature Register 0
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Debug Feature Register 0 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c1
Opcode_2 set to 2.
For example:
MRC p15, 0, <Rd>, c0, c1, 2 ; Read Debug Feature Register 0
The purpose of the Auxiliary Feature Register 0 is to provide additional information about the features of the processor.
The Auxiliary Feature Register 0 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
The contents of the Auxiliary Feature Register 0 are Implementation-defined. In
the ARM1136JF-S processor, the Auxiliary Feature Register 0 reads
as 0x00000000.
Table 3.24 shows the results of attempted accesses to the Auxiliary Feature Register 0 for each mode.
Table 3.24. Results of accesses to the Auxiliary Feature Register 0
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Auxiliary Feature Register 0 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c1
Opcode_2 set to 3.
For example:
MRC p15, 0, <Rd>, c0, c1, 3 ; Read Auxiliary Feature Register 0.
The purpose of the Memory Model Feature Register 0 is to provide information about the memory model, memory management, cache support, and TLB operations of the processor.
The Memory Model Feature Register 0 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.17 shows the bit arrangement for Memory Model Feature Register 0.
Table 3.25 lists the bit functions of the Memory Model Feature Register 0.
Table 3.25. Memory Model Feature Register 0 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:28] | - | Reserved. RAZ. |
| [27:24] | - | Indicates support for FCSE.
|
| [23:20] | - | Indicates support for the ARMv6 Auxiliary Control Register.
|
| [19:16] | - | Indicates support for TCM and associated DMA.
|
| [15:12] | - | Indicates support for cache coherency with DMA agent, shared memory.
|
| [11:8] | - | Indicates support for cache coherency support with CPU agent, shared memory.
|
| [7:4] | - | Indicates support for PMSA.
|
| [3:0] | - | Indicates support for Virtual Memory System Architecture (VMSA).
|
Table 3.26 shows the results of attempted accesses to the Memory Model Feature 0 register for each mode.
Table 3.26. Results of accesses to the Memory Model Feature Register 0
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Memory Model Feature Register 0 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c1
Opcode_2 set to 4.
For example:
MRC p15, 0, <Rd>, c0, c1, 4 ; Read Memory Model Feature Register 0.
The purpose of the Memory Model Feature Register 1 is to provide information about the memory model, memory management, cache support, and TLB operations of the processor.
The Memory Model Feature Register 1 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.18 shows the arrangement of bits in the register.
Table 3.27 lists the bit functions of the Memory Model Feature Register 1.
Table 3.27. Memory Model Feature Register 1 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:28] | - | Indicates support for branch target buffer.
|
| [27:24] | - | Indicates support for test and clean operations on data cache, Harvard or unified architecture.
|
| [23:20] | - | Indicates support for level one cache, all maintenance operations, unified architecture.
|
| [19:16] | - | Indicates support for level one cache, all maintenance operations, Harvard architecture.
|
| [15:12] | - | Indicates support for level one cache line maintenance operations by Set/Way, unified architecture.
|
| [11:8] | - | Indicates support for level one cache line maintenance operations by Set/Way, Harvard architecture.
|
| [7:4] | - | Indicates support for level one cache line maintenance operations by VA, unified architecture.
|
| [3:0] | - | Indicates support for level one cache line maintenance operations by VA, Harvard architecture.
|
Table 3.28 shows the results of attempted accesses to the Memory Model Feature Register 1 for each mode.
Table 3.28. Results of accesses to the Memory Model Feature Register 1
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Memory Model Feature Register 1 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c1
Opcode_2 set to 5.
For example:
MRC p15, 0, <Rd>, c0, c1, 5 ; Read Memory Model Feature Register 1.
The purpose of the Memory Model Feature Register 2 is to provide information about the memory model, memory management, cache support, and TLB operations of the processor.
The Memory Model Feature Register 2 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.19 shows the arrangement of bits in the register.
Table 3.29 lists the bit functions of the Memory Model Feature Register 2.
Table 3.29. Memory Model Feature Register 2 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:28] | - | Indicates support for a Hardware access flag.
|
| [27:24] | - | Indicates support for wait for interrupt stalling.
|
| [23:20] | - | Indicates support for memory barrier operations.
|
| [19:16] | - | Indicates support for TLB maintenance operations, unified architecture.
|
| [15:12] | - | Indicates support for TLB maintenance operations, Harvard architecture.
|
| [11:8] | - | Indicates support for cache maintenance range operations, Harvard architecture.
|
| [7:4] | - | Indicates support for background prefetch cache range operations, Harvard architecture.
|
| [3:0] | - | Indicates support for foreground prefetch cache range operations, Harvard architecture.
|
Table 3.30 shows the results of attempted accesses to the Memory Model Feature Register 2 for each mode.
Table 3.30. Results of accesses to the Memory Model Feature Register 2
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Memory Model Feature Register 2 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c1
Opcode_2 set to 6.
For example:
MRC p15, 0, <Rd>, c0, c1, 6 ; Read Memory Model Feature Register 2.
The purpose of the Memory Model Feature Register 3 is to provide information about the memory model, memory management, cache support, and TLB operations of the processor.
The Memory Model Feature Register 3 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.20 shows the arrangement of bits in the register.
Table 3.31 lists the bit functions of the Memory Model Feature Register 3.
Table 3.31. Memory Model Feature Register 3 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:8] | - | Reserved. RAZ. |
| [7:4] | - | Indicates support for hierarchical cache maintenance operations by MVA, all architectures.
|
| [3:0] | - | Indicates support for hierarchical cache maintenance operations by Set/Way, all architectures.
|
Table 3.32 shows the results of attempted accesses to the Memory Model Feature Register 3 for each mode.
Table 3.32. Results of accesses to the Memory Model Feature Register 3
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Memory Model Feature Register 3 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c1
Opcode_2 set to 7.
For example:
MRC p15, 0, <Rd>, c0, c1, 7 ; Read Memory Model Feature Register 3.
The purpose of the Instruction Set Attributes Register 0 is to provide information about the instruction set that the processor supports beyond the basic set.
The Instruction Set Attributes Register 0 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.21 shows the arrangement of bits in the register.
Table 3.33 lists the bit functions of the Instruction Set Attributes Register 0.
Table 3.33. Instruction Set Attributes Register 0 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:28] | - | Reserved. RAZ. |
| [27:24] | Divide_instrs | Indicates support for divide instructions.
|
| [23:20] | Debug_instrs | Indicates support for debug instructions.
|
| [19:16] | Coproc_instrs | Indicates support for coprocessor instructions.
|
| [15:12] | CmpBranch_instrs | Indicates support for combined compare and branch instructions.
|
| [11:8] | Bitfield_instrs | Indicates support for bitfield instructions.
|
| [7:4] | BitCount_instrs | Indicates support for bit counting instructions.
|
| [3:0] | Atomic_instrs | Indicates support for atomic load and store instructions.
|
Table 3.34 shows the results of attempted accesses to the Instruction Set Attributes Register 0 for each mode.
Table 3.34. Results of accesses to the Instruction Set Attributes Register 0
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Instruction Set Attributes Register 0 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c2
Opcode_2 set to 0.
For example:
MRC p15, 0, <Rd>, c0, c2, 0 ; Read Instruction Set Attributes Register 0
The purpose of the Instruction Set Attributes Register 1 is to provide information about the instruction set that the processor supports beyond the basic set.
The Instruction Set Attributes Register 1 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.22 shows the arrangement of bits in the register.
Table 3.35 lists the bit functions of the Instruction Set Attributes Register 1.
Table 3.35. Instruction Set Attributes Register 1 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:28] | Jazelle_instrs | Indicates support for Jazelle instructions.
|
| [27:24] | Interwork_instrs | Indicates support for interworking instructions.
|
| [23:20] | Imediate_instrs | Indicates support for immediate instructions.
|
| [19:16] | IfThen_instrs | Indicates support for If … Then instructions.
|
| [15:12] | Extend_instrs | Indicates support for sign or zero extend instructions.
Shift operations on these instructions are also controlled by the WithShifts_instrs field, see c0, Instruction Set Attributes Register 4. |
| [11:8] | Except2_instrs | Indicates support for exception 2 instructions.
|
| [7:4] | Except1_instrs | Indicates support for exception 1 instructions.
|
| [3:0] | Endian_instrs | Indicates support for endianness control instructions.
|
Table 3.36 shows the results of attempted accesses to the Instruction Set Attributes Register 1 for each mode.
Table 3.36. Results of accesses to the Instruction Set Attributes Register 1
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Instruction Set Attributes Register 1 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c2
Opcode_2 set to 1.
For example:
MRC p15, 0, <Rd>, c0, c2, 1 ; Read Instruction Set Attributes Register 1
The purpose of the Instruction Set Attributes Register 2 is to provide information about the instruction set that the processor supports beyond the basic set.
The Instruction Set Attributes Register 2 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.23 shows the arrangement of bits in the register.
Table 3.37 lists the bit functions of the Instruction Set Attributes Register 2.
Table 3.37. Instruction Set Attributes Register 2 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:28] | Reversal_instrs | Indicates support for reversal instructions.
|
| [27:24] | PSR_instrs | Indicates support for PSR instructions.
|
| [23:20] | MultU_instrs | Indicates support for advanced unsigned multiply instructions.
|
| [19:16] | MultS_instrs | Indicates support for advanced signed multiply instructions.
|
| [15:12] | Mult_instrs | Indicates support for multiply instructions.
|
| [11:8] | MultiAccessInt_instrs | Indicates support for multi-access interruptible instructions.
|
| [7:4] | MemHint_instrs | Indicates support for memory hint instructions.
|
| [3:0] | LoadStore_instrs | Indicates support for load and store instructions.
|
Table 3.38 shows the results of attempted accesses to the Instruction Set Attributes Register 2 for each mode.
Table 3.38. Results of accesses to the Instruction Set Attributes Register 2
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Instruction Set Attributes Register 2 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c2
Opcode_2 set to 2.
For example:
MRC p15, 0, <Rd>, c0, c2, 2 ; Read Instruction Set Attributes Register 2
The purpose of the Instruction Set Attributes Register 3 is to provide information about the instruction set that the processor supports beyond the basic set.
The Instruction Set Attributes Register 3 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.24 shows the arrangement of bits in the register.
Table 3.39 lists the bit functions of the Instruction Set Attributes Register 3.
Table 3.39. Instruction Set Attributes Register 3 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:28] | T2ExeEnvExtn_instrs | Indicates support for Thumb-2 execution environment extensions.
|
| [27:24] | TrueNOP_instrs | Indicates support for true NOP instructions.
|
| [23:20] | ThumbCopy_instrs | Indicates support for Thumb copy instructions.
|
| [19:16] | TabBranch_instrs | Indicates support for table branch instructions.
|
| [15:12] | SynchPrim_instrs | Indicates support for synchronization primitive instructions.
|
| [11:8] | SWI-_instrs | Indicates support for SWI instructions.
|
| [7:4] | SIMD_instrs | Indicates support for Single Instruction Multiple Data (SIMD) instructions.
PKHBT, PKHTB, QADD16, QADD8, QADDSUBX, QSUB16, QSUB8, QSUBADDX, SADD16, SADD8, SADDSUBX, SEL, SHADD16, SHADD8, SHADDSUBX, SHSUB16, SHSUB8, SHSUBADDX, SSAT, SSAT16, SSUB16, SSUB8, SSUBADDX, SXTAB16, SXTB16, UADD16, UADD8, UADDSUBX, UHADD16, UHADD8, UHADDSUBX, UHSUB16, UHSUB8, UHSUBADDX, UQADD16, UQADD8, UQADDSUBX, UQSUB16, UQSUB8, UQSUBADDX, USAD8, USADA8, USAT, USAT16, USUB16, USUB8, USUBADDX, UXTAB16, UXTB16, and the GE[3:0] bits in the PSRs. |
| [3:0] | Saturate_instrs | Indicates support for saturate instructions.
|
Table 3.40 shows the results of attempted accesses to the Instruction Set Attributes Register 3 for each mode.
Table 3.40. Results of accesses to the Instruction Set Attributes Register 3
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Instruction Set Attributes Register 3 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c2
Opcode_2 set to 3.
For example:
MRC p15, 0, <Rd>, c0, c2, 3 ; Read Instruction Set Attributes Register 3
The purpose of the Instruction Set Attributes Register 4 is to provide information about the instruction set that the processor supports beyond the basic set.
The Instruction Set Attributes Register 4 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
Figure 3.25 shows the arrangement of bits in the register.
Table 3.41 lists the bit functions of the Instruction Set Attributes Register 4.
Table 3.41. Instruction Set Attributes Register 4 bit functions
| Bit range | Field name | Function |
|---|---|---|
| [31:28] | - | Reserved. RAZ. |
| [27:24] | - | Reserved. RAZ. |
| [23:20] | Syncprim_instrs_frac | Indicates fractional support for synchronization primitive instructions.
The SynchPrim_instrs field indicates the support for synchronization primitive instructions, see c0, Instruction Set Attributes Register 3. |
| [19:16] | Barrier_instrs | Indicates support for barrier instructions.
|
| [15:12] | SMI_instrs | Indicates support for SMI instructions.
|
| [11:8] | Writeback_instrs | Indicates support for writeback instructions.
|
| [7:4] | WithShifts_instrs | Indicates support for with shift instructions.
|
| [3:0] | Unpriv_instrs | Indicates support for Unprivileged instructions.
|
Table 3.42 shows the results of attempted accesses to the Instruction Set Attributes Register 4 for each mode.
Table 3.42. Results of accesses to the Instruction Set Attributes Register 4
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Instruction Set Attributes Register 4 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c2
Opcode_2 set to 4.
For example:
MRC p15, 0, <Rd>, c0, c2, 4 ; Read Instruction Set Attributes Register 4
The purpose of the Instruction Set Attributes Register 5 is to provide additional information about the properties of the processor.
The Instruction Set Attributes Register 5 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged mode only
only available from the rev1 (r1p0) release of the ARM1136JF-S processor.
In the ARM1136JF-S processor, Instruction Set Attributes Register
5 reads as 0x00000000.
Table 3.43 shows the results of attempted accesses to the Instruction Set Attributes Register 5 for each mode.
Table 3.43. Results of accesses to the Instruction Set Attributes Register 5
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Instruction Set Attributes Register 5 you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set toc2
Opcode_2 set to 5.
For example:
MRC p15, 0, <Rd>, c0, c2, 5 ; Read Instruction Set Attribute Register 5.