PAR_EL1, Physical Address Register

The PAR_EL1 characteristics are:

Purpose

Returns the output address (OA) from an Address translation instruction that executed successfully, or fault information if the instruction did not execute successfully.

Configuration

AArch64 System register PAR_EL1 bits [63:0] are architecturally mapped to AArch32 System register PAR[63:0].

AArch64 System register PAR_EL1 is a 128-bit register that can also be accessed as a 64-bit value. If it is accessed as a 64-bit register, accesses read and write bits [63:0] and do not modify bits [127:64].

Single stage AT Instructions (ATS1*) report their result using the 128-bit format of PAR_EL1 if the translation system that they target uses VMSAv9-128.

ATS12* Instructions report their result using the 128-bit format PAR_EL1 if either of the following is true:

Otherwise, 64-bit format of PAR_EL1 is used.

Attributes

PAR_EL1 is a:

Field descriptions

When FEAT_D128 is implemented, GetPAR_EL1_D128() == 1 and GetPAR_EL1_F() == 0:

12712612512412312212112011911811711611511411311211111010910810710610510410310210110099989796
RES0PA
9594939291908988878685848382818079787776757473727170696867666564
PARES0D128
6362616059585756555453525150494847464544434241403938373635343332
ATTRRES0
313029282726252423222120191817161514131211109876543210
RES0NSEIMPLEMENTATION DEFINEDNSSHRES0F

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:

Bits [127:120]

Reserved, RES0.

PA, bits [119:76]

Output address. The output address (OA) corresponding to the supplied input address. This field returns address bits[55:12].

The reset behavior of this field is:

Bits [75:65]

Reserved, RES0.

D128, bit [64]

Indicates if the PAR_EL1 uses the 128-bit format.

D128Meaning
0b1

PAR_EL1 uses the 128-bit format. PAR_EL1[127:0] holds valid data.

The reset behavior of this field is:

ATTR, bits [63:56]

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.

If FEAT_MTE_PERM is implemented and the instruction performed a stage 2 translation, the following additional encoding is defined:

ATTRMeaning
0b11100000 Tagged NoTagAccess Normal Inner Write-Back, Outer Write-Back, Read-Allocate, Write-Allocate Non-transient memory.
Note

This encoding in MAIR_ELx is Reserved.

The value returned in this field can be the resulting attribute that is actually implemented by the implementation, as determined by any permitted implementation choices and any applicable configuration bits, instead of the value that appears in the Translation table descriptor.

Note

The attributes presented are consistent with the stages of translation applied in the address translation instruction. If the instruction performed a stage 1 translation only, the attributes are from the stage 1 translation. If the instruction performed a stage 1 and stage 2 translation, the attributes are from the combined stage 1 and stage 2 translation.

The reset behavior of this field is:

Bits [55:12]

Reserved, RES0.

NSE, bit [11]
When FEAT_RME is implemented:

Reports the NSE attribute for a translation table descriptor from the EL3 translation regime.

For a description of the values derived by evaluating NS and NSE together, see PAR_EL1.NS.

For a result from a Secure, Non-secure, or Realm translation regime, this bit is unknown.

The reset behavior of this field is:


Otherwise:

Reserved, RES1.

IMPLEMENTATION DEFINED, bit [10]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

NS, bit [9]
When FEAT_RME is implemented:

Non-secure. The NS attribute for a translation table entry from a Secure translation regime, a Realm translation regime, and the EL3 translation regime.

For a result from an EL3 translation regime, NS and NSE are evaluated together to report the physical address space:

NSENSMeaning
0b00b0When Secure state is implemented, Secure. Otherwise reserved.
0b00b1Non-secure.
0b10b0Root.
0b10b1Realm.

For a result from a Secure translation regime, when SCR_EL3.EEL2 is 1, this bit distinguishes between the Secure and Non-secure intermediate physical address space of the translation for the instructions:

Otherwise, 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.

For a result from an S1E1 or S1E0 operation on the Realm EL1&0 translation regime, this bit is UNKNOWN.

The reset behavior of this field is:


Otherwise:

Non-secure. The NS attribute for a translation table entry from a Secure translation regime.

For a result from a Secure translation regime, when SCR_EL3.EEL2 is 1, this bit distinguishes between the Secure and Non-secure intermediate physical address space of the translation for the instructions:

Otherwise, 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.

The reset behavior of this field is:

SH, bits [8:7]

Shareability attribute, for the returned output address.

SHMeaning
0b00

Non-shareable.

0b10

Outer Shareable.

0b11

Inner Shareable.

The value 0b01 is reserved.

Note

This field returns the value 0b10 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.

The reset behavior of this field is:

Bits [6:1]

Reserved, RES0.

