Lines Matching refs:ctx

45 static void manage_extensions_nonsecure(cpu_context_t *ctx);
46 static void manage_extensions_secure(cpu_context_t *ctx);
49 static void setup_el1_context(cpu_context_t *ctx, const struct entry_point_info *ep) in setup_el1_context() argument
93 write_ctx_reg(get_el1_sysregs_ctx(ctx), CTX_SCTLR_EL1, sctlr_elx); in setup_el1_context()
103 write_ctx_reg((get_el1_sysregs_ctx(ctx)), (CTX_ACTLR_EL1), (actlr_elx)); in setup_el1_context()
110 static void setup_secure_context(cpu_context_t *ctx, const struct entry_point_info *ep) in setup_secure_context() argument
115 state = get_el3state_ctx(ctx); in setup_secure_context()
150 setup_el1_context(ctx, ep); in setup_secure_context()
153 manage_extensions_secure(ctx); in setup_secure_context()
173 static void setup_realm_context(cpu_context_t *ctx, const struct entry_point_info *ep) in setup_realm_context() argument
178 state = get_el3state_ctx(ctx); in setup_realm_context()
196 static void setup_ns_context(cpu_context_t *ctx, const struct entry_point_info *ep) in setup_ns_context() argument
201 state = get_el3state_ctx(ctx); in setup_ns_context()
266 setup_el1_context(ctx, ep); in setup_ns_context()
277 write_ctx_reg(get_el2_sysregs_ctx(ctx), CTX_SCTLR_EL2, in setup_ns_context()
289 write_ctx_reg(get_el2_sysregs_ctx(ctx), CTX_HCRX_EL2, in setup_ns_context()
299 write_ctx_reg(get_el2_sysregs_ctx(ctx), CTX_HFGITR_EL2, in setup_ns_context()
301 write_ctx_reg(get_el2_sysregs_ctx(ctx), CTX_HFGRTR_EL2, in setup_ns_context()
303 write_ctx_reg(get_el2_sysregs_ctx(ctx), CTX_HFGWTR_EL2, in setup_ns_context()
308 manage_extensions_nonsecure(ctx); in setup_ns_context()
319 static void setup_context_common(cpu_context_t *ctx, const entry_point_info_t *ep) in setup_context_common() argument
325 state = get_el3state_ctx(ctx); in setup_context_common()
328 zeromem(ctx, sizeof(*ctx)); in setup_context_common()
337 el2_sysregs_t *el2_ctx = get_el2_sysregs_ctx(ctx); in setup_context_common()
487 write_ctx_reg(get_el3state_ctx(ctx), CTX_MPAM3_EL3, \ in setup_context_common()
503 gp_regs = get_gpregs_ctx(ctx); in setup_context_common()
533 void cm_setup_context(cpu_context_t *ctx, const entry_point_info_t *ep) in cm_setup_context() argument
537 assert(ctx != NULL); in cm_setup_context()
543 setup_context_common(ctx, ep); in cm_setup_context()
550 setup_secure_context(ctx, ep); in cm_setup_context()
554 setup_realm_context(ctx, ep); in cm_setup_context()
558 setup_ns_context(ctx, ep); in cm_setup_context()
682 static void manage_extensions_nonsecure(cpu_context_t *ctx) in manage_extensions_nonsecure() argument
686 amu_enable(ctx); in manage_extensions_nonsecure()
690 sme_enable(ctx); in manage_extensions_nonsecure()
694 mpam_enable(ctx); in manage_extensions_nonsecure()
696 pmuv3_enable(ctx); in manage_extensions_nonsecure()
766 static void manage_extensions_secure(cpu_context_t *ctx) in manage_extensions_secure() argument
776 sme_enable(ctx); in manage_extensions_secure()
782 sme_disable(ctx); in manage_extensions_secure()
796 cpu_context_t *ctx; in cm_init_context_by_index() local
797 ctx = cm_get_context_by_index(cpu_idx, GET_SECURITY_STATE(ep->h.attr)); in cm_init_context_by_index()
798 cm_setup_context(ctx, ep); in cm_init_context_by_index()
808 cpu_context_t *ctx; in cm_init_my_context() local
809 ctx = cm_get_context(GET_SECURITY_STATE(ep->h.attr)); in cm_init_my_context()
810 cm_setup_context(ctx, ep); in cm_init_my_context()
814 static void init_nonsecure_el2_unused(cpu_context_t *ctx) in init_nonsecure_el2_unused() argument
821 scr_el3 = read_ctx_reg(get_el3state_ctx(ctx), CTX_SCR_EL3); in init_nonsecure_el2_unused()
930 cpu_context_t *ctx = cm_get_context(security_state); in cm_prepare_el3_exit() local
932 assert(ctx != NULL); in cm_prepare_el3_exit()
937 scr_el3 = read_ctx_reg(get_el3state_ctx(ctx), in cm_prepare_el3_exit()
972 sctlr_elx = read_ctx_reg(get_el1_sysregs_ctx(ctx), in cm_prepare_el3_exit()
986 init_nonsecure_el2_unused(ctx); in cm_prepare_el3_exit()
996 static void el2_sysregs_context_save_fgt(el2_sysregs_t *ctx) in el2_sysregs_context_save_fgt() argument
998 write_ctx_reg(ctx, CTX_HDFGRTR_EL2, read_hdfgrtr_el2()); in el2_sysregs_context_save_fgt()
1000 write_ctx_reg(ctx, CTX_HAFGRTR_EL2, read_hafgrtr_el2()); in el2_sysregs_context_save_fgt()
1002 write_ctx_reg(ctx, CTX_HDFGWTR_EL2, read_hdfgwtr_el2()); in el2_sysregs_context_save_fgt()
1003 write_ctx_reg(ctx, CTX_HFGITR_EL2, read_hfgitr_el2()); in el2_sysregs_context_save_fgt()
1004 write_ctx_reg(ctx, CTX_HFGRTR_EL2, read_hfgrtr_el2()); in el2_sysregs_context_save_fgt()
1005 write_ctx_reg(ctx, CTX_HFGWTR_EL2, read_hfgwtr_el2()); in el2_sysregs_context_save_fgt()
1008 static void el2_sysregs_context_restore_fgt(el2_sysregs_t *ctx) in el2_sysregs_context_restore_fgt() argument
1010 write_hdfgrtr_el2(read_ctx_reg(ctx, CTX_HDFGRTR_EL2)); in el2_sysregs_context_restore_fgt()
1012 write_hafgrtr_el2(read_ctx_reg(ctx, CTX_HAFGRTR_EL2)); in el2_sysregs_context_restore_fgt()
1014 write_hdfgwtr_el2(read_ctx_reg(ctx, CTX_HDFGWTR_EL2)); in el2_sysregs_context_restore_fgt()
1015 write_hfgitr_el2(read_ctx_reg(ctx, CTX_HFGITR_EL2)); in el2_sysregs_context_restore_fgt()
1016 write_hfgrtr_el2(read_ctx_reg(ctx, CTX_HFGRTR_EL2)); in el2_sysregs_context_restore_fgt()
1017 write_hfgwtr_el2(read_ctx_reg(ctx, CTX_HFGWTR_EL2)); in el2_sysregs_context_restore_fgt()
1020 static void el2_sysregs_context_save_mpam(el2_sysregs_t *ctx) in el2_sysregs_context_save_mpam() argument
1024 write_ctx_reg(ctx, CTX_MPAM2_EL2, read_mpam2_el2()); in el2_sysregs_context_save_mpam()
1038 write_ctx_reg(ctx, CTX_MPAMHCR_EL2, read_mpamhcr_el2()); in el2_sysregs_context_save_mpam()
1039 write_ctx_reg(ctx, CTX_MPAMVPM0_EL2, read_mpamvpm0_el2()); in el2_sysregs_context_save_mpam()
1040 write_ctx_reg(ctx, CTX_MPAMVPMV_EL2, read_mpamvpmv_el2()); in el2_sysregs_context_save_mpam()
1048 write_ctx_reg(ctx, CTX_MPAMVPM7_EL2, read_mpamvpm7_el2()); in el2_sysregs_context_save_mpam()
1051 write_ctx_reg(ctx, CTX_MPAMVPM6_EL2, read_mpamvpm6_el2()); in el2_sysregs_context_save_mpam()
1054 write_ctx_reg(ctx, CTX_MPAMVPM5_EL2, read_mpamvpm5_el2()); in el2_sysregs_context_save_mpam()
1057 write_ctx_reg(ctx, CTX_MPAMVPM4_EL2, read_mpamvpm4_el2()); in el2_sysregs_context_save_mpam()
1060 write_ctx_reg(ctx, CTX_MPAMVPM3_EL2, read_mpamvpm3_el2()); in el2_sysregs_context_save_mpam()
1063 write_ctx_reg(ctx, CTX_MPAMVPM2_EL2, read_mpamvpm2_el2()); in el2_sysregs_context_save_mpam()
1066 write_ctx_reg(ctx, CTX_MPAMVPM1_EL2, read_mpamvpm1_el2()); in el2_sysregs_context_save_mpam()
1071 static void el2_sysregs_context_restore_mpam(el2_sysregs_t *ctx) in el2_sysregs_context_restore_mpam() argument
1075 write_mpam2_el2(read_ctx_reg(ctx, CTX_MPAM2_EL2)); in el2_sysregs_context_restore_mpam()
1081 write_mpamhcr_el2(read_ctx_reg(ctx, CTX_MPAMHCR_EL2)); in el2_sysregs_context_restore_mpam()
1082 write_mpamvpm0_el2(read_ctx_reg(ctx, CTX_MPAMVPM0_EL2)); in el2_sysregs_context_restore_mpam()
1083 write_mpamvpmv_el2(read_ctx_reg(ctx, CTX_MPAMVPMV_EL2)); in el2_sysregs_context_restore_mpam()
1087 write_mpamvpm7_el2(read_ctx_reg(ctx, CTX_MPAMVPM7_EL2)); in el2_sysregs_context_restore_mpam()
1090 write_mpamvpm6_el2(read_ctx_reg(ctx, CTX_MPAMVPM6_EL2)); in el2_sysregs_context_restore_mpam()
1093 write_mpamvpm5_el2(read_ctx_reg(ctx, CTX_MPAMVPM5_EL2)); in el2_sysregs_context_restore_mpam()
1096 write_mpamvpm4_el2(read_ctx_reg(ctx, CTX_MPAMVPM4_EL2)); in el2_sysregs_context_restore_mpam()
1099 write_mpamvpm3_el2(read_ctx_reg(ctx, CTX_MPAMVPM3_EL2)); in el2_sysregs_context_restore_mpam()
1102 write_mpamvpm2_el2(read_ctx_reg(ctx, CTX_MPAMVPM2_EL2)); in el2_sysregs_context_restore_mpam()
1105 write_mpamvpm1_el2(read_ctx_reg(ctx, CTX_MPAMVPM1_EL2)); in el2_sysregs_context_restore_mpam()
1119 static void el2_sysregs_context_save_common(el2_sysregs_t *ctx) in el2_sysregs_context_save_common() argument
1121 write_ctx_reg(ctx, CTX_ACTLR_EL2, read_actlr_el2()); in el2_sysregs_context_save_common()
1122 write_ctx_reg(ctx, CTX_AFSR0_EL2, read_afsr0_el2()); in el2_sysregs_context_save_common()
1123 write_ctx_reg(ctx, CTX_AFSR1_EL2, read_afsr1_el2()); in el2_sysregs_context_save_common()
1124 write_ctx_reg(ctx, CTX_AMAIR_EL2, read_amair_el2()); in el2_sysregs_context_save_common()
1125 write_ctx_reg(ctx, CTX_CNTHCTL_EL2, read_cnthctl_el2()); in el2_sysregs_context_save_common()
1126 write_ctx_reg(ctx, CTX_CNTVOFF_EL2, read_cntvoff_el2()); in el2_sysregs_context_save_common()
1127 write_ctx_reg(ctx, CTX_CPTR_EL2, read_cptr_el2()); in el2_sysregs_context_save_common()
1129 write_ctx_reg(ctx, CTX_DBGVCR32_EL2, read_dbgvcr32_el2()); in el2_sysregs_context_save_common()
1131 write_ctx_reg(ctx, CTX_ELR_EL2, read_elr_el2()); in el2_sysregs_context_save_common()
1132 write_ctx_reg(ctx, CTX_ESR_EL2, read_esr_el2()); in el2_sysregs_context_save_common()
1133 write_ctx_reg(ctx, CTX_FAR_EL2, read_far_el2()); in el2_sysregs_context_save_common()
1134 write_ctx_reg(ctx, CTX_HACR_EL2, read_hacr_el2()); in el2_sysregs_context_save_common()
1135 write_ctx_reg(ctx, CTX_HCR_EL2, read_hcr_el2()); in el2_sysregs_context_save_common()
1136 write_ctx_reg(ctx, CTX_HPFAR_EL2, read_hpfar_el2()); in el2_sysregs_context_save_common()
1137 write_ctx_reg(ctx, CTX_HSTR_EL2, read_hstr_el2()); in el2_sysregs_context_save_common()
1147 write_ctx_reg(ctx, CTX_ICC_SRE_EL2, read_icc_sre_el2()); in el2_sysregs_context_save_common()
1152 write_ctx_reg(ctx, CTX_ICH_HCR_EL2, read_ich_hcr_el2()); in el2_sysregs_context_save_common()
1153 write_ctx_reg(ctx, CTX_ICH_VMCR_EL2, read_ich_vmcr_el2()); in el2_sysregs_context_save_common()
1154 write_ctx_reg(ctx, CTX_MAIR_EL2, read_mair_el2()); in el2_sysregs_context_save_common()
1155 write_ctx_reg(ctx, CTX_MDCR_EL2, read_mdcr_el2()); in el2_sysregs_context_save_common()
1156 write_ctx_reg(ctx, CTX_SCTLR_EL2, read_sctlr_el2()); in el2_sysregs_context_save_common()
1157 write_ctx_reg(ctx, CTX_SPSR_EL2, read_spsr_el2()); in el2_sysregs_context_save_common()
1158 write_ctx_reg(ctx, CTX_SP_EL2, read_sp_el2()); in el2_sysregs_context_save_common()
1159 write_ctx_reg(ctx, CTX_TCR_EL2, read_tcr_el2()); in el2_sysregs_context_save_common()
1160 write_ctx_reg(ctx, CTX_TPIDR_EL2, read_tpidr_el2()); in el2_sysregs_context_save_common()
1161 write_ctx_reg(ctx, CTX_TTBR0_EL2, read_ttbr0_el2()); in el2_sysregs_context_save_common()
1162 write_ctx_reg(ctx, CTX_VBAR_EL2, read_vbar_el2()); in el2_sysregs_context_save_common()
1163 write_ctx_reg(ctx, CTX_VMPIDR_EL2, read_vmpidr_el2()); in el2_sysregs_context_save_common()
1164 write_ctx_reg(ctx, CTX_VPIDR_EL2, read_vpidr_el2()); in el2_sysregs_context_save_common()
1165 write_ctx_reg(ctx, CTX_VTCR_EL2, read_vtcr_el2()); in el2_sysregs_context_save_common()
1166 write_ctx_reg(ctx, CTX_VTTBR_EL2, read_vttbr_el2()); in el2_sysregs_context_save_common()
1169 static void el2_sysregs_context_restore_common(el2_sysregs_t *ctx) in el2_sysregs_context_restore_common() argument
1171 write_actlr_el2(read_ctx_reg(ctx, CTX_ACTLR_EL2)); in el2_sysregs_context_restore_common()
1172 write_afsr0_el2(read_ctx_reg(ctx, CTX_AFSR0_EL2)); in el2_sysregs_context_restore_common()
1173 write_afsr1_el2(read_ctx_reg(ctx, CTX_AFSR1_EL2)); in el2_sysregs_context_restore_common()
1174 write_amair_el2(read_ctx_reg(ctx, CTX_AMAIR_EL2)); in el2_sysregs_context_restore_common()
1175 write_cnthctl_el2(read_ctx_reg(ctx, CTX_CNTHCTL_EL2)); in el2_sysregs_context_restore_common()
1176 write_cntvoff_el2(read_ctx_reg(ctx, CTX_CNTVOFF_EL2)); in el2_sysregs_context_restore_common()
1177 write_cptr_el2(read_ctx_reg(ctx, CTX_CPTR_EL2)); in el2_sysregs_context_restore_common()
1179 write_dbgvcr32_el2(read_ctx_reg(ctx, CTX_DBGVCR32_EL2)); in el2_sysregs_context_restore_common()
1181 write_elr_el2(read_ctx_reg(ctx, CTX_ELR_EL2)); in el2_sysregs_context_restore_common()
1182 write_esr_el2(read_ctx_reg(ctx, CTX_ESR_EL2)); in el2_sysregs_context_restore_common()
1183 write_far_el2(read_ctx_reg(ctx, CTX_FAR_EL2)); in el2_sysregs_context_restore_common()
1184 write_hacr_el2(read_ctx_reg(ctx, CTX_HACR_EL2)); in el2_sysregs_context_restore_common()
1185 write_hcr_el2(read_ctx_reg(ctx, CTX_HCR_EL2)); in el2_sysregs_context_restore_common()
1186 write_hpfar_el2(read_ctx_reg(ctx, CTX_HPFAR_EL2)); in el2_sysregs_context_restore_common()
1187 write_hstr_el2(read_ctx_reg(ctx, CTX_HSTR_EL2)); in el2_sysregs_context_restore_common()
1197 write_icc_sre_el2(read_ctx_reg(ctx, CTX_ICC_SRE_EL2)); in el2_sysregs_context_restore_common()
1202 write_ich_hcr_el2(read_ctx_reg(ctx, CTX_ICH_HCR_EL2)); in el2_sysregs_context_restore_common()
1203 write_ich_vmcr_el2(read_ctx_reg(ctx, CTX_ICH_VMCR_EL2)); in el2_sysregs_context_restore_common()
1204 write_mair_el2(read_ctx_reg(ctx, CTX_MAIR_EL2)); in el2_sysregs_context_restore_common()
1205 write_mdcr_el2(read_ctx_reg(ctx, CTX_MDCR_EL2)); in el2_sysregs_context_restore_common()
1206 write_sctlr_el2(read_ctx_reg(ctx, CTX_SCTLR_EL2)); in el2_sysregs_context_restore_common()
1207 write_spsr_el2(read_ctx_reg(ctx, CTX_SPSR_EL2)); in el2_sysregs_context_restore_common()
1208 write_sp_el2(read_ctx_reg(ctx, CTX_SP_EL2)); in el2_sysregs_context_restore_common()
1209 write_tcr_el2(read_ctx_reg(ctx, CTX_TCR_EL2)); in el2_sysregs_context_restore_common()
1210 write_tpidr_el2(read_ctx_reg(ctx, CTX_TPIDR_EL2)); in el2_sysregs_context_restore_common()
1211 write_ttbr0_el2(read_ctx_reg(ctx, CTX_TTBR0_EL2)); in el2_sysregs_context_restore_common()
1212 write_vbar_el2(read_ctx_reg(ctx, CTX_VBAR_EL2)); in el2_sysregs_context_restore_common()
1213 write_vmpidr_el2(read_ctx_reg(ctx, CTX_VMPIDR_EL2)); in el2_sysregs_context_restore_common()
1214 write_vpidr_el2(read_ctx_reg(ctx, CTX_VPIDR_EL2)); in el2_sysregs_context_restore_common()
1215 write_vtcr_el2(read_ctx_reg(ctx, CTX_VTCR_EL2)); in el2_sysregs_context_restore_common()
1216 write_vttbr_el2(read_ctx_reg(ctx, CTX_VTTBR_EL2)); in el2_sysregs_context_restore_common()
1224 cpu_context_t *ctx; in cm_el2_sysregs_context_save() local
1227 ctx = cm_get_context(security_state); in cm_el2_sysregs_context_save()
1228 assert(ctx != NULL); in cm_el2_sysregs_context_save()
1230 el2_sysregs_ctx = get_el2_sysregs_ctx(ctx); in cm_el2_sysregs_context_save()
1297 cpu_context_t *ctx; in cm_el2_sysregs_context_restore() local
1300 ctx = cm_get_context(security_state); in cm_el2_sysregs_context_restore()
1301 assert(ctx != NULL); in cm_el2_sysregs_context_restore()
1303 el2_sysregs_ctx = get_el2_sysregs_ctx(ctx); in cm_el2_sysregs_context_restore()
1375 cpu_context_t *ctx = cm_get_context(NON_SECURE); in cm_prepare_el3_exit_ns() local
1376 assert(ctx != NULL); in cm_prepare_el3_exit_ns()
1379 u_register_t scr_el3 = read_ctx_reg(get_el3state_ctx(ctx), CTX_SCR_EL3); in cm_prepare_el3_exit_ns()
1400 cpu_context_t *ctx; in cm_el1_sysregs_context_save() local
1402 ctx = cm_get_context(security_state); in cm_el1_sysregs_context_save()
1403 assert(ctx != NULL); in cm_el1_sysregs_context_save()
1405 el1_sysregs_context_save(get_el1_sysregs_ctx(ctx)); in cm_el1_sysregs_context_save()
1417 cpu_context_t *ctx; in cm_el1_sysregs_context_restore() local
1419 ctx = cm_get_context(security_state); in cm_el1_sysregs_context_restore()
1420 assert(ctx != NULL); in cm_el1_sysregs_context_restore()
1422 el1_sysregs_context_restore(get_el1_sysregs_ctx(ctx)); in cm_el1_sysregs_context_restore()
1438 cpu_context_t *ctx; in cm_set_elr_el3() local
1441 ctx = cm_get_context(security_state); in cm_set_elr_el3()
1442 assert(ctx != NULL); in cm_set_elr_el3()
1445 state = get_el3state_ctx(ctx); in cm_set_elr_el3()
1456 cpu_context_t *ctx; in cm_set_elr_spsr_el3() local
1459 ctx = cm_get_context(security_state); in cm_set_elr_spsr_el3()
1460 assert(ctx != NULL); in cm_set_elr_spsr_el3()
1463 state = get_el3state_ctx(ctx); in cm_set_elr_spsr_el3()
1477 cpu_context_t *ctx; in cm_write_scr_el3_bit() local
1481 ctx = cm_get_context(security_state); in cm_write_scr_el3_bit()
1482 assert(ctx != NULL); in cm_write_scr_el3_bit()
1494 state = get_el3state_ctx(ctx); in cm_write_scr_el3_bit()
1507 cpu_context_t *ctx; in cm_get_scr_el3() local
1510 ctx = cm_get_context(security_state); in cm_get_scr_el3()
1511 assert(ctx != NULL); in cm_get_scr_el3()
1514 state = get_el3state_ctx(ctx); in cm_get_scr_el3()
1525 cpu_context_t *ctx; in cm_set_next_eret_context() local
1527 ctx = cm_get_context(security_state); in cm_set_next_eret_context()
1528 assert(ctx != NULL); in cm_set_next_eret_context()
1530 cm_set_next_context(ctx); in cm_set_next_eret_context()