1412dd5c5SVarun Wadekar /* 2d48c0c45SVarun Wadekar * Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved. 3412dd5c5SVarun Wadekar * 4412dd5c5SVarun Wadekar * Redistribution and use in source and binary forms, with or without 5412dd5c5SVarun Wadekar * modification, are permitted provided that the following conditions are met: 6412dd5c5SVarun Wadekar * 7412dd5c5SVarun Wadekar * Redistributions of source code must retain the above copyright notice, this 8412dd5c5SVarun Wadekar * list of conditions and the following disclaimer. 9412dd5c5SVarun Wadekar * 10412dd5c5SVarun Wadekar * Redistributions in binary form must reproduce the above copyright notice, 11412dd5c5SVarun Wadekar * this list of conditions and the following disclaimer in the documentation 12412dd5c5SVarun Wadekar * and/or other materials provided with the distribution. 13412dd5c5SVarun Wadekar * 14412dd5c5SVarun Wadekar * Neither the name of ARM nor the names of its contributors may be used 15412dd5c5SVarun Wadekar * to endorse or promote products derived from this software without specific 16412dd5c5SVarun Wadekar * prior written permission. 17412dd5c5SVarun Wadekar * 18412dd5c5SVarun Wadekar * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19412dd5c5SVarun Wadekar * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20412dd5c5SVarun Wadekar * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21412dd5c5SVarun Wadekar * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 22412dd5c5SVarun Wadekar * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23412dd5c5SVarun Wadekar * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24412dd5c5SVarun Wadekar * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25412dd5c5SVarun Wadekar * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26412dd5c5SVarun Wadekar * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27412dd5c5SVarun Wadekar * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28412dd5c5SVarun Wadekar * POSSIBILITY OF SUCH DAMAGE. 29412dd5c5SVarun Wadekar */ 30412dd5c5SVarun Wadekar 31412dd5c5SVarun Wadekar #ifndef __MEMCTRLV2_H__ 32412dd5c5SVarun Wadekar #define __MEMCTRLV2_H__ 33412dd5c5SVarun Wadekar 34412dd5c5SVarun Wadekar #include <mmio.h> 35412dd5c5SVarun Wadekar #include <tegra_def.h> 36412dd5c5SVarun Wadekar 37412dd5c5SVarun Wadekar /******************************************************************************* 38412dd5c5SVarun Wadekar * StreamID to indicate no SMMU translations (requests to be steered on the 39412dd5c5SVarun Wadekar * SMMU bypass path) 40412dd5c5SVarun Wadekar ******************************************************************************/ 41412dd5c5SVarun Wadekar #define MC_STREAM_ID_MAX 0x7F 42412dd5c5SVarun Wadekar 43412dd5c5SVarun Wadekar /******************************************************************************* 44412dd5c5SVarun Wadekar * Stream ID Override Config registers 45412dd5c5SVarun Wadekar ******************************************************************************/ 46412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_PTCR 0x0 47412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_AFIR 0x70 48412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_HDAR 0xA8 49412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_HOST1XDMAR 0xB0 50412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_NVENCSRD 0xE0 51412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SATAR 0xF8 52412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_MPCORER 0x138 53412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_NVENCSWR 0x158 54412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_AFIW 0x188 55412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SATAW 0x1E8 56412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_MPCOREW 0x1C8 57412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SATAW 0x1E8 58412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_HDAW 0x1A8 59412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_ISPRA 0x220 60412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_ISPWA 0x230 61412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_ISPWB 0x238 62412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_XUSB_HOSTR 0x250 63412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_XUSB_HOSTW 0x258 64412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_XUSB_DEVR 0x260 65412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_XUSB_DEVW 0x268 66412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_TSECSRD 0x2A0 67412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_TSECSWR 0x2A8 68412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_GPUSRD 0x2C0 69412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_GPUSWR 0x2C8 70412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SDMMCRA 0x300 71412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SDMMCRAA 0x308 72412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SDMMCR 0x310 73412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SDMMCRAB 0x318 74412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SDMMCWA 0x320 75412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SDMMCWAA 0x328 76412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SDMMCW 0x330 77412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SDMMCWAB 0x338 78412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_VICSRD 0x360 79412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_VICSWR 0x368 80412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_VIW 0x390 81412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_NVDECSRD 0x3C0 82412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_NVDECSWR 0x3C8 83412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_APER 0x3D0 84412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_APEW 0x3D8 85412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_NVJPGSRD 0x3F0 86412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_NVJPGSWR 0x3F8 87412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SESRD 0x400 88412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SESWR 0x408 89412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_ETRR 0x420 90412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_ETRW 0x428 91412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_TSECSRDB 0x430 92412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_TSECSWRB 0x438 93412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_GPUSRD2 0x440 94412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_GPUSWR2 0x448 95412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_AXISR 0x460 96412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_AXISW 0x468 97412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_EQOSR 0x470 98412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_EQOSW 0x478 99412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_UFSHCR 0x480 100412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_UFSHCW 0x488 101412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_NVDISPLAYR 0x490 102412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_BPMPR 0x498 103412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_BPMPW 0x4A0 104412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_BPMPDMAR 0x4A8 105412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_BPMPDMAW 0x4B0 106412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_AONR 0x4B8 107412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_AONW 0x4C0 108412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_AONDMAR 0x4C8 109412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_AONDMAW 0x4D0 110412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SCER 0x4D8 111412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SCEW 0x4E0 112412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SCEDMAR 0x4E8 113412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_SCEDMAW 0x4F0 114412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_APEDMAR 0x4F8 115412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_APEDMAW 0x500 116412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_NVDISPLAYR1 0x508 117412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_VICSRD1 0x510 118412dd5c5SVarun Wadekar #define MC_STREAMID_OVERRIDE_CFG_NVDECSRD1 0x518 119412dd5c5SVarun Wadekar 120412dd5c5SVarun Wadekar /******************************************************************************* 121412dd5c5SVarun Wadekar * Stream ID Security Config registers 122412dd5c5SVarun Wadekar ******************************************************************************/ 123412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_PTCR 0x4 124412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_AFIR 0x74 125412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_HDAR 0xAC 126412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_HOST1XDMAR 0xB4 127412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_NVENCSRD 0xE4 128412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SATAR 0xFC 129412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_HDAW 0x1AC 130412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_MPCORER 0x13C 131412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_NVENCSWR 0x15C 132412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_AFIW 0x18C 133412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_MPCOREW 0x1CC 134412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SATAW 0x1EC 135412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_ISPRA 0x224 136412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_ISPWA 0x234 137412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_ISPWB 0x23C 138412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_XUSB_HOSTR 0x254 139412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_XUSB_HOSTW 0x25C 140412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_XUSB_DEVR 0x264 141412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_XUSB_DEVW 0x26C 142412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_TSECSRD 0x2A4 143412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_TSECSWR 0x2AC 144412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_GPUSRD 0x2C4 145412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_GPUSWR 0x2CC 146412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SDMMCRA 0x304 147412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SDMMCRAA 0x30C 148412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SDMMCR 0x314 149412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SDMMCRAB 0x31C 150412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SDMMCWA 0x324 151412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SDMMCWAA 0x32C 152412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SDMMCW 0x334 153412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SDMMCWAB 0x33C 154412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_VICSRD 0x364 155412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_VICSWR 0x36C 156412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_VIW 0x394 157412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_NVDECSRD 0x3C4 158412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_NVDECSWR 0x3CC 159412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_APER 0x3D4 160412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_APEW 0x3DC 161412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_NVJPGSRD 0x3F4 162412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_NVJPGSWR 0x3FC 163412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SESRD 0x404 164412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SESWR 0x40C 165412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_ETRR 0x424 166412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_ETRW 0x42C 167412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_TSECSRDB 0x434 168412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_TSECSWRB 0x43C 169412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_GPUSRD2 0x444 170412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_GPUSWR2 0x44C 171412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_AXISR 0x464 172412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_AXISW 0x46C 173412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_EQOSR 0x474 174412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_EQOSW 0x47C 175412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_UFSHCR 0x484 176412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_UFSHCW 0x48C 177412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_NVDISPLAYR 0x494 178412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_BPMPR 0x49C 179412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_BPMPW 0x4A4 180412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_BPMPDMAR 0x4AC 181412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_BPMPDMAW 0x4B4 182412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_AONR 0x4BC 183412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_AONW 0x4C4 184412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_AONDMAR 0x4CC 185412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_AONDMAW 0x4D4 186412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SCER 0x4DC 187412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SCEW 0x4E4 188412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SCEDMAR 0x4EC 189412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_SCEDMAW 0x4F4 190412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_APEDMAR 0x4FC 191412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_APEDMAW 0x504 192412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_NVDISPLAYR1 0x50C 193412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_VICSRD1 0x514 194412dd5c5SVarun Wadekar #define MC_STREAMID_SECURITY_CFG_NVDECSRD1 0x51C 195412dd5c5SVarun Wadekar 196412dd5c5SVarun Wadekar /******************************************************************************* 197412dd5c5SVarun Wadekar * Memory Controller SMMU Bypass config register 198412dd5c5SVarun Wadekar ******************************************************************************/ 199412dd5c5SVarun Wadekar #define MC_SMMU_BYPASS_CONFIG 0x1820 200412dd5c5SVarun Wadekar #define MC_SMMU_BYPASS_CTRL_MASK 0x3 201412dd5c5SVarun Wadekar #define MC_SMMU_BYPASS_CTRL_SHIFT 0 202412dd5c5SVarun Wadekar #define MC_SMMU_CTRL_TBU_BYPASS_ALL (0 << MC_SMMU_BYPASS_CTRL_SHIFT) 203412dd5c5SVarun Wadekar #define MC_SMMU_CTRL_TBU_RSVD (1 << MC_SMMU_BYPASS_CTRL_SHIFT) 204412dd5c5SVarun Wadekar #define MC_SMMU_CTRL_TBU_BYPASS_SPL_STREAMID (2 << MC_SMMU_BYPASS_CTRL_SHIFT) 205412dd5c5SVarun Wadekar #define MC_SMMU_CTRL_TBU_BYPASS_NONE (3 << MC_SMMU_BYPASS_CTRL_SHIFT) 206412dd5c5SVarun Wadekar #define MC_SMMU_BYPASS_CONFIG_WRITE_ACCESS_BIT (1 << 31) 207412dd5c5SVarun Wadekar #define MC_SMMU_BYPASS_CONFIG_SETTINGS (MC_SMMU_BYPASS_CONFIG_WRITE_ACCESS_BIT | \ 208412dd5c5SVarun Wadekar MC_SMMU_CTRL_TBU_BYPASS_SPL_STREAMID) 209412dd5c5SVarun Wadekar 210412dd5c5SVarun Wadekar /******************************************************************************* 211be87d920SVarun Wadekar * Memory Controller transaction override config registers 212be87d920SVarun Wadekar ******************************************************************************/ 213be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_HDAR 0x10a8 214be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_BPMPW 0x14a0 215be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_PTCR 0x1000 216be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_NVDISPLAYR 0x1490 217be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_EQOSW 0x1478 218be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_NVJPGSWR 0x13f8 219be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_ISPRA 0x1220 220be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SDMMCWAA 0x1328 221be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_VICSRD 0x1360 222be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_MPCOREW 0x11c8 223be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_GPUSRD 0x12c0 224be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_AXISR 0x1460 225be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SCEDMAW 0x14f0 226be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SDMMCW 0x1330 227be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_EQOSR 0x1470 228be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_APEDMAR 0x14f8 229be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_NVENCSRD 0x10e0 230be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SDMMCRAB 0x1318 231be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_VICSRD1 0x1510 232be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_BPMPDMAR 0x14a8 233be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_VIW 0x1390 234be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SDMMCRAA 0x1308 235be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_AXISW 0x1468 236be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_XUSB_DEVR 0x1260 237be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_UFSHCR 0x1480 238be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_TSECSWR 0x12a8 239be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_GPUSWR 0x12c8 240be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SATAR 0x10f8 241be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_XUSB_HOSTW 0x1258 242be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_TSECSWRB 0x1438 243be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_GPUSRD2 0x1440 244be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SCEDMAR 0x14e8 245be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_GPUSWR2 0x1448 246be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_AONDMAW 0x14d0 247be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_APEDMAW 0x1500 248be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_AONW 0x14c0 249be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_HOST1XDMAR 0x10b0 250be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_ETRR 0x1420 251be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SESWR 0x1408 252be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_NVJPGSRD 0x13f0 253be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_NVDECSRD 0x13c0 254be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_TSECSRDB 0x1430 255be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_BPMPDMAW 0x14b0 256be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_APER 0x13d0 257be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_NVDECSRD1 0x1518 258be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_XUSB_HOSTR 0x1250 259be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_ISPWA 0x1230 260be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SESRD 0x1400 261be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SCER 0x14d8 262be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_AONR 0x14b8 263be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_MPCORER 0x1138 264be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SDMMCWA 0x1320 265be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_HDAW 0x11a8 266be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_NVDECSWR 0x13c8 267be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_UFSHCW 0x1488 268be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_AONDMAR 0x14c8 269be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SATAW 0x11e8 270be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_ETRW 0x1428 271be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_VICSWR 0x1368 272be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_NVENCSWR 0x1158 273be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_AFIR 0x1070 274be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SDMMCWAB 0x1338 275be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SDMMCRA 0x1300 276be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_NVDISPLAYR1 0x1508 277be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_ISPWB 0x1238 278be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_BPMPR 0x1498 279be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_APEW 0x13d8 280be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SDMMCR 0x1310 281be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_XUSB_DEVW 0x1268 282be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_TSECSRD 0x12a0 283be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_AFIW 0x1188 284be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_SCEW 0x14e0 285be87d920SVarun Wadekar 286*e64ce3abSVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_AXID_OVERRIDE_CGID (1 << 0) 287*e64ce3abSVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_COH_PATH_OVERRIDE_SO_DEV (2 << 4) 288*e64ce3abSVarun Wadekar #define MC_TXN_OVERRIDE_CONFIG_AXID_OVERRIDE_SO_DEV_CGID_SO_DEV_CLIENT (1 << 12) 289*e64ce3abSVarun Wadekar 290be87d920SVarun Wadekar /******************************************************************************* 291be87d920SVarun Wadekar * Non-SO_DEV transactions override values for CGID_TAG bitfield for the 292be87d920SVarun Wadekar * MC_TXN_OVERRIDE_CONFIG_{module} registers 293be87d920SVarun Wadekar ******************************************************************************/ 294be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CGID_TAG_DEFAULT 0 295be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CGID_TAG_CLIENT_AXI_ID 1 296be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CGID_TAG_ZERO 2 297be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CGID_TAG_ADR 3 298be87d920SVarun Wadekar #define MC_TXN_OVERRIDE_CGID_TAG_MASK 3 299be87d920SVarun Wadekar 300be87d920SVarun Wadekar /******************************************************************************* 301be87d920SVarun Wadekar * Structure to hold the transaction override settings to use to override 302be87d920SVarun Wadekar * client inputs 303be87d920SVarun Wadekar ******************************************************************************/ 304be87d920SVarun Wadekar typedef struct mc_txn_override_cfg { 305be87d920SVarun Wadekar uint32_t offset; 306be87d920SVarun Wadekar uint8_t cgid_tag; 307be87d920SVarun Wadekar } mc_txn_override_cfg_t; 308be87d920SVarun Wadekar 309be87d920SVarun Wadekar #define mc_make_txn_override_cfg(off, val) \ 310be87d920SVarun Wadekar { \ 311be87d920SVarun Wadekar .offset = MC_TXN_OVERRIDE_CONFIG_ ## off, \ 312be87d920SVarun Wadekar .cgid_tag = MC_TXN_OVERRIDE_ ## val \ 313be87d920SVarun Wadekar } 314be87d920SVarun Wadekar 315be87d920SVarun Wadekar /******************************************************************************* 316412dd5c5SVarun Wadekar * Structure to hold the Stream ID to use to override client inputs 317412dd5c5SVarun Wadekar ******************************************************************************/ 318412dd5c5SVarun Wadekar typedef struct mc_streamid_override_cfg { 319412dd5c5SVarun Wadekar uint32_t offset; 320412dd5c5SVarun Wadekar uint8_t stream_id; 321412dd5c5SVarun Wadekar } mc_streamid_override_cfg_t; 322412dd5c5SVarun Wadekar 323412dd5c5SVarun Wadekar /******************************************************************************* 324412dd5c5SVarun Wadekar * Structure to hold the Stream ID Security Configuration settings 325412dd5c5SVarun Wadekar ******************************************************************************/ 326412dd5c5SVarun Wadekar typedef struct mc_streamid_security_cfg { 327412dd5c5SVarun Wadekar char *name; 328412dd5c5SVarun Wadekar uint32_t offset; 329412dd5c5SVarun Wadekar int override_enable; 330412dd5c5SVarun Wadekar int override_client_inputs; 331412dd5c5SVarun Wadekar int override_client_ns_flag; 332412dd5c5SVarun Wadekar } mc_streamid_security_cfg_t; 333412dd5c5SVarun Wadekar 334412dd5c5SVarun Wadekar #define OVERRIDE_DISABLE 1 335412dd5c5SVarun Wadekar #define OVERRIDE_ENABLE 0 336412dd5c5SVarun Wadekar #define CLIENT_FLAG_SECURE 0 337412dd5c5SVarun Wadekar #define CLIENT_FLAG_NON_SECURE 1 338412dd5c5SVarun Wadekar #define CLIENT_INPUTS_OVERRIDE 1 339412dd5c5SVarun Wadekar #define CLIENT_INPUTS_NO_OVERRIDE 0 340412dd5c5SVarun Wadekar 341412dd5c5SVarun Wadekar #define mc_make_sec_cfg(off, ns, ovrrd, access) \ 342412dd5c5SVarun Wadekar { \ 343412dd5c5SVarun Wadekar .name = # off, \ 344412dd5c5SVarun Wadekar .offset = MC_STREAMID_SECURITY_CFG_ ## off, \ 345412dd5c5SVarun Wadekar .override_client_ns_flag = CLIENT_FLAG_ ## ns, \ 346412dd5c5SVarun Wadekar .override_client_inputs = CLIENT_INPUTS_ ## ovrrd, \ 347412dd5c5SVarun Wadekar .override_enable = OVERRIDE_ ## access \ 348412dd5c5SVarun Wadekar } 349412dd5c5SVarun Wadekar 350412dd5c5SVarun Wadekar /******************************************************************************* 351412dd5c5SVarun Wadekar * TZDRAM carveout configuration registers 352412dd5c5SVarun Wadekar ******************************************************************************/ 353412dd5c5SVarun Wadekar #define MC_SECURITY_CFG0_0 0x70 354412dd5c5SVarun Wadekar #define MC_SECURITY_CFG1_0 0x74 355412dd5c5SVarun Wadekar #define MC_SECURITY_CFG3_0 0x9BC 356412dd5c5SVarun Wadekar 357412dd5c5SVarun Wadekar /******************************************************************************* 358412dd5c5SVarun Wadekar * Video Memory carveout configuration registers 359412dd5c5SVarun Wadekar ******************************************************************************/ 360412dd5c5SVarun Wadekar #define MC_VIDEO_PROTECT_BASE_HI 0x978 361412dd5c5SVarun Wadekar #define MC_VIDEO_PROTECT_BASE_LO 0x648 362412dd5c5SVarun Wadekar #define MC_VIDEO_PROTECT_SIZE_MB 0x64c 363412dd5c5SVarun Wadekar 364d48c0c45SVarun Wadekar /******************************************************************************* 365d48c0c45SVarun Wadekar * TZRAM carveout configuration registers 366d48c0c45SVarun Wadekar ******************************************************************************/ 367d48c0c45SVarun Wadekar #define MC_TZRAM_BASE 0x1850 368d48c0c45SVarun Wadekar #define MC_TZRAM_END 0x1854 369d48c0c45SVarun Wadekar #define MC_TZRAM_HI_ADDR_BITS 0x1588 370d48c0c45SVarun Wadekar #define TZRAM_ADDR_HI_BITS_MASK 0x3 371d48c0c45SVarun Wadekar #define TZRAM_END_HI_BITS_SHIFT 8 372d48c0c45SVarun Wadekar #define MC_TZRAM_REG_CTRL 0x185c 373d48c0c45SVarun Wadekar #define DISABLE_TZRAM_ACCESS 1 374d48c0c45SVarun Wadekar 375*e64ce3abSVarun Wadekar /******************************************************************************* 376*e64ce3abSVarun Wadekar * Memory Controller Reset Control registers 377*e64ce3abSVarun Wadekar ******************************************************************************/ 378*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0 0x200 379*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_RESET_VAL 0 380*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_AFI_FLUSH_ENB (1 << 0) 381*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_HC_FLUSH_ENB (1 << 6) 382*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_HDA_FLUSH_ENB (1 << 7) 383*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_ISP2_FLUSH_ENB (1 << 8) 384*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_MPCORE_FLUSH_ENB (1 << 9) 385*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_NVENC_FLUSH_ENB (1 << 11) 386*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_SATA_FLUSH_ENB (1 << 15) 387*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_VI_FLUSH_ENB (1 << 17) 388*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_VIC_FLUSH_ENB (1 << 18) 389*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_XUSB_HOST_FLUSH_ENB (1 << 19) 390*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_XUSB_DEV_FLUSH_ENB (1 << 20) 391*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_TSEC_FLUSH_ENB (1 << 22) 392*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_SDMMC1A_FLUSH_ENB (1 << 29) 393*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_SDMMC2A_FLUSH_ENB (1 << 30) 394*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL0_SDMMC3A_FLUSH_ENB (1 << 31) 395*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_STATUS0 0x204 396*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1 0x970 397*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_RESET_VAL 0 398*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_SDMMC4A_FLUSH_ENB (1 << 0) 399*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_GPU_FLUSH_ENB (1 << 2) 400*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_NVDEC_FLUSH_ENB (1 << 5) 401*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_APE_FLUSH_ENB (1 << 6) 402*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_SE_FLUSH_ENB (1 << 7) 403*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_NVJPG_FLUSH_ENB (1 << 8) 404*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_ETR_FLUSH_ENB (1 << 12) 405*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_TSECB_FLUSH_ENB (1 << 13) 406*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_AXIS_FLUSH_ENB (1 << 18) 407*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_EQOS_FLUSH_ENB (1 << 19) 408*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_UFSHC_FLUSH_ENB (1 << 20) 409*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_NVDISPLAY_FLUSH_ENB (1 << 21) 410*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_BPMP_FLUSH_ENB (1 << 22) 411*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_AON_FLUSH_ENB (1 << 23) 412*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_CTRL1_SCE_FLUSH_ENB (1 << 24) 413*e64ce3abSVarun Wadekar #define MC_CLIENT_HOTRESET_STATUS1 0x974 414*e64ce3abSVarun Wadekar 415*e64ce3abSVarun Wadekar /******************************************************************************* 416*e64ce3abSVarun Wadekar * TSA configuration registers 417*e64ce3abSVarun Wadekar ******************************************************************************/ 418*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SESWR 0x4010 419*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SESWR_RESET 0x1100 420*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_ETRW 0x4038 421*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_ETRW_RESET 0x1100 422*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SDMMCWAB 0x5010 423*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SDMMCWAB_RESET 0x1100 424*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AXISW 0x7008 425*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AXISW_RESET 0x1100 426*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_HDAW 0xA008 427*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_HDAW_RESET 0x100 428*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AONDMAW 0xB018 429*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AONDMAW_RESET 0x1100 430*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SCEDMAW 0xD018 431*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SCEDMAW_RESET 0x1100 432*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_BPMPDMAW 0xD028 433*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_BPMPDMAW_RESET 0x1100 434*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_APEDMAW 0x12018 435*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_APEDMAW_RESET 0x1100 436*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_UFSHCW 0x13008 437*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_UFSHCW_RESET 0x1100 438*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AFIW 0x13018 439*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_AFIW_RESET 0x1100 440*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SATAW 0x13028 441*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_SATAW_RESET 0x1100 442*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_EQOSW 0x13038 443*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_EQOSW_RESET 0x1100 444*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_XUSB_DEVW 0x15008 445*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_XUSB_DEVW_RESET 0x1100 446*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_XUSB_HOSTW 0x15018 447*e64ce3abSVarun Wadekar #define TSA_CONFIG_STATIC0_CSW_XUSB_HOSTW_RESET 0x1100 448*e64ce3abSVarun Wadekar 449*e64ce3abSVarun Wadekar #define TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_MASK (0x3 << 11) 450*e64ce3abSVarun Wadekar #define TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_PASTHRU (0 << 11) 451*e64ce3abSVarun Wadekar 452*e64ce3abSVarun Wadekar /******************************************************************************* 453*e64ce3abSVarun Wadekar * Memory Controller's PCFIFO client configuration registers 454*e64ce3abSVarun Wadekar ******************************************************************************/ 455*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG1 0xdd4 456*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG1_RESET_VAL 0x20000 457*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_AFIW_UNORDERED (0 << 17) 458*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_AFIW_MASK (1 << 17) 459*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_HDAW_UNORDERED (0 << 21) 460*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_HDAW_MASK (1 << 21) 461*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_SATAW_UNORDERED (0 << 29) 462*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_SATAW_MASK (1 << 29) 463*e64ce3abSVarun Wadekar 464*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG2 0xdd8 465*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG2_RESET_VAL 0x20000 466*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG2_PCFIFO_XUSB_HOSTW_UNORDERED (0 << 11) 467*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG2_PCFIFO_XUSB_HOSTW_MASK (1 << 11) 468*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG2_PCFIFO_XUSB_DEVW_UNORDERED (0 << 13) 469*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG2_PCFIFO_XUSB_DEVW_MASK (1 << 13) 470*e64ce3abSVarun Wadekar 471*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG3 0xddc 472*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG3_RESET_VAL 0 473*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG3_PCFIFO_SDMMCWAB_UNORDERED (0 << 7) 474*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG3_PCFIFO_SDMMCWAB_MASK (1 << 7) 475*e64ce3abSVarun Wadekar 476*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4 0xde0 477*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_RESET_VAL 0 478*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_SESWR_UNORDERED (0 << 1) 479*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_SESWR_MASK (1 << 1) 480*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_ETRW_UNORDERED (0 << 5) 481*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_ETRW_MASK (1 << 5) 482*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_AXISW_UNORDERED (0 << 13) 483*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_AXISW_MASK (1 << 13) 484*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_EQOSW_UNORDERED (0 << 15) 485*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_EQOSW_MASK (1 << 15) 486*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_UFSHCW_UNORDERED (0 << 17) 487*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_UFSHCW_MASK (1 << 17) 488*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_BPMPDMAW_UNORDERED (0 << 22) 489*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_BPMPDMAW_MASK (1 << 22) 490*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_AONDMAW_UNORDERED (0 << 26) 491*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_AONDMAW_MASK (1 << 26) 492*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_SCEDMAW_UNORDERED (0 << 30) 493*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_SCEDMAW_MASK (1 << 30) 494*e64ce3abSVarun Wadekar 495*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG5 0xbf4 496*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG5_RESET_VAL 0 497*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG5_PCFIFO_APEDMAW_UNORDERED (0 << 0) 498*e64ce3abSVarun Wadekar #define MC_PCFIFO_CLIENT_CONFIG5_PCFIFO_APEDMAW_MASK (1 << 0) 499*e64ce3abSVarun Wadekar 500*e64ce3abSVarun Wadekar /******************************************************************************* 501*e64ce3abSVarun Wadekar * Memory Controller's SMMU client configuration registers 502*e64ce3abSVarun Wadekar ******************************************************************************/ 503*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG1 0x44 504*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG1_RESET_VAL 0x20000 505*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG1_AFIW_UNORDERED (0 << 17) 506*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG1_AFIW_MASK (1 << 17) 507*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG1_HDAW_UNORDERED (0 << 21) 508*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG1_HDAW_MASK (1 << 21) 509*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG1_SATAW_UNORDERED (0 << 29) 510*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG1_SATAW_MASK (1 << 29) 511*e64ce3abSVarun Wadekar 512*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG2 0x48 513*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG2_RESET_VAL 0x20000 514*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG2_XUSB_HOSTW_UNORDERED (0 << 11) 515*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG2_XUSB_HOSTW_MASK (1 << 11) 516*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG2_XUSB_DEVW_UNORDERED (0 << 13) 517*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG2_XUSB_DEVW_MASK (1 << 13) 518*e64ce3abSVarun Wadekar 519*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG3 0x4c 520*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG3_RESET_VAL 0 521*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG3_SDMMCWAB_UNORDERED (0 << 7) 522*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG3_SDMMCWAB_MASK (1 << 7) 523*e64ce3abSVarun Wadekar 524*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4 0xb9c 525*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_RESET_VAL 0 526*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_SESWR_UNORDERED (0 << 1) 527*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_SESWR_MASK (1 << 1) 528*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_ETRW_UNORDERED (0 << 5) 529*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_ETRW_MASK (1 << 5) 530*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_AXISW_UNORDERED (0 << 13) 531*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_AXISW_MASK (1 << 13) 532*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_EQOSW_UNORDERED (0 << 15) 533*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_EQOSW_MASK (1 << 15) 534*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_UFSHCW_UNORDERED (0 << 17) 535*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_UFSHCW_MASK (1 << 17) 536*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_BPMPDMAW_UNORDERED (0 << 22) 537*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_BPMPDMAW_MASK (1 << 22) 538*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_AONDMAW_UNORDERED (0 << 26) 539*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_AONDMAW_MASK (1 << 26) 540*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_SCEDMAW_UNORDERED (0 << 30) 541*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG4_SCEDMAW_MASK (1 << 30) 542*e64ce3abSVarun Wadekar 543*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG5 0xbac 544*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG5_RESET_VAL 0 545*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG5_APEDMAW_UNORDERED (0 << 0) 546*e64ce3abSVarun Wadekar #define MC_SMMU_CLIENT_CONFIG5_APEDMAW_MASK (1 << 0) 547*e64ce3abSVarun Wadekar 548412dd5c5SVarun Wadekar static inline uint32_t tegra_mc_read_32(uint32_t off) 549412dd5c5SVarun Wadekar { 550412dd5c5SVarun Wadekar return mmio_read_32(TEGRA_MC_BASE + off); 551412dd5c5SVarun Wadekar } 552412dd5c5SVarun Wadekar 553412dd5c5SVarun Wadekar static inline void tegra_mc_write_32(uint32_t off, uint32_t val) 554412dd5c5SVarun Wadekar { 555412dd5c5SVarun Wadekar mmio_write_32(TEGRA_MC_BASE + off, val); 556412dd5c5SVarun Wadekar } 557412dd5c5SVarun Wadekar 558412dd5c5SVarun Wadekar static inline uint32_t tegra_mc_streamid_read_32(uint32_t off) 559412dd5c5SVarun Wadekar { 560412dd5c5SVarun Wadekar return mmio_read_32(TEGRA_MC_STREAMID_BASE + off); 561412dd5c5SVarun Wadekar } 562412dd5c5SVarun Wadekar 563412dd5c5SVarun Wadekar static inline void tegra_mc_streamid_write_32(uint32_t off, uint32_t val) 564412dd5c5SVarun Wadekar { 565412dd5c5SVarun Wadekar mmio_write_32(TEGRA_MC_STREAMID_BASE + off, val); 566412dd5c5SVarun Wadekar } 567412dd5c5SVarun Wadekar 568*e64ce3abSVarun Wadekar #define mc_set_pcfifo_unordered_boot_so_mss(id, client) \ 569*e64ce3abSVarun Wadekar (~MC_PCFIFO_CLIENT_CONFIG##id##_PCFIFO_##client##_MASK | \ 570*e64ce3abSVarun Wadekar MC_PCFIFO_CLIENT_CONFIG##id##_PCFIFO_##client##_UNORDERED) 571*e64ce3abSVarun Wadekar 572*e64ce3abSVarun Wadekar #define mc_set_smmu_unordered_boot_so_mss(id, client) \ 573*e64ce3abSVarun Wadekar (~MC_PCFIFO_CLIENT_CONFIG##id##_PCFIFO_##client##_MASK | \ 574*e64ce3abSVarun Wadekar MC_PCFIFO_CLIENT_CONFIG##id##_PCFIFO_##client##_UNORDERED) 575*e64ce3abSVarun Wadekar 576*e64ce3abSVarun Wadekar #define mc_set_tsa_passthrough(client) \ 577*e64ce3abSVarun Wadekar { \ 578*e64ce3abSVarun Wadekar mmio_write_32(TEGRA_TSA_BASE + TSA_CONFIG_STATIC0_CSW_##client, \ 579*e64ce3abSVarun Wadekar (TSA_CONFIG_STATIC0_CSW_##client##_RESET & \ 580*e64ce3abSVarun Wadekar ~TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_MASK) | \ 581*e64ce3abSVarun Wadekar TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_PASTHRU); \ 582*e64ce3abSVarun Wadekar } 583*e64ce3abSVarun Wadekar 584*e64ce3abSVarun Wadekar #define mc_set_forced_coherent_cfg(client) \ 585*e64ce3abSVarun Wadekar { \ 586*e64ce3abSVarun Wadekar tegra_mc_write_32(MC_TXN_OVERRIDE_CONFIG_##client, \ 587*e64ce3abSVarun Wadekar MC_TXN_OVERRIDE_CONFIG_COH_PATH_OVERRIDE_SO_DEV); \ 588*e64ce3abSVarun Wadekar } 589*e64ce3abSVarun Wadekar 590*e64ce3abSVarun Wadekar #define mc_set_forced_coherent_so_dev_cfg(client) \ 591*e64ce3abSVarun Wadekar { \ 592*e64ce3abSVarun Wadekar tegra_mc_write_32(MC_TXN_OVERRIDE_CONFIG_##client, \ 593*e64ce3abSVarun Wadekar MC_TXN_OVERRIDE_CONFIG_COH_PATH_OVERRIDE_SO_DEV | \ 594*e64ce3abSVarun Wadekar MC_TXN_OVERRIDE_CONFIG_AXID_OVERRIDE_SO_DEV_CGID_SO_DEV_CLIENT); \ 595*e64ce3abSVarun Wadekar } 596*e64ce3abSVarun Wadekar 597*e64ce3abSVarun Wadekar #define mc_set_forced_coherent_axid_so_dev_cfg(client) \ 598*e64ce3abSVarun Wadekar { \ 599*e64ce3abSVarun Wadekar tegra_mc_write_32(MC_TXN_OVERRIDE_CONFIG_##client, \ 600*e64ce3abSVarun Wadekar MC_TXN_OVERRIDE_CONFIG_COH_PATH_OVERRIDE_SO_DEV | \ 601*e64ce3abSVarun Wadekar MC_TXN_OVERRIDE_CONFIG_AXID_OVERRIDE_CGID | \ 602*e64ce3abSVarun Wadekar MC_TXN_OVERRIDE_CONFIG_AXID_OVERRIDE_SO_DEV_CGID_SO_DEV_CLIENT); \ 603*e64ce3abSVarun Wadekar } 604*e64ce3abSVarun Wadekar 605412dd5c5SVarun Wadekar #endif /* __MEMCTRLV2_H__ */ 606