1 /* 2 * Copyright (c) 2016-2019,2021-2024, Arm Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef ARM_SIP_SVC_H 8 #define ARM_SIP_SVC_H 9 10 #include <lib/utils_def.h> 11 12 /* SMC function IDs for SiP Service queries */ 13 14 #define ARM_SIP_SVC_CALL_COUNT U(0x8200ff00) 15 #define ARM_SIP_SVC_UID U(0x8200ff01) 16 /* U(0x8200ff02) is reserved */ 17 #define ARM_SIP_SVC_VERSION U(0x8200ff03) 18 19 /* PMF_SMC_GET_TIMESTAMP_32 0x82000010 */ 20 /* PMF_SMC_GET_TIMESTAMP_64 0xC2000010 */ 21 22 /* Function ID for requesting state switch of lower EL */ 23 #define ARM_SIP_SVC_EXE_STATE_SWITCH U(0x82000020) 24 25 /* Deprecated FID's Range and will be removed */ 26 /* DEBUGFS_SMC_32 0x82000030U */ 27 /* DEBUGFS_SMC_64 0xC2000030U */ 28 29 /* 30 * Arm(R) Ethos(TM)-N NPU SiP SMC function IDs 31 * 0xC2000050-0xC200005F 32 * 0x82000050-0x8200005F 33 */ 34 35 /* ARM SiP Service Calls version numbers */ 36 #define ARM_SIP_SVC_VERSION_MAJOR U(0x1) 37 #define ARM_SIP_SVC_VERSION_MINOR U(0x0) 38 39 /* 40 * Arm SiP SMC calls that are primarily used for testing purposes. 41 */ 42 #if PLAT_TEST_SPM 43 #define ARM_SIP_SET_INTERRUPT_PENDING U(0x82000100) 44 #endif 45 46 /** 47 * Arm SiP Service Call for the SPM to leverage RME to protect a give memory range. 48 * Protected memory range is one whose PAS was made secure. 49 * Unprotect relates to reverting a protect operation. 50 */ 51 #if SPMD_SPM_AT_SEL2 && ENABLE_RME 52 #define PLAT_PROTECT_MEM_SMC64 0xC2000101 53 #define PLAT_UNPROTECT_MEM_SMC64 0xC2000102 54 #endif 55 56 /* SiP handler specific to each Arm platform. */ 57 uintptr_t plat_arm_sip_handler(uint32_t smc_fid, 58 u_register_t x1, 59 u_register_t x2, 60 u_register_t x3, 61 u_register_t x4, 62 void *cookie, 63 void *handle, 64 u_register_t flags); 65 66 #endif /* ARM_SIP_SVC_H */ 67