mirror of
https://github.com/CTCaer/switch-l4t-atf.git
synced 2025-02-25 05:02:42 +00:00
trusty: Add fpu/simd support
The original patch has been partly merged. This adds the missing pieces. Change-Id: I77fd434feab396ff05d9b8e0c1761e4dd588a701 Signed-off-by: Arve Hjønnevåg <arve@android.com>
This commit is contained in:
parent
61496151c0
commit
cb03c91765
@ -105,10 +105,8 @@ static struct args trusty_context_switch(uint32_t security_state, uint64_t r0,
|
||||
* when it's needed the PSCI caller has preserved FP context before
|
||||
* going here.
|
||||
*/
|
||||
#if CTX_INCLUDE_FPREGS
|
||||
if (r0 != SMC_FC_CPU_SUSPEND && r0 != SMC_FC_CPU_RESUME)
|
||||
fpregs_context_save(get_fpregs_ctx(cm_get_context(security_state)));
|
||||
#endif
|
||||
cm_el1_sysregs_context_save(security_state);
|
||||
|
||||
ctx->saved_security_state = security_state;
|
||||
@ -117,10 +115,8 @@ static struct args trusty_context_switch(uint32_t security_state, uint64_t r0,
|
||||
assert(ctx->saved_security_state == !security_state);
|
||||
|
||||
cm_el1_sysregs_context_restore(security_state);
|
||||
#if CTX_INCLUDE_FPREGS
|
||||
if (r0 != SMC_FC_CPU_SUSPEND && r0 != SMC_FC_CPU_RESUME)
|
||||
fpregs_context_restore(get_fpregs_ctx(cm_get_context(security_state)));
|
||||
#endif
|
||||
|
||||
cm_set_next_eret_context(security_state);
|
||||
|
||||
@ -299,6 +295,7 @@ static int32_t trusty_init(void)
|
||||
ep_info = bl31_plat_get_next_image_ep_info(SECURE);
|
||||
assert(ep_info);
|
||||
|
||||
fpregs_context_save(get_fpregs_ctx(cm_get_context(NON_SECURE)));
|
||||
cm_el1_sysregs_context_save(NON_SECURE);
|
||||
|
||||
cm_set_context(&ctx->cpu_ctx, SECURE);
|
||||
@ -315,6 +312,7 @@ static int32_t trusty_init(void)
|
||||
}
|
||||
|
||||
cm_el1_sysregs_context_restore(SECURE);
|
||||
fpregs_context_restore(get_fpregs_ctx(cm_get_context(SECURE)));
|
||||
cm_set_next_eret_context(SECURE);
|
||||
|
||||
ctx->saved_security_state = ~0; /* initial saved state is invalid */
|
||||
@ -323,6 +321,7 @@ static int32_t trusty_init(void)
|
||||
trusty_context_switch_helper(&ctx->saved_sp, &zero_args);
|
||||
|
||||
cm_el1_sysregs_context_restore(NON_SECURE);
|
||||
fpregs_context_restore(get_fpregs_ctx(cm_get_context(NON_SECURE)));
|
||||
cm_set_next_eret_context(NON_SECURE);
|
||||
|
||||
return 0;
|
||||
|
@ -14,3 +14,5 @@ SPD_SOURCES += services/spd/trusty/generic-arm64-smcall.c
|
||||
endif
|
||||
|
||||
NEED_BL32 := yes
|
||||
|
||||
CTX_INCLUDE_FPREGS := 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user