2 * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
4 * SPDX-License-Identifier: BSD-3-Clause
9 #include <common/debug.h>
10 #include <common/runtime_svc.h>
12 #include <tools_share/uuid.h>
14 #include <plat_sip_calls.h>
15 #include <rockchip_sip_svc.h>
17 /* Rockchip SiP Service UUID */
18 DEFINE_SVC_UUID2(rk_sip_svc_uid
,
19 0xe2c76fe8, 0x3e31, 0xe611, 0xb7, 0x0d,
20 0x8f, 0x88, 0xee, 0x74, 0x7b, 0x72);
22 #pragma weak rockchip_plat_sip_handler
23 uintptr_t rockchip_plat_sip_handler(uint32_t smc_fid
,
32 ERROR("%s: unhandled SMC (0x%x)\n", __func__
, smc_fid
);
33 SMC_RET1(handle
, SMC_UNK
);
37 * This function is responsible for handling all SiP calls from the NS world
39 uintptr_t sip_smc_handler(uint32_t smc_fid
,
50 /* Determine which security state this SMC originated from */
51 ns
= is_caller_non_secure(flags
);
53 SMC_RET1(handle
, SMC_UNK
);
56 case SIP_SVC_CALL_COUNT
:
57 /* Return the number of Rockchip SiP Service Calls. */
59 RK_COMMON_SIP_NUM_CALLS
+ RK_PLAT_SIP_NUM_CALLS
);
62 /* Return UID to the caller */
63 SMC_UUID_RET(handle
, rk_sip_svc_uid
);
66 /* Return the version of current implementation */
67 SMC_RET2(handle
, RK_SIP_SVC_VERSION_MAJOR
,
68 RK_SIP_SVC_VERSION_MINOR
);
71 return rockchip_plat_sip_handler(smc_fid
, x1
, x2
, x3
, x4
,
72 cookie
, handle
, flags
);
76 /* Define a runtime service descriptor for fast SMC calls */