F, bit [0]

Indicates whether the instruction performed a successful address translation.

FMeaning
0b0

Address translation completed successfully.

The reset behavior of this field is:

When FEAT_D128 is implemented, GetPAR_EL1_D128() == 1 and GetPAR_EL1_F() == 1:

12712612512412312212112011911811711611511411311211111010910810710610510410310210110099989796
RES0
9594939291908988878685848382818079787776757473727170696867666564
RES0D128
6362616059585756555453525150494847464544434241403938373635343332
IMPLEMENTATION DEFINEDIMPLEMENTATION DEFINEDIMPLEMENTATION DEFINEDRES0
313029282726252423222120191817161514131211109876543210
RES0DirtyBitOverlayTopLevelAssuredOnlyRES1RES0SPTWRES0FSTF

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.

Bits [127:65]

Reserved, RES0.

D128, bit [64]

Indicates if the PAR_EL1 uses the 128-bit format.

D128Meaning
0b1

PAR_EL1 uses the 128-bit format. PAR_EL1[127:0] holds valid data.

The reset behavior of this field is:

IMPLEMENTATION DEFINED, bits [63:56]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

IMPLEMENTATION DEFINED, bits [55:52]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

IMPLEMENTATION DEFINED, bits [51:48]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

Bits [47:16]

Reserved, RES0.

DirtyBit, bit [15]
When FEAT_S1PIE is implemented or FEAT_S2PIE is implemented:

DirtyBit flag.

If PAR_EL1.FST indicates a Permission fault for a stage of translation that is using Indirect Permissions, and dirty state is managed by software, then this field holds information about the fault.

DirtyBitMeaning
0b0

The Permission Fault is not due to dirty state.

0b1

The Permission Fault is due to dirty state.

For any other fault or Access, this field is RES0.

Note

At stage 1, dirty state is indicated by the nDirty bit in Block and Page descriptors. At stage 2, dirty state is indicated by the Dirty bit in Block and Page descriptors.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

Overlay, bit [14]
When FEAT_S1POE is implemented or FEAT_S2POE is implemented:

Overlay flag.

If PAR_EL1.FST indicates a Permission fault for a stage of translation, then this field holds information about the fault.

OverlayMeaning
0b0

The Data Abort is not due to Overlay Permissions.

0b1

The Data Abort is due to Overlay Permissions.

For any other fault, this field is RES0.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

TopLevel, bit [13]
When FEAT_THE is implemented:

Fault due to TopLevel. Indicates if the fault was due to TopLevel.

TopLevelMeaning
0b0

Fault is not due to TopLevel.

0b1

Fault is due to TopLevel.

For any other fault, this field is RES0.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

AssuredOnly, bit [12]
When FEAT_THE is implemented:

AssuredOnly flag.

If PAR_EL1.S indicates a stage 2 fault, then this field holds information about the fault.

AssuredOnlyMeaning
0b0

The Data Abort is not due to AssuredOnly.

0b1

The Data Abort is due to AssuredOnly.

For any other fault, this field is RES0.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

Bit [11]

Reserved, RES1.

Bit [10]

Reserved, RES0.

S, bit [9]

Indicates the translation stage at which the translation aborted:

SMeaning
0b0

Translation aborted because of a fault in the stage 1 translation.

0b1

Translation aborted because of a fault in the stage 2 translation.

The reset behavior of this field is:

PTW, bit [8]

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.

The reset behavior of this field is:

Bit [7]

Reserved, RES0.

FST, bits [6:1]

Fault status code, as shown in the Data Abort ESR encoding.

FSTMeaningApplies when
0b000000

Address size fault, level 0 of translation or translation table base register.

0b000001

Address size fault, level 1.

0b000010

Address size fault, level 2.

0b000011

Address size fault, level 3.

0b000100

Translation fault, level 0.

0b000101

Translation fault, level 1.

0b000110

Translation fault, level 2.

0b000111

Translation fault, level 3.

0b001001

Access flag fault, level 1.

0b001010

Access flag fault, level 2.

0b001011

Access flag fault, level 3.

0b001000

Access flag fault, level 0.

When FEAT_LPA2 is implemented
0b001100

Permission fault, level 0.

When FEAT_LPA2 is implemented
0b001101

Permission fault, level 1.

0b001110

Permission fault, level 2.

0b001111

Permission fault, level 3.

0b010010

Synchronous External abort on translation table walk or hardware update of translation table, level -2.

When FEAT_D128 is implemented
0b010011

Synchronous External abort on translation table walk or hardware update of translation table, level -1.

When FEAT_LPA2 is implemented
0b010100

Synchronous External abort on translation table walk or hardware update of translation table, level 0.

0b010101

