The PAR_EL1 characteristics are:
Returns the output address (OA) from an Address translation instruction that executed successfully, or fault information if the instruction did not execute successfully.
This register is part of the Address translation instructions functional group.
AArch64 System register PAR_EL1 is architecturally mapped to AArch32 System register PAR.
RW fields in this register reset to architecturally UNKNOWN values.
PAR_EL1 is a 64-bit register.
The PAR_EL1 bit assignments are:
Indicates whether the instruction performed a successful address translation.
F | Meaning |
---|---|
0 |
Address translation completed successfully. |
1 |
Address translation aborted. |
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
ATTR | 0 | 0 | 0 | 0 | PA[51:48] | PA[47:12] | |||||||||||||||||||||||||
PA[47:12] | 1 | IMP DEF | NS | SH | 0 | 0 | 0 | 0 | 0 | 0 | F | ||||||||||||||||||||
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
This section describes the register value returned by the successful execution of an Address translation instruction. Software might subsequently write a different value to the register, and that write does not affect the operation of the PE.
On a successful conversion, the PAR_EL1 can return a value that indicates the resulting attributes, rather than the values that appear in the translation table descriptors. More precisely:
Memory attributes for the returned output address. This field uses the same encoding as the Attr<n> fields in MAIR_EL1, MAIR_EL2, and MAIR_EL3.
The value returned in this field can be the resulting attribute, as determined by any permitted implementation choices and any applicable configuration bits, instead of the value that appears in the translation table descriptor.
Reserved, RES0.
Extension to PA[47:12]. See PA[47:12] for more details.
Reserved, RES0.
Output address. The output address (OA) corresponding to the supplied input address. This field returns address bits[47:12].
When ARMv8.2-LPA is implemented, and 52-bit addresses and a 64KB translation granule are in use, PA[51:48] form the upper part of the address value. Otherwise, for implementations with fewer than 52 physical address bits, the upper bits of this field, corresponding to address bits that are not implemented, are RES0.
Reserved, RES1.
IMPLEMENTATION DEFINED.
Non-secure. The NS attribute for a translation table entry from a Secure translation regime.
For a result from a Secure translation regime, this bit reflects the Security state of the physical address space of the translation. This means it reflects the effect of the NSTable bits of earlier levels of the translation table walk if those NSTable bits have an effect on the translation.
For a result from a Non-secure translation regime, this bit is UNKNOWN.
Shareability attribute, for the returned output address. Permitted values are:
SH | Meaning |
---|---|
00 |
Non-shareable. |
10 |
Outer Shareable. |
11 |
Inner Shareable. |
The value 01 is reserved.
This field returns the value 10 for:
The value returned in this field can be the resulting attribute, as determined by any permitted implementation choices and any applicable configuration bits, instead of the value that appears in the translation table descriptor.
Reserved, RES0.
Indicates whether the instruction performed a successful address translation.
F | Meaning |
---|---|
0 |
Address translation completed successfully. |
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
IMP DEF | IMP DEF | IMP DEF | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | S | PTW | 0 | FST | F | |||||
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
This section describes the register value returned by a fault on the execution of an Address translation instruction. Software might subsequently write a different value to the register, and that write does not affect the operation of the PE.
IMPLEMENTATION DEFINED.
IMPLEMENTATION DEFINED.
IMPLEMENTATION DEFINED.
Reserved, RES0.
Reserved, RES1.
Reserved, RES0.
Indicates the translation stage at which the translation aborted:
S | Meaning |
---|---|
0 |
Translation aborted because of a fault in the stage 1 translation. |
1 |
Translation aborted because of a fault in the stage 2 translation. |
If this bit is set to 1, it indicates the translation aborted because of a stage 2 fault during a stage 1 translation table walk.
Reserved, RES0.
Fault status code, as shown in the Data Abort ESR encoding.
Indicates whether the instruction performed a successful address translation.
F | Meaning |
---|---|
1 |
Address translation aborted. |
This register can be read using MRS with the following syntax:
MRS <Xt>, <systemreg>
This register can be written using MSR (register) with the following syntax:
MSR <systemreg>, <Xt>
This syntax uses the following encoding in the System instruction encoding space:
<systemreg> | op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|---|
PAR_EL1 | 11 | 000 | 0111 | 0100 | 000 |
The register is accessible as follows:
Control | Accessibility | |||||
---|---|---|---|---|---|---|
E2H | TGE | NS | EL0 | EL1 | EL2 | EL3 |
x | x | 0 | - | RW | n/a | RW |
x | 0 | 1 | - | RW | RW | RW |
x | 1 | 1 | - | n/a | RW | RW |
This table applies to all instructions that can access this register.
02/05/2017 15:43
Copyright © 2010-2017 ARM Limited or its affiliates. All rights reserved. This document is Non-Confidential.