diff options
author | Soby Mathew <soby.mathew@arm.com> | 2015-07-08 21:45:46 +0100 |
---|---|---|
committer | Achin Gupta <achin.gupta@arm.com> | 2015-08-13 23:48:07 +0100 |
commit | fd650ff61b80a2155002def233ffddb439e3c071 (patch) | |
tree | 8f5007bc5301e1f8809a8fb2c74e7312a2605912 /services/spd/tspd/tspd_pm.c | |
parent | a6bd5ffbb0b8e4c767190a69ed07f3db0a8052d8 (diff) |
PSCI: Migrate SPDs and TSP to the new platform and framework API
The new PSCI frameworks mandates that the platform APIs and the various
frameworks in Trusted Firmware migrate away from MPIDR based core
identification to one based on core index. Deprecated versions of the old
APIs are still present to provide compatibility but their implementations
are not optimal. This patch migrates the various SPDs exisiting within
Trusted Firmware tree and TSP to the new APIs.
Change-Id: Ifc37e7071c5769b5ded21d0b6a071c8c4cab7836
Diffstat (limited to 'services/spd/tspd/tspd_pm.c')
-rw-r--r-- | services/spd/tspd/tspd_pm.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/services/spd/tspd/tspd_pm.c b/services/spd/tspd/tspd_pm.c index 009ff5f4..bc9eb765 100644 --- a/services/spd/tspd/tspd_pm.c +++ b/services/spd/tspd/tspd_pm.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -52,8 +52,7 @@ static void tspd_cpu_on_handler(uint64_t target_cpu) static int32_t tspd_cpu_off_handler(uint64_t unused) { int32_t rc = 0; - uint64_t mpidr = read_mpidr(); - uint32_t linear_id = platform_get_core_pos(mpidr); + uint32_t linear_id = plat_my_core_pos(); tsp_context_t *tsp_ctx = &tspd_sp_context[linear_id]; assert(tsp_vectors); @@ -86,8 +85,7 @@ static int32_t tspd_cpu_off_handler(uint64_t unused) static void tspd_cpu_suspend_handler(uint64_t unused) { int32_t rc = 0; - uint64_t mpidr = read_mpidr(); - uint32_t linear_id = platform_get_core_pos(mpidr); + uint32_t linear_id = plat_my_core_pos(); tsp_context_t *tsp_ctx = &tspd_sp_context[linear_id]; assert(tsp_vectors); @@ -117,8 +115,7 @@ static void tspd_cpu_suspend_handler(uint64_t unused) static void tspd_cpu_on_finish_handler(uint64_t unused) { int32_t rc = 0; - uint64_t mpidr = read_mpidr(); - uint32_t linear_id = platform_get_core_pos(mpidr); + uint32_t linear_id = plat_my_core_pos(); tsp_context_t *tsp_ctx = &tspd_sp_context[linear_id]; entry_point_info_t tsp_on_entrypoint; @@ -131,12 +128,12 @@ static void tspd_cpu_on_finish_handler(uint64_t unused) tsp_ctx); /* Initialise this cpu's secure context */ - cm_init_context(mpidr, &tsp_on_entrypoint); + cm_init_my_context(&tsp_on_entrypoint); #if TSPD_ROUTE_IRQ_TO_EL3 /* * Disable the NS interrupt locally since it will be enabled globally - * within cm_init_context. + * within cm_init_my_context. */ disable_intr_rm_local(INTR_TYPE_NS, SECURE); #endif @@ -163,8 +160,7 @@ static void tspd_cpu_on_finish_handler(uint64_t unused) static void tspd_cpu_suspend_finish_handler(uint64_t suspend_level) { int32_t rc = 0; - uint64_t mpidr = read_mpidr(); - uint32_t linear_id = platform_get_core_pos(mpidr); + uint32_t linear_id = plat_my_core_pos(); tsp_context_t *tsp_ctx = &tspd_sp_context[linear_id]; assert(tsp_vectors); @@ -203,8 +199,7 @@ static int32_t tspd_cpu_migrate_info(uint64_t *resident_cpu) ******************************************************************************/ static void tspd_system_off(void) { - uint64_t mpidr = read_mpidr(); - uint32_t linear_id = platform_get_core_pos(mpidr); + uint32_t linear_id = plat_my_core_pos(); tsp_context_t *tsp_ctx = &tspd_sp_context[linear_id]; assert(tsp_vectors); @@ -224,8 +219,7 @@ static void tspd_system_off(void) ******************************************************************************/ static void tspd_system_reset(void) { - uint64_t mpidr = read_mpidr(); - uint32_t linear_id = platform_get_core_pos(mpidr); + uint32_t linear_id = plat_my_core_pos(); tsp_context_t *tsp_ctx = &tspd_sp_context[linear_id]; assert(tsp_vectors); |