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