xref: /rk3399_ARM-atf/plat/nvidia/tegra/soc/t194/plat_smmu.c (revision 844e6cc5e73d081f0709d6cf39de6c4b0ff9c08b)
1719fdb6eSVarun Wadekar /*
2*844e6cc5SPritesh Raithatha  * Copyright (c) 2019-2020, 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>
11f32e8525SVarun 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 {
19b6533b56SAnthony Zhou 	return mmio_read_32((uintptr_t)TEGRA_MISC_BASE + off);
2013dcbc6fSSteven Kao }
2113dcbc6fSSteven Kao 
22719fdb6eSVarun Wadekar /*******************************************************************************
231c62509eSVarun Wadekar  * Array to hold SMMU context for Tegra194
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),
142*844e6cc5SPritesh Raithatha 	mc_make_sid_security_cfg(PCIE0R1),
143719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU0R),
144719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU0W),
145719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU1R),
146719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU1W),
147719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU2R),
148719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU2W),
149719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU3R),
150719fdb6eSVarun Wadekar 	mc_make_sid_security_cfg(MIU3W),
151719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(HDAR),
152719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(HOST1XDMAR),
153719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENCSRD),
154719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SATAR),
155719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENCSWR),
156719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(HDAW),
157719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SATAW),
158719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPRA),
159719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPFALR),
160719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPWA),
161719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPWB),
162719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(XUSB_HOSTR),
163719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(XUSB_HOSTW),
164719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(XUSB_DEVR),
165719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(XUSB_DEVW),
166719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(TSECSRD),
167719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(TSECSWR),
168719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCRA),
169719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCR),
170719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCRAB),
171719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCWA),
172719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCW),
173719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SDMMCWAB),
174719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VICSRD),
175719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VICSWR),
176719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VIW),
177719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVDECSRD),
178719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVDECSWR),
179719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(APER),
180719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(APEW),
181719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVJPGSRD),
182719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVJPGSWR),
183719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SESRD),
184719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SESWR),
185719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AXIAPR),
186719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AXIAPW),
187719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ETRR),
188719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ETRW),
189719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(TSECSRDB),
190719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(TSECSWRB),
191719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AXISR),
192719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AXISW),
193719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(EQOSR),
194719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(EQOSW),
195719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(UFSHCR),
196719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(UFSHCW),
197719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVDISPLAYR),
198719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(BPMPR),
199719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(BPMPW),
200719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(BPMPDMAR),
201719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(BPMPDMAW),
202719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AONR),
203719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AONW),
204719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AONDMAR),
205719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(AONDMAW),
206719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SCER),
207719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SCEW),
208719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SCEDMAR),
209719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(SCEDMAW),
210719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(APEDMAR),
211719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(APEDMAW),
212719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVDISPLAYR1),
213719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VICSRD1),
214719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVDECSRD1),
215719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VIFALR),
216719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(VIFALW),
217719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA0RDA),
218719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA0FALRDB),
219719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA0WRA),
220719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA0FALWRB),
221719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA1RDA),
222719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA1FALRDB),
223719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA1WRA),
224719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA1FALWRB),
225719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0RDA),
226719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0RDB),
227719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0RDC),
228719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0WRA),
229719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0WRB),
230719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0WRC),
231719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1RDA),
232719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1RDB),
233719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1RDC),
234719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1WRA),
235719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1WRB),
236719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1WRC),
237719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(RCER),
238719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(RCEW),
239719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(RCEDMAR),
240719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(RCEDMAW),
241719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENC1SRD),
242719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENC1SWR),
243719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE0R),
244719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE0W),
245719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE1R),
246719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE1W),
247719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE2AR),
248719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE2AW),
249719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE3R),
250719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE3W),
251719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE4R),
252719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE4W),
253719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE5R),
254719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE5W),
255719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPFALW),
256719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA0RDA1),
257719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(DLA1RDA1),
258719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0RDA1),
259719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA0RDB1),
260719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1RDA1),
261719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PVA1RDB1),
262719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(PCIE5R1),
263719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENCSRD1),
264719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(NVENC1SRD1),
265719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(ISPRA1),
266*844e6cc5SPritesh Raithatha 	mc_make_sid_override_cfg(PCIE0R1),
267719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU0R),
268719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU0W),
269719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU1R),
270719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU1W),
271719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU2R),
272719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU2W),
273719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU3R),
274719fdb6eSVarun Wadekar 	mc_make_sid_override_cfg(MIU3W),
275fba54d55SPritesh Raithatha 	smmu_make_cfg(TEGRA_SMMU0_BASE),
276fba54d55SPritesh Raithatha 	smmu_make_cfg(TEGRA_SMMU2_BASE),
277719fdb6eSVarun Wadekar 	smmu_bypass_cfg,	/* TBU settings */
278719fdb6eSVarun Wadekar 	_END_OF_TABLE_,
279719fdb6eSVarun Wadekar };
280719fdb6eSVarun Wadekar 
281719fdb6eSVarun Wadekar /*******************************************************************************
282719fdb6eSVarun Wadekar  * Handler to return the pointer to the SMMU's context struct
283719fdb6eSVarun Wadekar  ******************************************************************************/
284719fdb6eSVarun Wadekar smmu_regs_t *plat_get_smmu_ctx(void)
285719fdb6eSVarun Wadekar {
286719fdb6eSVarun Wadekar 	/* index of _END_OF_TABLE_ */
287b6533b56SAnthony Zhou 	tegra194_smmu_context[0].val = (uint32_t)ARRAY_SIZE(tegra194_smmu_context) - 1U;
288719fdb6eSVarun Wadekar 
289719fdb6eSVarun Wadekar 	return tegra194_smmu_context;
290719fdb6eSVarun Wadekar }
29113dcbc6fSSteven Kao 
29213dcbc6fSSteven Kao /*******************************************************************************
29313dcbc6fSSteven Kao  * Handler to return the support SMMU devices number
29413dcbc6fSSteven Kao  ******************************************************************************/
29513dcbc6fSSteven Kao uint32_t plat_get_num_smmu_devices(void)
29613dcbc6fSSteven Kao {
29713dcbc6fSSteven Kao 	uint32_t ret_num = MAX_NUM_SMMU_DEVICES;
29813dcbc6fSSteven Kao 	uint32_t board_revid = ((tegra_misc_read_32(MISCREG_EMU_REVID) >> \
2996907891dSPritesh Raithatha 							BOARD_SHIFT_BITS) & BOARD_MASK_BITS);
30013dcbc6fSSteven Kao 
30113dcbc6fSSteven Kao 	if (board_revid == BOARD_SYSTEM_FPGA_BASE) {
30213dcbc6fSSteven Kao 		ret_num = BASE_CONFIG_SMMU_DEVICES;
30313dcbc6fSSteven Kao 	}
30413dcbc6fSSteven Kao 
30513dcbc6fSSteven Kao 	return ret_num;
30613dcbc6fSSteven Kao }
307