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