The RMR_EL2 characteristics are:
When this register is implemented:
AArch64 System register RMR_EL2 bits [31:0] are architecturally mapped to AArch32 System register HRMR[31:0] when the highest implemented Exception level is EL2.
This register is present only when the highest implemented Exception level is EL2. Otherwise, direct accesses to RMR_EL2 are UNDEFINED.
When EL2 is the highest implemented Exception level:
If EL2 is not implemented, this register is RES0 from EL3.
RMR_EL2 is a 64-bit register.
| 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 |
| RES0 | |||||||||||||||||||||||||||||||
| RES0 | RR | AA64 | |||||||||||||||||||||||||||||
Reserved, RES0.
Reset Request. Setting this bit to 1 requests a Warm reset.
The reset behavior of this field is:
When EL2 can use AArch32, determines which Execution state the PE boots into after a Warm reset:
| AA64 | Meaning |
|---|---|
| 0b0 |
AArch32. |
| 0b1 |
AArch64. |
On coming out of the Warm reset, execution starts at the IMPLEMENTATION DEFINED reset vector address of the specified Execution state.
If EL2 can only use AArch64 state, this bit is RAO/WI.
When implemented as a RW field, this field resets to 1 on a Cold reset.
Reserved, RAO/WI.
Accesses to this register use the following encodings in the System register encoding space:
| op0 | op1 | CRn | CRm | op2 |
|---|---|---|---|---|
| 0b11 | 0b100 | 0b1100 | 0b0000 | 0b010 |
if !IsHighestEL(EL2) then UNDEFINED; elsif PSTATE.EL == EL1 && IsHighestEL(EL2) && EffectiveHCR_EL2_NVx() IN {'xx1'} then AArch64.SystemAccessTrap(EL2, 0x18); elsif PSTATE.EL == EL2 && IsHighestEL(EL2) then X[t, 64] = RMR_EL2; else UNDEFINED;
| op0 | op1 | CRn | CRm | op2 |
|---|---|---|---|---|
| 0b11 | 0b100 | 0b1100 | 0b0000 | 0b010 |
if !IsHighestEL(EL2) then UNDEFINED; elsif PSTATE.EL == EL1 && IsHighestEL(EL2) && EffectiveHCR_EL2_NVx() IN {'xx1'} then AArch64.SystemAccessTrap(EL2, 0x18); elsif PSTATE.EL == EL2 && IsHighestEL(EL2) then RMR_EL2 = X[t, 64]; else UNDEFINED;
19/09/2024 21:50; f38fb98db05c9431684175106ec86e1bac8166e3
Copyright © 2010-2024 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.