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 /* Deprecated FID's Range and will be removed */ 20 /* PMF_SMC_GET_TIMESTAMP_32 0x82000010 */ 21 /* PMF_SMC_GET_TIMESTAMP_64 0xC2000010 */ 22 23 /* Function ID for requesting state switch of lower EL */ 24 #define ARM_SIP_SVC_EXE_STATE_SWITCH U(0x82000020) 25 26 /* Deprecated FID's Range and will be removed */ 27 /* DEBUGFS_SMC_32 0x82000030U */ 28 /* DEBUGFS_SMC_64 0xC2000030U */ 29 30 /* 31 * Arm(R) Ethos(TM)-N NPU SiP SMC function IDs 32 * 0xC2000050-0xC200005F 33 * 0x82000050-0x8200005F 34 */ 35 36 /* ARM SiP Service Calls version numbers */ 37 #define ARM_SIP_SVC_VERSION_MAJOR U(0x1) 38 #define ARM_SIP_SVC_VERSION_MINOR U(0x0) 39 40 /* 41 * Arm SiP SMC calls that are primarily used for testing purposes. 42 */ 43 #if PLAT_TEST_SPM 44 #define ARM_SIP_SET_INTERRUPT_PENDING U(0x82000100) 45 #endif 46 47 /** 48 * Arm SiP Service Call for the SPM to leverage RME to protect a give memory range. 49 * Protected memory range is one whose PAS was made secure. 50 * Unprotect relates to reverting a protect operation. 51 */ 52 #if SPMD_SPM_AT_SEL2 && ENABLE_RME 53 #define PLAT_PROTECT_MEM_SMC64 0xC2000101 54 #define PLAT_UNPROTECT_MEM_SMC64 0xC2000102 55 #endif 56 57 /* SiP handler specific to each Arm platform. */ 58 uintptr_t plat_arm_sip_handler(uint32_t smc_fid, 59 u_register_t x1, 60 u_register_t x2, 61 u_register_t x3, 62 u_register_t x4, 63 void *cookie, 64 void *handle, 65 u_register_t flags); 66 67 #endif /* ARM_SIP_SVC_H */ 68