mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00
Merge changes from topic "od/cleanup-changes" into integration
* changes: perf(spmd): omit sel1 context save if sel2 present fix(fvp): spmc optee manifest remove SMC allowlist fix: random typos in tf-a code base
This commit is contained in:
commit
1a2c0ff927
5 changed files with 21 additions and 12 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2014-2020, Arm Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2014-2021, Arm Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -144,7 +144,7 @@ endfunc do_cpu_reg_dump
|
|||
* If cpu_ops for the MIDR_EL1 cannot be found and
|
||||
* SUPPORT_UNKNOWN_MPID is enabled, it will try to look for a
|
||||
* default cpu_ops with an MIDR value of 0.
|
||||
* (Implementation number 0x0 should be reseverd for software use
|
||||
* (Implementation number 0x0 should be reserved for software use
|
||||
* and therefore no clashes should happen with that default value).
|
||||
*
|
||||
* Return :
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2020, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2016-2021, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -49,7 +49,7 @@ void cm_init(void)
|
|||
*
|
||||
* To prepare the register state for entry call cm_prepare_el3_exit() and
|
||||
* el3_exit(). For Secure-EL1 cm_prepare_el3_exit() is equivalent to
|
||||
* cm_e1_sysreg_context_restore().
|
||||
* cm_el1_sysregs_context_restore().
|
||||
******************************************************************************/
|
||||
void cm_setup_context(cpu_context_t *ctx, const entry_point_info_t *ep)
|
||||
{
|
||||
|
|
|
@ -60,7 +60,7 @@ void __init cm_init(void)
|
|||
*
|
||||
* To prepare the register state for entry call cm_prepare_el3_exit() and
|
||||
* el3_exit(). For Secure-EL1 cm_prepare_el3_exit() is equivalent to
|
||||
* cm_e1_sysreg_context_restore().
|
||||
* cm_el1_sysregs_context_restore().
|
||||
******************************************************************************/
|
||||
void cm_setup_context(cpu_context_t *ctx, const entry_point_info_t *ep)
|
||||
{
|
||||
|
@ -286,7 +286,7 @@ void cm_setup_context(cpu_context_t *ctx, const entry_point_info_t *ep)
|
|||
|
||||
/*
|
||||
* Store the initialised SCTLR_EL1 value in the cpu_context - SCTLR_EL2
|
||||
* and other EL2 registers are set up by cm_prepare_ns_entry() as they
|
||||
* and other EL2 registers are set up by cm_prepare_el3_exit() as they
|
||||
* are not part of the stored cpu_context.
|
||||
*/
|
||||
write_ctx_reg(get_el1_sysregs_ctx(ctx), CTX_SCTLR_EL1, sctlr_elx);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2020, Arm Limited. All rights reserved.
|
||||
* Copyright (c) 2020-2021, Arm Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -33,7 +33,6 @@
|
|||
is_ffa_partition;
|
||||
debug_name = "op-tee";
|
||||
load_address = <0x6280000>;
|
||||
smc_whitelist = <0xbe000000>;
|
||||
vcpu_count = <8>;
|
||||
mem_size = <1048576>;
|
||||
};
|
||||
|
|
|
@ -108,9 +108,10 @@ uint64_t spmd_spm_core_sync_entry(spmd_spm_core_context_t *spmc_ctx)
|
|||
cm_set_context(&(spmc_ctx->cpu_ctx), SECURE);
|
||||
|
||||
/* Restore the context assigned above */
|
||||
cm_el1_sysregs_context_restore(SECURE);
|
||||
#if SPMD_SPM_AT_SEL2
|
||||
cm_el2_sysregs_context_restore(SECURE);
|
||||
#else
|
||||
cm_el1_sysregs_context_restore(SECURE);
|
||||
#endif
|
||||
cm_set_next_eret_context(SECURE);
|
||||
|
||||
|
@ -118,9 +119,10 @@ uint64_t spmd_spm_core_sync_entry(spmd_spm_core_context_t *spmc_ctx)
|
|||
rc = spmd_spm_core_enter(&spmc_ctx->c_rt_ctx);
|
||||
|
||||
/* Save secure state */
|
||||
cm_el1_sysregs_context_save(SECURE);
|
||||
#if SPMD_SPM_AT_SEL2
|
||||
cm_el2_sysregs_context_save(SECURE);
|
||||
#else
|
||||
cm_el1_sysregs_context_save(SECURE);
|
||||
#endif
|
||||
|
||||
return rc;
|
||||
|
@ -346,15 +348,23 @@ static uint64_t spmd_smc_forward(uint32_t smc_fid,
|
|||
unsigned int secure_state_out = (!secure_origin) ? SECURE : NON_SECURE;
|
||||
|
||||
/* Save incoming security state */
|
||||
cm_el1_sysregs_context_save(secure_state_in);
|
||||
#if SPMD_SPM_AT_SEL2
|
||||
if (secure_state_in == NON_SECURE) {
|
||||
cm_el1_sysregs_context_save(secure_state_in);
|
||||
}
|
||||
cm_el2_sysregs_context_save(secure_state_in);
|
||||
#else
|
||||
cm_el1_sysregs_context_save(secure_state_in);
|
||||
#endif
|
||||
|
||||
/* Restore outgoing security state */
|
||||
cm_el1_sysregs_context_restore(secure_state_out);
|
||||
#if SPMD_SPM_AT_SEL2
|
||||
if (secure_state_out == NON_SECURE) {
|
||||
cm_el1_sysregs_context_restore(secure_state_out);
|
||||
}
|
||||
cm_el2_sysregs_context_restore(secure_state_out);
|
||||
#else
|
||||
cm_el1_sysregs_context_restore(secure_state_out);
|
||||
#endif
|
||||
cm_set_next_eret_context(secure_state_out);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue