| |||
| Home > System Control Coprocessor > System control processor registers > c0, CPUID registers | |||
The section describes the CPUIID registers:
The CPUID registers are sometimes described as 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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Table 3.12 lists how the bit values correspond with the Processor Feature Register 0 functions.
Figure 3.14 shows the bit arrangement for Processor Feature Register 0.
Table 3.12. Processor Feature Register 0 bit functions
| Bits | 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.13 lists the results of attempted access for each mode.
Table 3.13. Results of access to the Processor Feature Register 0
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.15 shows the bit arrangement for Processor Feature Register 1.
Table 3.14 lists how the bit values correspond with the Processor Feature Register 1 functions.
Table 3.14. Processor Feature Register 1 bit functions
| Bits | Field name | Function |
|---|---|---|
| [31:28] | - | Reserved. RAZ |
| [27:24] | - | Reserved. RAZ. |
| [23:20] | - | Reserved. RAZ. |
| [19:16] | - | Reserved. RAZ. |
| [15: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.15 lists the results of attempted access for each mode.
Table 3.15. Results of access to the Processor Feature Register 1
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.16 shows the bit arrangement for Debug Feature Register 0.
Table 3.16 lists how the bit values correspond with the Debug Feature Register 0 functions.
Table 3.16. Debug Feature Register 0 bit functions
| Bits | 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.17 lists the results of attempted access for each mode.
Table 3.17. Results of access to the Debug Feature Register 0
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Table 3.18 lists how the bit values correspond with the Auxiliary Feature Register 0 functions.
Table 3.18. Auxiliary Feature Register 0 bit functions
| Bits | Field name | Function |
|---|---|---|
| [31:16] | - | Reserved. RAZ. |
| [15:12] | - | Implementation Defined. |
| [11:8] | - | Implementation Defined. |
| [7:4] | - | Implementation Defined. |
| [3:0] | - | Implementation Defined. |
The contents of the Auxiliary Feature Register 0 [31:16] are
Reserved. The contents of the Auxiliary Feature Register 0 [15:0]
are Implementation Defined. In the ARM1176JZF-S processor, the Auxiliary
Feature Register 0 reads as 0x00000000.
Table 3.19 lists the results of attempted access for each mode.
Table 3.19. Results of access to the Auxiliary Feature Register 0
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.17 shows the bit arrangement for Memory Model Feature Register 0.
Table 3.20 lists how the bit values correspond with the Memory Model Feature Register 0 functions.
Table 3.20. Memory Model Feature Register 0 bit functions
| Bits | 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 Protected Memory System Architecture (PMSA).
|
| [3:0] | - | Indicates support for Virtual Memory System Architecture (VMSA).
|
Table 3.21 lists the results of attempted access for each mode.
Table 3.21. Results of access to the Memory Model Feature Register 0
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.18 shows the bit arrangement for Memory Model Feature Register 1.
Table 3.22 lists how the bit values correspond with the Memory Model Feature Register 1 functions.
Table 3.22. Memory Model Feature Register 1 bit functions
| Bits | 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 MVA, unified architecture. 0, no support in ARM1176JZF-S processors. |
| [3:0] | - | Indicates support for level one cache line maintenance operations by MVA, Harvard architecture.
|
Table 3.23 lists the results of attempted access for each mode.
Table 3.23. Results of access to the Memory Model Feature Register 1
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.19 shows the bit arrangement for Memory Model Feature Register 2.
Table 3.24 lists how the bit values correspond with the Memory Model Feature Register 2 functions.
Table 3.24. Memory Model Feature Register 2 bit functions
| Bits | 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.25 lists the results of attempted access for each mode.
Table 3.25. Results of access to the Memory Model Feature Register 2
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.20 shows the bit arrangement for Memory Model Feature Register 3.
Table 3.26 lists how the bit values correspond with the Memory Model Feature Register 3 functions.
Table 3.26. Memory Model Feature Register 3 bit functions
| Bits | Field name | Function |
|---|---|---|
| [31:8] | - | Reserved. RAZ. |
| [7:4] | - | Support for hierarchical cache maintenance by MVA, all architectures
|
| [3:0] | - | Support for hierarchical cache maintenance by Set/Way, all architectures.
|
Table 3.27 lists the results of attempted access for each mode.
Table 3.27. Results of access to the Memory Model Feature Register 3
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.21 shows the bit arrangement for Instruction Set Attributes Register 0.
Table 3.28 lists how the bit values correspond with the Instruction Set Attributes Register 0 functions.
Table 3.28. Instruction Set Attributes Register 0 bit functions
| Bits | Field name | Function |
|---|---|---|
| [31:28] | - | Reserved. RAZ. |
| [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.
|
Table 3.29 lists the results of attempted access for each mode.
Table 3.29. Results of access to the Instruction Set Attributes Register 0
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.22 shows the bit arrangement for Instruction Set Attributes Register 1.
Table 3.30 lists how the bit values correspond with the Instruction Set Attributes Register 1 functions.
Table 3.30. Instruction Set Attributes Register 1 bit functions
| Bits | Field name | Function |
|---|---|---|
| [31:28] | - | Indicates support for Java 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.
|
Table 3.31 lists the results of attempted access for each mode.
Table 3.31. Results of access to the Instruction Set Attributes Register 1
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.23 shows the bit arrangement for Instruction Set Attributes Register 2.
Table 3.32 lists how the bit values correspond with the Instruction Set Attributes Register 2 functions.
Table 3.32. Instruction Set Attributes Register 2 bit functions
| Bits | Field name | 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.
|
Table 3.33 lists the results of attempted access for each mode.
Table 3.33. Results of access to the Instruction Set Attributes Register 2
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.24 shows the bit arrangement for Instruction Set Attributes Register 3.
Table 3.34 lists how the bit values correspond with the Instruction Set Attributes Register 3 functions.
Table 3.34. Instruction Set Attributes Register 3 bit functions
| Bits | Field name | Function |
|---|---|---|
| [31:28] | - | Indicates support for Thumb-2 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, 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] | - | Indicates support for saturate instructions.
|
Table 3.35 lists the results of attempted access for each mode.
Table 3.35. Results of access to the Instruction Set Attributes Register 3
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.25 shows the bit arrangement for Instruction Set Attributes Register 4.
Table 3.36 lists how the bit values correspond with the Instruction Set Attributes Register 4 functions.
Table 3.36. Instruction Set Attributes Register 4 bit functions
| Bits | Field name | Function |
|---|---|---|
| [31:28] | - | Reserved. RAZ. |
| [27:24] | - | Reserved. RAZ. |
| [23:20] | - | Indicates fractional support for synchronization primitive instructions.
See Table 3.34. |
| [19:16] | - | Indicates support for barrier instructions.
|
| [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.
|
Table 3.37 lists the results of attempted access for each mode.
Table 3.37. Results of access to the Instruction Set Attributes Register 4
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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 common to the Secure and Non-secure worlds
accessible in privileged modes only.
The contents of the Instruction Set Attributes Register 5
are implementation defined. In the ARM1176JZF-S processor, Instruction
Set Attributes Register 5 is read as 0x00000000.
Table 3.38 lists the results of attempted access for each mode.
Table 3.38. Results of access to the Instruction Set Attributes Register 5
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Data | Undefined exception | Data | Undefined exception | Undefined exception |
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.