From: "Ang, Chee Hong" <chee.hong....@intel.com>

Currently u-boot only support standard PSCI functions for power management
and lack of convenient method to allow the users to extend the PSCI functions
to support platform specific services. Most of the u-boot users still rely
on ATF (ARM Trusted Firmware) to handle the standard power management and
platform specific PSCI services.
The purpose of this patchsets is to allow u-boot users to support their
own platform specific secure SMC/PSCI services without making any
SMC calls to ATF. This will benefit the users who need to use u-boot as the
only bootloader and secure service provider without relying on ATF.

Below is a simple code example for adding your own PSCI functions:

#include <common.h>
#include <errno.h>
#include <asm/io.h>
#include <asm/psci.h>
#include <asm/secure.h>

#define PSCI_SMC64_FUNC_ID1     0xC2000001
#define PSCI_SMC64_FUNC_ID2     0xC2000002

static void __secure psci_plat_specific_func1(unsigned long function_id)
{
        /* Your code for handling the SMC/PSCI platform specific service 1 */
}

static void __secure psci_plat_specific_func2(unsigned long function_id)
{
        /* Your code for handling the SMC/PSCI platform specific service 2 */
}

DECLARE_SECURE_SVC(plat_specific_func1, PSCI_SMC64_FUNC_ID1,
                   psci_plat_specific_func1);
DECLARE_SECURE_SVC(plat_specific_func2, PSCI_SMC64_FUNC_ID2,
                   psci_plat_specific_func2);

Ang, Chee Hong (1):
  ARMv8: Disable fwcall when PSCI is enabled

Chee Hong Ang (1):
  ARMv8: Allow SiP service extensions on top of PSCI code

 arch/arm/cpu/armv8/Makefile   |  2 ++
 arch/arm/cpu/armv8/psci.S     | 33 +++++++++++++++++++++++++++------
 arch/arm/cpu/armv8/u-boot.lds |  4 ++++
 arch/arm/include/asm/secure.h | 31 +++++++++++++++++++++++++++++++
 4 files changed, 64 insertions(+), 6 deletions(-)

-- 
2.7.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to