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