The MFAR_EL3 characteristics are:
Holds the faulting physical address for Granule Protection Check exceptions taken to EL3.
This register is present only when FEAT_RME is implemented. Otherwise, direct accesses to MFAR_EL3 are UNDEFINED.
MFAR_EL3 is a 64-bit register.
The MFAR_EL3 bit assignments are:
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 |
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 |
NS | NSE | RES0 | FPA[51:48] | FPA[47:12] | |||||||||||||||||||||||||||
FPA[47:12] | RES0 |
An exception return at EL3 makes MFAR_EL3 UNKNOWN.
Together with the NSE field, reports the physical address space of the access that triggered the Granule Protection Check exception.
NSE | NS | Meaning |
---|---|---|
0b0 | 0b0 | Secure. |
0b0 | 0b1 | Non-secure. |
0b1 | 0b0 | Root. |
0b1 | 0b1 | Realm. |
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Together with the NS field, reports the physical address space of the access that triggered the Granule Protection Check exception.
For a description of the values derived by evaluating NS and NSE together, see MFAR_EL3.NS.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Reserved, RES0.
When FEAT_LPA is implemented, extension to FPA[47:12].
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Reserved, RES0.
Bits [47:12] of the faulting physical address.
For implementations with fewer than 48 physical address bits, the corresponding upper bits in this field are RES0.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Reserved, RES0.
Accesses to this register use the following encodings:
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b110 | 0b0110 | 0b0000 | 0b101 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then UNDEFINED; elsif PSTATE.EL == EL2 then UNDEFINED; elsif PSTATE.EL == EL3 then return MFAR_EL3;
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b110 | 0b0110 | 0b0000 | 0b101 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then UNDEFINED; elsif PSTATE.EL == EL2 then UNDEFINED; elsif PSTATE.EL == EL3 then MFAR_EL3 = X[t];
30/03/2021 20:51; e3551d56dc294a4d55296a6c10544191ada08a8e
Copyright © 2010-2021 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.