| |||
| Home > System Control Coprocessor > System control processor registers > c0, Core feature ID registers | |||
The section describes the core feature ID registers:
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 modes only.
Figure 3.15 shows the bit arrangement for Processor Feature Register 0.
Table 3.12 shows how the bit values correspond with the Processor Feature Register 0 functions.
Table 3.12. Processor Feature Register 0 bit functions
| Bits | Field | Function |
|---|---|---|
| [31:16] | - | Reserved. UNP/SBZ. |
| [15:12] | State3 | Indicates support for Thumb-2™ execution environment. This
is set to |
| [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.
|
The values in the Processor Feature Register 0 are implementation defined.
To use the Processor Feature Register 0 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 modes only.
Figure 3.16 shows the bit arrangement for Processor Feature Register 1.
Table 3.13 shows how the bit values correspond with the Processor Feature Register 1 functions.
Table 3.13. Processor Feature Register 1 bit functions
| Bits | Field | Function |
|---|---|---|
| [31:8] | - | Reserved. UNP/SBZ. |
| [7:4] | Security extension | Indicates support for Security Extensions Architecture v1.
|
| [3:0] | Programmer’s model | Indicates support for standard ARMv4 programmer’s model.
|
The values in the Processor Feature Register 1 are implementation defined.
To use the Processor Feature Register 1 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 modes only.
Figure 3.17 shows the bit arrangement for Debug Feature Register 0.
Table 3.14 shows how the bit values correspond with the Debug Feature Register 0 functions.
Table 3.14. Debug Feature Register 0 bit functions
| Bits | Field | Function |
|---|---|---|
| [31:12] | - | Reserved. UNP/SBZ |
| [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.
|
The values in the Debug Feature Register 0 are implementation defined.
To use the Debug Feature Register 0 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 modes only.
The contents of the Auxiliary Feature Register 0 are implementation
defined. In the ARM1156T2F-S processor, the Auxiliary Feature Register
0 reads as 0x00000000.
To use the Auxiliary Feature Register 0 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 indicate what memory and system architectures the ARM1156T2F-S processor supports.
The Memory Model Feature Register 0 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged modes only.
Figure 3.18 shows the bit arrangement for Memory Model Feature Register 0.
Table 3.15 shows how the bit values correspond with the Memory Model Feature Register 0 functions.
Table 3.15. Memory Model Feature Register 0 bit functions
| Bits | Field | Function |
|---|---|---|
| [31:28] | - | Reserved. UNP/SBZ. |
| [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).
|
The values in the Memory Model Feature Register 0 are implementation defined.
To use the Memory Model Feature Register 0 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 indicate what level one memory operations the ARM1156T2F-S processor supports.
The Memory Model Feature Register 1 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged modes only.
Figure 3.19 shows the bit arrangement for Memory Model Feature Register 1.
Table 3.16 shows how the bit values correspond with the Memory Model Feature Register 1 functions.
Table 3.16. Memory Model Feature Register 1 bit functions
| Bits | Field | 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.
|
The values in the Memory Model Feature Register 1 are implementation defined.
To use the Memory Model Feature Register 1 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 indicate what memory barrier and cache range operations the ARM1156T2F-S processor supports. This register also indicates that wait for interrupt stalling is supported by the processor.
The Memory Model Feature Register 2 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged modes only.
Figure 3.20 shows the bit arrangement for Memory Model Feature Register 2.
Table 3.17 shows how the bit values correspond with the Memory Model Feature Register 2 functions.
Table 3.17. Memory Model Feature Register 2 bit functions
| Bits | Field | Function |
|---|---|---|
| [31:28] | - | Reserved. UNP/SBZ. |
| [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.
|
The values in the Memory Model Feature Register 2 are implementation defined.
To use the Memory Model Feature Register 2 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 indicate what level-2 cache memory operations the ARM1156T2F-S processor supports.
The Memory Model Feature Register 3 is:
in CP15 c0
a 32-bit read-only register
accessible in privileged modes only.
Figure 3.21 shows the bit arrangement for Memory Model Feature Register 3.
Table 3.18 shows how the bit values correspond with the Memory Model Feature Register 3 functions.
Table 3.18. Memory Model Feature Register 3 bit functions
| Bit | Field | Function |
|---|---|---|
| [31:8] | - | Reserved. UNP/SBZ |
| [7:4] | - | Indicates support for level two cache line maintenance operations with VA, unified architecture.
|
| [3:0] | - | Indicates support for level two cache line maintenance operations with PA, unified architecture.
|
The values in the Memory Model Feature Register 3 are implementation defined.
To use the Memory Model Feature Register 3 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 modes only.
Figure 3.22 shows the bit arrangement for Instruction Set Attributes Register 0.
Table 3.19 shows how the bit values correspond with the Instruction Set Attributes Register 0 functions.
Table 3.19. Instruction Set Attributes Register 0 bit functions
| Bits | Field | Function |
|---|---|---|
| [31:28] | - | Reserved. UNP/SBZ. |
| [27:24] | - | Indicates support for divide instructions.
|
| [23:20] | - | Indicates support for debug instructions.
|
| [19:16] | - | Indicates support for coprocessor instructions.
|
| [15:12] | - | Indicates support for combined compare and branch instructions.
|
| [11:8] | - | Indicates support for bitfield instructions.
|
| [7:4] | - | Indicates support for bit counting instructions.
|
| [3:0] | - | Indicates support for atomic load and store instructions.
|
The values in the Instruction Set Attributes Register 0 are implementation defined.
To use the Instruction Set Attributes Register 0 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 modes only.
Figure 3.23 shows the bit arrangement for Instruction Set Attributes Register 1.
Table 3.20 shows how the bit values correspond with the Instruction Set Attributes Register 1 functions.
Table 3.20. Instruction Set Attributes Register 1 bit functions
| Bit | Field | Function |
|---|---|---|
| [31:28] | - | Indicates support for Jazelle instructions.
|
| [27:24] | - | Indicates support for interworking instructions.
|
| [23:20] | - | Indicates support for immediate instructions.
|
| [19:16] | - | Indicates support for if then instructions.
|
| [15:12] | - | Indicates support for sign or zero extend instructions.
|
| [11:8] | - | Indicates support for exception 2 instructions.
|
| [7:4] | - | Indicates support for exception 1 instructions.
|
| [3:0] | - | Indicates support for endianness control instructions.
|
The values in the Instruction Set Attributes Register 1 are implementation defined.
To use the Instruction Set Attributes Register 1 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 modes only.
Figure 3.24 shows the bit arrangement for Instruction Set Attributes Register 2.
Table 3.21 shows how the bit values correspond with the Instruction Set Attributes Register 2 functions.
Table 3.21. Instruction Set Attributes Register 2 bit functions
| Bits | Field | Function |
|---|---|---|
| [31:28] | - | Indicates support for reversal instructions.
|
| [27:24] | - | Indicates support for PSR instructions.
|
| [23:20] | - | Indicates support for advanced unsigned multiply instructions.
|
| [19:16] | - | Indicates support for advanced signed multiply instructions.
|
| [15:12] | - | Indicates support for multiply instructions.
|
| [11:8] | - | Indicates support for multi-access interruptible instructions.
|
| [7:4] | - | Indicates support for memory hint instructions.
|
| [3:0] | - | Indicates support for load and store instructions.
|
The values in the Instruction Set Attributes Register 2 are implementation defined.
To use the Instruction Set Attributes Register 2 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 registers
accessible in privileged modes only.
Figure 3.25 shows the bit arrangement for Instruction Set Attributes Register 3.
Table 3.22 shows how the bit values correspond with the Instruction Set Attributes Register 3 functions.
Table 3.22. Instruction Set Attributes Register 3 bit functions
| Bits | Field | Function |
|---|---|---|
| [31:28] | - | Indicates support for Thumb-2 execution environment extensions.
|
| [27:24] | - | Indicates support for true NOP instructions.
|
| [23:20] | - | Indicates support for Thumb copy instructions.
|
| [19:16] | - | Indicates support for table branch instructions.
|
| [15:12] | - | Indicates support for synchronization primitive instructions.
|
| [11:8] | - | Indicates support for SVC instructions.
|
| [7:4] | - | Indicates support for Single Instruction Multiple Data (SIMD) instructions.
PKHBT, PKHTB, QADD16, QADD8, QASX, QSUB16, QSUB8, QSAX, SADD16, SADD8, SASX, SEL, SHADD16, SHADD8, SHASX, SHSUB16, SHSUB8, SHSAX, SSAT, SSAT16, SSUB16, SSUB8, SSAX, SXTB16, SXTB16, UADD16, UADD8, UASX, UHADD16, UHADD8, UHASX, UHSUB16, UHSUB8, UHSAX, UQADD16, UQADD8, UQASX, UQSUB16, UQSUB8, UQSAX, USAD8, USADA8, USAT, USAT16, USUB16, USUB8, USAX, UXTAB16, UXTB16, and the GE[3:0] bits in the PSRs. |
| [3:0] | - | Indicates support for saturate instructions.
|
The values in the Instruction Set Attributes Register 3 are implementation defined.
To use the Instruction Set Attributes Register 3 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 modes only.
Figure 3.26 shows the bit arrangement for Instruction Set Attributes Register 4.
Table 3.23 shows how the bit values correspond with the Instruction Set Attributes Register 4 functions.
Table 3.23. Instruction Set Attributes Register 4 bit functions
| Bits | Field | Function |
|---|---|---|
| [31:16] | - | Reserved. UNP/SBZ. |
| [15:12] | - | Indicates support for SMC instructions.
|
| [11:8] | - | Indicates support for writeback instructions.
|
| [7:4] | - | Indicates support for with shift instructions.
|
| [3:0] | - | Indicates support for Unprivileged instructions.
|
The values in the Instruction Set Attributes Register 4 are implementation defined.
To use the Instruction Set Attributes Register 4 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 registers
accessible in privileged modes only.
The contents of the Instruction Set Attributes Register 5
are implementation defined. In the ARM1156T2F-S processor, Instruction
Set Attributes Register 5 is read as 0x00000000.
To use the Instruction Set Attributes Register 5 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.