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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Virtual Memory System <strong>Architecture</strong> (VMSA)<br />

The format of the CONTEXTIDR is:<br />

31 8 7 0<br />

PROCID ASID<br />

PROCID, bits [31:8]<br />

Process Identifier. This field must be programmed with a unique value that identifies the<br />

current process. It is used by the trace logic <strong>and</strong> the debug logic to identify the process that<br />

is running currently.<br />

ASID, bits [7:0]<br />

Address Space Identifier. This field is programmed with the value of the current ASID.<br />

Using the CONTEXTIDR<br />

For information about the synchronization of changes to the CONTEXTIDR see Changes to CP15 registers<br />

<strong>and</strong> the memory order model on page B3-77. There are particular synchronization requirements when<br />

changing the ASID <strong>and</strong> Translation Table Base Registers, see Synchronization of changes of ASID <strong>and</strong><br />

TTBR on page B3-60.<br />

Accessing the CONTEXTIDR<br />

To access the CONTEXTIDR you read or write the CP15 registers with set to 0, set to c13,<br />

set to c0, <strong>and</strong> set to 1. For example:<br />

MRC p15,0,,c13,c0,1 ; Read CP15 Context ID Register<br />

MCR p15,0,,c13,c0,1 ; Write CP15 Context ID Register<br />

B3.12.46 CP15 c13 Software Thread ID registers<br />

The Software Thread ID registers provide locations where software can store thread identifying information,<br />

for OS management purposes. These registers are never updated by the hardware.<br />

The Software Thread ID registers are:<br />

three 32-bit register read/write registers:<br />

— User Read/Write Thread ID Register, TPIDRURW<br />

— User Read-only Thread ID Register, TPIDRURO<br />

— Privileged Only Thread ID Register, TPIDRPRW.<br />

accessible in different modes:<br />

— the User Read/Write Thread ID Register is read/write in unprivileged <strong>and</strong> privileged modes<br />

— the User Read-only Thread ID Register is read-only in User mode, <strong>and</strong> read/write in privileged<br />

modes<br />

— the Privileged Only Thread ID Register is only accessible in privileged modes, <strong>and</strong> is<br />

read/write.<br />

when the Security Extensions are implemented, Banked registers<br />

introduced in <strong>ARM</strong>v7.<br />

B3-154 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!