1*7a2130b4SMadhukar Pappireddy /* 2*7a2130b4SMadhukar Pappireddy * Copyright (c) 2023, Arm Limited. All rights reserved. 3*7a2130b4SMadhukar Pappireddy * 4*7a2130b4SMadhukar Pappireddy * SPDX-License-Identifier: BSD-3-Clause 5*7a2130b4SMadhukar Pappireddy */ 6*7a2130b4SMadhukar Pappireddy 7*7a2130b4SMadhukar Pappireddy #include <stdint.h> 8*7a2130b4SMadhukar Pappireddy 9*7a2130b4SMadhukar Pappireddy #include <common/debug.h> 10*7a2130b4SMadhukar Pappireddy #include <common/runtime_svc.h> 11*7a2130b4SMadhukar Pappireddy 12*7a2130b4SMadhukar Pappireddy #include <plat/arm/common/arm_sip_svc.h> 13*7a2130b4SMadhukar Pappireddy #include <plat/common/platform.h> 14*7a2130b4SMadhukar Pappireddy 15*7a2130b4SMadhukar Pappireddy #if ENABLE_SPMD_LP 16*7a2130b4SMadhukar Pappireddy #include <services/el3_spmd_logical_sp.h> 17*7a2130b4SMadhukar Pappireddy #endif 18*7a2130b4SMadhukar Pappireddy 19*7a2130b4SMadhukar Pappireddy uintptr_t plat_arm_sip_handler(uint32_t smc_fid, 20*7a2130b4SMadhukar Pappireddy u_register_t x1, 21*7a2130b4SMadhukar Pappireddy u_register_t x2, 22*7a2130b4SMadhukar Pappireddy u_register_t x3, 23*7a2130b4SMadhukar Pappireddy u_register_t x4, 24*7a2130b4SMadhukar Pappireddy void *cookie, 25*7a2130b4SMadhukar Pappireddy void *handle, 26*7a2130b4SMadhukar Pappireddy u_register_t flags) 27*7a2130b4SMadhukar Pappireddy { 28*7a2130b4SMadhukar Pappireddy #if ENABLE_SPMD_LP 29*7a2130b4SMadhukar Pappireddy return plat_spmd_logical_sp_smc_handler(smc_fid, x1, x2, x3, x4, 30*7a2130b4SMadhukar Pappireddy cookie, handle, flags); 31*7a2130b4SMadhukar Pappireddy #else 32*7a2130b4SMadhukar Pappireddy WARN("Unimplemented ARM SiP Service Call: 0x%x\n", smc_fid); 33*7a2130b4SMadhukar Pappireddy SMC_RET1(handle, SMC_UNK); 34*7a2130b4SMadhukar Pappireddy #endif 35*7a2130b4SMadhukar Pappireddy } 36