blob: e0e0d7fbc2c02ff8c34e4cbdc27ce826822894f8 [file] [log] [blame]
/*
* Copyright (c) 2024, STMicroelectronics - All Rights Reserved
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef STM32MP_SVC_SETUP_H
#define STM32MP_SVC_SETUP_H
#include <stdbool.h>
#include <stdint.h>
/* Common SMC function IDs for STM32 Service queries across STM32MP paltforms */
#define STM32_SIP_SVC_CALL_COUNT 0x8200ff00
#define STM32_SIP_SVC_UID 0x8200ff01
/* 0x8200ff02 is reserved */
#define STM32_SIP_SVC_VERSION 0x8200ff03
/* STM32 SiP Service Calls version numbers */
#define STM32_SIP_SVC_VERSION_MAJOR 0x0
#define STM32_SIP_SVC_VERSION_MINOR 0x1
/* SMC error codes */
#define STM32_SMC_OK 0x00000000U
#define STM32_SMC_NOT_SUPPORTED 0xFFFFFFFFU
#define STM32_SMC_FAILED 0xFFFFFFFEU
#define STM32_SMC_INVALID_PARAMS 0xFFFFFFFDU
void plat_svc_smc_handler(uint32_t smc_fid, u_register_t x1,
u_register_t x2, u_register_t x3,
u_register_t x4, uint32_t *ret1,
uint32_t *ret2, bool *ret2_enabled,
u_register_t flags);
#endif /* STM32MP_SVC_SETUP_H */