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.

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

If the translation fails without generating an abort, the format of the PAR is:<br />

31 7 6 1 0<br />

UNK/SBZP FS F<br />

Bits [31:7] UNK/SBZP.<br />

FS, bits [6:1] Fault status bits. Bits [12,10,3:0] from the Data Fault Status Register, indicate the source of<br />

the abort. For more information, see c5, Data Fault Status Register (DFSR) on page B3-121.<br />

F, bit [0] F bit is 1 if the conversion aborted.<br />

The VA to PA translation only generates an abort if the translation fails because an external abort occurred<br />

on a translation table walk request. In this case:<br />

If the external abort is synchronous, the DFSR <strong>and</strong> DFAR of the security state in which the abort is<br />

h<strong>and</strong>led are updated. The DFSR indicates the appropriate external abort on Translation fault, <strong>and</strong> the<br />

DFAR indicates the MVA that caused the translation. PAR is UNKNOWN.<br />

If the external abort is asynchronous, the DFSR of the security state in which the abort is h<strong>and</strong>led is<br />

updated when the abort is taken. The DFSR indicates the asynchronous external abort. The DFAR is<br />

not updated. PAR is UNKNOWN.<br />

For all other cases where the VA to PA translation fails:<br />

No abort is generated, <strong>and</strong> the DFSR <strong>and</strong> DFAR are unchanged<br />

the PAR [6:1] field is updated with an FSR encoding that indicates the fault<br />

the PAR bit [0] is set to 1.<br />

Implementations that do not support all attributes can report the behavior for those memory types that the<br />

cache does support.<br />

Accessing the PAR <strong>and</strong> the VA to PA translation operations<br />

To access one of the VA to PA translation operations you write the CP15 registers with set to 0, <br />

set to c7, set to c8, <strong>and</strong> set to the value shown in Table B3-33 on page B3-131 or Table B3-34<br />

on page B3-131.<br />

With register Rt containing the original VA this gives:<br />

MCR p15,0,,c7,c8,<br />

To read the PAR you read the CP15 registers with set to 0, set to c7, set to c4, <strong>and</strong> <br />

set to 0. To return the translated PA in register Rt this gives:<br />

MRC p15,0,,c7,c4,0<br />

The PAR is a read/write register, <strong>and</strong> you can write to the CP15 registers with the same settings to write to<br />

the register. There is no translation operation that requires writing to this register, but the write operation<br />

might be required to restore the value of the PAR after a context switch.<br />

An example of a VA to PA translation when the Security Extensions are not implemented is:<br />

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

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

Saved successfully!

Ooh no, something went wrong!