xref: /optee_os/core/include/dt-bindings/firewall/stm32mp25-rifsc.h (revision bb49c536daf34192776b07945d5385ecd3db457b)
1066c3a39SGatien Chevallier /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
2066c3a39SGatien Chevallier /*
3066c3a39SGatien Chevallier  * Copyright (c) 2020-2024, STMicroelectronics
4066c3a39SGatien Chevallier  */
5066c3a39SGatien Chevallier #ifndef _DT_BINDINGS_FIREWALL_STM32MP25_RIFSC_H
6066c3a39SGatien Chevallier #define _DT_BINDINGS_FIREWALL_STM32MP25_RIFSC_H
7066c3a39SGatien Chevallier 
8066c3a39SGatien Chevallier /* RIFSC ID */
9066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM1_ID			0
10066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM2_ID			1
11066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM3_ID			2
12066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM4_ID			3
13066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM5_ID			4
14066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM6_ID			5
15066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM7_ID			6
16066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM8_ID			7
17066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM10_ID		8
18066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM11_ID		9
19066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM12_ID		10
20066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM13_ID		11
21066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM14_ID		12
22066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM15_ID		13
23066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM16_ID		14
24066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM17_ID		15
25066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM20_ID		16
26066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPTIM1_ID		17
27066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPTIM2_ID		18
28066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPTIM3_ID		19
29066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPTIM4_ID		20
30066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPTIM5_ID		21
31066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI1_ID			22
32066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI2_ID			23
33066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI3_ID			24
34066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI4_ID			25
35066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI5_ID			26
36066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI6_ID			27
37066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI7_ID			28
38066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI8_ID			29
39066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPDIFRX_ID		30
40066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USART1_ID		31
41066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USART2_ID		32
42066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USART3_ID		33
43066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UART4_ID		34
44066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UART5_ID		35
45066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USART6_ID		36
46066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UART7_ID		37
47066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UART8_ID		38
48066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UART9_ID		39
49066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPUART1_ID		40
50066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C1_ID			41
51066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C2_ID			42
52066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C3_ID			43
53066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C4_ID			44
54066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C5_ID			45
55066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C6_ID			46
56066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C7_ID			47
57066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C8_ID			48
58066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SAI1_ID			49
59066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SAI2_ID			50
60066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SAI3_ID			51
61066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SAI4_ID			52
62066c3a39SGatien Chevallier #define STM32MP25_RIFSC_MDF1_ID			54
63066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ADF1_ID			55
64066c3a39SGatien Chevallier #define STM32MP25_RIFSC_FDCAN_ID		56
65066c3a39SGatien Chevallier #define STM32MP25_RIFSC_HDP_ID			57
66066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ADC12_ID		58
67066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ADC3_ID			59
68066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ETH1_ID			60
69066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ETH2_ID			61
70066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USBH_ID			63
71066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USB3DR_ID		66
72066c3a39SGatien Chevallier #define STM32MP25_RIFSC_COMBOPHY_ID		67
73066c3a39SGatien Chevallier #define STM32MP25_RIFSC_PCIE_ID			68
74066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UCPD1_ID		69
75066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ETHSW_DEIP_ID		70
76066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ETHSW_ACM_CFG_ID	71
77066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ETHSW_ACM_MSGBUF_ID	72
78066c3a39SGatien Chevallier #define STM32MP25_RIFSC_STGEN_ID		73
79066c3a39SGatien Chevallier #define STM32MP25_RIFSC_OCTOSPI1_ID		74
80066c3a39SGatien Chevallier #define STM32MP25_RIFSC_OCTOSPI2_ID		75
81066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SDMMC1_ID		76
82066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SDMMC2_ID		77
83066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SDMMC3_ID		78
84066c3a39SGatien Chevallier #define STM32MP25_RIFSC_GPU_ID			79
85066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LTDC_CMN_ID		80
86066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DSI_CMN_ID		81
87066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LVDS_ID			84
88066c3a39SGatien Chevallier #define STM32MP25_RIFSC_CSI_ID			86
89066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DCMIPP_ID		87
90066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DCMI_PSSI_ID		88
91066c3a39SGatien Chevallier #define STM32MP25_RIFSC_VDEC_ID			89
92066c3a39SGatien Chevallier #define STM32MP25_RIFSC_VENC_ID			90
93066c3a39SGatien Chevallier #define STM32MP25_RIFSC_RNG_ID			92
94066c3a39SGatien Chevallier #define STM32MP25_RIFSC_PKA_ID			93
95066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SAES_ID			94
96066c3a39SGatien Chevallier #define STM32MP25_RIFSC_HASH_ID			95
97066c3a39SGatien Chevallier #define STM32MP25_RIFSC_CRYP1_ID		96
98066c3a39SGatien Chevallier #define STM32MP25_RIFSC_CRYP2_ID		97
99066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IWDG1_ID		98
100066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IWDG2_ID		99
101066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IWDG3_ID		100
102066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IWDG4_ID		101
103066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IWDG5_ID		102
104066c3a39SGatien Chevallier #define STM32MP25_RIFSC_WWDG1_ID		103
105066c3a39SGatien Chevallier #define STM32MP25_RIFSC_WWDG2_ID		104
106066c3a39SGatien Chevallier #define STM32MP25_RIFSC_VREFBUF_ID		106
107066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DTS_ID			107
108066c3a39SGatien Chevallier #define STM32MP25_RIFSC_RAMCFG_ID		108
109066c3a39SGatien Chevallier #define STM32MP25_RIFSC_CRC_ID			109
110066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SERC_ID			110
111066c3a39SGatien Chevallier #define STM32MP25_RIFSC_OCTOSPIM_ID		111
112066c3a39SGatien Chevallier #define STM32MP25_RIFSC_GICV2M_ID		112
113066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I3C1_ID			114
114066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I3C2_ID			115
115066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I3C3_ID			116
116066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I3C4_ID			117
117066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ICACHE_DCACHE_ID	118
118b63e12e4SGatien Chevallier #define STM32MP25_RIFSC_LTDC_L1L2_ID		119
119b63e12e4SGatien Chevallier #define STM32MP25_RIFSC_LTDC_L3_ID		120
120066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LTDC_ROT_ID		121
121066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DSI_TRIG_ID		122
122066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DSI_RDFIFO_ID		123
123066c3a39SGatien Chevallier #define STM32MP25_RIFSC_OTFDEC1_ID		125
124066c3a39SGatien Chevallier #define STM32MP25_RIFSC_OTFDEC2_ID		126
125066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IAC_ID			127
126066c3a39SGatien Chevallier 
127471cec14SGatien Chevallier /* RIF-aware IPs */
128471cec14SGatien Chevallier #define STM32MP25_RIFSC_PWR_ID			155
129471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOA_ID		160
130471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOB_ID		161
131471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOC_ID		162
132471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOD_ID		163
133471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOE_ID		164
134471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOF_ID		165
135471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOG_ID		166
136471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOH_ID		167
137471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOI_ID		168
138471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOJ_ID		169
139471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOK_ID		170
140471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOZ_ID		171
141471cec14SGatien Chevallier 
142066c3a39SGatien Chevallier /* Global lock bindings */
143066c3a39SGatien Chevallier #define RIFSC_RIMU_GLOCK			1
144066c3a39SGatien Chevallier #define RIFSC_RISUP_GLOCK			2
145066c3a39SGatien Chevallier 
146066c3a39SGatien Chevallier /* masters ID */
147471cec14SGatien Chevallier #define RIMU_ID_OFFSET		200
148471cec14SGatien Chevallier #define RIMU_ID(idx)		((idx) + RIMU_ID_OFFSET)
149066c3a39SGatien Chevallier 
150*bb49c536SThomas Bourgoin /*
151*bb49c536SThomas Bourgoin  * CID selection mode
152*bb49c536SThomas Bourgoin  * RIF_CIDSEL_P	configuration by hardware or inherited from RISUP
153*bb49c536SThomas Bourgoin  * RIF_CIDSEL_M	configuration from provided RIMU data
154*bb49c536SThomas Bourgoin  */
155*bb49c536SThomas Bourgoin #define RIF_CIDSEL_P		0
156*bb49c536SThomas Bourgoin #define RIF_CIDSEL_M		1
157066c3a39SGatien Chevallier 
158471cec14SGatien Chevallier #define RIMUPROT_RIMC_M_ID_SHIFT	0
159471cec14SGatien Chevallier #define RIMUPROT_RIMC_MODE_SHIFT	10
160471cec14SGatien Chevallier #define RIMUPROT_RIMC_MCID_SHIFT	12
161471cec14SGatien Chevallier #define RIMUPROT_RIMC_MSEC_SHIFT	16
162471cec14SGatien Chevallier #define RIMUPROT_RIMC_MPRIV_SHIFT	17
163471cec14SGatien Chevallier #define RIMUPROT_RIMC_ATTRx_SHIFT	8
164471cec14SGatien Chevallier #define RIMUPROT_RIMC_M_ID_MASK		GENMASK_32(7, 0)
165471cec14SGatien Chevallier #define RIMUPROT_RIMC_MCID_MASK		GENMASK_32(15, 12)
166471cec14SGatien Chevallier #define RIMUPROT_RIMC_ATTRx_MASK	(BIT(RIMUPROT_RIMC_MODE_SHIFT) | \
167471cec14SGatien Chevallier 					 RIMUPROT_RIMC_MCID_MASK | \
168471cec14SGatien Chevallier 					 BIT(RIMUPROT_RIMC_MSEC_SHIFT) | \
169471cec14SGatien Chevallier 					 BIT(RIMUPROT_RIMC_MPRIV_SHIFT))
170066c3a39SGatien Chevallier 
171066c3a39SGatien Chevallier #define RIMUPROT(rimuid, mcid, msec, mpriv, mode) \
172471cec14SGatien Chevallier 	(((rimuid) << RIMUPROT_RIMC_M_ID_SHIFT) | \
173471cec14SGatien Chevallier 	 ((mpriv) << RIMUPROT_RIMC_MPRIV_SHIFT) | \
174471cec14SGatien Chevallier 	 ((msec) << RIMUPROT_RIMC_MSEC_SHIFT) | \
175471cec14SGatien Chevallier 	 ((mcid) << RIMUPROT_RIMC_MCID_SHIFT) | \
176471cec14SGatien Chevallier 	 ((mode) << RIMUPROT_RIMC_MODE_SHIFT))
177066c3a39SGatien Chevallier 
178bb032271SGatien Chevallier /* RISAL ID */
179bb032271SGatien Chevallier #define RISAL_ID(idx)			(idx)
180bb032271SGatien Chevallier 
181bb032271SGatien Chevallier /* RISAL CID subregion modes */
182bb032271SGatien Chevallier #define RIFSC_RISAL_SRDIS		0x0
183bb032271SGatien Chevallier #define RIFSC_RISAL_SREN		0x1
184bb032271SGatien Chevallier 
185bb032271SGatien Chevallier /* RISAL Block id */
186bb032271SGatien Chevallier #define RIFSC_RISAL_BLOCK_A		0x0
187bb032271SGatien Chevallier #define RIFSC_RISAL_BLOCK_B		0x1
188bb032271SGatien Chevallier 
189bb032271SGatien Chevallier #define RIFSC_RISAL_REG_ID_SHIFT	0
190bb032271SGatien Chevallier #define RIFSC_RISAL_BLOCK_ID_SHIFT	8
191bb032271SGatien Chevallier #define RIFSC_RISAL_REGx_CFGR_SHIFT	16
192bb032271SGatien Chevallier #define RIFSC_RISAL_SREN_SHIFT		16
193bb032271SGatien Chevallier #define RIFSC_RISAL_LOCK_SHIFT		17
194bb032271SGatien Chevallier #define RIFSC_RISAL_SRCID_SHIFT		20
195bb032271SGatien Chevallier #define RIFSC_RISAL_SEC_SHIFT		24
196bb032271SGatien Chevallier #define RIFSC_RISAL_PRIV_SHIFT		25
197bb032271SGatien Chevallier #define RIFSC_RISAL_REG_ID_MASK		GENMASK_32(7, 0)
198bb032271SGatien Chevallier #define RIFSC_RISAL_BLOCK_ID_MASK	GENMASK_32(15, 8)
199bb032271SGatien Chevallier #define RIFSC_RISAL_SRCID_MASK		GENMASK_32(22, 20)
200bb032271SGatien Chevallier #define RIFSC_RISAL_REGx_CFGR_MASK	(BIT(RIFSC_RISAL_SREN_SHIFT) | \
201bb032271SGatien Chevallier 					 BIT(RIFSC_RISAL_LOCK_SHIFT) | \
202bb032271SGatien Chevallier 					 RIFSC_RISAL_SRCID_MASK | \
203bb032271SGatien Chevallier 					 BIT(RIFSC_RISAL_SEC_SHIFT) | \
204bb032271SGatien Chevallier 					 BIT(RIFSC_RISAL_PRIV_SHIFT))
205bb032271SGatien Chevallier 
206bb032271SGatien Chevallier #define RISALPROT(risalid, blockid, srcid, lock, sec, priv, sren) \
207bb032271SGatien Chevallier 	 (((risalid) << RIFSC_RISAL_REG_ID_SHIFT) | \
208bb032271SGatien Chevallier 	  ((blockid) << RIFSC_RISAL_BLOCK_ID_SHIFT) | \
209bb032271SGatien Chevallier 	  ((priv) << RIFSC_RISAL_PRIV_SHIFT) | \
210bb032271SGatien Chevallier 	  ((sec) << RIFSC_RISAL_SEC_SHIFT) | \
211bb032271SGatien Chevallier 	  ((srcid) << RIFSC_RISAL_SRCID_SHIFT) | \
212bb032271SGatien Chevallier 	  ((lock) << RIFSC_RISAL_LOCK_SHIFT) | \
213bb032271SGatien Chevallier 	  ((sren) << RIFSC_RISAL_SREN_SHIFT))
214bb032271SGatien Chevallier 
215066c3a39SGatien Chevallier #endif /* _DT_BINDINGS_FIREWALL_STM32MP25_RIFSC_H */
216066c3a39SGatien Chevallier 
217