Synchronous External abort on translation table walk or hardware update of translation table, level 1.

0b010110

Synchronous External abort on translation table walk or hardware update of translation table, level 2.

0b010111

Synchronous External abort on translation table walk or hardware update of translation table, level 3.

0b011011

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level -1.

When FEAT_LPA2 is implemented and FEAT_RAS is not implemented
0b011100

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 0.

When FEAT_RAS is not implemented
0b011101

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 1.

When FEAT_RAS is not implemented
0b011110

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 2.

When FEAT_RAS is not implemented
0b011111

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 3.

When FEAT_RAS is not implemented
0b100010

Granule Protection Fault on translation table walk or hardware update of translation table, level -2.

When FEAT_D128 is implemented and FEAT_RME is implemented
0b100011

Granule Protection Fault on translation table walk or hardware update of translation table, level -1.

When FEAT_RME is implemented and FEAT_LPA2 is implemented
0b100100

Granule Protection Fault on translation table walk or hardware update of translation table, level 0.

When FEAT_RME is implemented
0b100101

Granule Protection Fault on translation table walk or hardware update of translation table, level 1.

When FEAT_RME is implemented
0b100110

Granule Protection Fault on translation table walk or hardware update of translation table, level 2.

When FEAT_RME is implemented
0b100111

Granule Protection Fault on translation table walk or hardware update of translation table, level 3.

When FEAT_RME is implemented
0b101000

Granule Protection Fault, not on translation table walk or hardware update of translation table.

When FEAT_RME is implemented
0b101001

Address size fault, level -1.

When FEAT_LPA2 is implemented
0b101010

Translation fault, level -2.

When FEAT_D128 is implemented
0b101011

Translation fault, level -1.

When FEAT_LPA2 is implemented
0b101100

Address Size fault, level -2.

When FEAT_D128 is implemented
0b110000

TLB conflict abort.

0b110001

Unsupported atomic hardware update fault.

When FEAT_HAFDBS is implemented
0b111101

Section Domain fault, from an AArch32 stage 1 EL1&0 translation regime using Short-descriptor translation table format.

When EL1 is capable of using AArch32
0b111110

Page Domain fault, from an AArch32 stage 1 EL1&0 translation regime using Short-descriptor translation table format.

When EL1 is capable of using AArch32

The reset behavior of this field is:

F, bit [0]

Indicates whether the instruction performed a successful address translation.

FMeaning
0b1

Address translation aborted.

The reset behavior of this field is:

When FEAT_D128 is implemented, GetPAR_EL1_D128() == 0 and GetPAR_EL1_F() == 0:

12712612512412312212112011911811711611511411311211111010910810710610510410310210110099989796
RES0
9594939291908988878685848382818079787776757473727170696867666564
RES0D128
6362616059585756555453525150494847464544434241403938373635343332
ATTRRES0PA[51:48]PA[47:12]
313029282726252423222120191817161514131211109876543210
PA[47:12]NSEIMPLEMENTATION DEFINEDNSSHRES0F

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:

Bits [127:65]

Reserved, RES0.

D128, bit [64]

Indicates if the PAR_EL1 uses the 128-bit format.

D128Meaning
0b0

PAR_EL1 uses the 64-bit format. PAR_EL1[63:0] holds valid data.

The reset behavior of this field is:

ATTR, bits [63:56]

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.

If FEAT_MTE_PERM is implemented and the instruction performed a stage 2 translation, the following additional encoding is defined:

ATTRMeaning
0b11100000 Tagged NoTagAccess Normal Inner Write-Back, Outer Write-Back, Read-Allocate, Write-Allocate Non-transient memory.
Note

This encoding in MAIR_ELx is Reserved.

The value returned in this field can be the resulting attribute that is actually implemented by the implementation, as determined by any permitted implementation choices and any applicable configuration bits, instead of the value that appears in the Translation table descriptor.

Note

The attributes presented are consistent with the stages of translation applied in the address translation instruction. If the instruction performed a stage 1 translation only, the attributes are from the stage 1 translation. If the instruction performed a stage 1 and stage 2 translation, the attributes are from the combined stage 1 and stage 2 translation.

The reset behavior of this field is:

Bits [55:52]

Reserved, RES0.

PA[51:48], bits [51:48]
When FEAT_LPA is implemented:

Extension to PA[47:12]. For more information, see PA[47:12].

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

PA[47:12], bits [47:12]

Output address. The output address (OA) corresponding to the supplied input address. This field returns address bits[47:12].

When FEAT_LPA is implemented and 52-bit addresses are in use, PA[51:48] forms the upper part of the address value. Otherwise, when 52-bit addresses are not in use, PA[51:48] is RES0.

