From b51da821821cfda0d44f09a6f92fdc5933f9b23b Mon Sep 17 00:00:00 2001 From: Achin Gupta Date: Thu, 26 Jun 2014 09:58:52 +0100 Subject: Remove coherent stack usage from the warm boot path This patch uses stacks allocated in normal memory to enable the MMU early in the warm boot path thus removing the dependency on stacks allocated in coherent memory. Necessary cache and stack maintenance is performed when a cpu is being powered down and up. This avoids any coherency issues that can arise from reading speculatively fetched stale stack memory from another CPUs cache. These changes affect the warm boot path in both BL3-1 and BL3-2. The EL3 system registers responsible for preserving the MMU state are not saved and restored any longer. Static values are used to program these system registers when a cpu is powered on or resumed from suspend. Change-Id: I8357e2eb5eb6c5f448492c5094b82b8927603784 --- services/std_svc/psci/psci_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'services/std_svc/psci/psci_main.c') diff --git a/services/std_svc/psci/psci_main.c b/services/std_svc/psci/psci_main.c index d68f3d0f..21968d9b 100644 --- a/services/std_svc/psci/psci_main.c +++ b/services/std_svc/psci/psci_main.c @@ -230,10 +230,10 @@ uint64_t psci_smc_handler(uint32_t smc_fid, SMC_RET1(handle, psci_version()); case PSCI_CPU_OFF: - SMC_RET1(handle, __psci_cpu_off()); + SMC_RET1(handle, psci_cpu_off()); case PSCI_CPU_SUSPEND_AARCH32: - SMC_RET1(handle, __psci_cpu_suspend(x1, x2, x3)); + SMC_RET1(handle, psci_cpu_suspend(x1, x2, x3)); case PSCI_CPU_ON_AARCH32: SMC_RET1(handle, psci_cpu_on(x1, x2, x3)); @@ -258,7 +258,7 @@ uint64_t psci_smc_handler(uint32_t smc_fid, switch (smc_fid) { case PSCI_CPU_SUSPEND_AARCH64: - SMC_RET1(handle, __psci_cpu_suspend(x1, x2, x3)); + SMC_RET1(handle, psci_cpu_suspend(x1, x2, x3)); case PSCI_CPU_ON_AARCH64: SMC_RET1(handle, psci_cpu_on(x1, x2, x3)); -- cgit