1a42bad37SYann Gautier /* 2a42bad37SYann Gautier * Copyright (c) 2016-2019, STMicroelectronics - All Rights Reserved 3a42bad37SYann Gautier * 4a42bad37SYann Gautier * SPDX-License-Identifier: BSD-3-Clause 5a42bad37SYann Gautier */ 6a42bad37SYann Gautier 7a42bad37SYann Gautier #ifndef STM32MP1_SMC_H 8a42bad37SYann Gautier #define STM32MP1_SMC_H 9a42bad37SYann Gautier 10a42bad37SYann Gautier /* 11a42bad37SYann Gautier * SMC function IDs for STM32 Service queries 12a42bad37SYann Gautier * STM32 SMC services use the space between 0x82000000 and 0x8200FFFF 13a42bad37SYann Gautier * like this is defined in SMC calling Convention by ARM 14a42bad37SYann Gautier * for SiP (silicon Partner) 15a42bad37SYann Gautier * https://developer.arm.com/docs/den0028/latest 16a42bad37SYann Gautier */ 17a42bad37SYann Gautier 18*c7ba52daSYann Gautier /* Secure Service access from Non-secure */ 19*c7ba52daSYann Gautier 20*c7ba52daSYann Gautier /* 21*c7ba52daSYann Gautier * STM32_SMC_BSEC call API 22*c7ba52daSYann Gautier * 23*c7ba52daSYann Gautier * Argument a0: (input) SMCC ID 24*c7ba52daSYann Gautier * (output) status return code 25*c7ba52daSYann Gautier * Argument a1: (input) Service ID (STM32_SMC_BSEC_xxx) 26*c7ba52daSYann Gautier * Argument a2: (input) OTP index 27*c7ba52daSYann Gautier * (output) OTP read value, if applicable 28*c7ba52daSYann Gautier * Argument a3: (input) OTP value if applicable 29*c7ba52daSYann Gautier */ 30*c7ba52daSYann Gautier #define STM32_SMC_BSEC 0x82001003 31*c7ba52daSYann Gautier 32a42bad37SYann Gautier /* SMC function IDs for SiP Service queries */ 33a42bad37SYann Gautier #define STM32_SIP_SVC_CALL_COUNT 0x8200ff00 34a42bad37SYann Gautier #define STM32_SIP_SVC_UID 0x8200ff01 35a42bad37SYann Gautier /* 0x8200ff02 is reserved */ 36a42bad37SYann Gautier #define STM32_SIP_SVC_VERSION 0x8200ff03 37a42bad37SYann Gautier 38a42bad37SYann Gautier /* STM32 SiP Service Calls version numbers */ 39a42bad37SYann Gautier #define STM32_SIP_SVC_VERSION_MAJOR 0x0 40a42bad37SYann Gautier #define STM32_SIP_SVC_VERSION_MINOR 0x1 41a42bad37SYann Gautier 42a42bad37SYann Gautier /* Number of STM32 SiP Calls implemented */ 43*c7ba52daSYann Gautier #define STM32_COMMON_SIP_NUM_CALLS 4 44*c7ba52daSYann Gautier 45*c7ba52daSYann Gautier /* Service for BSEC */ 46*c7ba52daSYann Gautier #define STM32_SMC_READ_SHADOW 0x01 47*c7ba52daSYann Gautier #define STM32_SMC_PROG_OTP 0x02 48*c7ba52daSYann Gautier #define STM32_SMC_WRITE_SHADOW 0x03 49*c7ba52daSYann Gautier #define STM32_SMC_READ_OTP 0x04 50a42bad37SYann Gautier 51a42bad37SYann Gautier #endif /* STM32MP1_SMC_H */ 52