For implementations with fewer than 48 physical address bits, the corresponding upper bits in this field are RES0.

The reset behavior of this field is:

NSE, bit [11]
When FEAT_RME is implemented:

Reports the NSE attribute for a translation table entry from the EL3 translation regime.

For a description of the values derived by evaluating NS and NSE together, see PAR_EL1.NS.

For a result from a Secure, Non-secure, or Realm translation regime, this bit is UNKNOWN.

The reset behavior of this field is:


Otherwise:

Reserved, RES1.

IMPLEMENTATION DEFINED, bit [10]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

NS, bit [9]
When FEAT_RME is implemented:

Non-secure. The NS attribute for a translation table entry from a Secure translation regime, a Realm translation regime, and the EL3 translation regime.

For a result from an EL3 translation regime, NS and NSE are evaluated together to report the physical address space:

NSENSMeaning
0b00b0When Secure state is implemented, Secure. Otherwise reserved.
0b00b1Non-secure.
0b10b0Root.
0b10b1Realm.

For a result from a Secure translation regime, when SCR_EL3.EEL2 is 1, this bit distinguishes between the Secure and Non-secure intermediate physical address space of the translation for the instructions:

Otherwise, 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.

For a result from an S1E1 or S1E0 operation on the Realm EL1&0 translation regime, this bit is UNKNOWN.

The reset behavior of this field is:


Otherwise:

Non-secure. The NS attribute for a translation table entry from a Secure translation regime.

For a result from a Secure translation regime, when SCR_EL3.EEL2 is 1, this bit distinguishes between the Secure and Non-secure intermediate physical address space of the translation for the instructions:

Otherwise, 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.

The reset behavior of this field is:

SH, bits [8:7]

Shareability attribute, for the returned output address.

SHMeaning
0b00

Non-shareable.

0b10

Outer Shareable.

0b11

Inner Shareable.

The value 0b01 is reserved.

Note

This field returns the value 0b10 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.

The reset behavior of this field is:

Bits [6:1]

Reserved, RES0.

F, bit [0]

Indicates whether the instruction performed a successful address translation.

FMeaning
0b0

Address translation completed successfully.

The reset behavior of this field is:

When FEAT_D128 is implemented, GetPAR_EL1_D128() == 0 and GetPAR_EL1_F() == 1:

12712612512412312212112011911811711611511411311211111010910810710610510410310210110099989796
RES0
9594939291908988878685848382818079787776757473727170696867666564
RES0D128
6362616059585756555453525150494847464544434241403938373635343332
IMPLEMENTATION DEFINEDIMPLEMENTATION DEFINEDIMPLEMENTATION DEFINEDRES0
313029282726252423222120191817161514131211109876543210
RES0DirtyBitOverlayTopLevelAssuredOnlyRES1RES0SPTWRES0FSTF

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.

Bits [127:65]

Reserved, RES0.

D128, bit [64]

Indicates if the PAR_EL1 uses the 128-bit format.

D128Meaning
0b0

PAR_EL1 uses the 64-bit format. PAR_EL1[63:0] holds valid data.

The reset behavior of this field is:

IMPLEMENTATION DEFINED, bits [63:56]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

IMPLEMENTATION DEFINED, bits [55:52]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

IMPLEMENTATION DEFINED, bits [51:48]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

Bits [47:16]

Reserved, RES0.

DirtyBit, bit [15]
When FEAT_S1PIE is implemented or FEAT_S2PIE is implemented:

DirtyBit flag.

If PAR_EL1.FST indicates a Permission fault for a stage of translation that is using Indirect Permissions, and dirty state is managed by software, then this field holds information about the fault.

DirtyBitMeaning
0b0

The Permission Fault is not due to nDirty State or Dirty State.

0b1

The Permission Fault is due to nDirty State or Dirty State.

For any other fault or Access, this field is RES0.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

Overlay, bit [14]
When FEAT_S1POE is implemented or FEAT_S2POE is implemented:

Overlay flag.

If PAR_EL1.FST indicates a Permission fault for a stage of translation, then this field holds information about the fault.

OverlayMeaning
0b0

The Data Abort is not due to Overlay Permissions.

0b1

The Data Abort is due to Overlay Permissions.

For any other fault, this field is RES0.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

TopLevel, bit [13]
When FEAT_THE is implemented:

Fault due to TopLevel. Indicates if the fault was due to TopLevel.

TopLevelMeaning
0b0

Fault is not due to TopLevel.

0b1

Fault is due to TopLevel.

For any other fault, this field is RES0.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

AssuredOnly, bit [12]
When FEAT_THE is implemented:

AssuredOnly flag.

If PAR_EL1.S indicates a stage 2 fault, then this field holds information about the fault.

AssuredOnlyMeaning
0b0

The Data Abort is not due to AssuredOnly.

0b1

The Data Abort is due to AssuredOnly.

For any other fault, this field is RES0.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

Bit [11]

Reserved, RES1.

Bit [10]

Reserved, RES0.

S, bit [9]

Indicates the translation stage at which the translation aborted:

SMeaning
0b0

Translation aborted because of a fault in the stage 1 translation.

0b1

Translation aborted because of a fault in the stage 2 translation.

The reset behavior of this field is:

PTW, bit [8]

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.

The reset behavior of this field is:

Bit [7]

Reserved, RES0.

FST, bits [6:1]

Fault status code, as shown in the Data Abort exception ESR encoding.

FSTMeaningApplies when
0b000000

Address size fault, level 0 of translation or translation table base register.

0b000001

Address size fault, level 1.

0b000010

Address size fault, level 2.

0b000011

Address size fault, level 3.

0b000100

Translation fault, level 0.

0b000101

Translation fault, level 1.

0b000110

Translation fault, level 2.

0b000111

Translation fault, level 3.

0b001001

Access flag fault, level 1.

0b001010

Access flag fault, level 2.

0b001011

Access flag fault, level 3.

0b001000

Access flag fault, level 0.

When FEAT_LPA2 is implemented
0b001100

Permission fault, level 0.

When FEAT_LPA2 is implemented
0b001101

Permission fault, level 1.

0b001110

Permission fault, level 2.

0b001111

Permission fault, level 3.

0b010010

Synchronous External abort on translation table walk or hardware update of translation table, level -2.

When FEAT_D128 is implemented
0b010011

Synchronous External abort on translation table walk or hardware update of translation table, level -1.

When FEAT_LPA2 is implemented
0b010100

Synchronous External abort on translation table walk or hardware update of translation table, level 0.

0b010101

Synchronous External abort on translation table walk or hardware update of translation table, level 1.

0b010110

Synchronous External abort on translation table walk or hardware update of translation table, level 2.

0b010111

Synchronous External abort on translation table walk or hardware update of translation table, level 3.

0b011011

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level -1.

When FEAT_LPA2 is implemented and FEAT_RAS is not implemented
0b011100

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 0.

When FEAT_RAS is not implemented
0b011101

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 1.

When FEAT_RAS is not implemented
0b011110

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 2.

When FEAT_RAS is not implemented
0b011111

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 3.

When FEAT_RAS is not implemented
0b100010

Granule Protection Fault on translation table walk or hardware update of translation table, level -2.

When FEAT_D128 is implemented and FEAT_RME is implemented
0b100011

Granule Protection Fault on translation table walk or hardware update of translation table, level -1.

When FEAT_RME is implemented and FEAT_LPA2 is implemented
0b100100

Granule Protection Fault on translation table walk or hardware update of translation table, level 0.

When FEAT_RME is implemented
0b100101

Granule Protection Fault on translation table walk or hardware update of translation table, level 1.

When FEAT_RME is implemented
0b100110

Granule Protection Fault on translation table walk or hardware update of translation table, level 2.

When FEAT_RME is implemented
0b100111

Granule Protection Fault on translation table walk or hardware update of translation table, level 3.

When FEAT_RME is implemented
0b101000

Granule Protection Fault, not on translation table walk or hardware update of translation table.

When FEAT_RME is implemented
0b101001

Address size fault, level -1.

When FEAT_LPA2 is implemented
0b101010

Translation fault, level -2.

When FEAT_D128 is implemented
0b101011

Translation fault, level -1.

When FEAT_LPA2 is implemented
0b101100

Address Size fault, level -2.

When FEAT_D128 is implemented
0b110000

TLB conflict abort.

0b110001

Unsupported atomic hardware update fault.

When FEAT_HAFDBS is implemented
0b111101

Section Domain fault, from an AArch32 stage 1 EL1&0 translation regime using Short-descriptor translation table format.

When EL1 is capable of using AArch32
0b111110

Page Domain fault, from an AArch32 stage 1 EL1&0 translation regime using Short-descriptor translation table format.

When EL1 is capable of using AArch32

The reset behavior of this field is:

F, bit [0]

Indicates whether the instruction performed a successful address translation.

FMeaning
0b1

Address translation aborted.

The reset behavior of this field is:

When FEAT_D128 is not implemented and GetPAR_EL1_F() == 0:

6362616059585756555453525150494847464544434241403938373635343332
313029282726252423222120191817161514131211109876543210
ATTRRES0PA[51:48]PA[47:12]
PA[47:12]NSEIMPLEMENTATION DEFINEDNSSHRES0F

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:

ATTR, bits [63:56]

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.

