Reorganise PSCI PM handler setup on ARM Standard platforms
This patch does the following reorganization to psci power management (PM)
handler setup for ARM standard platform ports :

1. The mailbox programming required during `plat_setup_psci_ops()` is identical
   for all ARM platforms. Hence the implementation of this API is now moved
   to the common `arm_pm.c` file. Each ARM platform now must define the
   PLAT_ARM_TRUSTED_MAILBOX_BASE macro, which in current platforms is the same
   as ARM_SHARED_RAM_BASE.

2. The PSCI PM handler callback structure, `plat_psci_ops`, must now be
   exported via `plat_arm_psci_pm_ops`. This allows the common implementation
   of `plat_setup_psci_ops()` to return a platform specific `plat_psci_ops`.
   In the case of CSS platforms, a default weak implementation of the same is
   provided in `css_pm.c` which can be overridden by each CSS platform.

3. For CSS platforms, the PSCI PM handlers defined in `css_pm.c` are now
   made library functions and a new header file `css_pm.h` is added to export
   these generic PM handlers. This allows the platform to reuse the
   adequate CSS PM handlers and redefine others which need to be customized
   when overriding the default `plat_arm_psci_pm_ops` in `css_pm.c`.

Change-Id: I277910f609e023ee5d5ff0129a80ecfce4356ede
1 parent a3a3489 commit 785fb92b8a021369348da2316b99b7e143c2806f
@Soby Mathew Soby Mathew authored on 29 Sep 2015
Showing 9 changed files
View
include/plat/arm/css/common/css_def.h
View
include/plat/arm/css/common/css_pm.h 0 → 100644
View
plat/arm/board/fvp/aarch64/fvp_helpers.S
View
plat/arm/board/fvp/fvp_def.h
View
plat/arm/board/fvp/fvp_pm.c
View
plat/arm/board/fvp/include/platform_def.h
View
plat/arm/common/arm_pm.c
View
plat/arm/css/common/aarch64/css_helpers.S
View
plat/arm/css/common/css_pm.c