xref: /rk3399_ARM-atf/plat/arm/common/plat_arm_sip_svc.c (revision 7a2130b4a51eefb138e3aeb8d7f261613eab04a7)
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