If FEAT_MTE_PERM is implemented and the instruction performed a stage 2 translation, the following additional encoding is defined:

ATTRMeaning
0b11100000 Tagged NoTagAccess Normal Inner Write-Back, Outer Write-Back, Read-Allocate, Write-Allocate Non-transient memory.
Note

This encoding in MAIR_ELx is Reserved.

The value returned in this field can be the resulting attribute that is actually implemented by the implementation, as determined by any permitted implementation choices and any applicable configuration bits, instead of the value that appears in the Translation table descriptor.

Note

The attributes presented are consistent with the stages of translation applied in the address translation instruction. If the instruction performed a stage 1 translation only, the attributes are from the stage 1 translation. If the instruction performed a stage 1 and stage 2 translation, the attributes are from the combined stage 1 and stage 2 translation.

The reset behavior of this field is:

Bits [55:52]

Reserved, RES0.

PA[51:48], bits [51:48]
When FEAT_LPA is implemented:

Extension to PA[47:12]. For more information, see PA[47:12].

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

PA[47:12], bits [47:12]

Output address. The output address (OA) corresponding to the supplied input address. This field returns address bits[47:12].

When FEAT_LPA is implemented and 52-bit addresses are in use, PA[51:48] forms the upper part of the address value. Otherwise, when 52-bit addresses are not in use, PA[51:48] is RES0.

For implementations with fewer than 48 physical address bits, the corresponding upper bits in this field are RES0.

The reset behavior of this field is:

NSE, bit [11]
When FEAT_RME is implemented:

Reports the NSE attribute for a translation table entry from the EL3 translation regime.

For a description of the values derived by evaluating NS and NSE together, see PAR_EL1.NS.

For a result from a Secure, Non-secure, or Realm translation regime, this bit is UNKNOWN.

The reset behavior of this field is:


Otherwise:

Reserved, RES1.

IMPLEMENTATION DEFINED, bit [10]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

NS, bit [9]
When FEAT_RME is implemented:

Non-secure. The NS attribute for a translation table entry from a Secure translation regime, a Realm translation regime, and the EL3 translation regime.

For a result from an EL3 translation regime, NS and NSE are evaluated together to report the physical address space:

NSENSMeaning
0b00b0When Secure state is implemented, Secure. Otherwise reserved.
0b00b1Non-secure.
0b10b0Root.
0b10b1Realm.

For a result from a Secure translation regime, when SCR_EL3.EEL2 is 1, this bit distinguishes between the Secure and Non-secure intermediate physical address space of the translation for the instructions:

Otherwise, 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.

For a result from an S1E1 or S1E0 operation on the Realm EL1&0 translation regime, this bit is UNKNOWN.

The reset behavior of this field is:


Otherwise:

Non-secure. The NS attribute for a translation table entry from a Secure translation regime.

For a result from a Secure translation regime, when SCR_EL3.EEL2 is 1, this bit distinguishes between the Secure and Non-secure intermediate physical address space of the translation for the instructions:

Otherwise, 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.

The reset behavior of this field is:

SH, bits [8:7]

Shareability attribute, for the returned output address.

SHMeaning
0b00

Non-shareable.

0b10

Outer Shareable.

0b11

Inner Shareable.

The value 0b01 is reserved.

Note

This field returns the value 0b10 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.

The reset behavior of this field is:

Bits [6:1]

Reserved, RES0.

F, bit [0]

Indicates whether the instruction performed a successful address translation.

FMeaning
0b0

Address translation completed successfully.

The reset behavior of this field is:

When FEAT_D128 is not implemented and GetPAR_EL1_F() == 1:

6362616059585756555453525150494847464544434241403938373635343332
313029282726252423222120191817161514131211109876543210
IMPLEMENTATION DEFINEDIMPLEMENTATION DEFINEDIMPLEMENTATION DEFINEDRES0
RES0DirtyBitOverlayTopLevelAssuredOnlyRES1RES0SPTWRES0FSTF

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, bits [63:56]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

IMPLEMENTATION DEFINED, bits [55:52]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

IMPLEMENTATION DEFINED, bits [51:48]

IMPLEMENTATION DEFINED.

The reset behavior of this field is:

Bits [47:16]

Reserved, RES0.

DirtyBit, bit [15]
When FEAT_S1PIE is implemented or FEAT_S2PIE is implemented:

DirtyBit flag.

If PAR_EL1.FST indicates a Permission fault for a stage of translation that is using Indirect Permissions, and dirty state is managed by software, then this field holds information about the fault.

DirtyBitMeaning
0b0

The Permission Fault is not due to nDirty State or Dirty State.

0b1

The Permission Fault is due to nDirty State or Dirty State.

For any other fault or Access, this field is RES0.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

Overlay, bit [14]
When FEAT_S1POE is implemented or FEAT_S2POE is implemented:

Overlay flag.

If PAR_EL1.FST indicates a Permission fault for a stage of translation, then this field holds information about the fault.

OverlayMeaning
0b0

The Data Abort is not due to Overlay Permissions.

0b1

The Data Abort is due to Overlay Permissions.

For any other fault, this field is RES0.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

TopLevel, bit [13]
When FEAT_THE is implemented:

Fault due to TopLevel. Indicates if the fault was due to TopLevel.

TopLevelMeaning
0b0

Fault is not due to TopLevel.

0b1

Fault is due to TopLevel.

For any other fault, this field is RES0.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

AssuredOnly, bit [12]
When FEAT_THE is implemented:

AssuredOnly flag.

If PAR_EL1.S indicates a stage 2 fault, then this field holds information about the fault.

AssuredOnlyMeaning
0b0

The Data Abort is not due to AssuredOnly.

0b1

The Data Abort is due to AssuredOnly.

For any other fault, this field is RES0.

The reset behavior of this field is:


Otherwise:

Reserved, RES0.

Bit [11]

Reserved, RES1.

Bit [10]

Reserved, RES0.

S, bit [9]

Indicates the translation stage at which the translation aborted:

SMeaning
0b0

Translation aborted because of a fault in the stage 1 translation.

0b1

Translation aborted because of a fault in the stage 2 translation.

The reset behavior of this field is:

PTW, bit [8]

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.

The reset behavior of this field is:

Bit [7]

Reserved, RES0.

FST, bits [6:1]

Fault status code, as shown in the Data Abort exception ESR encoding.

FSTMeaningApplies when
0b000000

Address size fault, level 0 of translation or translation table base register.

0b000001

Address size fault, level 1.

0b000010

Address size fault, level 2.

0b000011

Address size fault, level 3.

0b000100

Translation fault, level 0.

0b000101

Translation fault, level 1.

0b000110

Translation fault, level 2.

0b000111

Translation fault, level 3.

0b001001

Access flag fault, level 1.

0b001010

Access flag fault, level 2.

0b001011

Access flag fault, level 3.

0b001000

Access flag fault, level 0.

When FEAT_LPA2 is implemented
0b001100

Permission fault, level 0.

When FEAT_LPA2 is implemented
0b001101

Permission fault, level 1.

0b001110

Permission fault, level 2.

0b001111

Permission fault, level 3.

0b010010

Synchronous External abort on translation table walk or hardware update of translation table, level -2.

When FEAT_D128 is implemented
0b010011

Synchronous External abort on translation table walk or hardware update of translation table, level -1.

When FEAT_LPA2 is implemented
0b010100

Synchronous External abort on translation table walk or hardware update of translation table, level 0.

0b010101

Synchronous External abort on translation table walk or hardware update of translation table, level 1.

0b010110

Synchronous External abort on translation table walk or hardware update of translation table, level 2.

0b010111

Synchronous External abort on translation table walk or hardware update of translation table, level 3.

0b011011

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level -1.

When FEAT_LPA2 is implemented and FEAT_RAS is not implemented
0b011100

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 0.

When FEAT_RAS is not implemented
0b011101

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 1.

When FEAT_RAS is not implemented
0b011110

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 2.

When FEAT_RAS is not implemented
0b011111

Synchronous parity or ECC error on memory access on translation table walk or hardware update of translation table, level 3.

When FEAT_RAS is not implemented
0b100010

Granule Protection Fault on translation table walk or hardware update of translation table, level -2.

When FEAT_D128 is implemented and FEAT_RME is implemented
0b100011

Granule Protection Fault on translation table walk or hardware update of translation table, level -1.

When FEAT_RME is implemented and FEAT_LPA2 is implemented
0b100100

Granule Protection Fault on translation table walk or hardware update of translation table, level 0.

When FEAT_RME is implemented
0b100101

Granule Protection Fault on translation table walk or hardware update of translation table, level 1.

When FEAT_RME is implemented
0b100110

Granule Protection Fault on translation table walk or hardware update of translation table, level 2.

When FEAT_RME is implemented
0b100111

Granule Protection Fault on translation table walk or hardware update of translation table, level 3.

When FEAT_RME is implemented
0b101000

Granule Protection Fault, not on translation table walk or hardware update of translation table.

When FEAT_RME is implemented
0b101001

Address size fault, level -1.

When FEAT_LPA2 is implemented
0b101010

Translation fault, level -2.

When FEAT_D128 is implemented
0b101011

Translation fault, level -1.

When FEAT_LPA2 is implemented
0b101100

