1ab2eb455SPuneet Saxena /* 208e60f80SVarun Wadekar * Copyright (c) 2017-2020, NVIDIA CORPORATION. All rights reserved. 3ab2eb455SPuneet Saxena * 4ab2eb455SPuneet Saxena * SPDX-License-Identifier: BSD-3-Clause 5ab2eb455SPuneet Saxena */ 6ab2eb455SPuneet Saxena 7ab2eb455SPuneet Saxena #ifndef TEGRA_MC_DEF_H 8ab2eb455SPuneet Saxena #define TEGRA_MC_DEF_H 9ab2eb455SPuneet Saxena 10ab2eb455SPuneet Saxena /******************************************************************************* 11ab2eb455SPuneet Saxena * Memory Controller's PCFIFO client configuration registers 12ab2eb455SPuneet Saxena ******************************************************************************/ 13ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG0 0xdd0U 14ab2eb455SPuneet Saxena 15ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG1 0xdd4U 16ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG1_RESET_VAL 0x20000U 17ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_AFIW_UNORDERED (0U << 17) 18ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_AFIW_MASK (1U << 17) 19ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_HDAW_UNORDERED (0U << 21) 20ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_HDAW_MASK (1U << 21) 21ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_SATAW_UNORDERED (0U << 29) 22ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG1_PCFIFO_SATAW_MASK (1U << 29) 23ab2eb455SPuneet Saxena 24ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG2 0xdd8U 25ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG2_RESET_VAL 0x20000U 26ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG2_PCFIFO_XUSB_HOSTW_UNORDERED (0U << 11) 27ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG2_PCFIFO_XUSB_HOSTW_MASK (1U << 11) 28ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG2_PCFIFO_XUSB_DEVW_UNORDERED (0U << 13) 29ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG2_PCFIFO_XUSB_DEVW_MASK (1U << 13) 30ab2eb455SPuneet Saxena 31ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG3 0xddcU 32ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG3_RESET_VAL 0U 33ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG3_PCFIFO_SDMMCWAB_UNORDERED (0U << 7) 34ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG3_PCFIFO_SDMMCWAB_MASK (1U << 7) 35ab2eb455SPuneet Saxena 36ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4 0xde0U 37ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_RESET_VAL 0U 38ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_SESWR_UNORDERED (0U << 1) 39ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_SESWR_MASK (1U << 1) 40ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_ETRW_UNORDERED (0U << 5) 41ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_ETRW_MASK (1U << 5) 42ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_AXISW_UNORDERED (0U << 13) 43ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_AXISW_MASK (1U << 13) 44ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_EQOSW_UNORDERED (0U << 15) 45ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_EQOSW_ORDERED (1U << 15) 46ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_EQOSW_MASK (1U << 15) 47ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_UFSHCW_UNORDERED (0U << 17) 48ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_UFSHCW_MASK (1U << 17) 49ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_BPMPDMAW_UNORDERED (0U << 22) 50ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_BPMPDMAW_MASK (1U << 22) 51ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_AONDMAW_UNORDERED (0U << 26) 52ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_AONDMAW_MASK (1U << 26) 53ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_SCEDMAW_UNORDERED (0U << 30) 54ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG4_PCFIFO_SCEDMAW_MASK (1U << 30) 55ab2eb455SPuneet Saxena 56ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG5 0xbf4U 57ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG5_RESET_VAL 0U 58ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG5_PCFIFO_APEDMAW_UNORDERED (0U << 0) 59ab2eb455SPuneet Saxena #define MC_PCFIFO_CLIENT_CONFIG5_PCFIFO_APEDMAW_MASK (1U << 0) 60ab2eb455SPuneet Saxena 61ab2eb455SPuneet Saxena /******************************************************************************* 62ab2eb455SPuneet Saxena * Stream ID Override Config registers 63ab2eb455SPuneet Saxena ******************************************************************************/ 64ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_PTCR 0x000U 65ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_AFIR 0x070U 66ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_HDAR 0x0A8U 67ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_HOST1XDMAR 0x0B0U 68ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_NVENCSRD 0x0E0U 69ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SATAR 0x0F8U 70ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_MPCORER 0x138U 71ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_NVENCSWR 0x158U 72ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_AFIW 0x188U 73ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_HDAW 0x1A8U 74ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_MPCOREW 0x1C8U 75ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SATAW 0x1E8U 76ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_ISPRA 0x220U 77ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_ISPWA 0x230U 78ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_ISPWB 0x238U 79ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_XUSB_HOSTR 0x250U 80ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_XUSB_HOSTW 0x258U 81ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_XUSB_DEVR 0x260U 82ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_XUSB_DEVW 0x268U 83ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_TSECSRD 0x2A0U 84ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_TSECSWR 0x2A8U 85ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_GPUSRD 0x2C0U 86ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_GPUSWR 0x2C8U 87ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SDMMCRA 0x300U 88ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SDMMCRAA 0x308U 89ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SDMMCR 0x310U 90ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SDMMCRAB 0x318U 91ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SDMMCWA 0x320U 92ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SDMMCWAA 0x328U 93ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SDMMCW 0x330U 94ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SDMMCWAB 0x338U 95ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_VICSRD 0x360U 96ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_VICSWR 0x368U 97ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_VIW 0x390U 98ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_NVDECSRD 0x3C0U 99ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_NVDECSWR 0x3C8U 100ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_APER 0x3D0U 101ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_APEW 0x3D8U 102ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_NVJPGSRD 0x3F0U 103ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_NVJPGSWR 0x3F8U 104ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SESRD 0x400U 105ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SESWR 0x408U 106ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_ETRR 0x420U 107ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_ETRW 0x428U 108ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_TSECSRDB 0x430U 109ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_TSECSWRB 0x438U 110ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_GPUSRD2 0x440U 111ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_GPUSWR2 0x448U 112ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_AXISR 0x460U 113ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_AXISW 0x468U 114ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_EQOSR 0x470U 115ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_EQOSW 0x478U 116ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_UFSHCR 0x480U 117ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_UFSHCW 0x488U 118ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_NVDISPLAYR 0x490U 119ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_BPMPR 0x498U 120ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_BPMPW 0x4A0U 121ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_BPMPDMAR 0x4A8U 122ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_BPMPDMAW 0x4B0U 123ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_AONR 0x4B8U 124ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_AONW 0x4C0U 125ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_AONDMAR 0x4C8U 126ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_AONDMAW 0x4D0U 127ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SCER 0x4D8U 128ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SCEW 0x4E0U 129ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SCEDMAR 0x4E8U 130ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_SCEDMAW 0x4F0U 131ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_APEDMAR 0x4F8U 132ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_APEDMAW 0x500U 133ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_NVDISPLAYR1 0x508U 134ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_VICSRD1 0x510U 135ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_CFG_NVDECSRD1 0x518U 136ab2eb455SPuneet Saxena 137ab2eb455SPuneet Saxena /******************************************************************************* 138ab2eb455SPuneet Saxena * Macro to calculate Security cfg register addr from StreamID Override register 139ab2eb455SPuneet Saxena ******************************************************************************/ 140ab2eb455SPuneet Saxena #define MC_STREAMID_OVERRIDE_TO_SECURITY_CFG(addr) ((addr) + (uint32_t)sizeof(uint32_t)) 141ab2eb455SPuneet Saxena 142ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_COH_PATH_NO_OVERRIDE_SO_DEV (0U << 4) 143ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_COH_PATH_FORCE_NON_COHERENT_SO_DEV (1U << 4) 144ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_COH_PATH_FORCE_COHERENT_SO_DEV (2U << 4) 145ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_COH_PATH_FORCE_COHERENT_SNOOP_SO_DEV (3U << 4) 146ab2eb455SPuneet Saxena 147ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_COH_PATH_NO_OVERRIDE_NORMAL (0U << 8) 148ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_COH_PATH_FORCE_NON_COHERENT_NORMAL (1U << 8) 149ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_COH_PATH_FORCE_COHERENT_NORMAL (2U << 8) 150ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_COH_PATH_FORCE_COHERENT_SNOOP_NORMAL (3U << 8) 151ab2eb455SPuneet Saxena 152ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_CGID_SO_DEV_ZERO (0U << 12) 153ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_CGID_SO_DEV_CLIENT_AXI_ID (1U << 12) 154ab2eb455SPuneet Saxena 155ab2eb455SPuneet Saxena /******************************************************************************* 156ab2eb455SPuneet Saxena * Memory Controller transaction override config registers 157ab2eb455SPuneet Saxena ******************************************************************************/ 158ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_HDAR 0x10a8U 159ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_BPMPW 0x14a0U 160ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_PTCR 0x1000U 161ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_NVDISPLAYR 0x1490U 162ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_EQOSW 0x1478U 163ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_NVJPGSWR 0x13f8U 164ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_ISPRA 0x1220U 165ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SDMMCWAA 0x1328U 166ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_VICSRD 0x1360U 167ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_MPCOREW 0x11c8U 168ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_GPUSRD 0x12c0U 169ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_AXISR 0x1460U 170ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SCEDMAW 0x14f0U 171ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SDMMCW 0x1330U 172ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_EQOSR 0x1470U 173ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_APEDMAR 0x14f8U 174ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_NVENCSRD 0x10e0U 175ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SDMMCRAB 0x1318U 176ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_VICSRD1 0x1510U 177ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_BPMPDMAR 0x14a8U 178ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_VIW 0x1390U 179ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SDMMCRAA 0x1308U 180ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_AXISW 0x1468U 181ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_XUSB_DEVR 0x1260U 182ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_UFSHCR 0x1480U 183ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_TSECSWR 0x12a8U 184ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_GPUSWR 0x12c8U 185ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SATAR 0x10f8U 186ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_XUSB_HOSTW 0x1258U 187ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_TSECSWRB 0x1438U 188ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_GPUSRD2 0x1440U 189ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SCEDMAR 0x14e8U 190ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_GPUSWR2 0x1448U 191ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_AONDMAW 0x14d0U 192ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_APEDMAW 0x1500U 193ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_AONW 0x14c0U 194ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_HOST1XDMAR 0x10b0U 195ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_ETRR 0x1420U 196ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SESWR 0x1408U 197ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_NVJPGSRD 0x13f0U 198ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_NVDECSRD 0x13c0U 199ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_TSECSRDB 0x1430U 200ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_BPMPDMAW 0x14b0U 201ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_APER 0x13d0U 202ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_NVDECSRD1 0x1518U 203ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_XUSB_HOSTR 0x1250U 204ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_ISPWA 0x1230U 205ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SESRD 0x1400U 206ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SCER 0x14d8U 207ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_AONR 0x14b8U 208ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_MPCORER 0x1138U 209ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SDMMCWA 0x1320U 210ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_HDAW 0x11a8U 211ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_NVDECSWR 0x13c8U 212ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_UFSHCW 0x1488U 213ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_AONDMAR 0x14c8U 214ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SATAW 0x11e8U 215ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_ETRW 0x1428U 216ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_VICSWR 0x1368U 217ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_NVENCSWR 0x1158U 218ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_AFIR 0x1070U 219ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SDMMCWAB 0x1338U 220ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SDMMCRA 0x1300U 221ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_NVDISPLAYR1 0x1508U 222ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_ISPWB 0x1238U 223ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_BPMPR 0x1498U 224ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_APEW 0x13d8U 225ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SDMMCR 0x1310U 226ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_XUSB_DEVW 0x1268U 227ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_TSECSRD 0x12a0U 228ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_AFIW 0x1188U 229ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_SCEW 0x14e0U 230ab2eb455SPuneet Saxena 231ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_AXID_OVERRIDE_CGID (1U << 0) 232ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_COH_PATH_OVERRIDE_SO_DEV (2U << 4) 233ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CONFIG_AXID_OVERRIDE_SO_DEV_CGID_SO_DEV_CLIENT (1U << 12) 234ab2eb455SPuneet Saxena 235ab2eb455SPuneet Saxena /******************************************************************************* 236ab2eb455SPuneet Saxena * Non-SO_DEV transactions override values for CGID_TAG bitfield for the 237ab2eb455SPuneet Saxena * MC_TXN_OVERRIDE_CONFIG_{module} registers 238ab2eb455SPuneet Saxena ******************************************************************************/ 239ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CGID_TAG_DEFAULT 0U 240ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CGID_TAG_CLIENT_AXI_ID 1U 241ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CGID_TAG_ZERO 2U 242ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CGID_TAG_ADR 3U 243ab2eb455SPuneet Saxena #define MC_TXN_OVERRIDE_CGID_TAG_MASK 3ULL 244ab2eb455SPuneet Saxena 245ab2eb455SPuneet Saxena /******************************************************************************* 246ab2eb455SPuneet Saxena * Memory Controller Reset Control registers 247ab2eb455SPuneet Saxena ******************************************************************************/ 248ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0 0x200U 249ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_RESET_VAL 0U 250ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_AFI_FLUSH_ENB (1U << 0) 251ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_HC_FLUSH_ENB (1U << 6) 252ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_HDA_FLUSH_ENB (1U << 7) 253ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_ISP2_FLUSH_ENB (1U << 8) 254ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_MPCORE_FLUSH_ENB (1U << 9) 255ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_NVENC_FLUSH_ENB (1U << 11) 256ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_SATA_FLUSH_ENB (1U << 15) 257ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_VI_FLUSH_ENB (1U << 17) 258ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_VIC_FLUSH_ENB (1U << 18) 259ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_XUSB_HOST_FLUSH_ENB (1U << 19) 260ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_XUSB_DEV_FLUSH_ENB (1U << 20) 261ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_TSEC_FLUSH_ENB (1U << 22) 262ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_SDMMC1A_FLUSH_ENB (1U << 29) 263ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_SDMMC2A_FLUSH_ENB (1U << 30) 264ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL0_SDMMC3A_FLUSH_ENB (1U << 31) 265ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_STATUS0 0x204U 266ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1 0x970U 267ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_RESET_VAL 0U 268ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_SDMMC4A_FLUSH_ENB (1U << 0) 269ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_GPU_FLUSH_ENB (1U << 2) 270ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_NVDEC_FLUSH_ENB (1U << 5) 271ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_APE_FLUSH_ENB (1U << 6) 272ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_SE_FLUSH_ENB (1U << 7) 273ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_NVJPG_FLUSH_ENB (1U << 8) 274ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_ETR_FLUSH_ENB (1U << 12) 275ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_TSECB_FLUSH_ENB (1U << 13) 276ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_AXIS_FLUSH_ENB (1U << 18) 277ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_EQOS_FLUSH_ENB (1U << 19) 278ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_UFSHC_FLUSH_ENB (1U << 20) 279ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_NVDISPLAY_FLUSH_ENB (1U << 21) 280ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_BPMP_FLUSH_ENB (1U << 22) 281ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_AON_FLUSH_ENB (1U << 23) 282ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_CTRL1_SCE_FLUSH_ENB (1U << 24) 283ab2eb455SPuneet Saxena #define MC_CLIENT_HOTRESET_STATUS1 0x974U 284ab2eb455SPuneet Saxena 285*c959ea78SManish V Badarkhe #ifndef __ASSEMBLER__ 28608e60f80SVarun Wadekar 28708e60f80SVarun Wadekar /******************************************************************************* 28808e60f80SVarun Wadekar * Structure to hold the transaction override settings to use to override 28908e60f80SVarun Wadekar * client inputs 29008e60f80SVarun Wadekar ******************************************************************************/ 29108e60f80SVarun Wadekar typedef struct mc_txn_override_cfg { 29208e60f80SVarun Wadekar uint32_t offset; 29308e60f80SVarun Wadekar uint8_t cgid_tag; 29408e60f80SVarun Wadekar } mc_txn_override_cfg_t; 29508e60f80SVarun Wadekar 29608e60f80SVarun Wadekar #define mc_make_txn_override_cfg(off, val) \ 29708e60f80SVarun Wadekar { \ 29808e60f80SVarun Wadekar .offset = MC_TXN_OVERRIDE_CONFIG_ ## off, \ 29908e60f80SVarun Wadekar .cgid_tag = MC_TXN_OVERRIDE_ ## val \ 30008e60f80SVarun Wadekar } 30108e60f80SVarun Wadekar 30208e60f80SVarun Wadekar /******************************************************************************* 30308e60f80SVarun Wadekar * Structure to hold the Stream ID to use to override client inputs 30408e60f80SVarun Wadekar ******************************************************************************/ 30508e60f80SVarun Wadekar typedef struct mc_streamid_override_cfg { 30608e60f80SVarun Wadekar uint32_t offset; 30708e60f80SVarun Wadekar uint8_t stream_id; 30808e60f80SVarun Wadekar } mc_streamid_override_cfg_t; 30908e60f80SVarun Wadekar 31008e60f80SVarun Wadekar /******************************************************************************* 31108e60f80SVarun Wadekar * Structure to hold the Stream ID Security Configuration settings 31208e60f80SVarun Wadekar ******************************************************************************/ 31308e60f80SVarun Wadekar typedef struct mc_streamid_security_cfg { 31408e60f80SVarun Wadekar char *name; 31508e60f80SVarun Wadekar uint32_t offset; 31608e60f80SVarun Wadekar uint32_t override_enable; 31708e60f80SVarun Wadekar uint32_t override_client_inputs; 31808e60f80SVarun Wadekar uint32_t override_client_ns_flag; 31908e60f80SVarun Wadekar } mc_streamid_security_cfg_t; 32008e60f80SVarun Wadekar 32108e60f80SVarun Wadekar #define OVERRIDE_DISABLE 1U 32208e60f80SVarun Wadekar #define OVERRIDE_ENABLE 0U 32308e60f80SVarun Wadekar #define CLIENT_FLAG_SECURE 0U 32408e60f80SVarun Wadekar #define CLIENT_FLAG_NON_SECURE 1U 32508e60f80SVarun Wadekar #define CLIENT_INPUTS_OVERRIDE 1U 32608e60f80SVarun Wadekar #define CLIENT_INPUTS_NO_OVERRIDE 0U 32708e60f80SVarun Wadekar 32808e60f80SVarun Wadekar /******************************************************************************* 32908e60f80SVarun Wadekar * StreamID to indicate no SMMU translations (requests to be steered on the 33008e60f80SVarun Wadekar * SMMU bypass path) 33108e60f80SVarun Wadekar ******************************************************************************/ 33208e60f80SVarun Wadekar #define MC_STREAM_ID_MAX 0x7FU 33308e60f80SVarun Wadekar 33408e60f80SVarun Wadekar #define mc_make_sec_cfg(off, ns, ovrrd, access) \ 33508e60f80SVarun Wadekar { \ 33608e60f80SVarun Wadekar .name = # off, \ 33708e60f80SVarun Wadekar .offset = MC_STREAMID_OVERRIDE_TO_SECURITY_CFG( \ 33808e60f80SVarun Wadekar MC_STREAMID_OVERRIDE_CFG_ ## off), \ 33908e60f80SVarun Wadekar .override_client_ns_flag = CLIENT_FLAG_ ## ns, \ 34008e60f80SVarun Wadekar .override_client_inputs = CLIENT_INPUTS_ ## ovrrd, \ 34108e60f80SVarun Wadekar .override_enable = OVERRIDE_ ## access \ 34208e60f80SVarun Wadekar } 34308e60f80SVarun Wadekar 34408e60f80SVarun Wadekar #define mc_make_sid_override_cfg(name) \ 34508e60f80SVarun Wadekar { \ 34608e60f80SVarun Wadekar .reg = TEGRA_MC_STREAMID_BASE + MC_STREAMID_OVERRIDE_CFG_ ## name, \ 34708e60f80SVarun Wadekar .val = 0x00000000U, \ 34808e60f80SVarun Wadekar } 34908e60f80SVarun Wadekar 35008e60f80SVarun Wadekar #define mc_make_sid_security_cfg(name) \ 35108e60f80SVarun Wadekar { \ 35208e60f80SVarun Wadekar .reg = TEGRA_MC_STREAMID_BASE + MC_STREAMID_OVERRIDE_TO_SECURITY_CFG(MC_STREAMID_OVERRIDE_CFG_ ## name), \ 35308e60f80SVarun Wadekar .val = 0x00000000U, \ 35408e60f80SVarun Wadekar } 35508e60f80SVarun Wadekar 35608e60f80SVarun Wadekar #define mc_set_pcfifo_unordered_boot_so_mss(id, client) \ 35708e60f80SVarun Wadekar ((uint32_t)~MC_PCFIFO_CLIENT_CONFIG##id##_PCFIFO_##client##_MASK | \ 35808e60f80SVarun Wadekar MC_PCFIFO_CLIENT_CONFIG##id##_PCFIFO_##client##_UNORDERED) 35908e60f80SVarun Wadekar 36008e60f80SVarun Wadekar #define mc_set_pcfifo_ordered_boot_so_mss(id, client) \ 36108e60f80SVarun Wadekar MC_PCFIFO_CLIENT_CONFIG##id##_PCFIFO_##client##_ORDERED 36208e60f80SVarun Wadekar 36308e60f80SVarun Wadekar #define mc_set_tsa_passthrough(client) \ 36408e60f80SVarun Wadekar do { \ 36508e60f80SVarun Wadekar mmio_write_32(TEGRA_TSA_BASE + TSA_CONFIG_STATIC0_CSW_##client, \ 36608e60f80SVarun Wadekar (TSA_CONFIG_STATIC0_CSW_##client##_RESET & \ 36708e60f80SVarun Wadekar (uint32_t)~TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_MASK) | \ 36808e60f80SVarun Wadekar (uint32_t)TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_PASTHRU); \ 36908e60f80SVarun Wadekar } while (0) 37008e60f80SVarun Wadekar 37108e60f80SVarun Wadekar #define mc_set_tsa_w_passthrough(client) \ 37208e60f80SVarun Wadekar do { \ 37308e60f80SVarun Wadekar mmio_write_32(TEGRA_TSA_BASE + TSA_CONFIG_STATIC0_CSW_##client, \ 37408e60f80SVarun Wadekar (TSA_CONFIG_STATIC0_CSW_RESET_W & \ 37508e60f80SVarun Wadekar (uint32_t)~TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_MASK) | \ 37608e60f80SVarun Wadekar (uint32_t)TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_PASTHRU); \ 37708e60f80SVarun Wadekar } while (0) 37808e60f80SVarun Wadekar 37908e60f80SVarun Wadekar #define mc_set_tsa_r_passthrough(client) \ 38008e60f80SVarun Wadekar { \ 38108e60f80SVarun Wadekar mmio_write_32(TEGRA_TSA_BASE + TSA_CONFIG_STATIC0_CSR_##client, \ 38208e60f80SVarun Wadekar (TSA_CONFIG_STATIC0_CSR_RESET_R & \ 38308e60f80SVarun Wadekar (uint32_t)~TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_MASK) | \ 38408e60f80SVarun Wadekar (uint32_t)TSA_CONFIG_CSW_MEMTYPE_OVERRIDE_PASTHRU); \ 38508e60f80SVarun Wadekar } while (0) 38608e60f80SVarun Wadekar 38708e60f80SVarun Wadekar #define mc_set_txn_override(client, normal_axi_id, so_dev_axi_id, normal_override, so_dev_override) \ 38808e60f80SVarun Wadekar do { \ 38908e60f80SVarun Wadekar tegra_mc_write_32(MC_TXN_OVERRIDE_CONFIG_##client, \ 39008e60f80SVarun Wadekar MC_TXN_OVERRIDE_##normal_axi_id | \ 39108e60f80SVarun Wadekar MC_TXN_OVERRIDE_CONFIG_COH_PATH_##so_dev_override##_SO_DEV | \ 39208e60f80SVarun Wadekar MC_TXN_OVERRIDE_CONFIG_COH_PATH_##normal_override##_NORMAL | \ 39308e60f80SVarun Wadekar MC_TXN_OVERRIDE_CONFIG_CGID_##so_dev_axi_id); \ 39408e60f80SVarun Wadekar } while (0) 39508e60f80SVarun Wadekar 396*c959ea78SManish V Badarkhe #endif /* __ASSEMBLER__ */ 39708e60f80SVarun Wadekar 398ab2eb455SPuneet Saxena #endif /* TEGRA_MC_DEF_H */ 399