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 18c7ba52daSYann Gautier /* Secure Service access from Non-secure */ 19c7ba52daSYann Gautier 20c7ba52daSYann Gautier /* 21c7ba52daSYann Gautier * STM32_SMC_BSEC call API 22c7ba52daSYann Gautier * 23c7ba52daSYann Gautier * Argument a0: (input) SMCC ID 24c7ba52daSYann Gautier * (output) status return code 25c7ba52daSYann Gautier * Argument a1: (input) Service ID (STM32_SMC_BSEC_xxx) 26c7ba52daSYann Gautier * Argument a2: (input) OTP index 27c7ba52daSYann Gautier * (output) OTP read value, if applicable 28c7ba52daSYann Gautier * Argument a3: (input) OTP value if applicable 29c7ba52daSYann Gautier */ 30c7ba52daSYann Gautier #define STM32_SMC_BSEC 0x82001003 31c7ba52daSYann Gautier 32*fdaaaeb4SEtienne Carriere /* 33*fdaaaeb4SEtienne Carriere * STM32_SIP_SMC_SCMI_AGENT0 34*fdaaaeb4SEtienne Carriere * STM32_SIP_SMC_SCMI_AGENT1 35*fdaaaeb4SEtienne Carriere * Process SCMI message pending in SCMI shared memory buffer. 36*fdaaaeb4SEtienne Carriere * 37*fdaaaeb4SEtienne Carriere * Argument a0: (input) SMCC ID 38*fdaaaeb4SEtienne Carriere */ 39*fdaaaeb4SEtienne Carriere #define STM32_SIP_SMC_SCMI_AGENT0 0x82002000 40*fdaaaeb4SEtienne Carriere #define STM32_SIP_SMC_SCMI_AGENT1 0x82002001 41*fdaaaeb4SEtienne Carriere 42a42bad37SYann Gautier /* SMC function IDs for SiP Service queries */ 43a42bad37SYann Gautier #define STM32_SIP_SVC_CALL_COUNT 0x8200ff00 44a42bad37SYann Gautier #define STM32_SIP_SVC_UID 0x8200ff01 45a42bad37SYann Gautier /* 0x8200ff02 is reserved */ 46a42bad37SYann Gautier #define STM32_SIP_SVC_VERSION 0x8200ff03 47a42bad37SYann Gautier 48a42bad37SYann Gautier /* STM32 SiP Service Calls version numbers */ 49a42bad37SYann Gautier #define STM32_SIP_SVC_VERSION_MAJOR 0x0 50a42bad37SYann Gautier #define STM32_SIP_SVC_VERSION_MINOR 0x1 51a42bad37SYann Gautier 52a42bad37SYann Gautier /* Number of STM32 SiP Calls implemented */ 53*fdaaaeb4SEtienne Carriere #define STM32_COMMON_SIP_NUM_CALLS 3 54c7ba52daSYann Gautier 55c7ba52daSYann Gautier /* Service for BSEC */ 56c7ba52daSYann Gautier #define STM32_SMC_READ_SHADOW 0x01 57c7ba52daSYann Gautier #define STM32_SMC_PROG_OTP 0x02 58c7ba52daSYann Gautier #define STM32_SMC_WRITE_SHADOW 0x03 59c7ba52daSYann Gautier #define STM32_SMC_READ_OTP 0x04 60a42bad37SYann Gautier 61a42bad37SYann Gautier #endif /* STM32MP1_SMC_H */ 62