mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-18 02:24:18 +00:00
Move PSCI to runtime services directory
This patch creates a 'services' directory and moves the PSCI under it. Other runtime services e.g. the Secure Payload Dispatcher service will be placed under the same directory in the future. Also fixes issue ARM-software/tf-issues#12 Change-Id: I187f83dcb660b728f82155d91882e961d2255068
This commit is contained in:
parent
8aa0cd43a8
commit
0a9f747379
10 changed files with 15 additions and 3 deletions
2
Makefile
2
Makefile
|
@ -131,7 +131,7 @@ INCLUDES += -Ilib/include/ \
|
||||||
-Iinclude/${ARCH}/ \
|
-Iinclude/${ARCH}/ \
|
||||||
-Iinclude/ \
|
-Iinclude/ \
|
||||||
-Iarch/system/gic \
|
-Iarch/system/gic \
|
||||||
-Icommon/psci \
|
-Iservices/psci \
|
||||||
-Iinclude/stdlib \
|
-Iinclude/stdlib \
|
||||||
-Iinclude/stdlib/sys \
|
-Iinclude/stdlib/sys \
|
||||||
-Iplat/${PLAT} \
|
-Iplat/${PLAT} \
|
||||||
|
|
|
@ -33,13 +33,13 @@ vpath %.c common \
|
||||||
arch/system/gic \
|
arch/system/gic \
|
||||||
plat/${PLAT} \
|
plat/${PLAT} \
|
||||||
arch/${ARCH} \
|
arch/${ARCH} \
|
||||||
common/psci \
|
services/psci \
|
||||||
lib/sync/locks/bakery \
|
lib/sync/locks/bakery \
|
||||||
plat/${PLAT}/${ARCH} \
|
plat/${PLAT}/${ARCH} \
|
||||||
${PLAT_BL31_C_VPATH}
|
${PLAT_BL31_C_VPATH}
|
||||||
|
|
||||||
vpath %.S lib/arch/${ARCH} \
|
vpath %.S lib/arch/${ARCH} \
|
||||||
common/psci \
|
services/psci \
|
||||||
include \
|
include \
|
||||||
plat/${PLAT}/${ARCH} \
|
plat/${PLAT}/${ARCH} \
|
||||||
lib/sync/locks/exclusive \
|
lib/sync/locks/exclusive \
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <debug.h>
|
||||||
#include <arch_helpers.h>
|
#include <arch_helpers.h>
|
||||||
#include <console.h>
|
#include <console.h>
|
||||||
#include <platform.h>
|
#include <platform.h>
|
|
@ -31,11 +31,13 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <debug.h>
|
||||||
#include <arch_helpers.h>
|
#include <arch_helpers.h>
|
||||||
#include <console.h>
|
#include <console.h>
|
||||||
#include <platform.h>
|
#include <platform.h>
|
||||||
#include <psci.h>
|
#include <psci.h>
|
||||||
#include <psci_private.h>
|
#include <psci_private.h>
|
||||||
|
#include <context_mgmt.h>
|
||||||
|
|
||||||
typedef int (*afflvl_on_handler)(unsigned long,
|
typedef int (*afflvl_on_handler)(unsigned long,
|
||||||
aff_map_node *,
|
aff_map_node *,
|
|
@ -31,6 +31,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <debug.h>
|
||||||
#include <arch_helpers.h>
|
#include <arch_helpers.h>
|
||||||
#include <console.h>
|
#include <console.h>
|
||||||
#include <platform.h>
|
#include <platform.h>
|
||||||
|
@ -87,6 +88,7 @@ static int psci_afflvl0_suspend(unsigned long mpidr,
|
||||||
{
|
{
|
||||||
unsigned int index, plat_state;
|
unsigned int index, plat_state;
|
||||||
unsigned long psci_entrypoint, sctlr = read_sctlr();
|
unsigned long psci_entrypoint, sctlr = read_sctlr();
|
||||||
|
el3_state *saved_el3_state;
|
||||||
int rc = PSCI_E_SUCCESS;
|
int rc = PSCI_E_SUCCESS;
|
||||||
|
|
||||||
/* Sanity check to safeguard against data corruption */
|
/* Sanity check to safeguard against data corruption */
|
||||||
|
@ -112,6 +114,13 @@ static int psci_afflvl0_suspend(unsigned long mpidr,
|
||||||
cm_el3_sysregs_context_save(NON_SECURE);
|
cm_el3_sysregs_context_save(NON_SECURE);
|
||||||
rc = PSCI_E_SUCCESS;
|
rc = PSCI_E_SUCCESS;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The EL3 state to PoC since it will be accessed after a
|
||||||
|
* reset with the caches turned off
|
||||||
|
*/
|
||||||
|
saved_el3_state = get_el3state_ctx(cm_get_context(mpidr, NON_SECURE));
|
||||||
|
flush_dcache_range((uint64_t) saved_el3_state, sizeof(*saved_el3_state));
|
||||||
|
|
||||||
/* Set the secure world (EL3) re-entry point after BL1 */
|
/* Set the secure world (EL3) re-entry point after BL1 */
|
||||||
psci_entrypoint = (unsigned long) psci_aff_suspend_finish_entry;
|
psci_entrypoint = (unsigned long) psci_aff_suspend_finish_entry;
|
||||||
|
|
Loading…
Add table
Reference in a new issue