xref: /rk3399_ARM-atf/plat/nvidia/tegra/soc/t194/plat_smmu.c (revision f32e852596704f517d7804693d056914fb52a0e3)
1719fdb6eSVarun Wadekar /*
2719fdb6eSVarun Wadekar  * Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
3719fdb6eSVarun Wadekar  *
4719fdb6eSVarun Wadekar  * SPDX-License-Identifier: BSD-3-Clause
5719fdb6eSVarun Wadekar  */
6719fdb6eSVarun Wadekar 
7719fdb6eSVarun Wadekar #include <common/bl_common.h>
8719fdb6eSVarun Wadekar #include <common/debug.h>
9719fdb6eSVarun Wadekar #include <smmu.h>
10719fdb6eSVarun Wadekar #include <tegra_def.h>
11*f32e8525SVarun Wadekar #include <tegra_mc_def.h>
12719fdb6eSVarun Wadekar 
1313dcbc6fSSteven Kao #define BOARD_SYSTEM_FPGA_BASE		U(1)
1413dcbc6fSSteven Kao #define BASE_CONFIG_SMMU_DEVICES	U(2)
1513dcbc6fSSteven Kao #define MAX_NUM_SMMU_DEVICES		U(3)
1613dcbc6fSSteven Kao 
1713dcbc6fSSteven Kao static uint32_t tegra_misc_read_32(uint32_t off)
1813dcbc6fSSteven Kao {
1913dcbc6fSSteven Kao 	return mmio_read_32(TEGRA_MISC_BASE + off);
2013dcbc6fSSteven Kao }
2113dcbc6fSSteven Kao 
22719fdb6eSVarun Wadekar /*******************************************************************************
23719fdb6eSVarun Wadekar  * Array to hold SMMU context for Tegra186
24719fdb6eSVarun Wadekar  ******************************************************************************/
25719fdb6eSVarun Wadekar static __attribute__((aligned(16))) smmu_regs_t tegra194_smmu_context[] = {
26719fdb6eSVarun Wadekar 	_START_OF_TABLE_,
27719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(HDAR),
28719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(HOST1XDMAR),
29719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVENCSRD),
30719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SATAR),
31719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVENCSWR),
32719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(HDAW),
33719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SATAW),
34719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(ISPRA),
35719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(ISPFALR),
36719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(ISPWA),
37719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(ISPWB),
38719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(XUSB_HOSTR),
39719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(XUSB_HOSTW),
40719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(XUSB_DEVR),
41719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(XUSB_DEVW),
42719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(TSECSRD),
43719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(TSECSWR),
44719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SDMMCRA),
45719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SDMMCR),
46719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SDMMCRAB),
47719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SDMMCWA),
48719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SDMMCW),
49719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SDMMCWAB),
50719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(VICSRD),
51719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(VICSWR),
52719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(VIW),
53719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVDECSRD),
54719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVDECSWR),
55719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(APER),
56719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(APEW),
57719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVJPGSRD),
58719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVJPGSWR),
59719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SESRD),
60719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SESWR),
61719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(AXIAPR),
62719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(AXIAPW),
63719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(ETRR),
64719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(ETRW),
65719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(TSECSRDB),
66719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(TSECSWRB),
67719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(AXISR),
68719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(AXISW),
69719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(EQOSR),
70719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(EQOSW),
71719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(UFSHCR),
72719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(UFSHCW),
73719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVDISPLAYR),
74719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(BPMPR),
75719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(BPMPW),
76719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(BPMPDMAR),
77719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(BPMPDMAW),
78719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(AONR),
79719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(AONW),
80719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(AONDMAR),
81719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(AONDMAW),
82719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SCER),
83719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SCEW),
84719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SCEDMAR),
85719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(SCEDMAW),
86719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(APEDMAR),
87719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(APEDMAW),
88719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVDISPLAYR1),
89719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(VICSRD1),
90719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVDECSRD1),
91719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(VIFALR),
92719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(VIFALW),
93719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(DLA0RDA),
94719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(DLA0FALRDB),
95719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(DLA0WRA),
96719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(DLA0FALWRB),
97719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(DLA1RDA),
98719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(DLA1FALRDB),
99719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(DLA1WRA),
100719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(DLA1FALWRB),
101719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA0RDA),
102719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA0RDB),
103719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA0RDC),
104719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA0WRA),
105719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA0WRB),
106719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA0WRC),
107719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA1RDA),
108719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA1RDB),
109719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA1RDC),
110719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA1WRA),
111719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA1WRB),
112719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA1WRC),
113719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(RCER),
114719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(RCEW),
115719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(RCEDMAR),
116719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(RCEDMAW),
117719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVENC1SRD),
118719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVENC1SWR),
119719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE0R),
120719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE0W),
121719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE1R),
122719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE1W),
123719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE2AR),
124719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE2AW),
125719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE3R),
126719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE3W),
127719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE4R),
128719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE4W),
129719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE5R),
130719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE5W),
131719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(ISPFALW),
132719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(DLA0RDA1),
133719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(DLA1RDA1),
134719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA0RDA1),
135719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA0RDB1),
136719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA1RDA1),
137719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PVA1RDB1),
138719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(PCIE5R1),
139719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVENCSRD1),
140719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(NVENC1SRD1),
141719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(ISPRA1),
142719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU0R),
143719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU0W),
144719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU1R),
145719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU1W),
146719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU2R),
147719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU2W),
148719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU3R),
149719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU3W),
150719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(HDAR),
151719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(HOST1XDMAR),
152719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENCSRD),
153719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SATAR),
154719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENCSWR),
155719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(HDAW),
156719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SATAW),
157719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPRA),
158719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPFALR),
159719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPWA),
160719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPWB),
161719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(XUSB_HOSTR),
162719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(XUSB_HOSTW),
163719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(XUSB_DEVR),
164719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(XUSB_DEVW),
165719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(TSECSRD),
166719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(TSECSWR),
167719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCRA),
168719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCR),
169719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCRAB),
170719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCWA),
171719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCW),
172719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCWAB),
173719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VICSRD),
174719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VICSWR),
175719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VIW),
176719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVDECSRD),
177719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVDECSWR),
178719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(APER),
179719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(APEW),
180719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVJPGSRD),
181719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVJPGSWR),
182719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SESRD),
183719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SESWR),
184719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AXIAPR),
185719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AXIAPW),
186719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ETRR),
187719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ETRW),
188719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(TSECSRDB),
189719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(TSECSWRB),
190719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AXISR),
191719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AXISW),
192719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(EQOSR),
193719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(EQOSW),
194719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(UFSHCR),
195719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(UFSHCW),
196719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVDISPLAYR),
197719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(BPMPR),
198719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(BPMPW),
199719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(BPMPDMAR),
200719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(BPMPDMAW),
201719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AONR),
202719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AONW),
203719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AONDMAR),
204719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AONDMAW),
205719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SCER),
206719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SCEW),
207719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SCEDMAR),
208719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SCEDMAW),
209719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(APEDMAR),
210719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(APEDMAW),
211719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVDISPLAYR1),
212719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VICSRD1),
213719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVDECSRD1),
214719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VIFALR),
215719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VIFALW),
216719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA0RDA),
217719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA0FALRDB),
218719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA0WRA),
219719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA0FALWRB),
220719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA1RDA),
221719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA1FALRDB),
222719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA1WRA),
223719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA1FALWRB),
224719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0RDA),
225719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0RDB),
226719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0RDC),
227719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0WRA),
228719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0WRB),
229719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0WRC),
230719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1RDA),
231719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1RDB),
232719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1RDC),
233719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1WRA),
234719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1WRB),
235719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1WRC),
236719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(RCER),
237719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(RCEW),
238719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(RCEDMAR),
239719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(RCEDMAW),
240719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENC1SRD),
241719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENC1SWR),
242719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE0R),
243719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE0W),
244719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE1R),
245719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE1W),
246719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE2AR),
247719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE2AW),
248719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE3R),
249719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE3W),
250719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE4R),
251719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE4W),
252719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE5R),
253719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE5W),
254719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPFALW),
255719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA0RDA1),
256719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA1RDA1),
257719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0RDA1),
258719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0RDB1),
259719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1RDA1),
260719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1RDB1),
261719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE5R1),
262719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENCSRD1),
263719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENC1SRD1),
264719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPRA1),
265719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU0R),
266719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU0W),
267719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU1R),
268719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU1W),
269719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU2R),
270719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU2W),
271719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU3R),
272719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU3W),
273719fdb6eSVarun Wadekar 	smmu_make_gnsr0_nsec_cfg(CR0),
274719fdb6eSVarun Wadekar 	smmu_make_gnsr0_sec_cfg(IDR0),
275719fdb6eSVarun Wadekar 	smmu_make_gnsr0_sec_cfg(IDR1),
276719fdb6eSVarun Wadekar 	smmu_make_gnsr0_sec_cfg(IDR2),
277719fdb6eSVarun Wadekar 	smmu_make_gnsr0_nsec_cfg(GFSR),
278719fdb6eSVarun Wadekar 	smmu_make_gnsr0_nsec_cfg(GFSYNR0),
279719fdb6eSVarun Wadekar 	smmu_make_gnsr0_nsec_cfg(GFSYNR1),
280719fdb6eSVarun Wadekar 	smmu_make_gnsr0_nsec_cfg(TLBGSTATUS),
281719fdb6eSVarun Wadekar 	smmu_make_gnsr0_nsec_cfg(PIDR2),
282719fdb6eSVarun Wadekar 	smmu_make_smrg_group(0),
283719fdb6eSVarun Wadekar 	smmu_make_smrg_group(1),
284719fdb6eSVarun Wadekar 	smmu_make_smrg_group(2),
285719fdb6eSVarun Wadekar 	smmu_make_smrg_group(3),
286719fdb6eSVarun Wadekar 	smmu_make_smrg_group(4),
287719fdb6eSVarun Wadekar 	smmu_make_smrg_group(5),
288719fdb6eSVarun Wadekar 	smmu_make_smrg_group(6),
289719fdb6eSVarun Wadekar 	smmu_make_smrg_group(7),
290719fdb6eSVarun Wadekar 	smmu_make_smrg_group(8),
291719fdb6eSVarun Wadekar 	smmu_make_smrg_group(9),
292719fdb6eSVarun Wadekar 	smmu_make_smrg_group(10),
293719fdb6eSVarun Wadekar 	smmu_make_smrg_group(11),
294719fdb6eSVarun Wadekar 	smmu_make_smrg_group(12),
295719fdb6eSVarun Wadekar 	smmu_make_smrg_group(13),
296719fdb6eSVarun Wadekar 	smmu_make_smrg_group(14),
297719fdb6eSVarun Wadekar 	smmu_make_smrg_group(15),
298719fdb6eSVarun Wadekar 	smmu_make_smrg_group(16),
299719fdb6eSVarun Wadekar 	smmu_make_smrg_group(17),
300719fdb6eSVarun Wadekar 	smmu_make_smrg_group(18),
301719fdb6eSVarun Wadekar 	smmu_make_smrg_group(19),
302719fdb6eSVarun Wadekar 	smmu_make_smrg_group(20),
303719fdb6eSVarun Wadekar 	smmu_make_smrg_group(21),
304719fdb6eSVarun Wadekar 	smmu_make_smrg_group(22),
305719fdb6eSVarun Wadekar 	smmu_make_smrg_group(23),
306719fdb6eSVarun Wadekar 	smmu_make_smrg_group(24),
307719fdb6eSVarun Wadekar 	smmu_make_smrg_group(25),
308719fdb6eSVarun Wadekar 	smmu_make_smrg_group(26),
309719fdb6eSVarun Wadekar 	smmu_make_smrg_group(27),
310719fdb6eSVarun Wadekar 	smmu_make_smrg_group(28),
311719fdb6eSVarun Wadekar 	smmu_make_smrg_group(29),
312719fdb6eSVarun Wadekar 	smmu_make_smrg_group(30),
313719fdb6eSVarun Wadekar 	smmu_make_smrg_group(31),
314719fdb6eSVarun Wadekar 	smmu_make_smrg_group(32),
315719fdb6eSVarun Wadekar 	smmu_make_smrg_group(33),
316719fdb6eSVarun Wadekar 	smmu_make_smrg_group(34),
317719fdb6eSVarun Wadekar 	smmu_make_smrg_group(35),
318719fdb6eSVarun Wadekar 	smmu_make_smrg_group(36),
319719fdb6eSVarun Wadekar 	smmu_make_smrg_group(37),
320719fdb6eSVarun Wadekar 	smmu_make_smrg_group(38),
321719fdb6eSVarun Wadekar 	smmu_make_smrg_group(39),
322719fdb6eSVarun Wadekar 	smmu_make_smrg_group(40),
323719fdb6eSVarun Wadekar 	smmu_make_smrg_group(41),
324719fdb6eSVarun Wadekar 	smmu_make_smrg_group(42),
325719fdb6eSVarun Wadekar 	smmu_make_smrg_group(43),
326719fdb6eSVarun Wadekar 	smmu_make_smrg_group(44),
327719fdb6eSVarun Wadekar 	smmu_make_smrg_group(45),
328719fdb6eSVarun Wadekar 	smmu_make_smrg_group(46),
329719fdb6eSVarun Wadekar 	smmu_make_smrg_group(47),
330719fdb6eSVarun Wadekar 	smmu_make_smrg_group(48),
331719fdb6eSVarun Wadekar 	smmu_make_smrg_group(49),
332719fdb6eSVarun Wadekar 	smmu_make_smrg_group(50),
333719fdb6eSVarun Wadekar 	smmu_make_smrg_group(51),
334719fdb6eSVarun Wadekar 	smmu_make_smrg_group(52),
335719fdb6eSVarun Wadekar 	smmu_make_smrg_group(53),
336719fdb6eSVarun Wadekar 	smmu_make_smrg_group(54),
337719fdb6eSVarun Wadekar 	smmu_make_smrg_group(55),
338719fdb6eSVarun Wadekar 	smmu_make_smrg_group(56),
339719fdb6eSVarun Wadekar 	smmu_make_smrg_group(57),
340719fdb6eSVarun Wadekar 	smmu_make_smrg_group(58),
341719fdb6eSVarun Wadekar 	smmu_make_smrg_group(59),
342719fdb6eSVarun Wadekar 	smmu_make_smrg_group(60),
343719fdb6eSVarun Wadekar 	smmu_make_smrg_group(61),
344719fdb6eSVarun Wadekar 	smmu_make_smrg_group(62),
345719fdb6eSVarun Wadekar 	smmu_make_smrg_group(63),
346719fdb6eSVarun Wadekar 	smmu_make_cb_group(0),
347719fdb6eSVarun Wadekar 	smmu_make_cb_group(1),
348719fdb6eSVarun Wadekar 	smmu_make_cb_group(2),
349719fdb6eSVarun Wadekar 	smmu_make_cb_group(3),
350719fdb6eSVarun Wadekar 	smmu_make_cb_group(4),
351719fdb6eSVarun Wadekar 	smmu_make_cb_group(5),
352719fdb6eSVarun Wadekar 	smmu_make_cb_group(6),
353719fdb6eSVarun Wadekar 	smmu_make_cb_group(7),
354719fdb6eSVarun Wadekar 	smmu_make_cb_group(8),
355719fdb6eSVarun Wadekar 	smmu_make_cb_group(9),
356719fdb6eSVarun Wadekar 	smmu_make_cb_group(10),
357719fdb6eSVarun Wadekar 	smmu_make_cb_group(11),
358719fdb6eSVarun Wadekar 	smmu_make_cb_group(12),
359719fdb6eSVarun Wadekar 	smmu_make_cb_group(13),
360719fdb6eSVarun Wadekar 	smmu_make_cb_group(14),
361719fdb6eSVarun Wadekar 	smmu_make_cb_group(15),
362719fdb6eSVarun Wadekar 	smmu_make_cb_group(16),
363719fdb6eSVarun Wadekar 	smmu_make_cb_group(17),
364719fdb6eSVarun Wadekar 	smmu_make_cb_group(18),
365719fdb6eSVarun Wadekar 	smmu_make_cb_group(19),
366719fdb6eSVarun Wadekar 	smmu_make_cb_group(20),
367719fdb6eSVarun Wadekar 	smmu_make_cb_group(21),
368719fdb6eSVarun Wadekar 	smmu_make_cb_group(22),
369719fdb6eSVarun Wadekar 	smmu_make_cb_group(23),
370719fdb6eSVarun Wadekar 	smmu_make_cb_group(24),
371719fdb6eSVarun Wadekar 	smmu_make_cb_group(25),
372719fdb6eSVarun Wadekar 	smmu_make_cb_group(26),
373719fdb6eSVarun Wadekar 	smmu_make_cb_group(27),
374719fdb6eSVarun Wadekar 	smmu_make_cb_group(28),
375719fdb6eSVarun Wadekar 	smmu_make_cb_group(29),
376719fdb6eSVarun Wadekar 	smmu_make_cb_group(30),
377719fdb6eSVarun Wadekar 	smmu_make_cb_group(31),
378719fdb6eSVarun Wadekar 	smmu_make_cb_group(32),
379719fdb6eSVarun Wadekar 	smmu_make_cb_group(33),
380719fdb6eSVarun Wadekar 	smmu_make_cb_group(34),
381719fdb6eSVarun Wadekar 	smmu_make_cb_group(35),
382719fdb6eSVarun Wadekar 	smmu_make_cb_group(36),
383719fdb6eSVarun Wadekar 	smmu_make_cb_group(37),
384719fdb6eSVarun Wadekar 	smmu_make_cb_group(38),
385719fdb6eSVarun Wadekar 	smmu_make_cb_group(39),
386719fdb6eSVarun Wadekar 	smmu_make_cb_group(40),
387719fdb6eSVarun Wadekar 	smmu_make_cb_group(41),
388719fdb6eSVarun Wadekar 	smmu_make_cb_group(42),
389719fdb6eSVarun Wadekar 	smmu_make_cb_group(43),
390719fdb6eSVarun Wadekar 	smmu_make_cb_group(44),
391719fdb6eSVarun Wadekar 	smmu_make_cb_group(45),
392719fdb6eSVarun Wadekar 	smmu_make_cb_group(46),
393719fdb6eSVarun Wadekar 	smmu_make_cb_group(47),
394719fdb6eSVarun Wadekar 	smmu_make_cb_group(48),
395719fdb6eSVarun Wadekar 	smmu_make_cb_group(49),
396719fdb6eSVarun Wadekar 	smmu_make_cb_group(50),
397719fdb6eSVarun Wadekar 	smmu_make_cb_group(51),
398719fdb6eSVarun Wadekar 	smmu_make_cb_group(52),
399719fdb6eSVarun Wadekar 	smmu_make_cb_group(53),
400719fdb6eSVarun Wadekar 	smmu_make_cb_group(54),
401719fdb6eSVarun Wadekar 	smmu_make_cb_group(55),
402719fdb6eSVarun Wadekar 	smmu_make_cb_group(56),
403719fdb6eSVarun Wadekar 	smmu_make_cb_group(57),
404719fdb6eSVarun Wadekar 	smmu_make_cb_group(58),
405719fdb6eSVarun Wadekar 	smmu_make_cb_group(59),
406719fdb6eSVarun Wadekar 	smmu_make_cb_group(60),
407719fdb6eSVarun Wadekar 	smmu_make_cb_group(61),
408719fdb6eSVarun Wadekar 	smmu_make_cb_group(62),
409719fdb6eSVarun Wadekar 	smmu_make_cb_group(63),
410719fdb6eSVarun Wadekar 	smmu_bypass_cfg,	/* TBU settings */
411719fdb6eSVarun Wadekar 	_END_OF_TABLE_,
412719fdb6eSVarun Wadekar };
413719fdb6eSVarun Wadekar 
414719fdb6eSVarun Wadekar /*******************************************************************************
415719fdb6eSVarun Wadekar  * Handler to return the pointer to the SMMU's context struct
416719fdb6eSVarun Wadekar  ******************************************************************************/
417719fdb6eSVarun Wadekar smmu_regs_t *plat_get_smmu_ctx(void)
418719fdb6eSVarun Wadekar {
419719fdb6eSVarun Wadekar 	/* index of _END_OF_TABLE_ */
420719fdb6eSVarun Wadekar 	tegra194_smmu_context[0].val = ARRAY_SIZE(tegra194_smmu_context) - 1;
421719fdb6eSVarun Wadekar 
422719fdb6eSVarun Wadekar 	return tegra194_smmu_context;
423719fdb6eSVarun Wadekar }
42413dcbc6fSSteven Kao 
42513dcbc6fSSteven Kao /*******************************************************************************
42613dcbc6fSSteven Kao  * Handler to return the support SMMU devices number
42713dcbc6fSSteven Kao  ******************************************************************************/
42813dcbc6fSSteven Kao uint32_t plat_get_num_smmu_devices(void)
42913dcbc6fSSteven Kao {
43013dcbc6fSSteven Kao 	uint32_t ret_num = MAX_NUM_SMMU_DEVICES;
43113dcbc6fSSteven Kao 	uint32_t board_revid = ((tegra_misc_read_32(MISCREG_EMU_REVID) >> \
4326907891dSPritesh Raithatha 							BOARD_SHIFT_BITS) & BOARD_MASK_BITS);
43313dcbc6fSSteven Kao 
43413dcbc6fSSteven Kao 	if (board_revid == BOARD_SYSTEM_FPGA_BASE) {
43513dcbc6fSSteven Kao 		ret_num = BASE_CONFIG_SMMU_DEVICES;
43613dcbc6fSSteven Kao 	}
43713dcbc6fSSteven Kao 
43813dcbc6fSSteven Kao 	return ret_num;
43913dcbc6fSSteven Kao }
440