diff options
author | danh-arm <dan.handley@arm.com> | 2016-04-11 10:23:47 +0100 |
---|---|---|
committer | danh-arm <dan.handley@arm.com> | 2016-04-11 10:23:47 +0100 |
commit | 70fafab36bbd3951a84c19013e5de8b072cb932d (patch) | |
tree | 80d61ea32b545458dfecff88ff7eab4e64a81201 | |
parent | 5d787dd97d2670c121c46d8365c84007a8aa5193 (diff) | |
parent | 56a6412de86537d3445e36a5a81f515fa2c683a7 (diff) |
Merge pull request #579 from ashutoshksingh/master
pass r0-r6 as part of smc param
-rw-r--r-- | services/spd/opteed/opteed_main.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/services/spd/opteed/opteed_main.c b/services/spd/opteed/opteed_main.c index 7796fc4a..6b4b14af 100644 --- a/services/spd/opteed/opteed_main.c +++ b/services/spd/opteed/opteed_main.c @@ -265,6 +265,18 @@ uint64_t opteed_smc_handler(uint32_t smc_fid, cm_el1_sysregs_context_restore(SECURE); cm_set_next_eret_context(SECURE); + write_ctx_reg(get_gpregs_ctx(&optee_ctx->cpu_ctx), + CTX_GPREG_X4, + read_ctx_reg(get_gpregs_ctx(handle), + CTX_GPREG_X4)); + write_ctx_reg(get_gpregs_ctx(&optee_ctx->cpu_ctx), + CTX_GPREG_X5, + read_ctx_reg(get_gpregs_ctx(handle), + CTX_GPREG_X5)); + write_ctx_reg(get_gpregs_ctx(&optee_ctx->cpu_ctx), + CTX_GPREG_X6, + read_ctx_reg(get_gpregs_ctx(handle), + CTX_GPREG_X6)); /* Propagate hypervisor client ID */ write_ctx_reg(get_gpregs_ctx(&optee_ctx->cpu_ctx), CTX_GPREG_X7, |