The ERR<n>ADDR characteristics are:
If an address is associated with a detected error, then it is written to ERR<n>ADDR when the error is recorded. It is IMPLEMENTATION DEFINED how the recorded address maps to the software-visible physical address. Software might have to reconstruct the actual physical addresses using the identity of the node and knowledge of the system.
This register is present only when error record <n> is implemented and error record <n> includes an address associated with an error. Otherwise, direct accesses to ERR<n>ADDR are RES0.
ERR<q>FR describes the features implemented by the node that owns error record <n>. <q> is the index of the first error record owned by the same node as error record <n>. If the node owns a single record, then q = n.
ERR<n>ADDR is a 64-bit register.
The ERR<n>ADDR 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 | SI | AI | VA | NSE | RES0 | PADDR | |||||||||||||||||||||||||
PADDR |
Non-secure attribute. With ERR<n>ADDR.NSE, indicates the physical address space of the recorded location.
NS | Meaning |
---|---|
0b0 | When ERR<n>ADDR.NSE == 0: ERR<n>ADDR.PADDR is a Secure address. When ERR<n>ADDR.NSE == 1: ERR<n>ADDR.PADDR is a Root address. |
0b1 | When ERR<n>ADDR.NSE == 0: ERR<n>ADDR.PADDR is a Non-secure address. When ERR<n>ADDR.NSE == 1: ERR<n>ADDR.PADDR is a Realm address. |
On a Cold reset, this field resets to an architecturally UNKNOWN value.
Non-secure attribute.
NS | Meaning |
---|---|
0b0 |
ERR<n>ADDR.PADDR is a Secure address. |
0b1 |
ERR<n>ADDR.PADDR is a Non-secure address. |
On a Cold reset, this field resets to an architecturally UNKNOWN value.
Reserved, RES0.
Secure Incorrect. Indicates whether ERR<n>ADDR.{NS, NSE} are valid.
SI | Meaning |
---|---|
0b0 |
ERR<n>ADDR.{NS, NSE} are correct. That is, they match the programmers' view of the physical address space for the recorded location. |
0b1 |
ERR<n>ADDR.{NS, NSE} might not be correct, and might not match the programmers' view of the physical address space for the recorded location. |
It is IMPLEMENTATION DEFINED whether this field is read-only or read/write.
On a Cold reset, this field resets to an architecturally UNKNOWN value.
Secure Incorrect. Indicates whether ERR<n>ADDR.NS is valid.
SI | Meaning |
---|---|
0b0 |
ERR<n>ADDR.NS is correct. That is, it matches the programmers' view of the Non-secure attribute for the recorded location. |
0b1 |
ERR<n>ADDR.NS might not be correct, and might not match the programmers' view of the Non-secure attribute for the recorded location. |
It is IMPLEMENTATION DEFINED whether this field is read-only or read/write.
On a Cold reset, this field resets to an architecturally UNKNOWN value.
Reserved, RES0.
Address Incorrect. Indicates whether ERR<n>ADDR.PADDR is a valid physical address that is known to match the programmers' view of the physical address for the recorded location.
AI | Meaning |
---|---|
0b0 |
ERR<n>ADDR.PADDR is a valid physical address. That is, it matches the programmers' view of the physical address for the recorded location. |
0b1 |
ERR<n>ADDR.PADDR might not be a valid physical address, and might not match the programmers' view of the physical address for the recorded location. |
It is IMPLEMENTATION DEFINED whether this field is read-only or read/write.
On a Cold reset, this field resets to an architecturally UNKNOWN value.
Virtual Address. Indicates whether ERR<n>ADDR.PADDR field is a virtual address.
VA | Meaning |
---|---|
0b0 |
ERR<n>ADDR.PADDR is not a virtual address. |
0b1 |
ERR<n>ADDR.PADDR is a virtual address. |
No context information is provided for the virtual address. When ERR<n>ADDR.VA == 1, ERR<n>ADDR.{NS,SI,AI} read as {0,1,1}.
Support for this field is optional. If this field is not implemented and ERR<n>ADDR.PADDR field is a virtual address, then ERR<n>ADDR.{NS,SI,AI} read as {0,1,1}.
It is IMPLEMENTATION DEFINED whether this field is read-only or read/write.
On a Cold reset, this field resets to an architecturally UNKNOWN value.
Physical Address Space. Together with ERR<n>ADDR.NS, indicates the address space for ERR<n>ADDR.PADDR.
On a Cold reset, this field resets to an architecturally UNKNOWN value.
Reserved, RES0.
Reserved, RES0.
Physical Address. Address of the recorded location. If the physical address size implemented by this component is smaller than the size of this field, then high-order bits are unimplemented and either RES0 or have a fixed read-only IMPLEMENTATION DEFINED value. Low-order address bits might also be unimplemented and RES0, for example, if the physical address is always aligned to the size of a protection granule.
On a Cold reset, this field resets to an architecturally UNKNOWN value.
Component | Offset | Instance |
---|---|---|
RAS | 0x018 + (64 * n) | ERR<n>ADDR |
This interface is accessible as follows:
30/03/2021 20:51; e3551d56dc294a4d55296a6c10544191ada08a8e
Copyright © 2010-2021 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.