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