diff options
Diffstat (limited to 'lib/arch/aarch64/sysreg_helpers.S')
-rw-r--r-- | lib/arch/aarch64/sysreg_helpers.S | 318 |
1 files changed, 0 insertions, 318 deletions
diff --git a/lib/arch/aarch64/sysreg_helpers.S b/lib/arch/aarch64/sysreg_helpers.S index 66504194..dfd0f2f1 100644 --- a/lib/arch/aarch64/sysreg_helpers.S +++ b/lib/arch/aarch64/sysreg_helpers.S @@ -30,127 +30,99 @@ #include <arch_helpers.h> - .globl read_vbar .globl read_vbar_el1 .globl read_vbar_el2 .globl read_vbar_el3 - .globl write_vbar .globl write_vbar_el1 .globl write_vbar_el2 .globl write_vbar_el3 - .globl read_sctlr .globl read_sctlr_el1 .globl read_sctlr_el2 .globl read_sctlr_el3 - .globl write_sctlr .globl write_sctlr_el1 .globl write_sctlr_el2 .globl write_sctlr_el3 - .globl read_actlr .globl read_actlr_el1 .globl read_actlr_el2 .globl read_actlr_el3 - .globl write_actlr .globl write_actlr_el1 .globl write_actlr_el2 .globl write_actlr_el3 - .globl read_esr .globl read_esr_el1 .globl read_esr_el2 .globl read_esr_el3 - .globl write_esr .globl write_esr_el1 .globl write_esr_el2 .globl write_esr_el3 - .globl read_afsr0 .globl read_afsr0_el1 .globl read_afsr0_el2 .globl read_afsr0_el3 - .globl write_afsr0 .globl write_afsr0_el1 .globl write_afsr0_el2 .globl write_afsr0_el3 - .globl read_afsr1 .globl read_afsr1_el1 .globl read_afsr1_el2 .globl read_afsr1_el3 - .globl write_afsr1 .globl write_afsr1_el1 .globl write_afsr1_el2 .globl write_afsr1_el3 - .globl read_far .globl read_far_el1 .globl read_far_el2 .globl read_far_el3 - .globl write_far .globl write_far_el1 .globl write_far_el2 .globl write_far_el3 - .globl read_mair .globl read_mair_el1 .globl read_mair_el2 .globl read_mair_el3 - .globl write_mair .globl write_mair_el1 .globl write_mair_el2 .globl write_mair_el3 - .globl read_amair .globl read_amair_el1 .globl read_amair_el2 .globl read_amair_el3 - .globl write_amair .globl write_amair_el1 .globl write_amair_el2 .globl write_amair_el3 - .globl read_rvbar .globl read_rvbar_el1 .globl read_rvbar_el2 .globl read_rvbar_el3 - .globl read_rmr .globl read_rmr_el1 .globl read_rmr_el2 .globl read_rmr_el3 - .globl write_rmr .globl write_rmr_el1 .globl write_rmr_el2 .globl write_rmr_el3 - .globl read_tcr .globl read_tcr_el1 .globl read_tcr_el2 .globl read_tcr_el3 - .globl write_tcr .globl write_tcr_el1 .globl write_tcr_el2 .globl write_tcr_el3 - .globl read_cptr .globl read_cptr_el2 .globl read_cptr_el3 - .globl write_cptr .globl write_cptr_el2 .globl write_cptr_el3 - .globl read_ttbr0 .globl read_ttbr0_el1 .globl read_ttbr0_el2 .globl read_ttbr0_el3 - .globl write_ttbr0 .globl write_ttbr0_el1 .globl write_ttbr0_el2 .globl write_ttbr0_el3 - .globl read_ttbr1 .globl read_ttbr1_el1 .globl read_ttbr1_el2 .globl write_ttbr1 @@ -213,16 +185,6 @@ read_id_aa64pfr0_el1: ; .type read_id_aa64pfr0_el1, %function * VBAR accessors * ----------------------------------------------------- */ -read_vbar: ; .type read_vbar, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_vbar_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_vbar_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_vbar_el3 - - read_vbar_el1: ; .type read_vbar_el1, %function mrs x0, vbar_el1 ret @@ -238,16 +200,6 @@ read_vbar_el3: ; .type read_vbar_el3, %function ret -write_vbar: ; .type write_vbar, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_vbar_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_vbar_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_vbar_el3 - - write_vbar_el1: ; .type write_vbar_el1, %function msr vbar_el1, x0 isb @@ -270,16 +222,6 @@ write_vbar_el3: ; .type write_vbar_el3, %function * AFSR0 accessors * ----------------------------------------------------- */ -read_afsr0: ; .type read_afsr0, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_afsr0_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_afsr0_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_afsr0_el3 - - read_afsr0_el1: ; .type read_afsr0_el1, %function mrs x0, afsr0_el1 ret @@ -295,16 +237,6 @@ read_afsr0_el3: ; .type read_afsr0_el3, %function ret -write_afsr0: ; .type write_afsr0, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_afsr0_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_afsr0_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_afsr0_el3 - - write_afsr0_el1: ; .type write_afsr0_el1, %function msr afsr0_el1, x0 isb @@ -327,16 +259,6 @@ write_afsr0_el3: ; .type write_afsr0_el3, %function * FAR accessors * ----------------------------------------------------- */ -read_far: ; .type read_far, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_far_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_far_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_far_el3 - - read_far_el1: ; .type read_far_el1, %function mrs x0, far_el1 ret @@ -352,16 +274,6 @@ read_far_el3: ; .type read_far_el3, %function ret -write_far: ; .type write_far, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_far_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_far_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_far_el3 - - write_far_el1: ; .type write_far_el1, %function msr far_el1, x0 isb @@ -384,16 +296,6 @@ write_far_el3: ; .type write_far_el3, %function * MAIR accessors * ----------------------------------------------------- */ -read_mair: ; .type read_mair, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_mair_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_mair_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_mair_el3 - - read_mair_el1: ; .type read_mair_el1, %function mrs x0, mair_el1 ret @@ -409,16 +311,6 @@ read_mair_el3: ; .type read_mair_el3, %function ret -write_mair: ; .type write_mair, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_mair_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_mair_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_mair_el3 - - write_mair_el1: ; .type write_mair_el1, %function msr mair_el1, x0 isb @@ -441,16 +333,6 @@ write_mair_el3: ; .type write_mair_el3, %function * AMAIR accessors * ----------------------------------------------------- */ -read_amair: ; .type read_amair, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_amair_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_amair_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_amair_el3 - - read_amair_el1: ; .type read_amair_el1, %function mrs x0, amair_el1 ret @@ -466,16 +348,6 @@ read_amair_el3: ; .type read_amair_el3, %function ret -write_amair: ; .type write_amair, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_amair_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_amair_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_amair_el3 - - write_amair_el1: ; .type write_amair_el1, %function msr amair_el1, x0 isb @@ -498,16 +370,6 @@ write_amair_el3: ; .type write_amair_el3, %function * RVBAR accessors * ----------------------------------------------------- */ -read_rvbar: ; .type read_rvbar, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_rvbar_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_rvbar_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_rvbar_el3 - - read_rvbar_el1: ; .type read_rvbar_el1, %function mrs x0, rvbar_el1 ret @@ -527,16 +389,6 @@ read_rvbar_el3: ; .type read_rvbar_el3, %function * RMR accessors * ----------------------------------------------------- */ -read_rmr: ; .type read_rmr, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_rmr_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_rmr_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_rmr_el3 - - read_rmr_el1: ; .type read_rmr_el1, %function mrs x0, rmr_el1 ret @@ -552,16 +404,6 @@ read_rmr_el3: ; .type read_rmr_el3, %function ret -write_rmr: ; .type write_rmr, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_rmr_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_rmr_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_rmr_el3 - - write_rmr_el1: ; .type write_rmr_el1, %function msr rmr_el1, x0 isb @@ -580,16 +422,6 @@ write_rmr_el3: ; .type write_rmr_el3, %function ret -read_afsr1: ; .type read_afsr1, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_afsr1_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_afsr1_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_afsr1_el3 - - /* ----------------------------------------------------- * AFSR1 accessors * ----------------------------------------------------- @@ -609,16 +441,6 @@ read_afsr1_el3: ; .type read_afsr1_el3, %function ret -write_afsr1: ; .type write_afsr1, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_afsr1_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_afsr1_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_afsr1_el3 - - write_afsr1_el1: ; .type write_afsr1_el1, %function msr afsr1_el1, x0 isb @@ -641,16 +463,6 @@ write_afsr1_el3: ; .type write_afsr1_el3, %function * SCTLR accessors * ----------------------------------------------------- */ -read_sctlr: ; .type read_sctlr, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_sctlr_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_sctlr_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_sctlr_el3 - - read_sctlr_el1: ; .type read_sctlr_el1, %function mrs x0, sctlr_el1 ret @@ -666,16 +478,6 @@ read_sctlr_el3: ; .type read_sctlr_el3, %function ret -write_sctlr: ; .type write_sctlr, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_sctlr_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_sctlr_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_sctlr_el3 - - write_sctlr_el1: ; .type write_sctlr_el1, %function msr sctlr_el1, x0 dsb sy @@ -701,16 +503,6 @@ write_sctlr_el3: ; .type write_sctlr_el3, %function * ACTLR accessors * ----------------------------------------------------- */ -read_actlr: ; .type read_actlr, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_actlr_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_actlr_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_actlr_el3 - - read_actlr_el1: ; .type read_actlr_el1, %function mrs x0, actlr_el1 ret @@ -726,16 +518,6 @@ read_actlr_el3: ; .type read_actlr_el3, %function ret -write_actlr: ; .type write_actlr, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_actlr_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_actlr_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_actlr_el3 - - write_actlr_el1: ; .type write_actlr_el1, %function msr actlr_el1, x0 dsb sy @@ -761,16 +543,6 @@ write_actlr_el3: ; .type write_actlr_el3, %function * ESR accessors * ----------------------------------------------------- */ -read_esr: ; .type read_esr, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_esr_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_esr_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_esr_el3 - - read_esr_el1: ; .type read_esr_el1, %function mrs x0, esr_el1 ret @@ -786,16 +558,6 @@ read_esr_el3: ; .type read_esr_el3, %function ret -write_esr: ; .type write_esr, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_esr_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_esr_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_esr_el3 - - write_esr_el1: ; .type write_esr_el1, %function msr esr_el1, x0 dsb sy @@ -821,16 +583,6 @@ write_esr_el3: ; .type write_esr_el3, %function * TCR accessors * ----------------------------------------------------- */ -read_tcr: ; .type read_tcr, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_tcr_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_tcr_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_tcr_el3 - - read_tcr_el1: ; .type read_tcr_el1, %function mrs x0, tcr_el1 ret @@ -846,16 +598,6 @@ read_tcr_el3: ; .type read_tcr_el3, %function ret -write_tcr: ; .type write_tcr, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_tcr_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_tcr_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_tcr_el3 - - write_tcr_el1: ; .type write_tcr_el1, %function msr tcr_el1, x0 dsb sy @@ -881,16 +623,6 @@ write_tcr_el3: ; .type write_tcr_el3, %function * CPTR accessors * ----------------------------------------------------- */ -read_cptr: ; .type read_cptr, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_cptr_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_cptr_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_cptr_el3 - - read_cptr_el1: ; .type read_cptr_el1, %function b read_cptr_el1 ret @@ -906,16 +638,6 @@ read_cptr_el3: ; .type read_cptr_el3, %function ret -write_cptr: ; .type write_cptr, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_cptr_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_cptr_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_cptr_el3 - - write_cptr_el1: ; .type write_cptr_el1, %function b write_cptr_el1 @@ -938,16 +660,6 @@ write_cptr_el3: ; .type write_cptr_el3, %function * TTBR0 accessors * ----------------------------------------------------- */ -read_ttbr0: ; .type read_ttbr0, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_ttbr0_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_ttbr0_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_ttbr0_el3 - - read_ttbr0_el1: ; .type read_ttbr0_el1, %function mrs x0, ttbr0_el1 ret @@ -963,16 +675,6 @@ read_ttbr0_el3: ; .type read_ttbr0_el3, %function ret -write_ttbr0: ; .type write_ttbr0, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_ttbr0_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_ttbr0_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_ttbr0_el3 - - write_ttbr0_el1: ; .type write_ttbr0_el1, %function msr ttbr0_el1, x0 isb @@ -995,16 +697,6 @@ write_ttbr0_el3: ; .type write_ttbr0_el3, %function * TTBR1 accessors * ----------------------------------------------------- */ -read_ttbr1: ; .type read_ttbr1, %function - mrs x0, CurrentEl - cmp x0, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq read_ttbr1_el1 - cmp x0, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq read_ttbr1_el2 - cmp x0, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq read_ttbr1_el3 - - read_ttbr1_el1: ; .type read_ttbr1_el1, %function mrs x0, ttbr1_el1 ret @@ -1018,16 +710,6 @@ read_ttbr1_el3: ; .type read_ttbr1_el3, %function b read_ttbr1_el3 -write_ttbr1: ; .type write_ttbr1, %function - mrs x1, CurrentEl - cmp x1, #(MODE_EL1 << MODE_EL_SHIFT) - b.eq write_ttbr1_el1 - cmp x1, #(MODE_EL2 << MODE_EL_SHIFT) - b.eq write_ttbr1_el2 - cmp x1, #(MODE_EL3 << MODE_EL_SHIFT) - b.eq write_ttbr1_el3 - - write_ttbr1_el1: ; .type write_ttbr1_el1, %function msr ttbr1_el1, x0 isb |