From a9b64ed969edffe020e2096b5006b27373218ff6 Mon Sep 17 00:00:00 2001 From: Madhukar Pappireddy Date: Thu, 25 Apr 2024 22:56:29 -0500 Subject: [PATCH] feat(pncd): switch to simd_ctx_save/restore apis Change-Id: I662c0b35e938f8b2013ec60f863de55445f559da Signed-off-by: Madhukar Pappireddy --- services/spd/pncd/pncd_common.c | 6 ++++-- services/spd/pncd/pncd_main.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/services/spd/pncd/pncd_common.c b/services/spd/pncd/pncd_common.c index 6fdb6293f..8e89491ce 100644 --- a/services/spd/pncd/pncd_common.c +++ b/services/spd/pncd/pncd_common.c @@ -67,8 +67,9 @@ uint64_t pncd_synchronous_sp_entry(pnc_context_t *pnc_ctx) /* Apply the Secure EL1 system register context and switch to it */ assert(cm_get_context(SECURE) == &pnc_ctx->cpu_ctx); cm_el1_sysregs_context_restore(SECURE); + #if CTX_INCLUDE_FPREGS - fpregs_context_restore(get_fpregs_ctx(cm_get_context(SECURE))); + simd_ctx_restore(SECURE); #endif cm_set_next_eret_context(SECURE); @@ -90,8 +91,9 @@ void pncd_synchronous_sp_exit(pnc_context_t *pnc_ctx, uint64_t ret) /* Save the Secure EL1 system register context */ assert(cm_get_context(SECURE) == &pnc_ctx->cpu_ctx); cm_el1_sysregs_context_save(SECURE); + #if CTX_INCLUDE_FPREGS - fpregs_context_save(get_fpregs_ctx(cm_get_context(SECURE))); + simd_ctx_save(SECURE, false); #endif assert(pnc_ctx->c_rt_ctx != 0); diff --git a/services/spd/pncd/pncd_main.c b/services/spd/pncd/pncd_main.c index 99c4aa1b2..cc1c1f286 100644 --- a/services/spd/pncd/pncd_main.c +++ b/services/spd/pncd/pncd_main.c @@ -55,8 +55,9 @@ static void context_save(unsigned long security_state) assert(sec_state_is_valid(security_state)); cm_el1_sysregs_context_save((uint32_t) security_state); + #if CTX_INCLUDE_FPREGS - fpregs_context_save(get_fpregs_ctx(cm_get_context(security_state))); + simd_ctx_save((uint32_t)security_state, false); #endif } @@ -72,8 +73,9 @@ static void *context_restore(unsigned long security_state) /* Restore state */ cm_el1_sysregs_context_restore((uint32_t) security_state); + #if CTX_INCLUDE_FPREGS - fpregs_context_restore(get_fpregs_ctx(cm_get_context(security_state))); + simd_ctx_restore((uint32_t)security_state); #endif cm_set_next_eret_context((uint32_t) security_state);