1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2016-2019,2021-2023, Arm Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef ARM_SIP_SVC_H 8*91f16700Schasinglulu #define ARM_SIP_SVC_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <lib/utils_def.h> 11*91f16700Schasinglulu 12*91f16700Schasinglulu /* SMC function IDs for SiP Service queries */ 13*91f16700Schasinglulu 14*91f16700Schasinglulu #define ARM_SIP_SVC_CALL_COUNT U(0x8200ff00) 15*91f16700Schasinglulu #define ARM_SIP_SVC_UID U(0x8200ff01) 16*91f16700Schasinglulu /* U(0x8200ff02) is reserved */ 17*91f16700Schasinglulu #define ARM_SIP_SVC_VERSION U(0x8200ff03) 18*91f16700Schasinglulu 19*91f16700Schasinglulu /* PMF_SMC_GET_TIMESTAMP_32 0x82000010 */ 20*91f16700Schasinglulu /* PMF_SMC_GET_TIMESTAMP_64 0xC2000010 */ 21*91f16700Schasinglulu 22*91f16700Schasinglulu /* Function ID for requesting state switch of lower EL */ 23*91f16700Schasinglulu #define ARM_SIP_SVC_EXE_STATE_SWITCH U(0x82000020) 24*91f16700Schasinglulu 25*91f16700Schasinglulu /* DEBUGFS_SMC_32 0x82000030U */ 26*91f16700Schasinglulu /* DEBUGFS_SMC_64 0xC2000030U */ 27*91f16700Schasinglulu 28*91f16700Schasinglulu /* 29*91f16700Schasinglulu * Arm(R) Ethos(TM)-N NPU SiP SMC function IDs 30*91f16700Schasinglulu * 0xC2000050-0xC200005F 31*91f16700Schasinglulu * 0x82000050-0x8200005F 32*91f16700Schasinglulu */ 33*91f16700Schasinglulu 34*91f16700Schasinglulu /* ARM SiP Service Calls version numbers */ 35*91f16700Schasinglulu #define ARM_SIP_SVC_VERSION_MAJOR U(0x0) 36*91f16700Schasinglulu #define ARM_SIP_SVC_VERSION_MINOR U(0x2) 37*91f16700Schasinglulu 38*91f16700Schasinglulu /* 39*91f16700Schasinglulu * Arm SiP SMC calls that are primarily used for testing purposes. 40*91f16700Schasinglulu */ 41*91f16700Schasinglulu #if PLAT_TEST_SPM 42*91f16700Schasinglulu #define ARM_SIP_SET_INTERRUPT_PENDING U(0x82000100) 43*91f16700Schasinglulu #endif 44*91f16700Schasinglulu 45*91f16700Schasinglulu /* SiP handler specific to each Arm platform. */ 46*91f16700Schasinglulu uintptr_t plat_arm_sip_handler(uint32_t smc_fid, 47*91f16700Schasinglulu u_register_t x1, 48*91f16700Schasinglulu u_register_t x2, 49*91f16700Schasinglulu u_register_t x3, 50*91f16700Schasinglulu u_register_t x4, 51*91f16700Schasinglulu void *cookie, 52*91f16700Schasinglulu void *handle, 53*91f16700Schasinglulu u_register_t flags); 54*91f16700Schasinglulu 55*91f16700Schasinglulu #endif /* ARM_SIP_SVC_H */ 56