armviz

SCTLR_EL2

64-bitMemory management

Whether the MMU and caches are on at EL2, and how this level handles exceptions. A hypervisor turns this on as the last step of setting up a guest.

Field layout

—
RES1[31:27]31:27
26
25:24
23
—
12
—
4
3
2
0
byte 7
byte 6
byte 5
byte 4
byte 3
byte 2
byte 1
byte 0

Current value hover a field to locate it

B7
B6
B5
B4
B3
B2
B1
B0

Fields

BitsFieldBitsValueDescription
63:32—32Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise.
31:27RES1[31:27]50x0 (0)

Reserved.

26UAO[26:26]10x0

Imprecise abort flag for EL1.

25:24RES0[25:24]20x0

Reserved.

23SPAN[23:23]10x0

PAN flag for EL1.

22:13—10Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise.
12I[12]10x0

Instruction cache enable.

11:5—7Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise.
4SA0[4]10x0

Stack alignment check for EL0.

3SA[3]10x0

Stack alignment check for EL1.

2C[2]10x0

Data cache enable.

1—1Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise.
0M[0]10x0

MMU enable. Setting it takes effect only after an ISB, and getting that wrong is a common cause of 'the MMU is on but the old mappings are still being used'.