PSCI: Introduce cache and barrier wrappers
authorJeenu Viswambharan <jeenu.viswambharan@arm.com>
Fri, 6 Jan 2017 14:58:11 +0000 (14:58 +0000)
committerJeenu Viswambharan <jeenu.viswambharan@arm.com>
Thu, 2 Mar 2017 11:00:20 +0000 (11:00 +0000)
commita10d3632acbd1135648f07c2a998cba8c5c77cfd
treea3e1102a480787af436c363424e7a7821a7695d2
parentd4593e4713617b455929960eb616c9c09e446dc4
PSCI: Introduce cache and barrier wrappers

The PSCI implementation performs cache maintenance operations on its
data structures to ensure their visibility to both cache-coherent and
non-cache-coherent participants. These cache maintenance operations
can be skipped if all PSCI participants are cache-coherent. When
HW_ASSISTED_COHERENCY build option is enabled, we assume PSCI
participants are cache-coherent.

For usage abstraction, this patch introduces wrappers for PSCI cache
maintenance and barrier operations used for state coordination: they are
effectively NOPs when HW_ASSISTED_COHERENCY is enabled, but are
applied otherwise.

Also refactor local state usage and associated cache operations to make
it clearer.

Change-Id: I77f17a90cba41085b7188c1345fe5731c99fad87
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
lib/psci/psci_common.c
lib/psci/psci_off.c
lib/psci/psci_private.h
lib/psci/psci_setup.c
lib/psci/psci_suspend.c