aboutsummaryrefslogtreecommitdiff
path: root/plat/arm/soc
diff options
context:
space:
mode:
authorSoby Mathew <soby.mathew@arm.com>2015-10-12 17:32:29 +0100
committerSoby Mathew <soby.mathew@arm.com>2015-10-30 09:07:17 +0000
commitc1bb8a0500149c58f59f241676751b6b87edbae6 (patch)
tree6886d140f0b3bf04abecbb452d4007d6c08e0eaf /plat/arm/soc
parent5f3a60301ef7a455f1c74e71e286b89cb0c97f7d (diff)
Support PSCI SYSTEM SUSPEND on Juno
This patch adds the capability to power down at system power domain level on Juno via the PSCI SYSTEM SUSPEND API. The CSS power management helpers are modified to add support for power management operations at system power domain level. A new helper for populating `get_sys_suspend_power_state` handler in plat_psci_ops is defined. On entering the system suspend state, the SCP powers down the SYSTOP power domain on the SoC and puts the memory into retention mode. On wakeup from the power down, the system components on the CSS will be reinitialized by the platform layer and the PSCI client is responsible for restoring the context of these system components. According to PSCI Specification, interrupts targeted to cores in PSCI CPU SUSPEND should be able to resume it. On Juno, when the system power domain is suspended, the GIC is also powered down. The SCP resumes the final core to be suspend when an external wake-up event is received. But the other cores cannot be woken up by a targeted interrupt, because GIC doesn't forward these interrupts to the SCP. Due to this hardware limitation, we down-grade PSCI CPU SUSPEND requests targeted to the system power domain level to cluster power domain level in `juno_validate_power_state()` and the CSS default `plat_arm_psci_ops` is overridden in juno_pm.c. A system power domain resume helper `arm_system_pwr_domain_resume()` is defined for ARM standard platforms which resumes/re-initializes the system components on wakeup from system suspend. The security setup also needs to be done on resume from system suspend, which means `plat_arm_security_setup()` must now be included in the BL3-1 image in addition to previous BL images if system suspend need to be supported. Change-Id: Ie293f75f09bad24223af47ab6c6e1268f77bcc47
Diffstat (limited to 'plat/arm/soc')
-rw-r--r--plat/arm/soc/common/soc_css.mk2
1 files changed, 1 insertions, 1 deletions
diff --git a/plat/arm/soc/common/soc_css.mk b/plat/arm/soc/common/soc_css.mk
index fd51b7f8..d8a99a8c 100644
--- a/plat/arm/soc/common/soc_css.mk
+++ b/plat/arm/soc/common/soc_css.mk
@@ -37,4 +37,4 @@ PLAT_INCLUDES += -Iinclude/plat/arm/soc/common/
BL2_SOURCES += plat/arm/soc/common/soc_css_security.c
-#BL31_SOURCES +=
+BL31_SOURCES += plat/arm/soc/common/soc_css_security.c