Introduce `el3_runtime` and `PSCI` libraries
authorSoby Mathew <soby.mathew@arm.com>
Thu, 24 Mar 2016 16:56:29 +0000 (16:56 +0000)
committerSoby Mathew <soby.mathew@arm.com>
Mon, 18 Jul 2016 16:52:15 +0000 (17:52 +0100)
commit532ed6183868036e4a4f83cd7a71b93266a3bdb7
treef49b622aa47b6b94eebfb58de1f59df30dd6c423
parentda554d7439b1e9b64d06dd50c6eb29bf1c952805
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
59 files changed:
Makefile
bl1/bl1.mk
bl31/aarch64/cpu_data.S [deleted file]
bl31/bl31.mk
bl31/bl31_context_mgmt.c
bl31/cpu_data_array.c [deleted file]
bl31/runtime_svc.c [deleted file]
common/aarch64/context.S [deleted file]
common/context_mgmt.c [deleted file]
common/runtime_svc.c [new file with mode: 0644]
docs/firmware-design.md
docs/rt-svc-writers-guide.md
include/bl31/cpu_data.h [deleted file]
include/bl31/runtime_svc.h [deleted file]
include/bl31/services/psci.h [deleted file]
include/bl31/services/psci_compat.h [deleted file]
include/bl31/services/std_svc.h [deleted file]
include/common/aarch64/asm_macros.S [new file with mode: 0644]
include/common/aarch64/assert_macros.S [new file with mode: 0644]
include/common/asm_macros.S [deleted file]
include/common/assert_macros.S [deleted file]
include/common/context.h [deleted file]
include/common/context_mgmt.h [deleted file]
include/common/runtime_svc.h [new file with mode: 0644]
include/lib/el3_runtime/aarch64/context.h [new file with mode: 0644]
include/lib/el3_runtime/context_mgmt.h [new file with mode: 0644]
include/lib/el3_runtime/cpu_data.h [new file with mode: 0644]
include/lib/psci/psci.h [new file with mode: 0644]
include/lib/psci/psci_compat.h [new file with mode: 0644]
include/services/std_svc.h [new file with mode: 0644]
lib/el3_runtime/aarch64/context.S [new file with mode: 0644]
lib/el3_runtime/aarch64/context_mgmt.c [new file with mode: 0644]
lib/el3_runtime/aarch64/cpu_data.S [new file with mode: 0644]
lib/el3_runtime/cpu_data_array.c [new file with mode: 0644]
lib/psci/aarch64/psci_entry.S [new file with mode: 0644]
lib/psci/aarch64/psci_helpers.S [new file with mode: 0644]
lib/psci/psci_common.c [new file with mode: 0644]
lib/psci/psci_lib.mk [new file with mode: 0644]
lib/psci/psci_main.c [new file with mode: 0644]
lib/psci/psci_off.c [new file with mode: 0644]
lib/psci/psci_on.c [new file with mode: 0644]
lib/psci/psci_private.h [new file with mode: 0644]
lib/psci/psci_setup.c [new file with mode: 0644]
lib/psci/psci_stat.c [new file with mode: 0644]
lib/psci/psci_suspend.c [new file with mode: 0644]
lib/psci/psci_system_off.c [new file with mode: 0644]
plat/common/aarch64/plat_psci_common.c
plat/common/plat_psci_common.c [new file with mode: 0644]
services/std_svc/psci/psci_common.c [deleted file]
services/std_svc/psci/psci_entry.S [deleted file]
services/std_svc/psci/psci_helpers.S [deleted file]
services/std_svc/psci/psci_main.c [deleted file]
services/std_svc/psci/psci_off.c [deleted file]
services/std_svc/psci/psci_on.c [deleted file]
services/std_svc/psci/psci_private.h [deleted file]
services/std_svc/psci/psci_setup.c [deleted file]
services/std_svc/psci/psci_stat.c [deleted file]
services/std_svc/psci/psci_suspend.c [deleted file]
services/std_svc/psci/psci_system_off.c [deleted file]