Address Size fault, level -2.

When FEAT_D128 is implemented
0b110000

TLB conflict abort.

0b110001

Unsupported atomic hardware update fault.

When FEAT_HAFDBS is implemented
0b111101

Section Domain fault, from an AArch32 stage 1 EL1&0 translation regime using Short-descriptor translation table format.

When EL1 is capable of using AArch32
0b111110

Page Domain fault, from an AArch32 stage 1 EL1&0 translation regime using Short-descriptor translation table format.

When EL1 is capable of using AArch32

The reset behavior of this field is:

F, bit [0]

Indicates whether the instruction performed a successful address translation.

FMeaning
0b1

Address translation aborted.

The reset behavior of this field is:

Accessing PAR_EL1

Accesses to this register use the following encodings in the System register encoding space:

MRS <Xt>, PAR_EL1

op0op1CRnCRmop2
0b110b0000b01110b01000b000

if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EL2Enabled() && IsFeatureImplemented(FEAT_FGT) && (!HaveEL(EL3) || SCR_EL3.FGTEn == '1') && HFGRTR_EL2.PAR_EL1 == '1' then AArch64.SystemAccessTrap(EL2, 0x18); else X[t, 64] = PAR_EL1<63:0>; elsif PSTATE.EL == EL2 then X[t, 64] = PAR_EL1<63:0>; elsif PSTATE.EL == EL3 then X[t, 64] = PAR_EL1<63:0>;

MSR PAR_EL1, <Xt>

op0op1CRnCRmop2
0b110b0000b01110b01000b000

if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EL2Enabled() && IsFeatureImplemented(FEAT_FGT) && (!HaveEL(EL3) || SCR_EL3.FGTEn == '1') && HFGWTR_EL2.PAR_EL1 == '1' then AArch64.SystemAccessTrap(EL2, 0x18); else PAR_EL1<63:0> = X[t, 64]; elsif PSTATE.EL == EL2 then PAR_EL1<63:0> = X[t, 64]; elsif PSTATE.EL == EL3 then PAR_EL1<63:0> = X[t, 64];

When FEAT_D128 is implemented

MRRS <Xt>, <Xt+1>, PAR_EL1

op0op1CRnCRmop2
0b110b0000b01110b01000b000

if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.D128En == '0' then UNDEFINED; elsif EL2Enabled() && IsFeatureImplemented(FEAT_FGT) && (!HaveEL(EL3) || SCR_EL3.FGTEn == '1') && HFGRTR_EL2.PAR_EL1 == '1' then AArch64.SystemAccessTrap(EL2, 0x14); elsif EL2Enabled() && (!IsHCRXEL2Enabled() || HCRX_EL2.D128En == '0') then AArch64.SystemAccessTrap(EL2, 0x14); elsif HaveEL(EL3) && SCR_EL3.D128En == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x14); else (X[t2, 64], X[t, 64]) = (PAR_EL1<127:64>, PAR_EL1<63:0>); elsif PSTATE.EL == EL2 then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.D128En == '0' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.D128En == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x14); else (X[t2, 64], X[t, 64]) = (PAR_EL1<127:64>, PAR_EL1<63:0>); elsif PSTATE.EL == EL3 then (X[t2, 64], X[t, 64]) = (PAR_EL1<127:64>, PAR_EL1<63:0>);

When FEAT_D128 is implemented

MSRR PAR_EL1, <Xt>, <Xt+1>

op0op1CRnCRmop2
0b110b0000b01110b01000b000

if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.D128En == '0' then UNDEFINED; elsif EL2Enabled() && IsFeatureImplemented(FEAT_FGT) && (!HaveEL(EL3) || SCR_EL3.FGTEn == '1') && HFGWTR_EL2.PAR_EL1 == '1' then AArch64.SystemAccessTrap(EL2, 0x14); elsif EL2Enabled() && (!IsHCRXEL2Enabled() || HCRX_EL2.D128En == '0') then AArch64.SystemAccessTrap(EL2, 0x14); elsif HaveEL(EL3) && SCR_EL3.D128En == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x14); else (PAR_EL1<127:64>, PAR_EL1<63:0>) = (X[t2, 64], X[t, 64]); elsif PSTATE.EL == EL2 then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.D128En == '0' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.D128En == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x14); else (PAR_EL1<127:64>, PAR_EL1<63:0>) = (X[t2, 64], X[t, 64]); elsif PSTATE.EL == EL3 then (PAR_EL1<127:64>, PAR_EL1<63:0>) = (X[t2, 64], X[t, 64]);


26/03/2024 09:49; 67c0ae5282a7629ba0ea0ba7267b43cd4f7939f6

Copyright © 2010-2024 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.