• Soby Mathew's avatar
    Introduce `el3_runtime` and `PSCI` libraries · 532ed618
    Soby Mathew authored
    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
    532ed618
psci_system_off.c 2.39 KB