Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
05b6edfe
Commit
05b6edfe
authored
May 27, 2014
by
Dan Handley
Browse files
Merge pull request #110 from soby-mathew:sm/support_normal_irq_in_tsp-v4 into for-v0.4
parents
22e002da
10b65ecf
Changes
1
Hide whitespace changes
Inline
Side-by-side
services/spd/tspd/tspd_main.c
View file @
05b6edfe
...
...
@@ -504,35 +504,36 @@ uint64_t tspd_smc_handler(uint32_t smc_fid,
* Standard SMC call.
*/
case
TSP_FID_RESUME
:
/* RESUME should be invoked only by normal world */
if
(
!
ns
)
{
assert
(
0
);
break
;
}
/* RESUME should be invoked only by normal world */
if
(
!
ns
)
{
assert
(
0
);
break
;
}
/*
* This is a resume request from the non-secure client.
* save the non-secure state and send the request to
* the secure payload.
*/
assert
(
handle
==
cm_get_context
(
mpidr
,
NON_SECURE
));
/*
* This is a resume request from the non-secure client.
* save the non-secure state and send the request to
* the secure payload.
*/
assert
(
handle
==
cm_get_context
(
mpidr
,
NON_SECURE
));
/* Check if we are already preempted before resume */
if
(
!
get_std_smc_active_flag
(
tsp_ctx
->
state
))
SMC_RET1
(
handle
,
SMC_UNK
);
/* Check if we are already preempted before resume */
if
(
!
get_std_smc_active_flag
(
tsp_ctx
->
state
))
SMC_RET1
(
handle
,
SMC_UNK
);
cm_el1_sysregs_context_save
(
NON_SECURE
);
cm_el1_sysregs_context_save
(
NON_SECURE
);
/*
* We are done stashing the non-secure context. Ask the
* secure payload to do the work now.
*/
/*
* We are done stashing the non-secure context. Ask the
* secure payload to do the work now.
*/
/* We just need to return to the preempted point in
* TSP and the execution will resume as normal.
*/
cm_el1_sysregs_context_restore
(
SECURE
);
cm_set_next_eret_context
(
SECURE
);
/* We just need to return to the preempted point in
* TSP and the execution will resume as normal.
*/
cm_el1_sysregs_context_restore
(
SECURE
);
cm_set_next_eret_context
(
SECURE
);
SMC_RET0
(
&
tsp_ctx
->
cpu_ctx
);
/*
* This is a request from the secure payload for more arguments
...
...
@@ -544,10 +545,6 @@ uint64_t tspd_smc_handler(uint32_t smc_fid,
if
(
ns
)
SMC_RET1
(
handle
,
SMC_UNK
);
/* Get a reference to the non-secure context */
ns_cpu_context
=
cm_get_context
(
mpidr
,
NON_SECURE
);
assert
(
ns_cpu_context
);
get_tsp_args
(
tsp_ctx
,
x1
,
x2
);
SMC_RET2
(
handle
,
x1
,
x2
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment