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 7*f32e8525SVarun Wadekar #include <assert.h> 8*f32e8525SVarun Wadekar #include <common/bl_common.h> 9*f32e8525SVarun Wadekar #include <mce.h> 10719fdb6eSVarun Wadekar #include <memctrl_v2.h> 11*f32e8525SVarun Wadekar #include <tegra_mc_def.h> 12*f32e8525SVarun Wadekar #include <tegra_platform.h> 13719fdb6eSVarun Wadekar 14719fdb6eSVarun Wadekar /******************************************************************************* 15719fdb6eSVarun Wadekar * Array to hold stream_id override config register offsets 16719fdb6eSVarun Wadekar ******************************************************************************/ 17719fdb6eSVarun Wadekar const static uint32_t tegra194_streamid_override_regs[] = { 18719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_HDAR, 19719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_HOST1XDMAR, 20719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVENCSRD, 21719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SATAR, 22719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVENCSWR, 23719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_HDAW, 24719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SATAW, 25719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_ISPRA, 26719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_ISPFALR, 27719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_ISPWA, 28719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_ISPWB, 29719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_XUSB_HOSTR, 30719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_XUSB_HOSTW, 31719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_XUSB_DEVR, 32719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_XUSB_DEVW, 33719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_TSECSRD, 34719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_TSECSWR, 35719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SDMMCRA, 36719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SDMMCR, 37719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SDMMCRAB, 38719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SDMMCWA, 39719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SDMMCW, 40719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SDMMCWAB, 41719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_VICSRD, 42719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_VICSWR, 43719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_VIW, 44719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVDECSRD, 45719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVDECSWR, 46719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_APER, 47719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_APEW, 48719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVJPGSRD, 49719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVJPGSWR, 50719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SESRD, 51719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SESWR, 52719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_AXIAPR, 53719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_AXIAPW, 54719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_ETRR, 55719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_ETRW, 56719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_TSECSRDB, 57719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_TSECSWRB, 58719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_AXISR, 59719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_AXISW, 60719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_EQOSR, 61719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_EQOSW, 62719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_UFSHCR, 63719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_UFSHCW, 64719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVDISPLAYR, 65719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_BPMPR, 66719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_BPMPW, 67719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_BPMPDMAR, 68719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_BPMPDMAW, 69719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_AONR, 70719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_AONW, 71719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_AONDMAR, 72719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_AONDMAW, 73719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SCER, 74719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SCEW, 75719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SCEDMAR, 76719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_SCEDMAW, 77719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_APEDMAR, 78719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_APEDMAW, 79719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVDISPLAYR1, 80719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_VICSRD1, 81719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVDECSRD1, 82719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_VIFALR, 83719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_VIFALW, 84719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_DLA0RDA, 85719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_DLA0FALRDB, 86719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_DLA0WRA, 87719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_DLA0FALWRB, 88719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_DLA1RDA, 89719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_DLA1FALRDB, 90719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_DLA1WRA, 91719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_DLA1FALWRB, 92719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA0RDA, 93719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA0RDB, 94719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA0RDC, 95719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA0WRA, 96719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA0WRB, 97719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA0WRC, 98719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA1RDA, 99719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA1RDB, 100719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA1RDC, 101719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA1WRA, 102719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA1WRB, 103719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA1WRC, 104719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_RCER, 105719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_RCEW, 106719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_RCEDMAR, 107719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_RCEDMAW, 108719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVENC1SRD, 109719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVENC1SWR, 110719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE0R, 111719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE0W, 112719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE1R, 113719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE1W, 114719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE2AR, 115719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE2AW, 116719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE3R, 117719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE3W, 118719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE4R, 119719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE4W, 120719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE5R, 121719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE5W, 122719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_ISPFALW, 123719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_DLA0RDA1, 124719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_DLA1RDA1, 125719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA0RDA1, 126719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA0RDB1, 127719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA1RDA1, 128719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PVA1RDB1, 129719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_PCIE5R1, 130719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVENCSRD1, 131719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_NVENC1SRD1, 132719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_ISPRA1, 133719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_MIU0R, 134719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_MIU0W, 135719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_MIU1R, 136719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_MIU1W, 137719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_MIU2R, 138719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_MIU2W, 139719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_MIU3R, 140719fdb6eSVarun Wadekar MC_STREAMID_OVERRIDE_CFG_MIU3W 141719fdb6eSVarun Wadekar }; 142719fdb6eSVarun Wadekar 143719fdb6eSVarun Wadekar /******************************************************************************* 144719fdb6eSVarun Wadekar * Array to hold the security configs for stream IDs 145719fdb6eSVarun Wadekar ******************************************************************************/ 146719fdb6eSVarun Wadekar const static mc_streamid_security_cfg_t tegra194_streamid_sec_cfgs[] = { 147719fdb6eSVarun Wadekar mc_make_sec_cfg(HDAR, NON_SECURE, OVERRIDE, ENABLE), 148719fdb6eSVarun Wadekar mc_make_sec_cfg(HOST1XDMAR, NON_SECURE, NO_OVERRIDE, ENABLE), 149719fdb6eSVarun Wadekar mc_make_sec_cfg(NVENCSRD, NON_SECURE, NO_OVERRIDE, ENABLE), 150719fdb6eSVarun Wadekar mc_make_sec_cfg(SATAR, NON_SECURE, OVERRIDE, ENABLE), 151719fdb6eSVarun Wadekar mc_make_sec_cfg(NVENCSWR, NON_SECURE, NO_OVERRIDE, ENABLE), 152719fdb6eSVarun Wadekar mc_make_sec_cfg(HDAW, NON_SECURE, OVERRIDE, ENABLE), 153719fdb6eSVarun Wadekar mc_make_sec_cfg(SATAW, NON_SECURE, OVERRIDE, ENABLE), 154719fdb6eSVarun Wadekar mc_make_sec_cfg(ISPRA, NON_SECURE, NO_OVERRIDE, ENABLE), 155719fdb6eSVarun Wadekar mc_make_sec_cfg(ISPFALR, NON_SECURE, NO_OVERRIDE, ENABLE), 156719fdb6eSVarun Wadekar mc_make_sec_cfg(ISPWA, NON_SECURE, NO_OVERRIDE, ENABLE), 157719fdb6eSVarun Wadekar mc_make_sec_cfg(ISPWB, NON_SECURE, NO_OVERRIDE, ENABLE), 158bc019041SAjay Gupta mc_make_sec_cfg(XUSB_HOSTR, NON_SECURE, NO_OVERRIDE, ENABLE), 159bc019041SAjay Gupta mc_make_sec_cfg(XUSB_HOSTW, NON_SECURE, NO_OVERRIDE, ENABLE), 160bc019041SAjay Gupta mc_make_sec_cfg(XUSB_DEVR, NON_SECURE, NO_OVERRIDE, ENABLE), 161bc019041SAjay Gupta mc_make_sec_cfg(XUSB_DEVW, NON_SECURE, NO_OVERRIDE, ENABLE), 162719fdb6eSVarun Wadekar mc_make_sec_cfg(TSECSRD, NON_SECURE, NO_OVERRIDE, ENABLE), 163719fdb6eSVarun Wadekar mc_make_sec_cfg(TSECSWR, NON_SECURE, NO_OVERRIDE, ENABLE), 164719fdb6eSVarun Wadekar mc_make_sec_cfg(SDMMCRA, NON_SECURE, OVERRIDE, ENABLE), 165719fdb6eSVarun Wadekar mc_make_sec_cfg(SDMMCR, NON_SECURE, OVERRIDE, ENABLE), 166719fdb6eSVarun Wadekar mc_make_sec_cfg(SDMMCRAB, NON_SECURE, OVERRIDE, ENABLE), 167719fdb6eSVarun Wadekar mc_make_sec_cfg(SDMMCWA, NON_SECURE, OVERRIDE, ENABLE), 168719fdb6eSVarun Wadekar mc_make_sec_cfg(SDMMCW, NON_SECURE, OVERRIDE, ENABLE), 169719fdb6eSVarun Wadekar mc_make_sec_cfg(SDMMCWAB, NON_SECURE, OVERRIDE, ENABLE), 170719fdb6eSVarun Wadekar mc_make_sec_cfg(VICSRD, NON_SECURE, NO_OVERRIDE, ENABLE), 171719fdb6eSVarun Wadekar mc_make_sec_cfg(VICSWR, NON_SECURE, NO_OVERRIDE, ENABLE), 172719fdb6eSVarun Wadekar mc_make_sec_cfg(VIW, NON_SECURE, NO_OVERRIDE, ENABLE), 173719fdb6eSVarun Wadekar mc_make_sec_cfg(NVDECSRD, NON_SECURE, NO_OVERRIDE, ENABLE), 174719fdb6eSVarun Wadekar mc_make_sec_cfg(NVDECSWR, NON_SECURE, NO_OVERRIDE, ENABLE), 175719fdb6eSVarun Wadekar mc_make_sec_cfg(APER, NON_SECURE, NO_OVERRIDE, ENABLE), 176719fdb6eSVarun Wadekar mc_make_sec_cfg(APEW, NON_SECURE, NO_OVERRIDE, ENABLE), 177719fdb6eSVarun Wadekar mc_make_sec_cfg(NVJPGSRD, NON_SECURE, NO_OVERRIDE, ENABLE), 178719fdb6eSVarun Wadekar mc_make_sec_cfg(NVJPGSWR, NON_SECURE, NO_OVERRIDE, ENABLE), 179719fdb6eSVarun Wadekar mc_make_sec_cfg(SESRD, NON_SECURE, NO_OVERRIDE, ENABLE), 180719fdb6eSVarun Wadekar mc_make_sec_cfg(SESWR, NON_SECURE, NO_OVERRIDE, ENABLE), 181719fdb6eSVarun Wadekar mc_make_sec_cfg(AXIAPR, NON_SECURE, OVERRIDE, ENABLE), 182719fdb6eSVarun Wadekar mc_make_sec_cfg(AXIAPW, NON_SECURE, OVERRIDE, ENABLE), 183719fdb6eSVarun Wadekar mc_make_sec_cfg(ETRR, NON_SECURE, OVERRIDE, ENABLE), 184719fdb6eSVarun Wadekar mc_make_sec_cfg(ETRW, NON_SECURE, OVERRIDE, ENABLE), 185719fdb6eSVarun Wadekar mc_make_sec_cfg(TSECSRDB, NON_SECURE, NO_OVERRIDE, ENABLE), 186719fdb6eSVarun Wadekar mc_make_sec_cfg(TSECSWRB, NON_SECURE, NO_OVERRIDE, ENABLE), 187719fdb6eSVarun Wadekar mc_make_sec_cfg(AXISR, SECURE, NO_OVERRIDE, DISABLE), 188719fdb6eSVarun Wadekar mc_make_sec_cfg(AXISW, SECURE, NO_OVERRIDE, DISABLE), 189719fdb6eSVarun Wadekar mc_make_sec_cfg(EQOSR, NON_SECURE, OVERRIDE, ENABLE), 190719fdb6eSVarun Wadekar mc_make_sec_cfg(EQOSW, NON_SECURE, OVERRIDE, ENABLE), 191719fdb6eSVarun Wadekar mc_make_sec_cfg(UFSHCR, NON_SECURE, OVERRIDE, ENABLE), 192719fdb6eSVarun Wadekar mc_make_sec_cfg(UFSHCW, NON_SECURE, OVERRIDE, ENABLE), 193719fdb6eSVarun Wadekar mc_make_sec_cfg(NVDISPLAYR, NON_SECURE, OVERRIDE, ENABLE), 194719fdb6eSVarun Wadekar mc_make_sec_cfg(BPMPR, NON_SECURE, NO_OVERRIDE, ENABLE), 195719fdb6eSVarun Wadekar mc_make_sec_cfg(BPMPW, NON_SECURE, NO_OVERRIDE, ENABLE), 196719fdb6eSVarun Wadekar mc_make_sec_cfg(BPMPDMAR, NON_SECURE, NO_OVERRIDE, ENABLE), 197719fdb6eSVarun Wadekar mc_make_sec_cfg(BPMPDMAW, NON_SECURE, NO_OVERRIDE, ENABLE), 198719fdb6eSVarun Wadekar mc_make_sec_cfg(AONR, NON_SECURE, NO_OVERRIDE, ENABLE), 199719fdb6eSVarun Wadekar mc_make_sec_cfg(AONW, NON_SECURE, NO_OVERRIDE, ENABLE), 200719fdb6eSVarun Wadekar mc_make_sec_cfg(AONDMAR, NON_SECURE, NO_OVERRIDE, ENABLE), 201719fdb6eSVarun Wadekar mc_make_sec_cfg(AONDMAW, NON_SECURE, NO_OVERRIDE, ENABLE), 202719fdb6eSVarun Wadekar mc_make_sec_cfg(SCER, NON_SECURE, NO_OVERRIDE, ENABLE), 203719fdb6eSVarun Wadekar mc_make_sec_cfg(SCEW, NON_SECURE, NO_OVERRIDE, ENABLE), 204719fdb6eSVarun Wadekar mc_make_sec_cfg(SCEDMAR, NON_SECURE, NO_OVERRIDE, ENABLE), 205719fdb6eSVarun Wadekar mc_make_sec_cfg(SCEDMAW, NON_SECURE, NO_OVERRIDE, ENABLE), 206719fdb6eSVarun Wadekar mc_make_sec_cfg(APEDMAR, NON_SECURE, NO_OVERRIDE, ENABLE), 207719fdb6eSVarun Wadekar mc_make_sec_cfg(APEDMAW, NON_SECURE, NO_OVERRIDE, ENABLE), 208719fdb6eSVarun Wadekar mc_make_sec_cfg(NVDISPLAYR1, NON_SECURE, OVERRIDE, ENABLE), 209719fdb6eSVarun Wadekar mc_make_sec_cfg(VICSRD1, NON_SECURE, NO_OVERRIDE, ENABLE), 210719fdb6eSVarun Wadekar mc_make_sec_cfg(NVDECSRD1, NON_SECURE, NO_OVERRIDE, ENABLE), 211719fdb6eSVarun Wadekar mc_make_sec_cfg(VIFALR, NON_SECURE, NO_OVERRIDE, ENABLE), 212719fdb6eSVarun Wadekar mc_make_sec_cfg(VIFALW, NON_SECURE, NO_OVERRIDE, ENABLE), 213719fdb6eSVarun Wadekar mc_make_sec_cfg(DLA0RDA, NON_SECURE, NO_OVERRIDE, ENABLE), 214719fdb6eSVarun Wadekar mc_make_sec_cfg(DLA0FALRDB, NON_SECURE, NO_OVERRIDE, ENABLE), 215719fdb6eSVarun Wadekar mc_make_sec_cfg(DLA0WRA, NON_SECURE, NO_OVERRIDE, ENABLE), 216719fdb6eSVarun Wadekar mc_make_sec_cfg(DLA0FALWRB, NON_SECURE, NO_OVERRIDE, ENABLE), 217719fdb6eSVarun Wadekar mc_make_sec_cfg(DLA1RDA, NON_SECURE, NO_OVERRIDE, ENABLE), 218719fdb6eSVarun Wadekar mc_make_sec_cfg(DLA1FALRDB, NON_SECURE, NO_OVERRIDE, ENABLE), 219719fdb6eSVarun Wadekar mc_make_sec_cfg(DLA1WRA, NON_SECURE, NO_OVERRIDE, ENABLE), 220719fdb6eSVarun Wadekar mc_make_sec_cfg(DLA1FALWRB, NON_SECURE, NO_OVERRIDE, ENABLE), 221719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA0RDA, NON_SECURE, NO_OVERRIDE, ENABLE), 222719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA0RDB, NON_SECURE, NO_OVERRIDE, ENABLE), 223719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA0RDC, NON_SECURE, NO_OVERRIDE, ENABLE), 224719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA0WRA, NON_SECURE, NO_OVERRIDE, ENABLE), 225719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA0WRB, NON_SECURE, NO_OVERRIDE, ENABLE), 226719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA0WRC, NON_SECURE, NO_OVERRIDE, ENABLE), 227719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA1RDA, NON_SECURE, NO_OVERRIDE, ENABLE), 228719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA1RDB, NON_SECURE, NO_OVERRIDE, ENABLE), 229719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA1RDC, NON_SECURE, NO_OVERRIDE, ENABLE), 230719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA1WRA, NON_SECURE, NO_OVERRIDE, ENABLE), 231719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA1WRB, NON_SECURE, NO_OVERRIDE, ENABLE), 232719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA1WRC, NON_SECURE, NO_OVERRIDE, ENABLE), 233719fdb6eSVarun Wadekar mc_make_sec_cfg(RCER, NON_SECURE, NO_OVERRIDE, ENABLE), 234719fdb6eSVarun Wadekar mc_make_sec_cfg(RCEW, NON_SECURE, NO_OVERRIDE, ENABLE), 235719fdb6eSVarun Wadekar mc_make_sec_cfg(RCEDMAR, NON_SECURE, NO_OVERRIDE, ENABLE), 236719fdb6eSVarun Wadekar mc_make_sec_cfg(RCEDMAW, NON_SECURE, NO_OVERRIDE, ENABLE), 237719fdb6eSVarun Wadekar mc_make_sec_cfg(NVENC1SRD, NON_SECURE, NO_OVERRIDE, ENABLE), 238719fdb6eSVarun Wadekar mc_make_sec_cfg(NVENC1SWR, NON_SECURE, NO_OVERRIDE, ENABLE), 239719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE0R, NON_SECURE, OVERRIDE, ENABLE), 240719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE0W, NON_SECURE, OVERRIDE, ENABLE), 241719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE1R, NON_SECURE, OVERRIDE, ENABLE), 242719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE1W, NON_SECURE, OVERRIDE, ENABLE), 243719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE2AR, NON_SECURE, OVERRIDE, ENABLE), 244719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE2AW, NON_SECURE, OVERRIDE, ENABLE), 245719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE3R, NON_SECURE, OVERRIDE, ENABLE), 246719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE3W, NON_SECURE, OVERRIDE, ENABLE), 247719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE4R, NON_SECURE, OVERRIDE, ENABLE), 248719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE4W, NON_SECURE, OVERRIDE, ENABLE), 249719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE5R, NON_SECURE, OVERRIDE, ENABLE), 250719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE5W, NON_SECURE, OVERRIDE, ENABLE), 251719fdb6eSVarun Wadekar mc_make_sec_cfg(ISPFALW, NON_SECURE, NO_OVERRIDE, ENABLE), 252719fdb6eSVarun Wadekar mc_make_sec_cfg(DLA0RDA1, NON_SECURE, NO_OVERRIDE, ENABLE), 253719fdb6eSVarun Wadekar mc_make_sec_cfg(DLA1RDA1, NON_SECURE, NO_OVERRIDE, ENABLE), 254719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA0RDA1, NON_SECURE, NO_OVERRIDE, ENABLE), 255719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA0RDB1, NON_SECURE, NO_OVERRIDE, ENABLE), 256719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA1RDA1, NON_SECURE, NO_OVERRIDE, ENABLE), 257719fdb6eSVarun Wadekar mc_make_sec_cfg(PVA1RDB1, NON_SECURE, NO_OVERRIDE, ENABLE), 258719fdb6eSVarun Wadekar mc_make_sec_cfg(PCIE5R1, NON_SECURE, OVERRIDE, ENABLE), 259719fdb6eSVarun Wadekar mc_make_sec_cfg(NVENCSRD1, NON_SECURE, NO_OVERRIDE, ENABLE), 260719fdb6eSVarun Wadekar mc_make_sec_cfg(NVENC1SRD1, NON_SECURE, NO_OVERRIDE, ENABLE), 261719fdb6eSVarun Wadekar mc_make_sec_cfg(ISPRA1, NON_SECURE, NO_OVERRIDE, ENABLE), 262719fdb6eSVarun Wadekar mc_make_sec_cfg(MIU0R, NON_SECURE, OVERRIDE, ENABLE), 263719fdb6eSVarun Wadekar mc_make_sec_cfg(MIU0W, NON_SECURE, OVERRIDE, ENABLE), 264719fdb6eSVarun Wadekar mc_make_sec_cfg(MIU1R, NON_SECURE, OVERRIDE, ENABLE), 265719fdb6eSVarun Wadekar mc_make_sec_cfg(MIU1W, NON_SECURE, OVERRIDE, ENABLE), 266719fdb6eSVarun Wadekar mc_make_sec_cfg(MIU2R, NON_SECURE, OVERRIDE, ENABLE), 267719fdb6eSVarun Wadekar mc_make_sec_cfg(MIU2W, NON_SECURE, OVERRIDE, ENABLE), 268719fdb6eSVarun Wadekar mc_make_sec_cfg(MIU3R, NON_SECURE, OVERRIDE, ENABLE), 269719fdb6eSVarun Wadekar mc_make_sec_cfg(MIU3W, NON_SECURE, OVERRIDE, ENABLE), 270719fdb6eSVarun Wadekar }; 271719fdb6eSVarun Wadekar 272719fdb6eSVarun Wadekar /******************************************************************************* 273719fdb6eSVarun Wadekar * Array to hold the transaction override configs 274719fdb6eSVarun Wadekar ******************************************************************************/ 275719fdb6eSVarun Wadekar const static mc_txn_override_cfg_t tegra194_txn_override_cfgs[] = { 276719fdb6eSVarun Wadekar mc_make_txn_override_cfg(NVENCSWR, CGID_TAG_ADR), 277719fdb6eSVarun Wadekar mc_make_txn_override_cfg(HDAW, CGID_TAG_ADR), 278719fdb6eSVarun Wadekar mc_make_txn_override_cfg(SATAW, CGID_TAG_ADR), 279719fdb6eSVarun Wadekar mc_make_txn_override_cfg(ISPWB, CGID_TAG_ADR), 280719fdb6eSVarun Wadekar mc_make_txn_override_cfg(XUSB_HOSTW, CGID_TAG_ADR), 281719fdb6eSVarun Wadekar mc_make_txn_override_cfg(XUSB_DEVW, CGID_TAG_ADR), 282719fdb6eSVarun Wadekar mc_make_txn_override_cfg(TSECSWR, CGID_TAG_ADR), 283719fdb6eSVarun Wadekar mc_make_txn_override_cfg(SDMMCWA, CGID_TAG_ADR), 284719fdb6eSVarun Wadekar mc_make_txn_override_cfg(SDMMCW, CGID_TAG_ADR), 285719fdb6eSVarun Wadekar mc_make_txn_override_cfg(SDMMCWAB, CGID_TAG_ADR), 286719fdb6eSVarun Wadekar mc_make_txn_override_cfg(VICSWR, CGID_TAG_ADR), 287719fdb6eSVarun Wadekar mc_make_txn_override_cfg(NVDECSWR, CGID_TAG_ADR), 288719fdb6eSVarun Wadekar mc_make_txn_override_cfg(APEW, CGID_TAG_ADR), 289719fdb6eSVarun Wadekar mc_make_txn_override_cfg(NVJPGSWR, CGID_TAG_ADR), 290719fdb6eSVarun Wadekar mc_make_txn_override_cfg(SESWR, CGID_TAG_ADR), 291719fdb6eSVarun Wadekar mc_make_txn_override_cfg(ETRW, CGID_TAG_ADR), 292719fdb6eSVarun Wadekar mc_make_txn_override_cfg(TSECSWRB, CGID_TAG_ADR), 293719fdb6eSVarun Wadekar mc_make_txn_override_cfg(AXISW, CGID_TAG_ADR), 294719fdb6eSVarun Wadekar mc_make_txn_override_cfg(EQOSW, CGID_TAG_ADR), 295719fdb6eSVarun Wadekar mc_make_txn_override_cfg(UFSHCW, CGID_TAG_ADR), 296719fdb6eSVarun Wadekar mc_make_txn_override_cfg(BPMPW, CGID_TAG_ADR), 297719fdb6eSVarun Wadekar mc_make_txn_override_cfg(BPMPDMAW, CGID_TAG_ADR), 298719fdb6eSVarun Wadekar mc_make_txn_override_cfg(AONW, CGID_TAG_ADR), 299719fdb6eSVarun Wadekar mc_make_txn_override_cfg(AONDMAW, CGID_TAG_ADR), 300719fdb6eSVarun Wadekar mc_make_txn_override_cfg(SCEW, CGID_TAG_ADR), 301719fdb6eSVarun Wadekar mc_make_txn_override_cfg(SCEDMAW, CGID_TAG_ADR), 302719fdb6eSVarun Wadekar }; 303719fdb6eSVarun Wadekar 304*f32e8525SVarun Wadekar /* To be called by common memctrl_v2.c */ 305*f32e8525SVarun Wadekar static void tegra194_memctrl_reconfig_mss_clients(void) 306*f32e8525SVarun Wadekar { 307*f32e8525SVarun Wadekar uint32_t reg_val, wdata_0, wdata_1, wdata_2; 308*f32e8525SVarun Wadekar 309*f32e8525SVarun Wadekar wdata_0 = MC_CLIENT_HOTRESET_CTRL0_HC_FLUSH_ENB | 310*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL0_SATA_FLUSH_ENB | 311*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL0_VIC_FLUSH_ENB | 312*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL0_XUSB_HOST_FLUSH_ENB | 313*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL0_XUSB_DEV_FLUSH_ENB | 314*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL0_TSEC_FLUSH_ENB | 315*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL0_SDMMC3A_FLUSH_ENB; 316*f32e8525SVarun Wadekar if (tegra_platform_is_silicon()) { 317*f32e8525SVarun Wadekar wdata_0 |= MC_CLIENT_HOTRESET_CTRL0_SDMMC1A_FLUSH_ENB; 318*f32e8525SVarun Wadekar } 319*f32e8525SVarun Wadekar 320*f32e8525SVarun Wadekar tegra_mc_write_32(MC_CLIENT_HOTRESET_CTRL0, wdata_0); 321*f32e8525SVarun Wadekar 322*f32e8525SVarun Wadekar /* Wait for HOTRESET STATUS to indicate FLUSH_DONE */ 323*f32e8525SVarun Wadekar do { 324*f32e8525SVarun Wadekar reg_val = tegra_mc_read_32(MC_CLIENT_HOTRESET_STATUS0); 325*f32e8525SVarun Wadekar } while ((reg_val & wdata_0) != wdata_0); 326*f32e8525SVarun Wadekar 327*f32e8525SVarun Wadekar wdata_1 = MC_CLIENT_HOTRESET_CTRL1_SDMMC4A_FLUSH_ENB | 328*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_SE_FLUSH_ENB | 329*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_ETR_FLUSH_ENB | 330*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_TSECB_FLUSH_ENB| 331*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_AXIS_FLUSH_ENB | 332*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_UFSHC_FLUSH_ENB | 333*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_NVDISPLAY_FLUSH_ENB | 334*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_BPMP_FLUSH_ENB | 335*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_AON_FLUSH_ENB | 336*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_SCE_FLUSH_ENB | 337*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_VIFAL_FLUSH_ENB; 338*f32e8525SVarun Wadekar if (tegra_platform_is_silicon()) { 339*f32e8525SVarun Wadekar wdata_1 |= MC_CLIENT_HOTRESET_CTRL1_APE_FLUSH_ENB | 340*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_EQOS_FLUSH_ENB | 341*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL1_RCE_FLUSH_ENB; 342*f32e8525SVarun Wadekar } 343*f32e8525SVarun Wadekar tegra_mc_write_32(MC_CLIENT_HOTRESET_CTRL1, wdata_1); 344*f32e8525SVarun Wadekar /* Wait for HOTRESET STATUS to indicate FLUSH_DONE */ 345*f32e8525SVarun Wadekar do { 346*f32e8525SVarun Wadekar reg_val = tegra_mc_read_32(MC_CLIENT_HOTRESET_STATUS1); 347*f32e8525SVarun Wadekar } while ((reg_val & wdata_1) != wdata_1); 348*f32e8525SVarun Wadekar 349*f32e8525SVarun Wadekar wdata_2 = MC_CLIENT_HOTRESET_CTRL2_PCIE_FLUSH_ENB | 350*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL2_AONDMA_FLUSH_ENB | 351*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL2_BPMPDMA_FLUSH_ENB | 352*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL2_SCEDMA_FLUSH_ENB; 353*f32e8525SVarun Wadekar if (tegra_platform_is_silicon()) { 354*f32e8525SVarun Wadekar wdata_2 |= MC_CLIENT_HOTRESET_CTRL2_RCEDMA_FLUSH_ENB | 355*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL2_PCIE_FLUSH_ENB | 356*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL2_PCIE5A_FLUSH_ENB | 357*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL2_PCIE3A_FLUSH_ENB | 358*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL2_PCIE3_FLUSH_ENB | 359*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL2_PCIE0A_FLUSH_ENB | 360*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL2_PCIE0A2_FLUSH_ENB | 361*f32e8525SVarun Wadekar MC_CLIENT_HOTRESET_CTRL2_PCIE4A_FLUSH_ENB; 362*f32e8525SVarun Wadekar } 363*f32e8525SVarun Wadekar tegra_mc_write_32(MC_CLIENT_HOTRESET_CTRL2, wdata_2); 364*f32e8525SVarun Wadekar /* Wait for HOTRESET STATUS to indicate FLUSH_DONE */ 365*f32e8525SVarun Wadekar do { 366*f32e8525SVarun Wadekar reg_val = tegra_mc_read_32(MC_CLIENT_HOTRESET_STATUS2); 367*f32e8525SVarun Wadekar } while ((reg_val & wdata_2) != wdata_2); 368*f32e8525SVarun Wadekar 369*f32e8525SVarun Wadekar /* 370*f32e8525SVarun Wadekar * Change MEMTYPE_OVERRIDE from SO_DEV -> PASSTHRU for boot and 371*f32e8525SVarun Wadekar * strongly ordered MSS clients. 372*f32e8525SVarun Wadekar * 373*f32e8525SVarun Wadekar * MC clients with default SO_DEV override still enabled at TSA: 374*f32e8525SVarun Wadekar * EQOSW, SATAW, XUSB_DEVW, XUSB_HOSTW, PCIe0w, PCIe1w, PCIe2w, 375*f32e8525SVarun Wadekar * PCIe3w, PCIe4w and PCIe5w. 376*f32e8525SVarun Wadekar */ 377*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(AONDMAW); 378*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(AONW); 379*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(APEDMAW); 380*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(APEW); 381*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(AXISW); 382*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(BPMPDMAW); 383*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(BPMPW); 384*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(ETRW); 385*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(SCEDMAW); 386*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(RCEDMAW); 387*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(RCEW); 388*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(SDMMCW); 389*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(SDMMCWA); 390*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(SDMMCWAB); 391*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(SESWR); 392*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(TSECSWR); 393*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(TSECSWRB); 394*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(UFSHCW); 395*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(VICSWR); 396*f32e8525SVarun Wadekar mc_set_tsa_w_passthrough(VIFALW); 397*f32e8525SVarun Wadekar 398*f32e8525SVarun Wadekar /* Ordered MC Clients on Xavier are EQOS, SATA, XUSB, PCIe1 and PCIe3 399*f32e8525SVarun Wadekar * ISO clients(DISP, VI, EQOS) should never snoop caches and 400*f32e8525SVarun Wadekar * don't need ROC/PCFIFO ordering. 401*f32e8525SVarun Wadekar * ISO clients(EQOS) that need ordering should use PCFIFO ordering 402*f32e8525SVarun Wadekar * and bypass ROC ordering by using FORCE_NON_COHERENT path. 403*f32e8525SVarun Wadekar * FORCE_NON_COHERENT/FORCE_COHERENT config take precedence 404*f32e8525SVarun Wadekar * over SMMU attributes. 405*f32e8525SVarun Wadekar * Force all Normal memory transactions from ISO and non-ISO to be 406*f32e8525SVarun Wadekar * non-coherent(bypass ROC, avoid cache snoop to avoid perf hit). 407*f32e8525SVarun Wadekar * Force the SO_DEV transactions from ordered ISO clients(EQOS) to 408*f32e8525SVarun Wadekar * non-coherent path and enable MC PCFIFO interlock for ordering. 409*f32e8525SVarun Wadekar * Force the SO_DEV transactions from ordered non-ISO clients (PCIe, 410*f32e8525SVarun Wadekar * XUSB, SATA) to coherent so that the transactions are 411*f32e8525SVarun Wadekar * ordered by ROC. 412*f32e8525SVarun Wadekar * PCFIFO ensure write ordering. 413*f32e8525SVarun Wadekar * Read after Write ordering is maintained/enforced by MC clients. 414*f32e8525SVarun Wadekar * Clients that need PCIe type write ordering must 415*f32e8525SVarun Wadekar * go through ROC ordering. 416*f32e8525SVarun Wadekar * Ordering enable for Read clients is not necessary. 417*f32e8525SVarun Wadekar * R5's and A9 would get necessary ordering from AXI and 418*f32e8525SVarun Wadekar * don't need ROC ordering enable: 419*f32e8525SVarun Wadekar * - MMIO ordering is through dev mapping and MMIO 420*f32e8525SVarun Wadekar * accesses bypass SMMU. 421*f32e8525SVarun Wadekar * - Normal memory is accessed through SMMU and ordering is 422*f32e8525SVarun Wadekar * ensured by client and AXI. 423*f32e8525SVarun Wadekar * - Ack point for Normal memory is WCAM in MC. 424*f32e8525SVarun Wadekar * - MMIO's can be early acked and AXI ensures dev memory ordering, 425*f32e8525SVarun Wadekar * Client ensures read/write direction change ordering. 426*f32e8525SVarun Wadekar * - See Bug 200312466 for more details. 427*f32e8525SVarun Wadekar * 428*f32e8525SVarun Wadekar * CGID_TAG_ADR is only present from T186 A02. As this code is common 429*f32e8525SVarun Wadekar * between A01 and A02, tegra_memctrl_set_overrides() programs 430*f32e8525SVarun Wadekar * CGID_TAG_ADR for the necessary clients on A02. 431*f32e8525SVarun Wadekar */ 432*f32e8525SVarun Wadekar mc_set_txn_override(AONDMAR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 433*f32e8525SVarun Wadekar mc_set_txn_override(AONDMAW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 434*f32e8525SVarun Wadekar mc_set_txn_override(AONR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 435*f32e8525SVarun Wadekar mc_set_txn_override(AONW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 436*f32e8525SVarun Wadekar mc_set_txn_override(APEDMAR, CGID_TAG_CLIENT_AXI_ID, SO_DEV_CLIENT_AXI_ID, NO_OVERRIDE, NO_OVERRIDE); 437*f32e8525SVarun Wadekar mc_set_txn_override(APEDMAW, CGID_TAG_CLIENT_AXI_ID, SO_DEV_CLIENT_AXI_ID, NO_OVERRIDE, NO_OVERRIDE); 438*f32e8525SVarun Wadekar mc_set_txn_override(APER, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 439*f32e8525SVarun Wadekar mc_set_txn_override(APEW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 440*f32e8525SVarun Wadekar mc_set_txn_override(AXISR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 441*f32e8525SVarun Wadekar mc_set_txn_override(AXISW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 442*f32e8525SVarun Wadekar mc_set_txn_override(BPMPDMAR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 443*f32e8525SVarun Wadekar mc_set_txn_override(BPMPDMAW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 444*f32e8525SVarun Wadekar mc_set_txn_override(BPMPR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 445*f32e8525SVarun Wadekar mc_set_txn_override(BPMPW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 446*f32e8525SVarun Wadekar mc_set_txn_override(EQOSR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 447*f32e8525SVarun Wadekar mc_set_txn_override(EQOSW, CGID_TAG_DEFAULT, SO_DEV_ZERO, FORCE_NON_COHERENT, FORCE_NON_COHERENT); 448*f32e8525SVarun Wadekar mc_set_txn_override(ETRR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 449*f32e8525SVarun Wadekar mc_set_txn_override(ETRW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 450*f32e8525SVarun Wadekar mc_set_txn_override(HOST1XDMAR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 451*f32e8525SVarun Wadekar mc_set_txn_override(MPCORER, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 452*f32e8525SVarun Wadekar mc_set_txn_override(MPCOREW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 453*f32e8525SVarun Wadekar mc_set_txn_override(NVDISPLAYR, CGID_TAG_DEFAULT, SO_DEV_ZERO, FORCE_NON_COHERENT, FORCE_NON_COHERENT); 454*f32e8525SVarun Wadekar mc_set_txn_override(PTCR, CGID_TAG_DEFAULT, SO_DEV_ZERO, FORCE_NON_COHERENT, FORCE_NON_COHERENT); 455*f32e8525SVarun Wadekar mc_set_txn_override(SATAR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 456*f32e8525SVarun Wadekar mc_set_txn_override(SATAW, CGID_TAG_DEFAULT, SO_DEV_ZERO, FORCE_NON_COHERENT, FORCE_COHERENT_SNOOP); 457*f32e8525SVarun Wadekar mc_set_txn_override(SCEDMAR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 458*f32e8525SVarun Wadekar mc_set_txn_override(SCEDMAW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 459*f32e8525SVarun Wadekar mc_set_txn_override(SCER, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 460*f32e8525SVarun Wadekar mc_set_txn_override(SCEW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 461*f32e8525SVarun Wadekar mc_set_txn_override(RCEDMAR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 462*f32e8525SVarun Wadekar mc_set_txn_override(RCEDMAW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 463*f32e8525SVarun Wadekar mc_set_txn_override(RCER, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 464*f32e8525SVarun Wadekar mc_set_txn_override(RCEW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 465*f32e8525SVarun Wadekar mc_set_txn_override(SDMMCR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 466*f32e8525SVarun Wadekar mc_set_txn_override(SDMMCRAB, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 467*f32e8525SVarun Wadekar mc_set_txn_override(SDMMCRA, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 468*f32e8525SVarun Wadekar mc_set_txn_override(SDMMCW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 469*f32e8525SVarun Wadekar mc_set_txn_override(SDMMCWA, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 470*f32e8525SVarun Wadekar mc_set_txn_override(SDMMCWAB, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 471*f32e8525SVarun Wadekar mc_set_txn_override(SESRD, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 472*f32e8525SVarun Wadekar mc_set_txn_override(SESWR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 473*f32e8525SVarun Wadekar mc_set_txn_override(TSECSRD, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 474*f32e8525SVarun Wadekar mc_set_txn_override(TSECSRDB, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 475*f32e8525SVarun Wadekar mc_set_txn_override(TSECSWR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 476*f32e8525SVarun Wadekar mc_set_txn_override(TSECSWRB, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 477*f32e8525SVarun Wadekar mc_set_txn_override(UFSHCR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 478*f32e8525SVarun Wadekar mc_set_txn_override(UFSHCW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 479*f32e8525SVarun Wadekar mc_set_txn_override(VICSRD, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 480*f32e8525SVarun Wadekar mc_set_txn_override(VICSRD1, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 481*f32e8525SVarun Wadekar mc_set_txn_override(VICSWR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 482*f32e8525SVarun Wadekar mc_set_txn_override(VIFALR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 483*f32e8525SVarun Wadekar mc_set_txn_override(VIFALW, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 484*f32e8525SVarun Wadekar mc_set_txn_override(XUSB_DEVR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 485*f32e8525SVarun Wadekar mc_set_txn_override(XUSB_DEVW, CGID_TAG_DEFAULT, SO_DEV_ZERO, FORCE_NON_COHERENT, 486*f32e8525SVarun Wadekar FORCE_COHERENT_SNOOP); 487*f32e8525SVarun Wadekar mc_set_txn_override(XUSB_HOSTR, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 488*f32e8525SVarun Wadekar mc_set_txn_override(XUSB_HOSTW, CGID_TAG_DEFAULT, SO_DEV_ZERO, FORCE_NON_COHERENT, 489*f32e8525SVarun Wadekar FORCE_COHERENT_SNOOP); 490*f32e8525SVarun Wadekar mc_set_txn_override(PCIE0R, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 491*f32e8525SVarun Wadekar mc_set_txn_override(PCIE0R1, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 492*f32e8525SVarun Wadekar mc_set_txn_override(PCIE0W, CGID_TAG_DEFAULT, SO_DEV_ZERO, FORCE_NON_COHERENT, 493*f32e8525SVarun Wadekar FORCE_COHERENT_SNOOP); 494*f32e8525SVarun Wadekar mc_set_txn_override(PCIE1R, CGID_TAG_DEFAULT, SO_DEV_ZERO, NO_OVERRIDE, NO_OVERRIDE); 495*f32e8525SVarun Wadekar mc_set_txn_override(PCIE1W, CGID_TAG_DEFAULT, SO_DEV_ZERO, FORCE_NON_COHERENT, 496*f32e8525SVarun Wadekar FORCE_COHERENT_SNOOP); 497*f32e8525SVarun Wadekar if (tegra_platform_is_silicon()) { 498*f32e8525SVarun Wadekar mc_set_txn_override(PCIE2AR, CGID_TAG_DEFAULT, SO_DEV_ZERO, 499*f32e8525SVarun Wadekar NO_OVERRIDE, NO_OVERRIDE); 500*f32e8525SVarun Wadekar mc_set_txn_override(PCIE2AW, CGID_TAG_DEFAULT, SO_DEV_ZERO, 501*f32e8525SVarun Wadekar FORCE_NON_COHERENT, FORCE_COHERENT_SNOOP); 502*f32e8525SVarun Wadekar mc_set_txn_override(PCIE3R, CGID_TAG_DEFAULT, SO_DEV_ZERO, 503*f32e8525SVarun Wadekar NO_OVERRIDE, NO_OVERRIDE); 504*f32e8525SVarun Wadekar mc_set_txn_override(PCIE3W, CGID_TAG_DEFAULT, SO_DEV_ZERO, 505*f32e8525SVarun Wadekar FORCE_NON_COHERENT, FORCE_COHERENT_SNOOP); 506*f32e8525SVarun Wadekar mc_set_txn_override(PCIE4R, CGID_TAG_DEFAULT, SO_DEV_ZERO, 507*f32e8525SVarun Wadekar NO_OVERRIDE, NO_OVERRIDE); 508*f32e8525SVarun Wadekar mc_set_txn_override(PCIE4W, CGID_TAG_DEFAULT, SO_DEV_ZERO, 509*f32e8525SVarun Wadekar FORCE_NON_COHERENT, FORCE_COHERENT_SNOOP); 510*f32e8525SVarun Wadekar mc_set_txn_override(PCIE5R, CGID_TAG_DEFAULT, SO_DEV_ZERO, 511*f32e8525SVarun Wadekar NO_OVERRIDE, NO_OVERRIDE); 512*f32e8525SVarun Wadekar mc_set_txn_override(PCIE5W, CGID_TAG_DEFAULT, SO_DEV_ZERO, 513*f32e8525SVarun Wadekar FORCE_NON_COHERENT, FORCE_COHERENT_SNOOP); 514*f32e8525SVarun Wadekar mc_set_txn_override(PCIE5R1, CGID_TAG_DEFAULT, SO_DEV_ZERO, 515*f32e8525SVarun Wadekar NO_OVERRIDE, NO_OVERRIDE); 516*f32e8525SVarun Wadekar } 517*f32e8525SVarun Wadekar /* 518*f32e8525SVarun Wadekar * At this point, ordering can occur at ROC. So, remove PCFIFO's 519*f32e8525SVarun Wadekar * control over ordering requests. 520*f32e8525SVarun Wadekar * 521*f32e8525SVarun Wadekar * Change PCFIFO_*_ORDERED_CLIENT from ORDERED -> UNORDERED for 522*f32e8525SVarun Wadekar * boot and strongly ordered MSS clients 523*f32e8525SVarun Wadekar */ 524*f32e8525SVarun Wadekar /* SATAW is ordered client */ 525*f32e8525SVarun Wadekar reg_val = MC_PCFIFO_CLIENT_CONFIG1_RESET_VAL | 526*f32e8525SVarun Wadekar mc_set_pcfifo_ordered_boot_so_mss(1, SATAW); 527*f32e8525SVarun Wadekar tegra_mc_write_32(MC_PCFIFO_CLIENT_CONFIG1, reg_val); 528*f32e8525SVarun Wadekar 529*f32e8525SVarun Wadekar reg_val = MC_PCFIFO_CLIENT_CONFIG2_RESET_VAL & 530*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(2, XUSB_HOSTW) & 531*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(2, TSECSWR); 532*f32e8525SVarun Wadekar /* XUSB_DEVW has PCFIFO enabled. */ 533*f32e8525SVarun Wadekar reg_val |= mc_set_pcfifo_ordered_boot_so_mss(2, XUSB_DEVW); 534*f32e8525SVarun Wadekar tegra_mc_write_32(MC_PCFIFO_CLIENT_CONFIG2, reg_val); 535*f32e8525SVarun Wadekar 536*f32e8525SVarun Wadekar reg_val = MC_PCFIFO_CLIENT_CONFIG3_RESET_VAL & 537*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(3, SDMMCWA) & 538*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(3, SDMMCW) & 539*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(3, SDMMCWAB) & 540*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(3, VICSWR) & 541*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(3, APEW); 542*f32e8525SVarun Wadekar tegra_mc_write_32(MC_PCFIFO_CLIENT_CONFIG3, reg_val); 543*f32e8525SVarun Wadekar 544*f32e8525SVarun Wadekar reg_val = MC_PCFIFO_CLIENT_CONFIG4_RESET_VAL & 545*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(4, SESWR) & 546*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(4, ETRW) & 547*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(4, TSECSWRB) & 548*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(4, AXISW) & 549*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(4, UFSHCW) & 550*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(4, BPMPW) & 551*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(4, BPMPDMAW) & 552*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(4, AONW) & 553*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(4, AONDMAW) & 554*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(4, SCEW) & 555*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(4, SCEDMAW); 556*f32e8525SVarun Wadekar /* EQOSW has PCFIFO order enabled. */ 557*f32e8525SVarun Wadekar reg_val |= mc_set_pcfifo_ordered_boot_so_mss(4, EQOSW); 558*f32e8525SVarun Wadekar tegra_mc_write_32(MC_PCFIFO_CLIENT_CONFIG4, reg_val); 559*f32e8525SVarun Wadekar 560*f32e8525SVarun Wadekar reg_val = MC_PCFIFO_CLIENT_CONFIG5_RESET_VAL & 561*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(5, APEDMAW) & 562*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(5, VIFALW); 563*f32e8525SVarun Wadekar tegra_mc_write_32(MC_PCFIFO_CLIENT_CONFIG5, reg_val); 564*f32e8525SVarun Wadekar 565*f32e8525SVarun Wadekar reg_val = MC_PCFIFO_CLIENT_CONFIG6_RESET_VAL & 566*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(6, RCEW) & 567*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(6, RCEDMAW) & 568*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(6, PCIE0W); 569*f32e8525SVarun Wadekar /* PCIE1, PCIE2 and PCI3 has PCFIFO enabled. */ 570*f32e8525SVarun Wadekar reg_val |= mc_set_pcfifo_ordered_boot_so_mss(6, PCIE1W) | 571*f32e8525SVarun Wadekar mc_set_pcfifo_ordered_boot_so_mss(6, PCIE2W) | 572*f32e8525SVarun Wadekar mc_set_pcfifo_ordered_boot_so_mss(6, PCIE3W); 573*f32e8525SVarun Wadekar tegra_mc_write_32(MC_PCFIFO_CLIENT_CONFIG6, reg_val); 574*f32e8525SVarun Wadekar 575*f32e8525SVarun Wadekar reg_val = MC_PCFIFO_CLIENT_CONFIG7_RESET_VAL & 576*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(7, PCIE4W) & 577*f32e8525SVarun Wadekar mc_set_pcfifo_unordered_boot_so_mss(7, PCIE5W); 578*f32e8525SVarun Wadekar tegra_mc_write_32(MC_PCFIFO_CLIENT_CONFIG7, reg_val); 579*f32e8525SVarun Wadekar 580*f32e8525SVarun Wadekar /* Set Order Id only for the clients having non zero order id */ 581*f32e8525SVarun Wadekar reg_val = MC_CLIENT_ORDER_ID_9_RESET_VAL & 582*f32e8525SVarun Wadekar mc_client_order_id(9, XUSB_HOSTW); 583*f32e8525SVarun Wadekar tegra_mc_write_32(MC_CLIENT_ORDER_ID_9, reg_val); 584*f32e8525SVarun Wadekar 585*f32e8525SVarun Wadekar reg_val = MC_CLIENT_ORDER_ID_27_RESET_VAL & 586*f32e8525SVarun Wadekar mc_client_order_id(27, PCIE0W); 587*f32e8525SVarun Wadekar tegra_mc_write_32(MC_CLIENT_ORDER_ID_27, reg_val); 588*f32e8525SVarun Wadekar 589*f32e8525SVarun Wadekar reg_val = MC_CLIENT_ORDER_ID_28_RESET_VAL & 590*f32e8525SVarun Wadekar mc_client_order_id(28, PCIE4W) & 591*f32e8525SVarun Wadekar mc_client_order_id(28, PCIE5W); 592*f32e8525SVarun Wadekar tegra_mc_write_32(MC_CLIENT_ORDER_ID_28, reg_val); 593*f32e8525SVarun Wadekar 594*f32e8525SVarun Wadekar /* Set VC Id only for the clients having different reset values */ 595*f32e8525SVarun Wadekar reg_val = MC_HUB_PC_VC_ID_0_RESET_VAL & 596*f32e8525SVarun Wadekar /* 597*f32e8525SVarun Wadekar * SDMMCRAB, SDMMCWAB, SESRD, SESWR, TSECSRD,TSECSRDB, 598*f32e8525SVarun Wadekar * TSECSWR and TSECSWRB clients 599*f32e8525SVarun Wadekar */ 600*f32e8525SVarun Wadekar mc_hub_vc_id(0, APB); 601*f32e8525SVarun Wadekar tegra_mc_write_32(MC_HUB_PC_VC_ID_0, reg_val); 602*f32e8525SVarun Wadekar 603*f32e8525SVarun Wadekar reg_val = MC_HUB_PC_VC_ID_2_RESET_VAL & 604*f32e8525SVarun Wadekar /* SDMMCRAB and SDMMCWAB clients */ 605*f32e8525SVarun Wadekar mc_hub_vc_id(2, SD); 606*f32e8525SVarun Wadekar tegra_mc_write_32(MC_HUB_PC_VC_ID_2, reg_val); 607*f32e8525SVarun Wadekar 608*f32e8525SVarun Wadekar reg_val = MC_HUB_PC_VC_ID_4_RESET_VAL & 609*f32e8525SVarun Wadekar /* AXIR and AXIW clients */ 610*f32e8525SVarun Wadekar mc_hub_vc_id(4, NIC); 611*f32e8525SVarun Wadekar tegra_mc_write_32(MC_HUB_PC_VC_ID_4, reg_val); 612*f32e8525SVarun Wadekar 613*f32e8525SVarun Wadekar wdata_0 = MC_CLIENT_HOTRESET_CTRL0_RESET_VAL; 614*f32e8525SVarun Wadekar tegra_mc_write_32(MC_CLIENT_HOTRESET_CTRL0, wdata_0); 615*f32e8525SVarun Wadekar 616*f32e8525SVarun Wadekar wdata_1 = MC_CLIENT_HOTRESET_CTRL1_RESET_VAL; 617*f32e8525SVarun Wadekar tegra_mc_write_32(MC_CLIENT_HOTRESET_CTRL1, wdata_1); 618*f32e8525SVarun Wadekar 619*f32e8525SVarun Wadekar wdata_2 = MC_CLIENT_HOTRESET_CTRL2_RESET_VAL; 620*f32e8525SVarun Wadekar tegra_mc_write_32(MC_CLIENT_HOTRESET_CTRL2, wdata_2); 621*f32e8525SVarun Wadekar } 622*f32e8525SVarun Wadekar 623719fdb6eSVarun Wadekar /******************************************************************************* 624719fdb6eSVarun Wadekar * Struct to hold the memory controller settings 625719fdb6eSVarun Wadekar ******************************************************************************/ 626719fdb6eSVarun Wadekar static tegra_mc_settings_t tegra194_mc_settings = { 627719fdb6eSVarun Wadekar .streamid_override_cfg = tegra194_streamid_override_regs, 628719fdb6eSVarun Wadekar .num_streamid_override_cfgs = ARRAY_SIZE(tegra194_streamid_override_regs), 629719fdb6eSVarun Wadekar .streamid_security_cfg = tegra194_streamid_sec_cfgs, 630719fdb6eSVarun Wadekar .num_streamid_security_cfgs = ARRAY_SIZE(tegra194_streamid_sec_cfgs), 631719fdb6eSVarun Wadekar .txn_override_cfg = tegra194_txn_override_cfgs, 632*f32e8525SVarun Wadekar .num_txn_override_cfgs = ARRAY_SIZE(tegra194_txn_override_cfgs), 633*f32e8525SVarun Wadekar .reconfig_mss_clients = tegra194_memctrl_reconfig_mss_clients 634719fdb6eSVarun Wadekar }; 635719fdb6eSVarun Wadekar 636719fdb6eSVarun Wadekar /******************************************************************************* 637719fdb6eSVarun Wadekar * Handler to return the pointer to the memory controller's settings struct 638719fdb6eSVarun Wadekar ******************************************************************************/ 639719fdb6eSVarun Wadekar tegra_mc_settings_t *tegra_get_mc_settings(void) 640719fdb6eSVarun Wadekar { 641719fdb6eSVarun Wadekar return &tegra194_mc_settings; 642719fdb6eSVarun Wadekar } 643