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> 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 /******************************************************************************* 23*1c62509eSVarun 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), 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_ */ 420b6533b56SAnthony Zhou tegra194_smmu_context[0].val = (uint32_t)ARRAY_SIZE(tegra194_smmu_context) - 1U; 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