1f10796a0Sdp-arm /* 26873088cSJ-Alves * Copyright (c) 2016-2019,2021-2024, Arm Limited and Contributors. All rights reserved. 3f10796a0Sdp-arm * 482cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause 5f10796a0Sdp-arm */ 6f10796a0Sdp-arm 715b94cc1SAntonio Nino Diaz #ifndef ARM_SIP_SVC_H 815b94cc1SAntonio Nino Diaz #define ARM_SIP_SVC_H 915b94cc1SAntonio Nino Diaz 1009d40e0eSAntonio Nino Diaz #include <lib/utils_def.h> 11f10796a0Sdp-arm 12f10796a0Sdp-arm /* SMC function IDs for SiP Service queries */ 13f10796a0Sdp-arm 1415b94cc1SAntonio Nino Diaz #define ARM_SIP_SVC_CALL_COUNT U(0x8200ff00) 1515b94cc1SAntonio Nino Diaz #define ARM_SIP_SVC_UID U(0x8200ff01) 1615b94cc1SAntonio Nino Diaz /* U(0x8200ff02) is reserved */ 1715b94cc1SAntonio Nino Diaz #define ARM_SIP_SVC_VERSION U(0x8200ff03) 18f10796a0Sdp-arm 19*f7679d43SGovindraj Raja /* Deprecated FID's Range and will be removed */ 20992f091bSAmbroise Vincent /* PMF_SMC_GET_TIMESTAMP_32 0x82000010 */ 21992f091bSAmbroise Vincent /* PMF_SMC_GET_TIMESTAMP_64 0xC2000010 */ 22992f091bSAmbroise Vincent 23b10d4499SJeenu Viswambharan /* Function ID for requesting state switch of lower EL */ 2415b94cc1SAntonio Nino Diaz #define ARM_SIP_SVC_EXE_STATE_SWITCH U(0x82000020) 25b10d4499SJeenu Viswambharan 26273b8983SGovindraj Raja /* Deprecated FID's Range and will be removed */ 27992f091bSAmbroise Vincent /* DEBUGFS_SMC_32 0x82000030U */ 28992f091bSAmbroise Vincent /* DEBUGFS_SMC_64 0xC2000030U */ 29992f091bSAmbroise Vincent 3076a21174SMikael Olsson /* 31b139f1cfSMikael Olsson * Arm(R) Ethos(TM)-N NPU SiP SMC function IDs 3276a21174SMikael Olsson * 0xC2000050-0xC200005F 3376a21174SMikael Olsson * 0x82000050-0x8200005F 3476a21174SMikael Olsson */ 3576a21174SMikael Olsson 36f10796a0Sdp-arm /* ARM SiP Service Calls version numbers */ 37273b8983SGovindraj Raja #define ARM_SIP_SVC_VERSION_MAJOR U(0x1) 38273b8983SGovindraj Raja #define ARM_SIP_SVC_VERSION_MINOR U(0x0) 39f10796a0Sdp-arm 4020324013SMadhukar Pappireddy /* 4120324013SMadhukar Pappireddy * Arm SiP SMC calls that are primarily used for testing purposes. 4220324013SMadhukar Pappireddy */ 4320324013SMadhukar Pappireddy #if PLAT_TEST_SPM 4420324013SMadhukar Pappireddy #define ARM_SIP_SET_INTERRUPT_PENDING U(0x82000100) 4520324013SMadhukar Pappireddy #endif 4620324013SMadhukar Pappireddy 476873088cSJ-Alves /** 486873088cSJ-Alves * Arm SiP Service Call for the SPM to leverage RME to protect a give memory range. 496873088cSJ-Alves * Protected memory range is one whose PAS was made secure. 506873088cSJ-Alves * Unprotect relates to reverting a protect operation. 516873088cSJ-Alves */ 526873088cSJ-Alves #if SPMD_SPM_AT_SEL2 && ENABLE_RME 536873088cSJ-Alves #define PLAT_PROTECT_MEM_SMC64 0xC2000101 546873088cSJ-Alves #define PLAT_UNPROTECT_MEM_SMC64 0xC2000102 556873088cSJ-Alves #endif 566873088cSJ-Alves 577a2130b4SMadhukar Pappireddy /* SiP handler specific to each Arm platform. */ 587a2130b4SMadhukar Pappireddy uintptr_t plat_arm_sip_handler(uint32_t smc_fid, 597a2130b4SMadhukar Pappireddy u_register_t x1, 607a2130b4SMadhukar Pappireddy u_register_t x2, 617a2130b4SMadhukar Pappireddy u_register_t x3, 627a2130b4SMadhukar Pappireddy u_register_t x4, 637a2130b4SMadhukar Pappireddy void *cookie, 647a2130b4SMadhukar Pappireddy void *handle, 657a2130b4SMadhukar Pappireddy u_register_t flags); 667a2130b4SMadhukar Pappireddy 6715b94cc1SAntonio Nino Diaz #endif /* ARM_SIP_SVC_H */ 68