| |||
| Home > System Control Coprocessor > System control processor register descriptions > c0, Main ID Register | |||
The purpose of the Main ID Register is to return the device ID code that contains information about the processor.
The Main ID Register is:
in CP15 c0
a 32 bit read-only register
accessible in privileged mode only.
Before the r1p0 release, this register was called the ID Code Register.
Figure 3.9 shows the arrangement of bits in the register.
The contents of the Main ID Register depend on the specific implementation. Table 3.4 lists the bit functions of the Main ID Register.
Table 3.4. Main ID Register field descriptions
| Bit range | Field name | Function | Value |
|---|---|---|---|
| [31:24] | Implementor | Indicates the implementor, ARM Limited. |
|
| [23:20] | Variant number | Implementation-defined. |
|
| [19:16] | Architecture | ARMv6 |
|
| [15:4] | Primary part number | Implementation-defined. Part number for ARM1136JF-S and ARM1136J-S |
|
| [3:0] | Revision number | Implementation-defined. Revision number |
|
[1] Value given is
for the rev1 (r1p0 and r1p1) releases of the ARM1136JF-S processor.
For rev0 releases, the Variant number is [2] Value
given is for the r1p1 release of the ARM1136JF-S processor:
for the r1p0 release the Revision number is | |||
If the processor encounters an Opcode_2 value corresponding to an unimplemented or reserved ID register with CRm = c0 and Opcode_1 = 0, the system control coprocessor returns the value of the Main ID Register.
Table 3.5 shows the results of attempted accesses to the Main ID Register for each mode.
Table 3.5. Results of accesses to the Main ID Register
| Privileged read | Privileged write | User read or write |
|---|---|---|
| Data read | Undefined exception | Undefined exception |
To access the Main ID Register you read CP15 with:
Opcode_1 set to 0
CRn set to c0
CRm set to c0
Opcode_2 set to 0.
For example:
MRC p15,0,<Rd>,c0,c0,0 ; Read Main ID Register
For more information about the processor features, see c0, Core feature ID registers.