xref: /rk3399_ARM-atf/include/plat/arm/common/arm_sip_svc.h (revision 15dfbdfcae14b5508063e5e0506dc5a7da7a4da1)
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