DACR32_EL2, Domain Access Control Register
The DACR32_EL2 characteristics are:
Purpose
Allows access to the AArch32 DACR register from AArch64 state only. Its value has no effect on execution in AArch64 state.
Configuration
AArch64 System register DACR32_EL2 bits [31:0] are architecturally mapped to AArch32 System register DACR[31:0] .
If EL1 does not support AArch32, this register is UNDEFINED.
If EL2 is not implemented but EL3 is implemented, and EL1 is capable of using AArch32, then this register is not RES0.
This register has no effect if EL2 is not enabled in the current Security state.
RW fields in this register reset to architecturally UNKNOWN values.
Attributes
DACR32_EL2 is a 64-bit register.
Field descriptions
The DACR32_EL2 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 |
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 |
D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||||||||||||||||
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 |
Bits [63:32]
Reserved, RES0.
D<n>, bits [2n+1:2n], for n = 0 to 15
Domain n access permission, where n = 0 to 15. Permitted values are:
D<n> | Meaning |
---|---|
0b00 |
No access. Any access to the domain generates a Domain fault. |
0b01 |
Client. Accesses are checked against the permission bits in the translation tables. |
0b11 |
Manager. Accesses are not checked against the permission bits in the translation tables. |
The value 0b10 is reserved.
This field resets to an architecturally UNKNOWN value.
Accessing the DACR32_EL2
Accesses to this register use the following encodings:
MRS <Xt>, DACR32_EL2
op0 | CRn | op1 | op2 | CRm |
---|---|---|---|---|
0b11 | 0b0011 | 0b100 | 0b000 | 0b0000 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EL2Enabled() && HCR_EL2.NV == '1' then AArch64.SystemAccessTrap(EL2, 0x18); else UNDEFINED; elsif PSTATE.EL == EL2 then return DACR32_EL2; elsif PSTATE.EL == EL3 then return DACR32_EL2;
MSR DACR32_EL2, <Xt>
op0 | CRn | op1 | op2 | CRm |
---|---|---|---|---|
0b11 | 0b0011 | 0b100 | 0b000 | 0b0000 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EL2Enabled() && HCR_EL2.NV == '1' then AArch64.SystemAccessTrap(EL2, 0x18); else UNDEFINED; elsif PSTATE.EL == EL2 then DACR32_EL2 = X[t]; elsif PSTATE.EL == EL3 then DACR32_EL2 = X[t];