blob: b909b820740473c0f79012557de55c0a64978403 [file] [log] [blame]
.macro gen_mrs reg
.irp m, 3, 11, 15
MRS X\m, \reg
.endr
.endm
.macro gen_tlbi reg
.irp m, 3, 11, 15
TLBI \reg, X\m
.endr
.endm
func:
# Secure second stage
gen_mrs VSTTBR_EL2
gen_mrs VSTCR_EL2
# Timer changes
gen_mrs CNTP_TVAL_EL0
gen_mrs CNTP_CTL_EL0
gen_mrs CNTP_CVAL_EL0
gen_mrs CNTV_TVAL_EL0
gen_mrs CNTV_CTL_EL0
gen_mrs CNTV_CVAL_EL0
gen_mrs CNTHVS_TVAL_EL2
gen_mrs CNTHVS_CVAL_EL2
gen_mrs CNTHVS_CTL_EL2
gen_mrs CNTHPS_TVAL_EL2
gen_mrs CNTHPS_CVAL_EL2
gen_mrs CNTHPS_CTL_EL2
# Debug state
gen_mrs SDER32_EL2
# Nested Virtualization
gen_mrs VNCR_EL2
# PSTATE
MSR DIT, #01
MSR DIT, #00
MSR DIT, X3
MSR DIT, X11
MSR DIT, X15
gen_mrs DIT
# TLB Maintenance instructions
TLBI VMALLE1OS
TLBI ALLE2OS
TLBI ALLE1OS
TLBI ALLE3OS
TLBI VMALLS12E1OS
gen_tlbi VAE1OS
gen_tlbi ASIDE1OS
gen_tlbi VAAE1OS
gen_tlbi VALE1OS
gen_tlbi VAALE1OS
gen_tlbi IPAS2E1OS
gen_tlbi IPAS2LE1OS
gen_tlbi VAE2OS
gen_tlbi VALE2OS
gen_tlbi VAE3OS
gen_tlbi VALE3OS
# TLB Range Maintenance Instructions
gen_tlbi RVAE1
gen_tlbi RVAAE1
gen_tlbi RVALE1
gen_tlbi RVAALE1
gen_tlbi RVAE1IS
gen_tlbi RVAAE1IS
gen_tlbi RVALE1IS
gen_tlbi RVAALE1IS
gen_tlbi RVAE1OS
gen_tlbi RVAAE1OS
gen_tlbi RVALE1OS
gen_tlbi RVAALE1OS
gen_tlbi RIPAS2E1IS
gen_tlbi RIPAS2LE1IS
gen_tlbi RIPAS2E1
gen_tlbi RIPAS2LE1
gen_tlbi RIPAS2E1OS
gen_tlbi RIPAS2LE1OS
gen_tlbi RVAE2
gen_tlbi RVALE2
gen_tlbi RVAE2IS
gen_tlbi RVALE2IS
gen_tlbi RVAE2OS
gen_tlbi RVALE2OS
gen_tlbi RVAE3
gen_tlbi RVALE3
gen_tlbi RVAE3IS
gen_tlbi RVALE3IS
gen_tlbi RVAE3OS
gen_tlbi RVALE3OS