xref: /rk3399_ARM-atf/plat/st/common/include/stm32mp_svc_setup.h (revision 9e6ab88ecaf6dd53a066bfc1f91dc35bc8ad5534)
1*39b08bc3SYann Gautier /*
2*39b08bc3SYann Gautier  * Copyright (c) 2024, STMicroelectronics - All Rights Reserved
3*39b08bc3SYann Gautier  *
4*39b08bc3SYann Gautier  * SPDX-License-Identifier: BSD-3-Clause
5*39b08bc3SYann Gautier  */
6*39b08bc3SYann Gautier 
7*39b08bc3SYann Gautier #ifndef STM32MP_SVC_SETUP_H
8*39b08bc3SYann Gautier #define STM32MP_SVC_SETUP_H
9*39b08bc3SYann Gautier 
10*39b08bc3SYann Gautier #include <stdbool.h>
11*39b08bc3SYann Gautier #include <stdint.h>
12*39b08bc3SYann Gautier 
13*39b08bc3SYann Gautier /* Common SMC function IDs for STM32 Service queries across STM32MP paltforms */
14*39b08bc3SYann Gautier #define STM32_SIP_SVC_CALL_COUNT	0x8200ff00
15*39b08bc3SYann Gautier #define STM32_SIP_SVC_UID		0x8200ff01
16*39b08bc3SYann Gautier /*					0x8200ff02 is reserved */
17*39b08bc3SYann Gautier #define STM32_SIP_SVC_VERSION		0x8200ff03
18*39b08bc3SYann Gautier 
19*39b08bc3SYann Gautier /* STM32 SiP Service Calls version numbers */
20*39b08bc3SYann Gautier #define STM32_SIP_SVC_VERSION_MAJOR	0x0
21*39b08bc3SYann Gautier #define STM32_SIP_SVC_VERSION_MINOR	0x1
22*39b08bc3SYann Gautier 
23*39b08bc3SYann Gautier /* SMC error codes */
24*39b08bc3SYann Gautier #define STM32_SMC_OK			0x00000000U
25*39b08bc3SYann Gautier #define STM32_SMC_NOT_SUPPORTED		0xFFFFFFFFU
26*39b08bc3SYann Gautier #define STM32_SMC_FAILED		0xFFFFFFFEU
27*39b08bc3SYann Gautier #define STM32_SMC_INVALID_PARAMS	0xFFFFFFFDU
28*39b08bc3SYann Gautier 
29*39b08bc3SYann Gautier void plat_svc_smc_handler(uint32_t smc_fid, u_register_t x1,
30*39b08bc3SYann Gautier 			  u_register_t x2, u_register_t x3,
31*39b08bc3SYann Gautier 			  u_register_t x4, uint32_t *ret1,
32*39b08bc3SYann Gautier 			  uint32_t *ret2, bool *ret2_enabled,
33*39b08bc3SYann Gautier 			  u_register_t flags);
34*39b08bc3SYann Gautier 
35*39b08bc3SYann Gautier #endif /* STM32MP_SVC_SETUP_H */
36