Introduce `el3_runtime` and `PSCI` libraries
This patch moves the PSCI services and BL31 frameworks like context
management and per-cpu data into new library components `PSCI` and
`el3_runtime` respectively. This enables PSCI to be built independently from
BL31. A new `psci_lib.mk` makefile is introduced which adds the relevant
PSCI library sources and gets included by `bl31.mk`. Other changes which
are done as part of this patch are:

* The runtime services framework is now moved to the `common/` folder to
  enable reuse.
* The `asm_macros.S` and `assert_macros.S` helpers are moved to architecture
  specific folder.
* The `plat_psci_common.c` is moved from the `plat/common/aarch64/` folder
  to `plat/common` folder. The original file location now has a stub which
  just includes the file from new location to maintain platform compatibility.

Most of the changes wouldn't affect platform builds as they just involve
changes to the generic bl1.mk and bl31.mk makefiles.

NOTE: THE `plat_psci_common.c` FILE HAS MOVED LOCATION AND THE STUB FILE AT
THE ORIGINAL LOCATION IS NOW DEPRECATED. PLATFORMS SHOULD MODIFY THEIR
MAKEFILES TO INCLUDE THE FILE FROM THE NEW LOCATION.

Change-Id: I6bd87d5b59424995c6a65ef8076d4fda91ad5e86
1 parent da554d7 commit 532ed6183868036e4a4f83cd7a71b93266a3bdb7
@Soby Mathew Soby Mathew authored on 24 Mar 2016
Showing 59 changed files
View
Makefile
View
bl1/bl1.mk
View
bl31/aarch64/cpu_data.S 100644 → 0
View
bl31/bl31.mk
View
bl31/bl31_context_mgmt.c
View
bl31/cpu_data_array.c 100644 → 0
View
bl31/runtime_svc.c 100644 → 0
View
common/aarch64/context.S 100644 → 0
View
common/context_mgmt.c 100644 → 0
View
common/runtime_svc.c 0 → 100644
View
docs/firmware-design.md
View
docs/rt-svc-writers-guide.md
View
include/bl31/cpu_data.h 100644 → 0
View
include/bl31/runtime_svc.h 100644 → 0
View
include/bl31/services/psci.h 100644 → 0
View
include/bl31/services/psci_compat.h 100644 → 0
View
include/bl31/services/std_svc.h 100644 → 0
View
include/common/aarch64/asm_macros.S 0 → 100644
View
include/common/aarch64/assert_macros.S 0 → 100644
View
include/common/asm_macros.S 100644 → 0
View
include/common/assert_macros.S 100644 → 0
View
include/common/context.h 100644 → 0
View
include/common/context_mgmt.h 100644 → 0
View
include/common/runtime_svc.h 0 → 100644
View
include/lib/el3_runtime/aarch64/context.h 0 → 100644
View
include/lib/el3_runtime/context_mgmt.h 0 → 100644
View
include/lib/el3_runtime/cpu_data.h 0 → 100644
View
include/lib/psci/psci.h 0 → 100644
View
include/lib/psci/psci_compat.h 0 → 100644
View
include/services/std_svc.h 0 → 100644
View
lib/el3_runtime/aarch64/context.S 0 → 100644
View
lib/el3_runtime/aarch64/context_mgmt.c 0 → 100644
View
lib/el3_runtime/aarch64/cpu_data.S 0 → 100644
View
lib/el3_runtime/cpu_data_array.c 0 → 100644
View
lib/psci/aarch64/psci_entry.S 0 → 100644
View
lib/psci/aarch64/psci_helpers.S 0 → 100644
View
lib/psci/psci_common.c 0 → 100644
View
lib/psci/psci_lib.mk 0 → 100644
View
lib/psci/psci_main.c 0 → 100644
View
lib/psci/psci_off.c 0 → 100644
View
lib/psci/psci_on.c 0 → 100644
View
lib/psci/psci_private.h 0 → 100644
View
lib/psci/psci_setup.c 0 → 100644
View
lib/psci/psci_stat.c 0 → 100644
View
lib/psci/psci_suspend.c 0 → 100644
View
lib/psci/psci_system_off.c 0 → 100644
View
plat/common/aarch64/plat_psci_common.c
View
plat/common/plat_psci_common.c 0 → 100644
View
services/std_svc/psci/psci_common.c 100644 → 0
View
services/std_svc/psci/psci_entry.S 100644 → 0
View
services/std_svc/psci/psci_helpers.S 100644 → 0
View
services/std_svc/psci/psci_main.c 100644 → 0
View
services/std_svc/psci/psci_off.c 100644 → 0
View
services/std_svc/psci/psci_on.c 100644 → 0
View
services/std_svc/psci/psci_private.h 100644 → 0
View
services/std_svc/psci/psci_setup.c 100644 → 0
View
services/std_svc/psci/psci_stat.c 100644 → 0
View
services/std_svc/psci/psci_suspend.c 100644 → 0
View
services/std_svc/psci/psci_system_off.c 100644 → 0