05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

The System Level Programmers’ Model<br />

B1.7 Coprocessors <strong>and</strong> system control<br />

The <strong>ARM</strong> architecture supports sixteen coprocessors, usually referred to as CP0 to CP15. These<br />

coprocessors are introduced in Coprocessor support on page A2-68. The architecture reserves two of these<br />

coprocessors, CP14 <strong>and</strong> CP15, for configuration <strong>and</strong> control related to the architecture:<br />

CP14 is reserved for the configuration <strong>and</strong> control of:<br />

— debug features, see The CP14 debug register interfaces on page C6-32<br />

— execution environment features, see Execution environment support on page B1-73.<br />

CP15 is called the System Control coprocessor, <strong>and</strong> is reserved for the control <strong>and</strong> configuration of<br />

the <strong>ARM</strong> processor system, including architecture <strong>and</strong> feature identification.<br />

This section gives:<br />

general information about the CP15 registers, in CP15 System Control coprocessor registers<br />

information about access controls for coprocessors CP0 to CP13, in Access controls on CP0 to CP13<br />

on page B1-63.<br />

B1.7.1 CP15 System Control coprocessor registers<br />

The implementation of the CP15 registers depends heavily on whether the <strong>ARM</strong>v7 implementation is:<br />

an <strong>ARM</strong>v7-A implementation with a Virtual Memory System <strong>Architecture</strong> (VMSA)<br />

an <strong>ARM</strong>v7-R implementation with a Protected Memory System <strong>Architecture</strong> (PMSA).<br />

Therefore, detailed descriptions of the CP15 registers are given in:<br />

CP15 registers for a VMSA implementation on page B3-64<br />

CP15 registers for a PMSA implementation on page B4-22.<br />

Registers that are common to VMSA <strong>and</strong> PMSA implementations are described in both of these sections.<br />

Some registers are implemented differently in VMSA <strong>and</strong> PMSA implementations.<br />

Those descriptions do not include the registers that implement the processor identification scheme, CPUID.<br />

The CPUID registers are described in Chapter B5 The CPUID Identification Scheme.<br />

CP15, the System Control coprocessor, can contain up to 16 primary registers, each of which is 32 bits long.<br />

The CP15 register access instructions define the required primary register. Additional fields in the<br />

instruction are used to refine the access, <strong>and</strong> increase the number of physical 32-bit registers in CP15. In<br />

descriptions of the System Control coprocessor the 4-bit primary register number is used as a top level<br />

register identifier, because it is the primary factor determining the function of the register. The 16 primary<br />

registers in CP15 are identified as c0 to c15.<br />

For details of register access rights <strong>and</strong> restrictions see the descriptions of the individual registers. In<br />

<strong>ARM</strong>v7-A implementations, see also Effect of the Security Extensions on the CP15 registers on page B3-71.<br />

The CP15 register access instructions are:<br />

MCR, to write an <strong>ARM</strong> core register to a CP15 register, see MCR, MCR2 on page A8-186<br />

MRC, to read the value of a CP15 register into an <strong>ARM</strong> core register, see MRC, MRC2 on page A8-202.<br />

B1-62 Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DDI 0406B

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!