xref: /rk3399_ARM-atf/plat/st/stm32mp1/include/stm32mp1_smc.h (revision c7ba52da729300151623348478ff44f7a2b8d69c)
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