Lines Matching refs:ctx
40 static void manage_extensions_secure(cpu_context_t *ctx);
42 static void setup_el1_context(cpu_context_t *ctx, const struct entry_point_info *ep) in setup_el1_context() argument
86 write_ctx_reg(get_el1_sysregs_ctx(ctx), CTX_SCTLR_EL1, sctlr_elx); in setup_el1_context()
96 write_ctx_reg((get_el1_sysregs_ctx(ctx)), (CTX_ACTLR_EL1), (actlr_elx)); in setup_el1_context()
103 static void setup_secure_context(cpu_context_t *ctx, const struct entry_point_info *ep) in setup_secure_context() argument
108 state = get_el3state_ctx(ctx); in setup_secure_context()
153 setup_el1_context(ctx, ep); in setup_secure_context()
156 manage_extensions_secure(ctx); in setup_secure_context()
164 static void setup_realm_context(cpu_context_t *ctx, const struct entry_point_info *ep) in setup_realm_context() argument
169 state = get_el3state_ctx(ctx); in setup_realm_context()
182 static void setup_ns_context(cpu_context_t *ctx, const struct entry_point_info *ep) in setup_ns_context() argument
187 state = get_el3state_ctx(ctx); in setup_ns_context()
235 setup_el1_context(ctx, ep); in setup_ns_context()
246 write_ctx_reg(get_el2_sysregs_ctx(ctx), CTX_SCTLR_EL2, in setup_ns_context()
255 write_ctx_reg(get_el2_sysregs_ctx(ctx), CTX_ICC_SRE_EL2, in setup_ns_context()
266 write_ctx_reg(get_el2_sysregs_ctx(ctx), CTX_MDCR_EL2, mdcr_el2); in setup_ns_context()
278 static void setup_context_common(cpu_context_t *ctx, const entry_point_info_t *ep) in setup_context_common() argument
285 zeromem(ctx, sizeof(*ctx)); in setup_context_common()
344 write_ctx_reg(get_el3state_ctx(ctx), CTX_CPTR_EL3, read_cptr_el3()); in setup_context_common()
387 state = get_el3state_ctx(ctx); in setup_context_common()
396 gp_regs = get_gpregs_ctx(ctx); in setup_context_common()
426 void cm_setup_context(cpu_context_t *ctx, const entry_point_info_t *ep) in cm_setup_context() argument
430 assert(ctx != NULL); in cm_setup_context()
436 setup_context_common(ctx, ep); in cm_setup_context()
443 setup_secure_context(ctx, ep); in cm_setup_context()
447 setup_realm_context(ctx, ep); in cm_setup_context()
451 setup_ns_context(ctx, ep); in cm_setup_context()
465 static void manage_extensions_nonsecure(bool el2_unused, cpu_context_t *ctx) in manage_extensions_nonsecure() argument
473 amu_enable(el2_unused, ctx); in manage_extensions_nonsecure()
478 sme_enable(ctx); in manage_extensions_nonsecure()
481 sve_enable(ctx); in manage_extensions_nonsecure()
497 sys_reg_trace_enable(ctx); in manage_extensions_nonsecure()
509 static void manage_extensions_secure(cpu_context_t *ctx) in manage_extensions_secure() argument
518 sme_enable(ctx); in manage_extensions_secure()
524 sme_disable(ctx); in manage_extensions_secure()
532 sve_enable(ctx); in manage_extensions_secure()
538 sve_disable(ctx); in manage_extensions_secure()
552 cpu_context_t *ctx; in cm_init_context_by_index() local
553 ctx = cm_get_context_by_index(cpu_idx, GET_SECURITY_STATE(ep->h.attr)); in cm_init_context_by_index()
554 cm_setup_context(ctx, ep); in cm_init_context_by_index()
564 cpu_context_t *ctx; in cm_init_my_context() local
565 ctx = cm_get_context(GET_SECURITY_STATE(ep->h.attr)); in cm_init_my_context()
566 cm_setup_context(ctx, ep); in cm_init_my_context()
581 cpu_context_t *ctx = cm_get_context(security_state); in cm_prepare_el3_exit() local
585 assert(ctx != NULL); in cm_prepare_el3_exit()
588 scr_el3 = read_ctx_reg(get_el3state_ctx(ctx), in cm_prepare_el3_exit()
592 sctlr_elx = read_ctx_reg(get_el1_sysregs_ctx(ctx), in cm_prepare_el3_exit()
787 manage_extensions_nonsecure(el2_unused, ctx); in cm_prepare_el3_exit()
808 cpu_context_t *ctx; in cm_el2_sysregs_context_save() local
811 ctx = cm_get_context(security_state); in cm_el2_sysregs_context_save()
812 assert(ctx != NULL); in cm_el2_sysregs_context_save()
814 el2_sysregs_ctx = get_el2_sysregs_ctx(ctx); in cm_el2_sysregs_context_save()
866 cpu_context_t *ctx; in cm_el2_sysregs_context_restore() local
869 ctx = cm_get_context(security_state); in cm_el2_sysregs_context_restore()
870 assert(ctx != NULL); in cm_el2_sysregs_context_restore()
872 el2_sysregs_ctx = get_el2_sysregs_ctx(ctx); in cm_el2_sysregs_context_restore()
921 cpu_context_t *ctx = cm_get_context(NON_SECURE); in cm_prepare_el3_exit_ns() local
922 assert(ctx != NULL); in cm_prepare_el3_exit_ns()
926 el3_state_t *state = get_el3state_ctx(ctx); in cm_prepare_el3_exit_ns()
937 manage_extensions_nonsecure(0, ctx); in cm_prepare_el3_exit_ns()
967 cpu_context_t *ctx; in cm_el1_sysregs_context_save() local
969 ctx = cm_get_context(security_state); in cm_el1_sysregs_context_save()
970 assert(ctx != NULL); in cm_el1_sysregs_context_save()
972 el1_sysregs_context_save(get_el1_sysregs_ctx(ctx)); in cm_el1_sysregs_context_save()
984 cpu_context_t *ctx; in cm_el1_sysregs_context_restore() local
986 ctx = cm_get_context(security_state); in cm_el1_sysregs_context_restore()
987 assert(ctx != NULL); in cm_el1_sysregs_context_restore()
989 el1_sysregs_context_restore(get_el1_sysregs_ctx(ctx)); in cm_el1_sysregs_context_restore()
1005 cpu_context_t *ctx; in cm_set_elr_el3() local
1008 ctx = cm_get_context(security_state); in cm_set_elr_el3()
1009 assert(ctx != NULL); in cm_set_elr_el3()
1012 state = get_el3state_ctx(ctx); in cm_set_elr_el3()
1023 cpu_context_t *ctx; in cm_set_elr_spsr_el3() local
1026 ctx = cm_get_context(security_state); in cm_set_elr_spsr_el3()
1027 assert(ctx != NULL); in cm_set_elr_spsr_el3()
1030 state = get_el3state_ctx(ctx); in cm_set_elr_spsr_el3()
1044 cpu_context_t *ctx; in cm_write_scr_el3_bit() local
1048 ctx = cm_get_context(security_state); in cm_write_scr_el3_bit()
1049 assert(ctx != NULL); in cm_write_scr_el3_bit()
1061 state = get_el3state_ctx(ctx); in cm_write_scr_el3_bit()
1074 cpu_context_t *ctx; in cm_get_scr_el3() local
1077 ctx = cm_get_context(security_state); in cm_get_scr_el3()
1078 assert(ctx != NULL); in cm_get_scr_el3()
1081 state = get_el3state_ctx(ctx); in cm_get_scr_el3()
1092 cpu_context_t *ctx; in cm_set_next_eret_context() local
1094 ctx = cm_get_context(security_state); in cm_set_next_eret_context()
1095 assert(ctx != NULL); in cm_set_next_eret_context()
1097 cm_set_next_context(ctx); in cm_set_next_eret_context()