setpan

Set Privileged Access Never (A32)

SETPAN #<imm>

Enables/Disables PAN (Prevents kernel accessing user memory).

Pseudocode Operation

PSTATE.PAN ← imm;

Example

SETPAN #16

Encoding

Binary Layout
111100010001
31:20
0
19
0
18
0
17
0
16
0
15
0
14
0
13
0
12
0
11
0
10
imm1
9
0
8
0000
7:4
0
3
0
2
0
1
0
0
 
Format System
Opcode 0xF1100000
Extension A32 (System)

Operands

  • imm
    0/1

Related

More in A32 (System)

Reference

Instruction Forms

Encoding Instruction ISA Bit pattern
0xF1100000 SETPAN{<q>} #<imm> A32 111100010001 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | imm1 | 0 | 0000 | 0 | 0 | 0 | 0
0xB610 SETPAN{<q>} #<imm> T32 10110110000 | 1 | imm1 | 0 | 0 | 0

Description

Set Privileged Access Never writes a new value to PSTATE.PAN. This instruction is available only in privileged mode and it is a NOP when executed in User mode.

Operation

EncodingSpecificOperations();
if PSTATE.EL != EL0 then
    PSTATE.PAN = value;