diff options
author | Soby Mathew <soby.mathew@arm.com> | 2016-04-27 14:46:28 +0100 |
---|---|---|
committer | Soby Mathew <soby.mathew@arm.com> | 2016-05-25 14:00:00 +0100 |
commit | ac1cc8eb76c39bca445478c2dffa9cd18829cff4 (patch) | |
tree | 33c404b8b2af247e8c6883d43dbbba2df03082a6 /docs | |
parent | e141aa0357fd4977ba874f4f86874e2cadc73498 (diff) |
PSCI: Add pwr_domain_pwr_down_wfi() hook in plat_psci_ops
This patch adds a new optional platform hook `pwr_domain_pwr_down_wfi()` in
the plat_psci_ops structure. This hook allows the platform to perform platform
specific actions including the wfi invocation to enter powerdown. This hook
is invoked by both psci_do_cpu_off() and psci_cpu_suspend_start() functions.
The porting-guide.md is also updated for the same.
This patch also modifies the `psci_power_down_wfi()` function to invoke
`plat_panic_handler` incase of panic instead of the busy while loop.
Fixes ARM-Software/tf-issues#375
Change-Id: Iba104469a1445ee8d59fb3a6fdd0a98e7f24dfa3
Diffstat (limited to 'docs')
-rw-r--r-- | docs/porting-guide.md | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/porting-guide.md b/docs/porting-guide.md index 0cd36134..8947defb 100644 --- a/docs/porting-guide.md +++ b/docs/porting-guide.md @@ -1715,6 +1715,22 @@ latter case, the power domain is expected to save enough state so that it can resume execution by restoring this state when its powered on (see `pwr_domain_suspend_finish()`). +#### plat_psci_ops.pwr_domain_pwr_down_wfi() + +This is an optional function and, if implemented, is expected to perform +platform specific actions including the `wfi` invocation which allows the +CPU to powerdown. Since this function is invoked outside the PSCI locks, +the actions performed in this hook must be local to the CPU or the platform +must ensure that races between multiple CPUs cannot occur. + +The `target_state` has a similar meaning as described in the `pwr_domain_off()` +operation and it encodes the platform coordinated target local power states for +the CPU power domain and its parent power domain levels. This function must +not return back to the caller. + +If this function is not implemented by the platform, PSCI generic +implementation invokes `psci_power_down_wfi()` for power down. + #### plat_psci_ops.pwr_domain_on_finish() This function is called by the PSCI implementation after the calling CPU is |