09.12.2012 Views

Cortex-A8 Technical Reference Manual - ARM Information Center

Cortex-A8 Technical Reference Manual - ARM Information Center

Cortex-A8 Technical Reference Manual - ARM Information Center

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.

System Control Coprocessor<br />

— the privileged only Thread and Process ID Register is only accessible in privileged<br />

modes, and is read/write.<br />

Table 3-146 shows the results of attempted access to each register for each mode.<br />

To access the Thread and Process ID Registers, read or write CP15 with:<br />

MRC p15, 0, , c13, c0, 2 ; Read User read/write Thread and Process ID Register<br />

MCR p15, 0, , c13, c0, 2 ; Write User read/write Thread and Process ID Register<br />

MRC p15, 0, , c13, c0, 3 ; Read User read-only Thread and Process ID Register<br />

MCR p15, 0, , c13, c0, 3 ; Write User read-only Thread and Process ID Register<br />

MRC p15, 0, , c13, c0, 4 ; Read Privileged only Thread and Process ID Register<br />

MCR p15, 0, , c13, c0, 4 ; Write Privileged only Thread and Process ID Register<br />

Reading or writing the Thread and Process ID Registers has no effect on the processor state or<br />

operation. These registers provide OS support and must be managed by the OS.<br />

You must clear the contents of all Thread and Process ID Registers on process switches to<br />

prevent data leaking from one process to another. This is important to ensure the security of<br />

secure data.<br />

3.2.74 c15, L1 system array debug data registers<br />

Table 3-146 Results of access to the Thread and Process ID Registers a<br />

Secure<br />

privileged Nonsecure privileged Secure User Nonsecure User<br />

Register b Read Write Read Write Read Write Read Write<br />

User<br />

read/write<br />

User<br />

read-only<br />

Privileged<br />

only<br />

Secure<br />

data<br />

Secure<br />

data<br />

Secure<br />

data<br />

Secure<br />

data<br />

Secure<br />

data<br />

Secure<br />

data<br />

Nonsecure<br />

data<br />

Nonsecure<br />

data<br />

Nonsecure<br />

data<br />

Nonsecure<br />

data<br />

Nonsecure<br />

data<br />

Nonsecure<br />

data<br />

Secure<br />

data<br />

Secure<br />

data<br />

The purpose of the L1 system array debug data registers is to hold the data:<br />

• that is returned on instruction side or data side TLB CAM, TLB ATTR, TLB PA, HVAB,<br />

tag, data, GHB, and BTB instruction or data side read operations<br />

• for TLB CAM, TLB ATTR, TLB PA, HVAB, tag, data, GHB, and BTB instruction side<br />

or data side write operations.<br />

Because BTB, TLB, and data arrays are greater than 32-bits wide, the processor contains two<br />

registers, data low register and data high register, to hold data when retrieving or registering data<br />

as a result of read/write operations. If the data is greater than 32-bit wide, both the low and high<br />

registers are used to transfer data. Otherwise, only the low register is used to transfer data.<br />

The Data 0 and Data 1 read/write registers are accessible in secure privileged modes only.<br />

To access the L1 system debug registers, read or write CP15 with:<br />

MCR p15, 0, , c15, c0, 0 ; Write data L1 Data 0 Register<br />

Secure data Nonsecure<br />

data<br />

Undefined Nonsecure<br />

data<br />

Nonsecure<br />

data<br />

Undefined<br />

Undefined Undefined Undefined Undefined<br />

a. An entry of Undefined in the table means that the access gives an Undefined Instruction exception when the coprocessor<br />

instruction is executed.<br />

b. Each row refers to a Thread and Process ID Register. For example, the User read/write row refers to the User read/write<br />

Thread and Process ID Register.<br />

<strong>ARM</strong> DDI 0344K Copyright © 2006-2010 <strong>ARM</strong> Limited. All rights reserved. 3-124<br />

ID060510 Non-Confidential

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

Saved successfully!

Ooh no, something went wrong!