goya_security.c (148414B)
1// SPDX-License-Identifier: GPL-2.0 2 3/* 4 * Copyright 2016-2019 HabanaLabs, Ltd. 5 * All Rights Reserved. 6 */ 7 8#include "goyaP.h" 9#include "../include/goya/asic_reg/goya_regs.h" 10 11/* 12 * goya_set_block_as_protected - set the given block as protected 13 * 14 * @hdev: pointer to hl_device structure 15 * @block: block base address 16 * 17 */ 18static void goya_pb_set_block(struct hl_device *hdev, u64 base) 19{ 20 u32 pb_addr = base - CFG_BASE + PROT_BITS_OFFS; 21 22 while (pb_addr & 0xFFF) { 23 WREG32(pb_addr, 0); 24 pb_addr += 4; 25 } 26} 27 28static void goya_init_mme_protection_bits(struct hl_device *hdev) 29{ 30 u32 pb_addr, mask; 31 u8 word_offset; 32 33 /* TODO: change to real reg name when Soc Online is updated */ 34 u64 mmMME_SBB_POWER_ECO1 = 0xDFF60, 35 mmMME_SBB_POWER_ECO2 = 0xDFF64; 36 37 goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_0_BASE); 38 goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_1_BASE); 39 goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_2_BASE); 40 goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_3_BASE); 41 42 goya_pb_set_block(hdev, mmSBA_ECC_MEM_BASE); 43 goya_pb_set_block(hdev, mmSBB_ECC_MEM_BASE); 44 45 goya_pb_set_block(hdev, mmMME1_RTR_BASE); 46 goya_pb_set_block(hdev, mmMME1_RD_REGULATOR_BASE); 47 goya_pb_set_block(hdev, mmMME1_WR_REGULATOR_BASE); 48 goya_pb_set_block(hdev, mmMME2_RTR_BASE); 49 goya_pb_set_block(hdev, mmMME2_RD_REGULATOR_BASE); 50 goya_pb_set_block(hdev, mmMME2_WR_REGULATOR_BASE); 51 goya_pb_set_block(hdev, mmMME3_RTR_BASE); 52 goya_pb_set_block(hdev, mmMME3_RD_REGULATOR_BASE); 53 goya_pb_set_block(hdev, mmMME3_WR_REGULATOR_BASE); 54 55 goya_pb_set_block(hdev, mmMME4_RTR_BASE); 56 goya_pb_set_block(hdev, mmMME4_RD_REGULATOR_BASE); 57 goya_pb_set_block(hdev, mmMME4_WR_REGULATOR_BASE); 58 59 goya_pb_set_block(hdev, mmMME5_RTR_BASE); 60 goya_pb_set_block(hdev, mmMME5_RD_REGULATOR_BASE); 61 goya_pb_set_block(hdev, mmMME5_WR_REGULATOR_BASE); 62 63 goya_pb_set_block(hdev, mmMME6_RTR_BASE); 64 goya_pb_set_block(hdev, mmMME6_RD_REGULATOR_BASE); 65 goya_pb_set_block(hdev, mmMME6_WR_REGULATOR_BASE); 66 67 pb_addr = (mmMME_DUMMY & ~0xFFF) + PROT_BITS_OFFS; 68 word_offset = ((mmMME_DUMMY & PROT_BITS_OFFS) >> 7) << 2; 69 mask = 1 << ((mmMME_DUMMY & 0x7F) >> 2); 70 mask |= 1 << ((mmMME_RESET & 0x7F) >> 2); 71 mask |= 1 << ((mmMME_STALL & 0x7F) >> 2); 72 mask |= 1 << ((mmMME_SM_BASE_ADDRESS_LOW & 0x7F) >> 2); 73 mask |= 1 << ((mmMME_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2); 74 mask |= 1 << ((mmMME_DBGMEM_ADD & 0x7F) >> 2); 75 mask |= 1 << ((mmMME_DBGMEM_DATA_WR & 0x7F) >> 2); 76 mask |= 1 << ((mmMME_DBGMEM_DATA_RD & 0x7F) >> 2); 77 mask |= 1 << ((mmMME_DBGMEM_CTRL & 0x7F) >> 2); 78 mask |= 1 << ((mmMME_DBGMEM_RC & 0x7F) >> 2); 79 mask |= 1 << ((mmMME_LOG_SHADOW & 0x7F) >> 2); 80 81 WREG32(pb_addr + word_offset, ~mask); 82 83 pb_addr = (mmMME_STORE_MAX_CREDIT & ~0xFFF) + PROT_BITS_OFFS; 84 word_offset = ((mmMME_STORE_MAX_CREDIT & PROT_BITS_OFFS) >> 7) << 2; 85 mask = 1 << ((mmMME_STORE_MAX_CREDIT & 0x7F) >> 2); 86 mask |= 1 << ((mmMME_AGU & 0x7F) >> 2); 87 mask |= 1 << ((mmMME_SBA & 0x7F) >> 2); 88 mask |= 1 << ((mmMME_SBB & 0x7F) >> 2); 89 mask |= 1 << ((mmMME_SBC & 0x7F) >> 2); 90 mask |= 1 << ((mmMME_WBC & 0x7F) >> 2); 91 mask |= 1 << ((mmMME_SBA_CONTROL_DATA & 0x7F) >> 2); 92 mask |= 1 << ((mmMME_SBB_CONTROL_DATA & 0x7F) >> 2); 93 mask |= 1 << ((mmMME_SBC_CONTROL_DATA & 0x7F) >> 2); 94 mask |= 1 << ((mmMME_WBC_CONTROL_DATA & 0x7F) >> 2); 95 mask |= 1 << ((mmMME_TE & 0x7F) >> 2); 96 mask |= 1 << ((mmMME_TE2DEC & 0x7F) >> 2); 97 mask |= 1 << ((mmMME_REI_STATUS & 0x7F) >> 2); 98 mask |= 1 << ((mmMME_REI_MASK & 0x7F) >> 2); 99 mask |= 1 << ((mmMME_SEI_STATUS & 0x7F) >> 2); 100 mask |= 1 << ((mmMME_SEI_MASK & 0x7F) >> 2); 101 mask |= 1 << ((mmMME_SPI_STATUS & 0x7F) >> 2); 102 mask |= 1 << ((mmMME_SPI_MASK & 0x7F) >> 2); 103 104 WREG32(pb_addr + word_offset, ~mask); 105 106 pb_addr = (mmMME_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 107 word_offset = ((mmMME_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 108 mask = 1 << ((mmMME_QM_GLBL_CFG0 & 0x7F) >> 2); 109 mask |= 1 << ((mmMME_QM_GLBL_CFG1 & 0x7F) >> 2); 110 mask |= 1 << ((mmMME_QM_GLBL_PROT & 0x7F) >> 2); 111 mask |= 1 << ((mmMME_QM_GLBL_ERR_CFG & 0x7F) >> 2); 112 mask |= 1 << ((mmMME_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 113 mask |= 1 << ((mmMME_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 114 mask |= 1 << ((mmMME_QM_GLBL_ERR_WDATA & 0x7F) >> 2); 115 mask |= 1 << ((mmMME_QM_GLBL_SECURE_PROPS & 0x7F) >> 2); 116 mask |= 1 << ((mmMME_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 117 mask |= 1 << ((mmMME_QM_GLBL_STS0 & 0x7F) >> 2); 118 mask |= 1 << ((mmMME_QM_GLBL_STS1 & 0x7F) >> 2); 119 mask |= 1 << ((mmMME_QM_PQ_BASE_LO & 0x7F) >> 2); 120 mask |= 1 << ((mmMME_QM_PQ_BASE_HI & 0x7F) >> 2); 121 mask |= 1 << ((mmMME_QM_PQ_SIZE & 0x7F) >> 2); 122 mask |= 1 << ((mmMME_QM_PQ_PI & 0x7F) >> 2); 123 mask |= 1 << ((mmMME_QM_PQ_CI & 0x7F) >> 2); 124 mask |= 1 << ((mmMME_QM_PQ_CFG0 & 0x7F) >> 2); 125 mask |= 1 << ((mmMME_QM_PQ_CFG1 & 0x7F) >> 2); 126 mask |= 1 << ((mmMME_QM_PQ_ARUSER & 0x7F) >> 2); 127 128 WREG32(pb_addr + word_offset, ~mask); 129 130 pb_addr = (mmMME_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 131 word_offset = ((mmMME_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 132 mask = 1 << ((mmMME_QM_PQ_PUSH0 & 0x7F) >> 2); 133 mask |= 1 << ((mmMME_QM_PQ_PUSH1 & 0x7F) >> 2); 134 mask |= 1 << ((mmMME_QM_PQ_PUSH2 & 0x7F) >> 2); 135 mask |= 1 << ((mmMME_QM_PQ_PUSH3 & 0x7F) >> 2); 136 mask |= 1 << ((mmMME_QM_PQ_STS0 & 0x7F) >> 2); 137 mask |= 1 << ((mmMME_QM_PQ_STS1 & 0x7F) >> 2); 138 mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 139 mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 140 mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 141 mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 142 mask |= 1 << ((mmMME_QM_CQ_CFG0 & 0x7F) >> 2); 143 mask |= 1 << ((mmMME_QM_CQ_CFG1 & 0x7F) >> 2); 144 mask |= 1 << ((mmMME_QM_CQ_ARUSER & 0x7F) >> 2); 145 mask |= 1 << ((mmMME_QM_CQ_PTR_LO & 0x7F) >> 2); 146 mask |= 1 << ((mmMME_QM_CQ_PTR_HI & 0x7F) >> 2); 147 mask |= 1 << ((mmMME_QM_CQ_TSIZE & 0x7F) >> 2); 148 mask |= 1 << ((mmMME_QM_CQ_CTL & 0x7F) >> 2); 149 mask |= 1 << ((mmMME_QM_CQ_PTR_LO_STS & 0x7F) >> 2); 150 mask |= 1 << ((mmMME_QM_CQ_PTR_HI_STS & 0x7F) >> 2); 151 mask |= 1 << ((mmMME_QM_CQ_TSIZE_STS & 0x7F) >> 2); 152 mask |= 1 << ((mmMME_QM_CQ_CTL_STS & 0x7F) >> 2); 153 mask |= 1 << ((mmMME_QM_CQ_STS0 & 0x7F) >> 2); 154 mask |= 1 << ((mmMME_QM_CQ_STS1 & 0x7F) >> 2); 155 mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 156 mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 157 mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 158 mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 159 160 WREG32(pb_addr + word_offset, ~mask); 161 162 pb_addr = (mmMME_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 163 word_offset = ((mmMME_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 164 mask = 1 << ((mmMME_QM_CQ_IFIFO_CNT & 0x7F) >> 2); 165 mask |= 1 << ((mmMME_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 166 mask |= 1 << ((mmMME_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 167 mask |= 1 << ((mmMME_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 168 mask |= 1 << ((mmMME_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 169 mask |= 1 << ((mmMME_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 170 mask |= 1 << ((mmMME_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 171 mask |= 1 << ((mmMME_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 172 mask |= 1 << ((mmMME_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 173 mask |= 1 << ((mmMME_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 174 mask |= 1 << ((mmMME_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 175 mask |= 1 << ((mmMME_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 176 mask |= 1 << ((mmMME_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 177 mask |= 1 << ((mmMME_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 178 mask |= 1 << ((mmMME_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 179 180 WREG32(pb_addr + word_offset, ~mask); 181 182 pb_addr = (mmMME_QM_CP_STS & ~0xFFF) + PROT_BITS_OFFS; 183 word_offset = ((mmMME_QM_CP_STS & PROT_BITS_OFFS) >> 7) << 2; 184 mask = 1 << ((mmMME_QM_CP_STS & 0x7F) >> 2); 185 mask |= 1 << ((mmMME_QM_CP_CURRENT_INST_LO & 0x7F) >> 2); 186 mask |= 1 << ((mmMME_QM_CP_CURRENT_INST_HI & 0x7F) >> 2); 187 mask |= 1 << ((mmMME_QM_CP_BARRIER_CFG & 0x7F) >> 2); 188 mask |= 1 << ((mmMME_QM_CP_DBG_0 & 0x7F) >> 2); 189 mask |= 1 << ((mmMME_QM_PQ_BUF_ADDR & 0x7F) >> 2); 190 mask |= 1 << ((mmMME_QM_PQ_BUF_RDATA & 0x7F) >> 2); 191 mask |= 1 << ((mmMME_QM_CQ_BUF_ADDR & 0x7F) >> 2); 192 mask |= 1 << ((mmMME_QM_CQ_BUF_RDATA & 0x7F) >> 2); 193 194 WREG32(pb_addr + word_offset, ~mask); 195 196 pb_addr = (mmMME_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 197 word_offset = ((mmMME_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 198 mask = 1 << ((mmMME_CMDQ_GLBL_CFG0 & 0x7F) >> 2); 199 mask |= 1 << ((mmMME_CMDQ_GLBL_CFG1 & 0x7F) >> 2); 200 mask |= 1 << ((mmMME_CMDQ_GLBL_PROT & 0x7F) >> 2); 201 mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2); 202 mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 203 mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 204 mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2); 205 mask |= 1 << ((mmMME_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2); 206 mask |= 1 << ((mmMME_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 207 mask |= 1 << ((mmMME_CMDQ_GLBL_STS0 & 0x7F) >> 2); 208 mask |= 1 << ((mmMME_CMDQ_GLBL_STS1 & 0x7F) >> 2); 209 210 WREG32(pb_addr + word_offset, ~mask); 211 212 pb_addr = (mmMME_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 213 word_offset = ((mmMME_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 214 mask = 1 << ((mmMME_CMDQ_CQ_CFG0 & 0x7F) >> 2); 215 mask |= 1 << ((mmMME_CMDQ_CQ_CFG1 & 0x7F) >> 2); 216 mask |= 1 << ((mmMME_CMDQ_CQ_ARUSER & 0x7F) >> 2); 217 mask |= 1 << ((mmMME_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2); 218 mask |= 1 << ((mmMME_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2); 219 mask |= 1 << ((mmMME_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2); 220 mask |= 1 << ((mmMME_CMDQ_CQ_CTL_STS & 0x7F) >> 2); 221 mask |= 1 << ((mmMME_CMDQ_CQ_STS0 & 0x7F) >> 2); 222 mask |= 1 << ((mmMME_CMDQ_CQ_STS1 & 0x7F) >> 2); 223 mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 224 mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 225 mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 226 mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 227 228 WREG32(pb_addr + word_offset, ~mask); 229 230 pb_addr = (mmMME_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 231 word_offset = ((mmMME_CMDQ_CQ_IFIFO_CNT & 232 PROT_BITS_OFFS) >> 7) << 2; 233 mask = 1 << ((mmMME_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2); 234 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 235 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 236 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 237 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 238 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 239 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 240 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 241 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 242 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 243 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 244 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 245 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 246 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 247 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 248 mask |= 1 << ((mmMME_CMDQ_CP_STS & 0x7F) >> 2); 249 mask |= 1 << ((mmMME_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2); 250 251 WREG32(pb_addr + word_offset, ~mask); 252 253 pb_addr = (mmMME_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS; 254 word_offset = ((mmMME_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7) 255 << 2; 256 mask = 1 << ((mmMME_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2); 257 mask |= 1 << ((mmMME_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2); 258 mask |= 1 << ((mmMME_CMDQ_CP_DBG_0 & 0x7F) >> 2); 259 mask |= 1 << ((mmMME_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2); 260 mask |= 1 << ((mmMME_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2); 261 262 WREG32(pb_addr + word_offset, ~mask); 263 264 pb_addr = (mmMME_SBB_POWER_ECO1 & ~0xFFF) + PROT_BITS_OFFS; 265 word_offset = ((mmMME_SBB_POWER_ECO1 & PROT_BITS_OFFS) >> 7) << 2; 266 mask = 1 << ((mmMME_SBB_POWER_ECO1 & 0x7F) >> 2); 267 mask |= 1 << ((mmMME_SBB_POWER_ECO2 & 0x7F) >> 2); 268 269 WREG32(pb_addr + word_offset, ~mask); 270} 271 272static void goya_init_dma_protection_bits(struct hl_device *hdev) 273{ 274 u32 pb_addr, mask; 275 u8 word_offset; 276 277 goya_pb_set_block(hdev, mmDMA_NRTR_BASE); 278 goya_pb_set_block(hdev, mmDMA_RD_REGULATOR_BASE); 279 goya_pb_set_block(hdev, mmDMA_WR_REGULATOR_BASE); 280 281 pb_addr = (mmDMA_QM_0_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 282 word_offset = ((mmDMA_QM_0_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 283 mask = 1 << ((mmDMA_QM_0_GLBL_CFG0 & 0x7F) >> 2); 284 mask |= 1 << ((mmDMA_QM_0_GLBL_CFG1 & 0x7F) >> 2); 285 mask |= 1 << ((mmDMA_QM_0_GLBL_PROT & 0x7F) >> 2); 286 mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_CFG & 0x7F) >> 2); 287 mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 288 mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 289 mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_WDATA & 0x7F) >> 2); 290 mask |= 1 << ((mmDMA_QM_0_GLBL_SECURE_PROPS & 0x7F) >> 2); 291 mask |= 1 << ((mmDMA_QM_0_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 292 mask |= 1 << ((mmDMA_QM_0_GLBL_STS0 & 0x7F) >> 2); 293 mask |= 1 << ((mmDMA_QM_0_GLBL_STS1 & 0x7F) >> 2); 294 mask |= 1 << ((mmDMA_QM_0_PQ_BASE_LO & 0x7F) >> 2); 295 mask |= 1 << ((mmDMA_QM_0_PQ_BASE_HI & 0x7F) >> 2); 296 mask |= 1 << ((mmDMA_QM_0_PQ_SIZE & 0x7F) >> 2); 297 mask |= 1 << ((mmDMA_QM_0_PQ_PI & 0x7F) >> 2); 298 mask |= 1 << ((mmDMA_QM_0_PQ_CI & 0x7F) >> 2); 299 mask |= 1 << ((mmDMA_QM_0_PQ_CFG0 & 0x7F) >> 2); 300 mask |= 1 << ((mmDMA_QM_0_PQ_CFG1 & 0x7F) >> 2); 301 mask |= 1 << ((mmDMA_QM_0_PQ_ARUSER & 0x7F) >> 2); 302 303 WREG32(pb_addr + word_offset, ~mask); 304 305 pb_addr = (mmDMA_QM_0_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 306 word_offset = ((mmDMA_QM_0_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 307 mask = 1 << ((mmDMA_QM_0_PQ_PUSH0 & 0x7F) >> 2); 308 mask |= 1 << ((mmDMA_QM_0_PQ_PUSH1 & 0x7F) >> 2); 309 mask |= 1 << ((mmDMA_QM_0_PQ_PUSH2 & 0x7F) >> 2); 310 mask |= 1 << ((mmDMA_QM_0_PQ_PUSH3 & 0x7F) >> 2); 311 mask |= 1 << ((mmDMA_QM_0_PQ_STS0 & 0x7F) >> 2); 312 mask |= 1 << ((mmDMA_QM_0_PQ_STS1 & 0x7F) >> 2); 313 mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 314 mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 315 mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 316 mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 317 mask |= 1 << ((mmDMA_QM_0_CQ_CFG0 & 0x7F) >> 2); 318 mask |= 1 << ((mmDMA_QM_0_CQ_CFG1 & 0x7F) >> 2); 319 mask |= 1 << ((mmDMA_QM_0_CQ_ARUSER & 0x7F) >> 2); 320 mask |= 1 << ((mmDMA_QM_0_CQ_PTR_LO & 0x7F) >> 2); 321 mask |= 1 << ((mmDMA_QM_0_CQ_PTR_HI & 0x7F) >> 2); 322 mask |= 1 << ((mmDMA_QM_0_CQ_TSIZE & 0x7F) >> 2); 323 mask |= 1 << ((mmDMA_QM_0_CQ_CTL & 0x7F) >> 2); 324 mask |= 1 << ((mmDMA_QM_0_CQ_PTR_LO_STS & 0x7F) >> 2); 325 mask |= 1 << ((mmDMA_QM_0_CQ_PTR_HI_STS & 0x7F) >> 2); 326 mask |= 1 << ((mmDMA_QM_0_CQ_TSIZE_STS & 0x7F) >> 2); 327 mask |= 1 << ((mmDMA_QM_0_CQ_CTL_STS & 0x7F) >> 2); 328 mask |= 1 << ((mmDMA_QM_0_CQ_STS0 & 0x7F) >> 2); 329 mask |= 1 << ((mmDMA_QM_0_CQ_STS1 & 0x7F) >> 2); 330 mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 331 mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 332 mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 333 mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 334 335 WREG32(pb_addr + word_offset, ~mask); 336 337 pb_addr = (mmDMA_QM_0_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 338 word_offset = ((mmDMA_QM_0_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 339 mask = 1 << ((mmDMA_QM_0_CQ_IFIFO_CNT & 0x7F) >> 2); 340 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 341 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 342 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 343 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 344 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 345 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 346 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 347 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 348 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 349 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 350 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 351 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 352 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 353 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 354 355 WREG32(pb_addr + word_offset, ~mask); 356 357 goya_pb_set_block(hdev, mmDMA_CH_0_BASE); 358 359 pb_addr = (mmDMA_QM_1_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 360 word_offset = ((mmDMA_QM_1_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 361 mask = 1 << ((mmDMA_QM_1_GLBL_CFG0 & 0x7F) >> 2); 362 mask |= 1 << ((mmDMA_QM_1_GLBL_CFG1 & 0x7F) >> 2); 363 mask |= 1 << ((mmDMA_QM_1_GLBL_PROT & 0x7F) >> 2); 364 mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_CFG & 0x7F) >> 2); 365 mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 366 mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 367 mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_WDATA & 0x7F) >> 2); 368 mask |= 1 << ((mmDMA_QM_1_GLBL_SECURE_PROPS & 0x7F) >> 2); 369 mask |= 1 << ((mmDMA_QM_1_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 370 mask |= 1 << ((mmDMA_QM_1_GLBL_STS0 & 0x7F) >> 2); 371 mask |= 1 << ((mmDMA_QM_1_GLBL_STS1 & 0x7F) >> 2); 372 mask |= 1 << ((mmDMA_QM_1_PQ_BASE_LO & 0x7F) >> 2); 373 mask |= 1 << ((mmDMA_QM_1_PQ_BASE_HI & 0x7F) >> 2); 374 mask |= 1 << ((mmDMA_QM_1_PQ_SIZE & 0x7F) >> 2); 375 mask |= 1 << ((mmDMA_QM_1_PQ_PI & 0x7F) >> 2); 376 mask |= 1 << ((mmDMA_QM_1_PQ_CI & 0x7F) >> 2); 377 mask |= 1 << ((mmDMA_QM_1_PQ_CFG0 & 0x7F) >> 2); 378 mask |= 1 << ((mmDMA_QM_1_PQ_CFG1 & 0x7F) >> 2); 379 mask |= 1 << ((mmDMA_QM_1_PQ_ARUSER & 0x7F) >> 2); 380 381 WREG32(pb_addr + word_offset, ~mask); 382 383 pb_addr = (mmDMA_QM_1_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 384 word_offset = ((mmDMA_QM_1_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 385 mask = 1 << ((mmDMA_QM_1_PQ_PUSH0 & 0x7F) >> 2); 386 mask |= 1 << ((mmDMA_QM_1_PQ_PUSH1 & 0x7F) >> 2); 387 mask |= 1 << ((mmDMA_QM_1_PQ_PUSH2 & 0x7F) >> 2); 388 mask |= 1 << ((mmDMA_QM_1_PQ_PUSH3 & 0x7F) >> 2); 389 mask |= 1 << ((mmDMA_QM_1_PQ_STS0 & 0x7F) >> 2); 390 mask |= 1 << ((mmDMA_QM_1_PQ_STS1 & 0x7F) >> 2); 391 mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 392 mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 393 mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 394 mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 395 mask |= 1 << ((mmDMA_QM_1_CQ_CFG0 & 0x7F) >> 2); 396 mask |= 1 << ((mmDMA_QM_1_CQ_CFG1 & 0x7F) >> 2); 397 mask |= 1 << ((mmDMA_QM_1_CQ_ARUSER & 0x7F) >> 2); 398 mask |= 1 << ((mmDMA_QM_1_CQ_PTR_LO & 0x7F) >> 2); 399 mask |= 1 << ((mmDMA_QM_1_CQ_PTR_HI & 0x7F) >> 2); 400 mask |= 1 << ((mmDMA_QM_1_CQ_TSIZE & 0x7F) >> 2); 401 mask |= 1 << ((mmDMA_QM_1_CQ_CTL & 0x7F) >> 2); 402 mask |= 1 << ((mmDMA_QM_1_CQ_PTR_LO_STS & 0x7F) >> 2); 403 mask |= 1 << ((mmDMA_QM_1_CQ_PTR_HI_STS & 0x7F) >> 2); 404 mask |= 1 << ((mmDMA_QM_1_CQ_TSIZE_STS & 0x7F) >> 2); 405 mask |= 1 << ((mmDMA_QM_1_CQ_CTL_STS & 0x7F) >> 2); 406 mask |= 1 << ((mmDMA_QM_1_CQ_STS0 & 0x7F) >> 2); 407 mask |= 1 << ((mmDMA_QM_1_CQ_STS1 & 0x7F) >> 2); 408 mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 409 mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 410 mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 411 mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 412 413 WREG32(pb_addr + word_offset, ~mask); 414 415 pb_addr = (mmDMA_QM_1_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 416 word_offset = ((mmDMA_QM_1_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 417 mask = 1 << ((mmDMA_QM_1_CQ_IFIFO_CNT & 0x7F) >> 2); 418 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 419 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 420 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 421 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 422 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 423 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 424 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 425 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 426 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 427 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 428 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 429 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 430 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 431 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 432 433 WREG32(pb_addr + word_offset, ~mask); 434 435 goya_pb_set_block(hdev, mmDMA_CH_1_BASE); 436 437 pb_addr = (mmDMA_QM_2_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 438 word_offset = ((mmDMA_QM_2_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 439 mask = 1 << ((mmDMA_QM_2_GLBL_CFG0 & 0x7F) >> 2); 440 mask |= 1 << ((mmDMA_QM_2_GLBL_CFG1 & 0x7F) >> 2); 441 mask |= 1 << ((mmDMA_QM_2_GLBL_PROT & 0x7F) >> 2); 442 mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_CFG & 0x7F) >> 2); 443 mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 444 mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 445 mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_WDATA & 0x7F) >> 2); 446 mask |= 1 << ((mmDMA_QM_2_GLBL_SECURE_PROPS & 0x7F) >> 2); 447 mask |= 1 << ((mmDMA_QM_2_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 448 mask |= 1 << ((mmDMA_QM_2_GLBL_STS0 & 0x7F) >> 2); 449 mask |= 1 << ((mmDMA_QM_2_GLBL_STS1 & 0x7F) >> 2); 450 mask |= 1 << ((mmDMA_QM_2_PQ_BASE_LO & 0x7F) >> 2); 451 mask |= 1 << ((mmDMA_QM_2_PQ_BASE_HI & 0x7F) >> 2); 452 mask |= 1 << ((mmDMA_QM_2_PQ_SIZE & 0x7F) >> 2); 453 mask |= 1 << ((mmDMA_QM_2_PQ_PI & 0x7F) >> 2); 454 mask |= 1 << ((mmDMA_QM_2_PQ_CI & 0x7F) >> 2); 455 mask |= 1 << ((mmDMA_QM_2_PQ_CFG0 & 0x7F) >> 2); 456 mask |= 1 << ((mmDMA_QM_2_PQ_CFG1 & 0x7F) >> 2); 457 mask |= 1 << ((mmDMA_QM_2_PQ_ARUSER & 0x7F) >> 2); 458 459 WREG32(pb_addr + word_offset, ~mask); 460 461 pb_addr = (mmDMA_QM_2_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 462 word_offset = ((mmDMA_QM_2_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 463 mask = 1 << ((mmDMA_QM_2_PQ_PUSH0 & 0x7F) >> 2); 464 mask |= 1 << ((mmDMA_QM_2_PQ_PUSH1 & 0x7F) >> 2); 465 mask |= 1 << ((mmDMA_QM_2_PQ_PUSH2 & 0x7F) >> 2); 466 mask |= 1 << ((mmDMA_QM_2_PQ_PUSH3 & 0x7F) >> 2); 467 mask |= 1 << ((mmDMA_QM_2_PQ_STS0 & 0x7F) >> 2); 468 mask |= 1 << ((mmDMA_QM_2_PQ_STS1 & 0x7F) >> 2); 469 mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 470 mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 471 mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 472 mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 473 mask |= 1 << ((mmDMA_QM_2_CQ_CFG0 & 0x7F) >> 2); 474 mask |= 1 << ((mmDMA_QM_2_CQ_CFG1 & 0x7F) >> 2); 475 mask |= 1 << ((mmDMA_QM_2_CQ_ARUSER & 0x7F) >> 2); 476 mask |= 1 << ((mmDMA_QM_2_CQ_PTR_LO & 0x7F) >> 2); 477 mask |= 1 << ((mmDMA_QM_2_CQ_PTR_HI & 0x7F) >> 2); 478 mask |= 1 << ((mmDMA_QM_2_CQ_TSIZE & 0x7F) >> 2); 479 mask |= 1 << ((mmDMA_QM_2_CQ_CTL & 0x7F) >> 2); 480 mask |= 1 << ((mmDMA_QM_2_CQ_PTR_LO_STS & 0x7F) >> 2); 481 mask |= 1 << ((mmDMA_QM_2_CQ_PTR_HI_STS & 0x7F) >> 2); 482 mask |= 1 << ((mmDMA_QM_2_CQ_TSIZE_STS & 0x7F) >> 2); 483 mask |= 1 << ((mmDMA_QM_2_CQ_CTL_STS & 0x7F) >> 2); 484 mask |= 1 << ((mmDMA_QM_2_CQ_STS0 & 0x7F) >> 2); 485 mask |= 1 << ((mmDMA_QM_2_CQ_STS1 & 0x7F) >> 2); 486 mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 487 mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 488 mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 489 mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 490 491 WREG32(pb_addr + word_offset, ~mask); 492 493 pb_addr = (mmDMA_QM_2_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 494 word_offset = ((mmDMA_QM_2_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 495 mask = 1 << ((mmDMA_QM_2_CQ_IFIFO_CNT & 0x7F) >> 2); 496 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 497 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 498 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 499 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 500 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 501 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 502 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 503 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 504 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 505 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 506 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 507 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 508 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 509 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 510 511 WREG32(pb_addr + word_offset, ~mask); 512 513 goya_pb_set_block(hdev, mmDMA_CH_2_BASE); 514 515 pb_addr = (mmDMA_QM_3_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 516 word_offset = ((mmDMA_QM_3_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 517 mask = 1 << ((mmDMA_QM_3_GLBL_CFG0 & 0x7F) >> 2); 518 mask |= 1 << ((mmDMA_QM_3_GLBL_CFG1 & 0x7F) >> 2); 519 mask |= 1 << ((mmDMA_QM_3_GLBL_PROT & 0x7F) >> 2); 520 mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_CFG & 0x7F) >> 2); 521 mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 522 mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 523 mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_WDATA & 0x7F) >> 2); 524 mask |= 1 << ((mmDMA_QM_3_GLBL_SECURE_PROPS & 0x7F) >> 2); 525 mask |= 1 << ((mmDMA_QM_3_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 526 mask |= 1 << ((mmDMA_QM_3_GLBL_STS0 & 0x7F) >> 2); 527 mask |= 1 << ((mmDMA_QM_3_GLBL_STS1 & 0x7F) >> 2); 528 mask |= 1 << ((mmDMA_QM_3_PQ_BASE_LO & 0x7F) >> 2); 529 mask |= 1 << ((mmDMA_QM_3_PQ_BASE_HI & 0x7F) >> 2); 530 mask |= 1 << ((mmDMA_QM_3_PQ_SIZE & 0x7F) >> 2); 531 mask |= 1 << ((mmDMA_QM_3_PQ_PI & 0x7F) >> 2); 532 mask |= 1 << ((mmDMA_QM_3_PQ_CI & 0x7F) >> 2); 533 mask |= 1 << ((mmDMA_QM_3_PQ_CFG0 & 0x7F) >> 2); 534 mask |= 1 << ((mmDMA_QM_3_PQ_CFG1 & 0x7F) >> 2); 535 mask |= 1 << ((mmDMA_QM_3_PQ_ARUSER & 0x7F) >> 2); 536 537 WREG32(pb_addr + word_offset, ~mask); 538 539 pb_addr = (mmDMA_QM_3_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 540 word_offset = ((mmDMA_QM_3_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 541 mask = 1 << ((mmDMA_QM_3_PQ_PUSH0 & 0x7F) >> 2); 542 mask |= 1 << ((mmDMA_QM_3_PQ_PUSH1 & 0x7F) >> 2); 543 mask |= 1 << ((mmDMA_QM_3_PQ_PUSH2 & 0x7F) >> 2); 544 mask |= 1 << ((mmDMA_QM_3_PQ_PUSH3 & 0x7F) >> 2); 545 mask |= 1 << ((mmDMA_QM_3_PQ_STS0 & 0x7F) >> 2); 546 mask |= 1 << ((mmDMA_QM_3_PQ_STS1 & 0x7F) >> 2); 547 mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 548 mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 549 mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 550 mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 551 mask |= 1 << ((mmDMA_QM_3_CQ_CFG0 & 0x7F) >> 2); 552 mask |= 1 << ((mmDMA_QM_3_CQ_CFG1 & 0x7F) >> 2); 553 mask |= 1 << ((mmDMA_QM_3_CQ_ARUSER & 0x7F) >> 2); 554 mask |= 1 << ((mmDMA_QM_3_CQ_PTR_LO & 0x7F) >> 2); 555 mask |= 1 << ((mmDMA_QM_3_CQ_PTR_HI & 0x7F) >> 2); 556 mask |= 1 << ((mmDMA_QM_3_CQ_TSIZE & 0x7F) >> 2); 557 mask |= 1 << ((mmDMA_QM_3_CQ_CTL & 0x7F) >> 2); 558 mask |= 1 << ((mmDMA_QM_3_CQ_PTR_LO_STS & 0x7F) >> 2); 559 mask |= 1 << ((mmDMA_QM_3_CQ_PTR_HI_STS & 0x7F) >> 2); 560 mask |= 1 << ((mmDMA_QM_3_CQ_TSIZE_STS & 0x7F) >> 2); 561 mask |= 1 << ((mmDMA_QM_3_CQ_CTL_STS & 0x7F) >> 2); 562 mask |= 1 << ((mmDMA_QM_3_CQ_STS0 & 0x7F) >> 2); 563 mask |= 1 << ((mmDMA_QM_3_CQ_STS1 & 0x7F) >> 2); 564 mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 565 mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 566 mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 567 mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 568 569 WREG32(pb_addr + word_offset, ~mask); 570 571 pb_addr = (mmDMA_QM_3_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 572 word_offset = ((mmDMA_QM_3_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 573 mask = 1 << ((mmDMA_QM_3_CQ_IFIFO_CNT & 0x7F) >> 2); 574 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 575 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 576 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 577 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 578 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 579 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 580 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 581 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 582 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 583 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 584 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 585 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 586 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 587 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 588 589 WREG32(pb_addr + word_offset, ~mask); 590 591 goya_pb_set_block(hdev, mmDMA_CH_3_BASE); 592 593 pb_addr = (mmDMA_QM_4_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 594 word_offset = ((mmDMA_QM_4_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 595 mask = 1 << ((mmDMA_QM_4_GLBL_CFG0 & 0x7F) >> 2); 596 mask |= 1 << ((mmDMA_QM_4_GLBL_CFG1 & 0x7F) >> 2); 597 mask |= 1 << ((mmDMA_QM_4_GLBL_PROT & 0x7F) >> 2); 598 mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_CFG & 0x7F) >> 2); 599 mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 600 mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 601 mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_WDATA & 0x7F) >> 2); 602 mask |= 1 << ((mmDMA_QM_4_GLBL_SECURE_PROPS & 0x7F) >> 2); 603 mask |= 1 << ((mmDMA_QM_4_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 604 mask |= 1 << ((mmDMA_QM_4_GLBL_STS0 & 0x7F) >> 2); 605 mask |= 1 << ((mmDMA_QM_4_GLBL_STS1 & 0x7F) >> 2); 606 mask |= 1 << ((mmDMA_QM_4_PQ_BASE_LO & 0x7F) >> 2); 607 mask |= 1 << ((mmDMA_QM_4_PQ_BASE_HI & 0x7F) >> 2); 608 mask |= 1 << ((mmDMA_QM_4_PQ_SIZE & 0x7F) >> 2); 609 mask |= 1 << ((mmDMA_QM_4_PQ_PI & 0x7F) >> 2); 610 mask |= 1 << ((mmDMA_QM_4_PQ_CI & 0x7F) >> 2); 611 mask |= 1 << ((mmDMA_QM_4_PQ_CFG0 & 0x7F) >> 2); 612 mask |= 1 << ((mmDMA_QM_4_PQ_CFG1 & 0x7F) >> 2); 613 mask |= 1 << ((mmDMA_QM_4_PQ_ARUSER & 0x7F) >> 2); 614 615 WREG32(pb_addr + word_offset, ~mask); 616 617 pb_addr = (mmDMA_QM_4_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 618 word_offset = ((mmDMA_QM_4_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 619 mask = 1 << ((mmDMA_QM_4_PQ_PUSH0 & 0x7F) >> 2); 620 mask |= 1 << ((mmDMA_QM_4_PQ_PUSH1 & 0x7F) >> 2); 621 mask |= 1 << ((mmDMA_QM_4_PQ_PUSH2 & 0x7F) >> 2); 622 mask |= 1 << ((mmDMA_QM_4_PQ_PUSH3 & 0x7F) >> 2); 623 mask |= 1 << ((mmDMA_QM_4_PQ_STS0 & 0x7F) >> 2); 624 mask |= 1 << ((mmDMA_QM_4_PQ_STS1 & 0x7F) >> 2); 625 mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 626 mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 627 mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 628 mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 629 mask |= 1 << ((mmDMA_QM_4_CQ_CFG0 & 0x7F) >> 2); 630 mask |= 1 << ((mmDMA_QM_4_CQ_CFG1 & 0x7F) >> 2); 631 mask |= 1 << ((mmDMA_QM_4_CQ_ARUSER & 0x7F) >> 2); 632 mask |= 1 << ((mmDMA_QM_4_CQ_PTR_LO & 0x7F) >> 2); 633 mask |= 1 << ((mmDMA_QM_4_CQ_PTR_HI & 0x7F) >> 2); 634 mask |= 1 << ((mmDMA_QM_4_CQ_TSIZE & 0x7F) >> 2); 635 mask |= 1 << ((mmDMA_QM_4_CQ_CTL & 0x7F) >> 2); 636 mask |= 1 << ((mmDMA_QM_4_CQ_PTR_LO_STS & 0x7F) >> 2); 637 mask |= 1 << ((mmDMA_QM_4_CQ_PTR_HI_STS & 0x7F) >> 2); 638 mask |= 1 << ((mmDMA_QM_4_CQ_TSIZE_STS & 0x7F) >> 2); 639 mask |= 1 << ((mmDMA_QM_4_CQ_CTL_STS & 0x7F) >> 2); 640 mask |= 1 << ((mmDMA_QM_4_CQ_STS0 & 0x7F) >> 2); 641 mask |= 1 << ((mmDMA_QM_4_CQ_STS1 & 0x7F) >> 2); 642 mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 643 mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 644 mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 645 mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 646 647 WREG32(pb_addr + word_offset, ~mask); 648 649 pb_addr = (mmDMA_QM_4_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 650 word_offset = ((mmDMA_QM_4_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 651 mask = 1 << ((mmDMA_QM_4_CQ_IFIFO_CNT & 0x7F) >> 2); 652 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 653 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 654 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 655 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 656 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 657 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 658 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 659 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 660 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 661 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 662 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 663 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 664 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 665 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 666 667 WREG32(pb_addr + word_offset, ~mask); 668 669 goya_pb_set_block(hdev, mmDMA_CH_4_BASE); 670} 671 672static void goya_init_tpc_protection_bits(struct hl_device *hdev) 673{ 674 u32 pb_addr, mask; 675 u8 word_offset; 676 677 goya_pb_set_block(hdev, mmTPC0_RD_REGULATOR_BASE); 678 goya_pb_set_block(hdev, mmTPC0_WR_REGULATOR_BASE); 679 680 pb_addr = (mmTPC0_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS; 681 word_offset = ((mmTPC0_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2; 682 683 mask = 1 << ((mmTPC0_CFG_SEMAPHORE & 0x7F) >> 2); 684 mask |= 1 << ((mmTPC0_CFG_VFLAGS & 0x7F) >> 2); 685 mask |= 1 << ((mmTPC0_CFG_SFLAGS & 0x7F) >> 2); 686 mask |= 1 << ((mmTPC0_CFG_STATUS & 0x7F) >> 2); 687 688 WREG32(pb_addr + word_offset, ~mask); 689 690 pb_addr = (mmTPC0_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS; 691 word_offset = ((mmTPC0_CFG_CFG_BASE_ADDRESS_HIGH & 692 PROT_BITS_OFFS) >> 7) << 2; 693 mask = 1 << ((mmTPC0_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2); 694 mask |= 1 << ((mmTPC0_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2); 695 mask |= 1 << ((mmTPC0_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2); 696 mask |= 1 << ((mmTPC0_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2); 697 mask |= 1 << ((mmTPC0_CFG_TPC_STALL & 0x7F) >> 2); 698 mask |= 1 << ((mmTPC0_CFG_MSS_CONFIG & 0x7F) >> 2); 699 mask |= 1 << ((mmTPC0_CFG_TPC_INTR_CAUSE & 0x7F) >> 2); 700 mask |= 1 << ((mmTPC0_CFG_TPC_INTR_MASK & 0x7F) >> 2); 701 702 WREG32(pb_addr + word_offset, ~mask); 703 704 pb_addr = (mmTPC0_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS; 705 word_offset = ((mmTPC0_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2; 706 mask = 1 << ((mmTPC0_CFG_ARUSER & 0x7F) >> 2); 707 mask |= 1 << ((mmTPC0_CFG_AWUSER & 0x7F) >> 2); 708 709 WREG32(pb_addr + word_offset, ~mask); 710 711 pb_addr = (mmTPC0_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS; 712 word_offset = ((mmTPC0_CFG_FUNC_MBIST_CNTRL & 713 PROT_BITS_OFFS) >> 7) << 2; 714 mask = 1 << ((mmTPC0_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2); 715 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_PAT & 0x7F) >> 2); 716 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2); 717 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2); 718 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2); 719 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2); 720 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2); 721 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2); 722 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2); 723 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2); 724 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2); 725 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2); 726 727 WREG32(pb_addr + word_offset, ~mask); 728 729 pb_addr = (mmTPC0_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 730 word_offset = ((mmTPC0_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 731 mask = 1 << ((mmTPC0_QM_GLBL_CFG0 & 0x7F) >> 2); 732 mask |= 1 << ((mmTPC0_QM_GLBL_CFG1 & 0x7F) >> 2); 733 mask |= 1 << ((mmTPC0_QM_GLBL_PROT & 0x7F) >> 2); 734 mask |= 1 << ((mmTPC0_QM_GLBL_ERR_CFG & 0x7F) >> 2); 735 mask |= 1 << ((mmTPC0_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 736 mask |= 1 << ((mmTPC0_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 737 mask |= 1 << ((mmTPC0_QM_GLBL_ERR_WDATA & 0x7F) >> 2); 738 mask |= 1 << ((mmTPC0_QM_GLBL_SECURE_PROPS & 0x7F) >> 2); 739 mask |= 1 << ((mmTPC0_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 740 mask |= 1 << ((mmTPC0_QM_GLBL_STS0 & 0x7F) >> 2); 741 mask |= 1 << ((mmTPC0_QM_GLBL_STS1 & 0x7F) >> 2); 742 mask |= 1 << ((mmTPC0_QM_PQ_BASE_LO & 0x7F) >> 2); 743 mask |= 1 << ((mmTPC0_QM_PQ_BASE_HI & 0x7F) >> 2); 744 mask |= 1 << ((mmTPC0_QM_PQ_SIZE & 0x7F) >> 2); 745 mask |= 1 << ((mmTPC0_QM_PQ_PI & 0x7F) >> 2); 746 mask |= 1 << ((mmTPC0_QM_PQ_CI & 0x7F) >> 2); 747 mask |= 1 << ((mmTPC0_QM_PQ_CFG0 & 0x7F) >> 2); 748 mask |= 1 << ((mmTPC0_QM_PQ_CFG1 & 0x7F) >> 2); 749 mask |= 1 << ((mmTPC0_QM_PQ_ARUSER & 0x7F) >> 2); 750 751 WREG32(pb_addr + word_offset, ~mask); 752 753 pb_addr = (mmTPC0_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 754 word_offset = ((mmTPC0_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 755 mask = 1 << ((mmTPC0_QM_PQ_PUSH0 & 0x7F) >> 2); 756 mask |= 1 << ((mmTPC0_QM_PQ_PUSH1 & 0x7F) >> 2); 757 mask |= 1 << ((mmTPC0_QM_PQ_PUSH2 & 0x7F) >> 2); 758 mask |= 1 << ((mmTPC0_QM_PQ_PUSH3 & 0x7F) >> 2); 759 mask |= 1 << ((mmTPC0_QM_PQ_STS0 & 0x7F) >> 2); 760 mask |= 1 << ((mmTPC0_QM_PQ_STS1 & 0x7F) >> 2); 761 mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 762 mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 763 mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 764 mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 765 mask |= 1 << ((mmTPC0_QM_CQ_CFG0 & 0x7F) >> 2); 766 mask |= 1 << ((mmTPC0_QM_CQ_CFG1 & 0x7F) >> 2); 767 mask |= 1 << ((mmTPC0_QM_CQ_ARUSER & 0x7F) >> 2); 768 mask |= 1 << ((mmTPC0_QM_CQ_PTR_LO & 0x7F) >> 2); 769 mask |= 1 << ((mmTPC0_QM_CQ_PTR_HI & 0x7F) >> 2); 770 mask |= 1 << ((mmTPC0_QM_CQ_TSIZE & 0x7F) >> 2); 771 mask |= 1 << ((mmTPC0_QM_CQ_CTL & 0x7F) >> 2); 772 mask |= 1 << ((mmTPC0_QM_CQ_PTR_LO_STS & 0x7F) >> 2); 773 mask |= 1 << ((mmTPC0_QM_CQ_PTR_HI_STS & 0x7F) >> 2); 774 mask |= 1 << ((mmTPC0_QM_CQ_TSIZE_STS & 0x7F) >> 2); 775 mask |= 1 << ((mmTPC0_QM_CQ_CTL_STS & 0x7F) >> 2); 776 mask |= 1 << ((mmTPC0_QM_CQ_STS0 & 0x7F) >> 2); 777 mask |= 1 << ((mmTPC0_QM_CQ_STS1 & 0x7F) >> 2); 778 mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 779 mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 780 mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 781 mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 782 783 WREG32(pb_addr + word_offset, ~mask); 784 785 pb_addr = (mmTPC0_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 786 word_offset = ((mmTPC0_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 787 mask = 1 << ((mmTPC0_QM_CQ_IFIFO_CNT & 0x7F) >> 2); 788 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 789 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 790 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 791 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 792 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 793 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 794 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 795 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 796 mask |= 1 << ((mmTPC0_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 797 mask |= 1 << ((mmTPC0_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 798 mask |= 1 << ((mmTPC0_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 799 mask |= 1 << ((mmTPC0_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 800 mask |= 1 << ((mmTPC0_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 801 mask |= 1 << ((mmTPC0_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 802 803 WREG32(pb_addr + word_offset, ~mask); 804 805 pb_addr = (mmTPC0_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 806 word_offset = ((mmTPC0_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 807 mask = 1 << ((mmTPC0_CMDQ_GLBL_CFG0 & 0x7F) >> 2); 808 mask |= 1 << ((mmTPC0_CMDQ_GLBL_CFG1 & 0x7F) >> 2); 809 mask |= 1 << ((mmTPC0_CMDQ_GLBL_PROT & 0x7F) >> 2); 810 mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2); 811 mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 812 mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 813 mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2); 814 mask |= 1 << ((mmTPC0_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2); 815 mask |= 1 << ((mmTPC0_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 816 mask |= 1 << ((mmTPC0_CMDQ_GLBL_STS0 & 0x7F) >> 2); 817 mask |= 1 << ((mmTPC0_CMDQ_GLBL_STS1 & 0x7F) >> 2); 818 819 WREG32(pb_addr + word_offset, ~mask); 820 821 pb_addr = (mmTPC0_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 822 word_offset = ((mmTPC0_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 823 mask = 1 << ((mmTPC0_CMDQ_CQ_CFG0 & 0x7F) >> 2); 824 mask |= 1 << ((mmTPC0_CMDQ_CQ_CFG1 & 0x7F) >> 2); 825 mask |= 1 << ((mmTPC0_CMDQ_CQ_ARUSER & 0x7F) >> 2); 826 mask |= 1 << ((mmTPC0_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2); 827 mask |= 1 << ((mmTPC0_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2); 828 mask |= 1 << ((mmTPC0_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2); 829 mask |= 1 << ((mmTPC0_CMDQ_CQ_CTL_STS & 0x7F) >> 2); 830 mask |= 1 << ((mmTPC0_CMDQ_CQ_STS0 & 0x7F) >> 2); 831 mask |= 1 << ((mmTPC0_CMDQ_CQ_STS1 & 0x7F) >> 2); 832 mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 833 mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 834 mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 835 mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 836 837 WREG32(pb_addr + word_offset, ~mask); 838 839 pb_addr = (mmTPC0_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 840 word_offset = ((mmTPC0_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 841 mask = 1 << ((mmTPC0_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2); 842 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 843 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 844 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 845 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 846 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 847 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 848 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 849 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 850 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 851 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 852 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 853 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 854 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 855 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 856 mask |= 1 << ((mmTPC0_CMDQ_CP_STS & 0x7F) >> 2); 857 mask |= 1 << ((mmTPC0_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2); 858 859 WREG32(pb_addr + word_offset, ~mask); 860 861 pb_addr = (mmTPC0_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS; 862 word_offset = ((mmTPC0_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7) 863 << 2; 864 mask = 1 << ((mmTPC0_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2); 865 mask |= 1 << ((mmTPC0_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2); 866 mask |= 1 << ((mmTPC0_CMDQ_CP_DBG_0 & 0x7F) >> 2); 867 mask |= 1 << ((mmTPC0_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2); 868 mask |= 1 << ((mmTPC0_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2); 869 870 WREG32(pb_addr + word_offset, ~mask); 871 872 goya_pb_set_block(hdev, mmTPC1_RTR_BASE); 873 goya_pb_set_block(hdev, mmTPC1_RD_REGULATOR_BASE); 874 goya_pb_set_block(hdev, mmTPC1_WR_REGULATOR_BASE); 875 876 pb_addr = (mmTPC1_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS; 877 word_offset = ((mmTPC1_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2; 878 879 mask = 1 << ((mmTPC1_CFG_SEMAPHORE & 0x7F) >> 2); 880 mask |= 1 << ((mmTPC1_CFG_VFLAGS & 0x7F) >> 2); 881 mask |= 1 << ((mmTPC1_CFG_SFLAGS & 0x7F) >> 2); 882 mask |= 1 << ((mmTPC1_CFG_STATUS & 0x7F) >> 2); 883 884 WREG32(pb_addr + word_offset, ~mask); 885 886 pb_addr = (mmTPC1_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS; 887 word_offset = ((mmTPC1_CFG_CFG_BASE_ADDRESS_HIGH & 888 PROT_BITS_OFFS) >> 7) << 2; 889 mask = 1 << ((mmTPC1_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2); 890 mask |= 1 << ((mmTPC1_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2); 891 mask |= 1 << ((mmTPC1_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2); 892 mask |= 1 << ((mmTPC1_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2); 893 mask |= 1 << ((mmTPC1_CFG_TPC_STALL & 0x7F) >> 2); 894 mask |= 1 << ((mmTPC1_CFG_MSS_CONFIG & 0x7F) >> 2); 895 mask |= 1 << ((mmTPC1_CFG_TPC_INTR_CAUSE & 0x7F) >> 2); 896 mask |= 1 << ((mmTPC1_CFG_TPC_INTR_MASK & 0x7F) >> 2); 897 898 WREG32(pb_addr + word_offset, ~mask); 899 900 pb_addr = (mmTPC1_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS; 901 word_offset = ((mmTPC1_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2; 902 mask = 1 << ((mmTPC1_CFG_ARUSER & 0x7F) >> 2); 903 mask |= 1 << ((mmTPC1_CFG_AWUSER & 0x7F) >> 2); 904 905 WREG32(pb_addr + word_offset, ~mask); 906 907 pb_addr = (mmTPC1_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS; 908 word_offset = ((mmTPC1_CFG_FUNC_MBIST_CNTRL & PROT_BITS_OFFS) >> 7) 909 << 2; 910 mask = 1 << ((mmTPC1_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2); 911 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_PAT & 0x7F) >> 2); 912 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2); 913 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2); 914 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2); 915 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2); 916 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2); 917 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2); 918 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2); 919 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2); 920 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2); 921 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2); 922 923 WREG32(pb_addr + word_offset, ~mask); 924 925 pb_addr = (mmTPC1_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 926 word_offset = ((mmTPC1_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 927 mask = 1 << ((mmTPC1_QM_GLBL_CFG0 & 0x7F) >> 2); 928 mask |= 1 << ((mmTPC1_QM_GLBL_CFG1 & 0x7F) >> 2); 929 mask |= 1 << ((mmTPC1_QM_GLBL_PROT & 0x7F) >> 2); 930 mask |= 1 << ((mmTPC1_QM_GLBL_ERR_CFG & 0x7F) >> 2); 931 mask |= 1 << ((mmTPC1_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 932 mask |= 1 << ((mmTPC1_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 933 mask |= 1 << ((mmTPC1_QM_GLBL_ERR_WDATA & 0x7F) >> 2); 934 mask |= 1 << ((mmTPC1_QM_GLBL_SECURE_PROPS & 0x7F) >> 2); 935 mask |= 1 << ((mmTPC1_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 936 mask |= 1 << ((mmTPC1_QM_GLBL_STS0 & 0x7F) >> 2); 937 mask |= 1 << ((mmTPC1_QM_GLBL_STS1 & 0x7F) >> 2); 938 mask |= 1 << ((mmTPC1_QM_PQ_BASE_LO & 0x7F) >> 2); 939 mask |= 1 << ((mmTPC1_QM_PQ_BASE_HI & 0x7F) >> 2); 940 mask |= 1 << ((mmTPC1_QM_PQ_SIZE & 0x7F) >> 2); 941 mask |= 1 << ((mmTPC1_QM_PQ_PI & 0x7F) >> 2); 942 mask |= 1 << ((mmTPC1_QM_PQ_CI & 0x7F) >> 2); 943 mask |= 1 << ((mmTPC1_QM_PQ_CFG0 & 0x7F) >> 2); 944 mask |= 1 << ((mmTPC1_QM_PQ_CFG1 & 0x7F) >> 2); 945 mask |= 1 << ((mmTPC1_QM_PQ_ARUSER & 0x7F) >> 2); 946 947 WREG32(pb_addr + word_offset, ~mask); 948 949 pb_addr = (mmTPC1_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 950 word_offset = ((mmTPC1_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 951 mask = 1 << ((mmTPC1_QM_PQ_PUSH0 & 0x7F) >> 2); 952 mask |= 1 << ((mmTPC1_QM_PQ_PUSH1 & 0x7F) >> 2); 953 mask |= 1 << ((mmTPC1_QM_PQ_PUSH2 & 0x7F) >> 2); 954 mask |= 1 << ((mmTPC1_QM_PQ_PUSH3 & 0x7F) >> 2); 955 mask |= 1 << ((mmTPC1_QM_PQ_STS0 & 0x7F) >> 2); 956 mask |= 1 << ((mmTPC1_QM_PQ_STS1 & 0x7F) >> 2); 957 mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 958 mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 959 mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 960 mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 961 mask |= 1 << ((mmTPC1_QM_CQ_CFG0 & 0x7F) >> 2); 962 mask |= 1 << ((mmTPC1_QM_CQ_CFG1 & 0x7F) >> 2); 963 mask |= 1 << ((mmTPC1_QM_CQ_ARUSER & 0x7F) >> 2); 964 mask |= 1 << ((mmTPC1_QM_CQ_PTR_LO & 0x7F) >> 2); 965 mask |= 1 << ((mmTPC1_QM_CQ_PTR_HI & 0x7F) >> 2); 966 mask |= 1 << ((mmTPC1_QM_CQ_TSIZE & 0x7F) >> 2); 967 mask |= 1 << ((mmTPC1_QM_CQ_CTL & 0x7F) >> 2); 968 mask |= 1 << ((mmTPC1_QM_CQ_PTR_LO_STS & 0x7F) >> 2); 969 mask |= 1 << ((mmTPC1_QM_CQ_PTR_HI_STS & 0x7F) >> 2); 970 mask |= 1 << ((mmTPC1_QM_CQ_TSIZE_STS & 0x7F) >> 2); 971 mask |= 1 << ((mmTPC1_QM_CQ_CTL_STS & 0x7F) >> 2); 972 mask |= 1 << ((mmTPC1_QM_CQ_STS0 & 0x7F) >> 2); 973 mask |= 1 << ((mmTPC1_QM_CQ_STS1 & 0x7F) >> 2); 974 mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 975 mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 976 mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 977 mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 978 979 WREG32(pb_addr + word_offset, ~mask); 980 981 pb_addr = (mmTPC1_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 982 word_offset = ((mmTPC1_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 983 mask = 1 << ((mmTPC1_QM_CQ_IFIFO_CNT & 0x7F) >> 2); 984 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 985 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 986 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 987 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 988 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 989 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 990 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 991 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 992 mask |= 1 << ((mmTPC1_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 993 mask |= 1 << ((mmTPC1_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 994 mask |= 1 << ((mmTPC1_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 995 mask |= 1 << ((mmTPC1_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 996 mask |= 1 << ((mmTPC1_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 997 mask |= 1 << ((mmTPC1_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 998 999 WREG32(pb_addr + word_offset, ~mask); 1000 1001 pb_addr = (mmTPC1_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1002 word_offset = ((mmTPC1_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1003 mask = 1 << ((mmTPC1_CMDQ_GLBL_CFG0 & 0x7F) >> 2); 1004 mask |= 1 << ((mmTPC1_CMDQ_GLBL_CFG1 & 0x7F) >> 2); 1005 mask |= 1 << ((mmTPC1_CMDQ_GLBL_PROT & 0x7F) >> 2); 1006 mask |= 1 << ((mmTPC1_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2); 1007 mask |= 1 << ((mmTPC1_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 1008 mask |= 1 << ((mmTPC1_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 1009 mask |= 1 << ((mmTPC1_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2); 1010 mask |= 1 << ((mmTPC1_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2); 1011 mask |= 1 << ((mmTPC1_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 1012 mask |= 1 << ((mmTPC1_CMDQ_GLBL_STS0 & 0x7F) >> 2); 1013 mask |= 1 << ((mmTPC1_CMDQ_GLBL_STS1 & 0x7F) >> 2); 1014 1015 WREG32(pb_addr + word_offset, ~mask); 1016 1017 pb_addr = (mmTPC1_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1018 word_offset = ((mmTPC1_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1019 mask = 1 << ((mmTPC1_CMDQ_CQ_CFG0 & 0x7F) >> 2); 1020 mask |= 1 << ((mmTPC1_CMDQ_CQ_CFG1 & 0x7F) >> 2); 1021 mask |= 1 << ((mmTPC1_CMDQ_CQ_ARUSER & 0x7F) >> 2); 1022 mask |= 1 << ((mmTPC1_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2); 1023 mask |= 1 << ((mmTPC1_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2); 1024 mask |= 1 << ((mmTPC1_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2); 1025 mask |= 1 << ((mmTPC1_CMDQ_CQ_CTL_STS & 0x7F) >> 2); 1026 mask |= 1 << ((mmTPC1_CMDQ_CQ_STS0 & 0x7F) >> 2); 1027 mask |= 1 << ((mmTPC1_CMDQ_CQ_STS1 & 0x7F) >> 2); 1028 mask |= 1 << ((mmTPC1_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1029 mask |= 1 << ((mmTPC1_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1030 mask |= 1 << ((mmTPC1_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1031 mask |= 1 << ((mmTPC1_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1032 1033 WREG32(pb_addr + word_offset, ~mask); 1034 1035 pb_addr = (mmTPC1_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 1036 word_offset = ((mmTPC1_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 1037 mask = 1 << ((mmTPC1_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2); 1038 mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 1039 mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 1040 mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 1041 mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 1042 mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 1043 mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 1044 mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 1045 mask |= 1 << ((mmTPC1_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 1046 mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 1047 mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 1048 mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 1049 mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 1050 mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 1051 mask |= 1 << ((mmTPC1_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 1052 mask |= 1 << ((mmTPC1_CMDQ_CP_STS & 0x7F) >> 2); 1053 mask |= 1 << ((mmTPC1_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2); 1054 1055 WREG32(pb_addr + word_offset, ~mask); 1056 1057 pb_addr = (mmTPC1_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS; 1058 word_offset = ((mmTPC1_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7) 1059 << 2; 1060 mask = 1 << ((mmTPC1_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2); 1061 mask |= 1 << ((mmTPC1_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2); 1062 mask |= 1 << ((mmTPC1_CMDQ_CP_DBG_0 & 0x7F) >> 2); 1063 mask |= 1 << ((mmTPC1_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2); 1064 mask |= 1 << ((mmTPC1_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2); 1065 1066 WREG32(pb_addr + word_offset, ~mask); 1067 1068 goya_pb_set_block(hdev, mmTPC2_RTR_BASE); 1069 goya_pb_set_block(hdev, mmTPC2_RD_REGULATOR_BASE); 1070 goya_pb_set_block(hdev, mmTPC2_WR_REGULATOR_BASE); 1071 1072 pb_addr = (mmTPC2_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS; 1073 word_offset = ((mmTPC2_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2; 1074 1075 mask = 1 << ((mmTPC2_CFG_SEMAPHORE & 0x7F) >> 2); 1076 mask |= 1 << ((mmTPC2_CFG_VFLAGS & 0x7F) >> 2); 1077 mask |= 1 << ((mmTPC2_CFG_SFLAGS & 0x7F) >> 2); 1078 mask |= 1 << ((mmTPC2_CFG_STATUS & 0x7F) >> 2); 1079 1080 WREG32(pb_addr + word_offset, ~mask); 1081 1082 pb_addr = (mmTPC2_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS; 1083 word_offset = ((mmTPC2_CFG_CFG_BASE_ADDRESS_HIGH & 1084 PROT_BITS_OFFS) >> 7) << 2; 1085 mask = 1 << ((mmTPC2_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2); 1086 mask |= 1 << ((mmTPC2_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2); 1087 mask |= 1 << ((mmTPC2_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2); 1088 mask |= 1 << ((mmTPC2_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2); 1089 mask |= 1 << ((mmTPC2_CFG_TPC_STALL & 0x7F) >> 2); 1090 mask |= 1 << ((mmTPC2_CFG_MSS_CONFIG & 0x7F) >> 2); 1091 mask |= 1 << ((mmTPC2_CFG_TPC_INTR_CAUSE & 0x7F) >> 2); 1092 mask |= 1 << ((mmTPC2_CFG_TPC_INTR_MASK & 0x7F) >> 2); 1093 1094 WREG32(pb_addr + word_offset, ~mask); 1095 1096 pb_addr = (mmTPC2_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS; 1097 word_offset = ((mmTPC2_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2; 1098 mask = 1 << ((mmTPC2_CFG_ARUSER & 0x7F) >> 2); 1099 mask |= 1 << ((mmTPC2_CFG_AWUSER & 0x7F) >> 2); 1100 1101 WREG32(pb_addr + word_offset, ~mask); 1102 1103 pb_addr = (mmTPC2_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS; 1104 word_offset = ((mmTPC2_CFG_FUNC_MBIST_CNTRL & PROT_BITS_OFFS) >> 7) 1105 << 2; 1106 mask = 1 << ((mmTPC2_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2); 1107 mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_PAT & 0x7F) >> 2); 1108 mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2); 1109 mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2); 1110 mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2); 1111 mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2); 1112 mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2); 1113 mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2); 1114 mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2); 1115 mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2); 1116 mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2); 1117 mask |= 1 << ((mmTPC2_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2); 1118 1119 WREG32(pb_addr + word_offset, ~mask); 1120 1121 pb_addr = (mmTPC2_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1122 word_offset = ((mmTPC2_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1123 mask = 1 << ((mmTPC2_QM_GLBL_CFG0 & 0x7F) >> 2); 1124 mask |= 1 << ((mmTPC2_QM_GLBL_CFG1 & 0x7F) >> 2); 1125 mask |= 1 << ((mmTPC2_QM_GLBL_PROT & 0x7F) >> 2); 1126 mask |= 1 << ((mmTPC2_QM_GLBL_ERR_CFG & 0x7F) >> 2); 1127 mask |= 1 << ((mmTPC2_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 1128 mask |= 1 << ((mmTPC2_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 1129 mask |= 1 << ((mmTPC2_QM_GLBL_ERR_WDATA & 0x7F) >> 2); 1130 mask |= 1 << ((mmTPC2_QM_GLBL_SECURE_PROPS & 0x7F) >> 2); 1131 mask |= 1 << ((mmTPC2_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 1132 mask |= 1 << ((mmTPC2_QM_GLBL_STS0 & 0x7F) >> 2); 1133 mask |= 1 << ((mmTPC2_QM_GLBL_STS1 & 0x7F) >> 2); 1134 mask |= 1 << ((mmTPC2_QM_PQ_BASE_LO & 0x7F) >> 2); 1135 mask |= 1 << ((mmTPC2_QM_PQ_BASE_HI & 0x7F) >> 2); 1136 mask |= 1 << ((mmTPC2_QM_PQ_SIZE & 0x7F) >> 2); 1137 mask |= 1 << ((mmTPC2_QM_PQ_PI & 0x7F) >> 2); 1138 mask |= 1 << ((mmTPC2_QM_PQ_CI & 0x7F) >> 2); 1139 mask |= 1 << ((mmTPC2_QM_PQ_CFG0 & 0x7F) >> 2); 1140 mask |= 1 << ((mmTPC2_QM_PQ_CFG1 & 0x7F) >> 2); 1141 mask |= 1 << ((mmTPC2_QM_PQ_ARUSER & 0x7F) >> 2); 1142 1143 WREG32(pb_addr + word_offset, ~mask); 1144 1145 pb_addr = (mmTPC2_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 1146 word_offset = ((mmTPC2_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 1147 mask = 1 << ((mmTPC2_QM_PQ_PUSH0 & 0x7F) >> 2); 1148 mask |= 1 << ((mmTPC2_QM_PQ_PUSH1 & 0x7F) >> 2); 1149 mask |= 1 << ((mmTPC2_QM_PQ_PUSH2 & 0x7F) >> 2); 1150 mask |= 1 << ((mmTPC2_QM_PQ_PUSH3 & 0x7F) >> 2); 1151 mask |= 1 << ((mmTPC2_QM_PQ_STS0 & 0x7F) >> 2); 1152 mask |= 1 << ((mmTPC2_QM_PQ_STS1 & 0x7F) >> 2); 1153 mask |= 1 << ((mmTPC2_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1154 mask |= 1 << ((mmTPC2_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1155 mask |= 1 << ((mmTPC2_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1156 mask |= 1 << ((mmTPC2_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1157 mask |= 1 << ((mmTPC2_QM_CQ_CFG0 & 0x7F) >> 2); 1158 mask |= 1 << ((mmTPC2_QM_CQ_CFG1 & 0x7F) >> 2); 1159 mask |= 1 << ((mmTPC2_QM_CQ_ARUSER & 0x7F) >> 2); 1160 mask |= 1 << ((mmTPC2_QM_CQ_PTR_LO & 0x7F) >> 2); 1161 mask |= 1 << ((mmTPC2_QM_CQ_PTR_HI & 0x7F) >> 2); 1162 mask |= 1 << ((mmTPC2_QM_CQ_TSIZE & 0x7F) >> 2); 1163 mask |= 1 << ((mmTPC2_QM_CQ_CTL & 0x7F) >> 2); 1164 mask |= 1 << ((mmTPC2_QM_CQ_PTR_LO_STS & 0x7F) >> 2); 1165 mask |= 1 << ((mmTPC2_QM_CQ_PTR_HI_STS & 0x7F) >> 2); 1166 mask |= 1 << ((mmTPC2_QM_CQ_TSIZE_STS & 0x7F) >> 2); 1167 mask |= 1 << ((mmTPC2_QM_CQ_CTL_STS & 0x7F) >> 2); 1168 mask |= 1 << ((mmTPC2_QM_CQ_STS0 & 0x7F) >> 2); 1169 mask |= 1 << ((mmTPC2_QM_CQ_STS1 & 0x7F) >> 2); 1170 mask |= 1 << ((mmTPC2_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1171 mask |= 1 << ((mmTPC2_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1172 mask |= 1 << ((mmTPC2_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1173 mask |= 1 << ((mmTPC2_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1174 1175 WREG32(pb_addr + word_offset, ~mask); 1176 1177 pb_addr = (mmTPC2_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 1178 word_offset = ((mmTPC2_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 1179 mask = 1 << ((mmTPC2_QM_CQ_IFIFO_CNT & 0x7F) >> 2); 1180 mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 1181 mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 1182 mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 1183 mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 1184 mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 1185 mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 1186 mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 1187 mask |= 1 << ((mmTPC2_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 1188 mask |= 1 << ((mmTPC2_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 1189 mask |= 1 << ((mmTPC2_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 1190 mask |= 1 << ((mmTPC2_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 1191 mask |= 1 << ((mmTPC2_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 1192 mask |= 1 << ((mmTPC2_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 1193 mask |= 1 << ((mmTPC2_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 1194 1195 WREG32(pb_addr + word_offset, ~mask); 1196 1197 pb_addr = (mmTPC2_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1198 word_offset = ((mmTPC2_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1199 mask = 1 << ((mmTPC2_CMDQ_GLBL_CFG0 & 0x7F) >> 2); 1200 mask |= 1 << ((mmTPC2_CMDQ_GLBL_CFG1 & 0x7F) >> 2); 1201 mask |= 1 << ((mmTPC2_CMDQ_GLBL_PROT & 0x7F) >> 2); 1202 mask |= 1 << ((mmTPC2_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2); 1203 mask |= 1 << ((mmTPC2_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 1204 mask |= 1 << ((mmTPC2_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 1205 mask |= 1 << ((mmTPC2_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2); 1206 mask |= 1 << ((mmTPC2_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2); 1207 mask |= 1 << ((mmTPC2_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 1208 mask |= 1 << ((mmTPC2_CMDQ_GLBL_STS0 & 0x7F) >> 2); 1209 mask |= 1 << ((mmTPC2_CMDQ_GLBL_STS1 & 0x7F) >> 2); 1210 1211 WREG32(pb_addr + word_offset, ~mask); 1212 1213 pb_addr = (mmTPC2_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1214 word_offset = ((mmTPC2_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1215 mask = 1 << ((mmTPC2_CMDQ_CQ_CFG0 & 0x7F) >> 2); 1216 mask |= 1 << ((mmTPC2_CMDQ_CQ_CFG1 & 0x7F) >> 2); 1217 mask |= 1 << ((mmTPC2_CMDQ_CQ_ARUSER & 0x7F) >> 2); 1218 mask |= 1 << ((mmTPC2_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2); 1219 mask |= 1 << ((mmTPC2_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2); 1220 mask |= 1 << ((mmTPC2_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2); 1221 mask |= 1 << ((mmTPC2_CMDQ_CQ_CTL_STS & 0x7F) >> 2); 1222 mask |= 1 << ((mmTPC2_CMDQ_CQ_STS0 & 0x7F) >> 2); 1223 mask |= 1 << ((mmTPC2_CMDQ_CQ_STS1 & 0x7F) >> 2); 1224 mask |= 1 << ((mmTPC2_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1225 mask |= 1 << ((mmTPC2_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1226 mask |= 1 << ((mmTPC2_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1227 mask |= 1 << ((mmTPC2_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1228 1229 WREG32(pb_addr + word_offset, ~mask); 1230 1231 pb_addr = (mmTPC2_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 1232 word_offset = ((mmTPC2_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 1233 mask = 1 << ((mmTPC2_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2); 1234 mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 1235 mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 1236 mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 1237 mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 1238 mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 1239 mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 1240 mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 1241 mask |= 1 << ((mmTPC2_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 1242 mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 1243 mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 1244 mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 1245 mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 1246 mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 1247 mask |= 1 << ((mmTPC2_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 1248 mask |= 1 << ((mmTPC2_CMDQ_CP_STS & 0x7F) >> 2); 1249 mask |= 1 << ((mmTPC2_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2); 1250 1251 WREG32(pb_addr + word_offset, ~mask); 1252 1253 pb_addr = (mmTPC2_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS; 1254 word_offset = ((mmTPC2_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7) 1255 << 2; 1256 mask = 1 << ((mmTPC2_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2); 1257 mask |= 1 << ((mmTPC2_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2); 1258 mask |= 1 << ((mmTPC2_CMDQ_CP_DBG_0 & 0x7F) >> 2); 1259 mask |= 1 << ((mmTPC2_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2); 1260 mask |= 1 << ((mmTPC2_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2); 1261 1262 WREG32(pb_addr + word_offset, ~mask); 1263 1264 goya_pb_set_block(hdev, mmTPC3_RTR_BASE); 1265 goya_pb_set_block(hdev, mmTPC3_RD_REGULATOR_BASE); 1266 goya_pb_set_block(hdev, mmTPC3_WR_REGULATOR_BASE); 1267 1268 pb_addr = (mmTPC3_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS; 1269 word_offset = ((mmTPC3_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2; 1270 1271 mask = 1 << ((mmTPC3_CFG_SEMAPHORE & 0x7F) >> 2); 1272 mask |= 1 << ((mmTPC3_CFG_VFLAGS & 0x7F) >> 2); 1273 mask |= 1 << ((mmTPC3_CFG_SFLAGS & 0x7F) >> 2); 1274 mask |= 1 << ((mmTPC3_CFG_STATUS & 0x7F) >> 2); 1275 1276 WREG32(pb_addr + word_offset, ~mask); 1277 1278 pb_addr = (mmTPC3_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS; 1279 word_offset = ((mmTPC3_CFG_CFG_BASE_ADDRESS_HIGH 1280 & PROT_BITS_OFFS) >> 7) << 2; 1281 mask = 1 << ((mmTPC3_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2); 1282 mask |= 1 << ((mmTPC3_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2); 1283 mask |= 1 << ((mmTPC3_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2); 1284 mask |= 1 << ((mmTPC3_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2); 1285 mask |= 1 << ((mmTPC3_CFG_TPC_STALL & 0x7F) >> 2); 1286 mask |= 1 << ((mmTPC3_CFG_MSS_CONFIG & 0x7F) >> 2); 1287 mask |= 1 << ((mmTPC3_CFG_TPC_INTR_CAUSE & 0x7F) >> 2); 1288 mask |= 1 << ((mmTPC3_CFG_TPC_INTR_MASK & 0x7F) >> 2); 1289 1290 WREG32(pb_addr + word_offset, ~mask); 1291 1292 pb_addr = (mmTPC3_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS; 1293 word_offset = ((mmTPC3_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2; 1294 mask = 1 << ((mmTPC3_CFG_ARUSER & 0x7F) >> 2); 1295 mask |= 1 << ((mmTPC3_CFG_AWUSER & 0x7F) >> 2); 1296 1297 WREG32(pb_addr + word_offset, ~mask); 1298 1299 pb_addr = (mmTPC3_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS; 1300 word_offset = ((mmTPC3_CFG_FUNC_MBIST_CNTRL 1301 & PROT_BITS_OFFS) >> 7) << 2; 1302 mask = 1 << ((mmTPC3_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2); 1303 mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_PAT & 0x7F) >> 2); 1304 mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2); 1305 mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2); 1306 mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2); 1307 mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2); 1308 mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2); 1309 mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2); 1310 mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2); 1311 mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2); 1312 mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2); 1313 mask |= 1 << ((mmTPC3_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2); 1314 1315 WREG32(pb_addr + word_offset, ~mask); 1316 1317 pb_addr = (mmTPC3_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1318 word_offset = ((mmTPC3_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1319 mask = 1 << ((mmTPC3_QM_GLBL_CFG0 & 0x7F) >> 2); 1320 mask |= 1 << ((mmTPC3_QM_GLBL_CFG1 & 0x7F) >> 2); 1321 mask |= 1 << ((mmTPC3_QM_GLBL_PROT & 0x7F) >> 2); 1322 mask |= 1 << ((mmTPC3_QM_GLBL_ERR_CFG & 0x7F) >> 2); 1323 mask |= 1 << ((mmTPC3_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 1324 mask |= 1 << ((mmTPC3_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 1325 mask |= 1 << ((mmTPC3_QM_GLBL_ERR_WDATA & 0x7F) >> 2); 1326 mask |= 1 << ((mmTPC3_QM_GLBL_SECURE_PROPS & 0x7F) >> 2); 1327 mask |= 1 << ((mmTPC3_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 1328 mask |= 1 << ((mmTPC3_QM_GLBL_STS0 & 0x7F) >> 2); 1329 mask |= 1 << ((mmTPC3_QM_GLBL_STS1 & 0x7F) >> 2); 1330 mask |= 1 << ((mmTPC3_QM_PQ_BASE_LO & 0x7F) >> 2); 1331 mask |= 1 << ((mmTPC3_QM_PQ_BASE_HI & 0x7F) >> 2); 1332 mask |= 1 << ((mmTPC3_QM_PQ_SIZE & 0x7F) >> 2); 1333 mask |= 1 << ((mmTPC3_QM_PQ_PI & 0x7F) >> 2); 1334 mask |= 1 << ((mmTPC3_QM_PQ_CI & 0x7F) >> 2); 1335 mask |= 1 << ((mmTPC3_QM_PQ_CFG0 & 0x7F) >> 2); 1336 mask |= 1 << ((mmTPC3_QM_PQ_CFG1 & 0x7F) >> 2); 1337 mask |= 1 << ((mmTPC3_QM_PQ_ARUSER & 0x7F) >> 2); 1338 1339 WREG32(pb_addr + word_offset, ~mask); 1340 1341 pb_addr = (mmTPC3_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 1342 word_offset = ((mmTPC3_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 1343 mask = 1 << ((mmTPC3_QM_PQ_PUSH0 & 0x7F) >> 2); 1344 mask |= 1 << ((mmTPC3_QM_PQ_PUSH1 & 0x7F) >> 2); 1345 mask |= 1 << ((mmTPC3_QM_PQ_PUSH2 & 0x7F) >> 2); 1346 mask |= 1 << ((mmTPC3_QM_PQ_PUSH3 & 0x7F) >> 2); 1347 mask |= 1 << ((mmTPC3_QM_PQ_STS0 & 0x7F) >> 2); 1348 mask |= 1 << ((mmTPC3_QM_PQ_STS1 & 0x7F) >> 2); 1349 mask |= 1 << ((mmTPC3_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1350 mask |= 1 << ((mmTPC3_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1351 mask |= 1 << ((mmTPC3_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1352 mask |= 1 << ((mmTPC3_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1353 mask |= 1 << ((mmTPC3_QM_CQ_CFG0 & 0x7F) >> 2); 1354 mask |= 1 << ((mmTPC3_QM_CQ_CFG1 & 0x7F) >> 2); 1355 mask |= 1 << ((mmTPC3_QM_CQ_ARUSER & 0x7F) >> 2); 1356 mask |= 1 << ((mmTPC3_QM_CQ_PTR_LO & 0x7F) >> 2); 1357 mask |= 1 << ((mmTPC3_QM_CQ_PTR_HI & 0x7F) >> 2); 1358 mask |= 1 << ((mmTPC3_QM_CQ_TSIZE & 0x7F) >> 2); 1359 mask |= 1 << ((mmTPC3_QM_CQ_CTL & 0x7F) >> 2); 1360 mask |= 1 << ((mmTPC3_QM_CQ_PTR_LO_STS & 0x7F) >> 2); 1361 mask |= 1 << ((mmTPC3_QM_CQ_PTR_HI_STS & 0x7F) >> 2); 1362 mask |= 1 << ((mmTPC3_QM_CQ_TSIZE_STS & 0x7F) >> 2); 1363 mask |= 1 << ((mmTPC3_QM_CQ_CTL_STS & 0x7F) >> 2); 1364 mask |= 1 << ((mmTPC3_QM_CQ_STS0 & 0x7F) >> 2); 1365 mask |= 1 << ((mmTPC3_QM_CQ_STS1 & 0x7F) >> 2); 1366 mask |= 1 << ((mmTPC3_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1367 mask |= 1 << ((mmTPC3_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1368 mask |= 1 << ((mmTPC3_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1369 mask |= 1 << ((mmTPC3_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1370 1371 WREG32(pb_addr + word_offset, ~mask); 1372 1373 pb_addr = (mmTPC3_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 1374 word_offset = ((mmTPC3_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 1375 mask = 1 << ((mmTPC3_QM_CQ_IFIFO_CNT & 0x7F) >> 2); 1376 mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 1377 mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 1378 mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 1379 mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 1380 mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 1381 mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 1382 mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 1383 mask |= 1 << ((mmTPC3_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 1384 mask |= 1 << ((mmTPC3_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 1385 mask |= 1 << ((mmTPC3_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 1386 mask |= 1 << ((mmTPC3_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 1387 mask |= 1 << ((mmTPC3_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 1388 mask |= 1 << ((mmTPC3_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 1389 mask |= 1 << ((mmTPC3_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 1390 1391 WREG32(pb_addr + word_offset, ~mask); 1392 1393 pb_addr = (mmTPC3_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1394 word_offset = ((mmTPC3_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1395 mask = 1 << ((mmTPC3_CMDQ_GLBL_CFG0 & 0x7F) >> 2); 1396 mask |= 1 << ((mmTPC3_CMDQ_GLBL_CFG1 & 0x7F) >> 2); 1397 mask |= 1 << ((mmTPC3_CMDQ_GLBL_PROT & 0x7F) >> 2); 1398 mask |= 1 << ((mmTPC3_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2); 1399 mask |= 1 << ((mmTPC3_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 1400 mask |= 1 << ((mmTPC3_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 1401 mask |= 1 << ((mmTPC3_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2); 1402 mask |= 1 << ((mmTPC3_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2); 1403 mask |= 1 << ((mmTPC3_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 1404 mask |= 1 << ((mmTPC3_CMDQ_GLBL_STS0 & 0x7F) >> 2); 1405 mask |= 1 << ((mmTPC3_CMDQ_GLBL_STS1 & 0x7F) >> 2); 1406 1407 WREG32(pb_addr + word_offset, ~mask); 1408 1409 pb_addr = (mmTPC3_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1410 word_offset = ((mmTPC3_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1411 mask = 1 << ((mmTPC3_CMDQ_CQ_CFG0 & 0x7F) >> 2); 1412 mask |= 1 << ((mmTPC3_CMDQ_CQ_CFG1 & 0x7F) >> 2); 1413 mask |= 1 << ((mmTPC3_CMDQ_CQ_ARUSER & 0x7F) >> 2); 1414 mask |= 1 << ((mmTPC3_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2); 1415 mask |= 1 << ((mmTPC3_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2); 1416 mask |= 1 << ((mmTPC3_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2); 1417 mask |= 1 << ((mmTPC3_CMDQ_CQ_CTL_STS & 0x7F) >> 2); 1418 mask |= 1 << ((mmTPC3_CMDQ_CQ_STS0 & 0x7F) >> 2); 1419 mask |= 1 << ((mmTPC3_CMDQ_CQ_STS1 & 0x7F) >> 2); 1420 mask |= 1 << ((mmTPC3_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1421 mask |= 1 << ((mmTPC3_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1422 mask |= 1 << ((mmTPC3_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1423 mask |= 1 << ((mmTPC3_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1424 1425 WREG32(pb_addr + word_offset, ~mask); 1426 1427 pb_addr = (mmTPC3_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 1428 word_offset = ((mmTPC3_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 1429 mask = 1 << ((mmTPC3_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2); 1430 mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 1431 mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 1432 mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 1433 mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 1434 mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 1435 mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 1436 mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 1437 mask |= 1 << ((mmTPC3_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 1438 mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 1439 mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 1440 mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 1441 mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 1442 mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 1443 mask |= 1 << ((mmTPC3_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 1444 mask |= 1 << ((mmTPC3_CMDQ_CP_STS & 0x7F) >> 2); 1445 mask |= 1 << ((mmTPC3_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2); 1446 1447 WREG32(pb_addr + word_offset, ~mask); 1448 1449 pb_addr = (mmTPC3_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS; 1450 word_offset = ((mmTPC3_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7) 1451 << 2; 1452 mask = 1 << ((mmTPC3_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2); 1453 mask |= 1 << ((mmTPC3_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2); 1454 mask |= 1 << ((mmTPC3_CMDQ_CP_DBG_0 & 0x7F) >> 2); 1455 mask |= 1 << ((mmTPC3_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2); 1456 mask |= 1 << ((mmTPC3_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2); 1457 1458 WREG32(pb_addr + word_offset, ~mask); 1459 1460 goya_pb_set_block(hdev, mmTPC4_RTR_BASE); 1461 goya_pb_set_block(hdev, mmTPC4_RD_REGULATOR_BASE); 1462 goya_pb_set_block(hdev, mmTPC4_WR_REGULATOR_BASE); 1463 1464 pb_addr = (mmTPC4_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS; 1465 word_offset = ((mmTPC4_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2; 1466 1467 mask = 1 << ((mmTPC4_CFG_SEMAPHORE & 0x7F) >> 2); 1468 mask |= 1 << ((mmTPC4_CFG_VFLAGS & 0x7F) >> 2); 1469 mask |= 1 << ((mmTPC4_CFG_SFLAGS & 0x7F) >> 2); 1470 mask |= 1 << ((mmTPC4_CFG_STATUS & 0x7F) >> 2); 1471 1472 WREG32(pb_addr + word_offset, ~mask); 1473 1474 pb_addr = (mmTPC4_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS; 1475 word_offset = ((mmTPC4_CFG_CFG_BASE_ADDRESS_HIGH & 1476 PROT_BITS_OFFS) >> 7) << 2; 1477 mask = 1 << ((mmTPC4_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2); 1478 mask |= 1 << ((mmTPC4_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2); 1479 mask |= 1 << ((mmTPC4_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2); 1480 mask |= 1 << ((mmTPC4_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2); 1481 mask |= 1 << ((mmTPC4_CFG_TPC_STALL & 0x7F) >> 2); 1482 mask |= 1 << ((mmTPC4_CFG_MSS_CONFIG & 0x7F) >> 2); 1483 mask |= 1 << ((mmTPC4_CFG_TPC_INTR_CAUSE & 0x7F) >> 2); 1484 mask |= 1 << ((mmTPC4_CFG_TPC_INTR_MASK & 0x7F) >> 2); 1485 1486 WREG32(pb_addr + word_offset, ~mask); 1487 1488 pb_addr = (mmTPC4_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS; 1489 word_offset = ((mmTPC4_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2; 1490 mask = 1 << ((mmTPC4_CFG_ARUSER & 0x7F) >> 2); 1491 mask |= 1 << ((mmTPC4_CFG_AWUSER & 0x7F) >> 2); 1492 1493 WREG32(pb_addr + word_offset, ~mask); 1494 1495 pb_addr = (mmTPC4_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS; 1496 word_offset = ((mmTPC4_CFG_FUNC_MBIST_CNTRL & 1497 PROT_BITS_OFFS) >> 7) << 2; 1498 mask = 1 << ((mmTPC4_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2); 1499 mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_PAT & 0x7F) >> 2); 1500 mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2); 1501 mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2); 1502 mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2); 1503 mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2); 1504 mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2); 1505 mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2); 1506 mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2); 1507 mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2); 1508 mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2); 1509 mask |= 1 << ((mmTPC4_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2); 1510 1511 WREG32(pb_addr + word_offset, ~mask); 1512 1513 pb_addr = (mmTPC4_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1514 word_offset = ((mmTPC4_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1515 mask = 1 << ((mmTPC4_QM_GLBL_CFG0 & 0x7F) >> 2); 1516 mask |= 1 << ((mmTPC4_QM_GLBL_CFG1 & 0x7F) >> 2); 1517 mask |= 1 << ((mmTPC4_QM_GLBL_PROT & 0x7F) >> 2); 1518 mask |= 1 << ((mmTPC4_QM_GLBL_ERR_CFG & 0x7F) >> 2); 1519 mask |= 1 << ((mmTPC4_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 1520 mask |= 1 << ((mmTPC4_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 1521 mask |= 1 << ((mmTPC4_QM_GLBL_ERR_WDATA & 0x7F) >> 2); 1522 mask |= 1 << ((mmTPC4_QM_GLBL_SECURE_PROPS & 0x7F) >> 2); 1523 mask |= 1 << ((mmTPC4_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 1524 mask |= 1 << ((mmTPC4_QM_GLBL_STS0 & 0x7F) >> 2); 1525 mask |= 1 << ((mmTPC4_QM_GLBL_STS1 & 0x7F) >> 2); 1526 mask |= 1 << ((mmTPC4_QM_PQ_BASE_LO & 0x7F) >> 2); 1527 mask |= 1 << ((mmTPC4_QM_PQ_BASE_HI & 0x7F) >> 2); 1528 mask |= 1 << ((mmTPC4_QM_PQ_SIZE & 0x7F) >> 2); 1529 mask |= 1 << ((mmTPC4_QM_PQ_PI & 0x7F) >> 2); 1530 mask |= 1 << ((mmTPC4_QM_PQ_CI & 0x7F) >> 2); 1531 mask |= 1 << ((mmTPC4_QM_PQ_CFG0 & 0x7F) >> 2); 1532 mask |= 1 << ((mmTPC4_QM_PQ_CFG1 & 0x7F) >> 2); 1533 mask |= 1 << ((mmTPC4_QM_PQ_ARUSER & 0x7F) >> 2); 1534 1535 WREG32(pb_addr + word_offset, ~mask); 1536 1537 pb_addr = (mmTPC4_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 1538 word_offset = ((mmTPC4_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 1539 mask = 1 << ((mmTPC4_QM_PQ_PUSH0 & 0x7F) >> 2); 1540 mask |= 1 << ((mmTPC4_QM_PQ_PUSH1 & 0x7F) >> 2); 1541 mask |= 1 << ((mmTPC4_QM_PQ_PUSH2 & 0x7F) >> 2); 1542 mask |= 1 << ((mmTPC4_QM_PQ_PUSH3 & 0x7F) >> 2); 1543 mask |= 1 << ((mmTPC4_QM_PQ_STS0 & 0x7F) >> 2); 1544 mask |= 1 << ((mmTPC4_QM_PQ_STS1 & 0x7F) >> 2); 1545 mask |= 1 << ((mmTPC4_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1546 mask |= 1 << ((mmTPC4_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1547 mask |= 1 << ((mmTPC4_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1548 mask |= 1 << ((mmTPC4_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1549 mask |= 1 << ((mmTPC4_QM_CQ_CFG0 & 0x7F) >> 2); 1550 mask |= 1 << ((mmTPC4_QM_CQ_CFG1 & 0x7F) >> 2); 1551 mask |= 1 << ((mmTPC4_QM_CQ_ARUSER & 0x7F) >> 2); 1552 mask |= 1 << ((mmTPC4_QM_CQ_PTR_LO & 0x7F) >> 2); 1553 mask |= 1 << ((mmTPC4_QM_CQ_PTR_HI & 0x7F) >> 2); 1554 mask |= 1 << ((mmTPC4_QM_CQ_TSIZE & 0x7F) >> 2); 1555 mask |= 1 << ((mmTPC4_QM_CQ_CTL & 0x7F) >> 2); 1556 mask |= 1 << ((mmTPC4_QM_CQ_PTR_LO_STS & 0x7F) >> 2); 1557 mask |= 1 << ((mmTPC4_QM_CQ_PTR_HI_STS & 0x7F) >> 2); 1558 mask |= 1 << ((mmTPC4_QM_CQ_TSIZE_STS & 0x7F) >> 2); 1559 mask |= 1 << ((mmTPC4_QM_CQ_CTL_STS & 0x7F) >> 2); 1560 mask |= 1 << ((mmTPC4_QM_CQ_STS0 & 0x7F) >> 2); 1561 mask |= 1 << ((mmTPC4_QM_CQ_STS1 & 0x7F) >> 2); 1562 mask |= 1 << ((mmTPC4_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1563 mask |= 1 << ((mmTPC4_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1564 mask |= 1 << ((mmTPC4_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1565 mask |= 1 << ((mmTPC4_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1566 1567 WREG32(pb_addr + word_offset, ~mask); 1568 1569 pb_addr = (mmTPC4_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 1570 word_offset = ((mmTPC4_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 1571 mask = 1 << ((mmTPC4_QM_CQ_IFIFO_CNT & 0x7F) >> 2); 1572 mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 1573 mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 1574 mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 1575 mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 1576 mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 1577 mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 1578 mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 1579 mask |= 1 << ((mmTPC4_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 1580 mask |= 1 << ((mmTPC4_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 1581 mask |= 1 << ((mmTPC4_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 1582 mask |= 1 << ((mmTPC4_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 1583 mask |= 1 << ((mmTPC4_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 1584 mask |= 1 << ((mmTPC4_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 1585 mask |= 1 << ((mmTPC4_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 1586 1587 WREG32(pb_addr + word_offset, ~mask); 1588 1589 pb_addr = (mmTPC4_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1590 word_offset = ((mmTPC4_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1591 mask = 1 << ((mmTPC4_CMDQ_GLBL_CFG0 & 0x7F) >> 2); 1592 mask |= 1 << ((mmTPC4_CMDQ_GLBL_CFG1 & 0x7F) >> 2); 1593 mask |= 1 << ((mmTPC4_CMDQ_GLBL_PROT & 0x7F) >> 2); 1594 mask |= 1 << ((mmTPC4_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2); 1595 mask |= 1 << ((mmTPC4_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 1596 mask |= 1 << ((mmTPC4_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 1597 mask |= 1 << ((mmTPC4_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2); 1598 mask |= 1 << ((mmTPC4_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2); 1599 mask |= 1 << ((mmTPC4_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 1600 mask |= 1 << ((mmTPC4_CMDQ_GLBL_STS0 & 0x7F) >> 2); 1601 mask |= 1 << ((mmTPC4_CMDQ_GLBL_STS1 & 0x7F) >> 2); 1602 1603 WREG32(pb_addr + word_offset, ~mask); 1604 1605 pb_addr = (mmTPC4_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1606 word_offset = ((mmTPC4_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1607 mask = 1 << ((mmTPC4_CMDQ_CQ_CFG0 & 0x7F) >> 2); 1608 mask |= 1 << ((mmTPC4_CMDQ_CQ_CFG1 & 0x7F) >> 2); 1609 mask |= 1 << ((mmTPC4_CMDQ_CQ_ARUSER & 0x7F) >> 2); 1610 mask |= 1 << ((mmTPC4_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2); 1611 mask |= 1 << ((mmTPC4_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2); 1612 mask |= 1 << ((mmTPC4_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2); 1613 mask |= 1 << ((mmTPC4_CMDQ_CQ_CTL_STS & 0x7F) >> 2); 1614 mask |= 1 << ((mmTPC4_CMDQ_CQ_STS0 & 0x7F) >> 2); 1615 mask |= 1 << ((mmTPC4_CMDQ_CQ_STS1 & 0x7F) >> 2); 1616 mask |= 1 << ((mmTPC4_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1617 mask |= 1 << ((mmTPC4_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1618 mask |= 1 << ((mmTPC4_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1619 mask |= 1 << ((mmTPC4_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1620 1621 WREG32(pb_addr + word_offset, ~mask); 1622 1623 pb_addr = (mmTPC4_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 1624 word_offset = ((mmTPC4_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 1625 mask = 1 << ((mmTPC4_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2); 1626 mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 1627 mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 1628 mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 1629 mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 1630 mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 1631 mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 1632 mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 1633 mask |= 1 << ((mmTPC4_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 1634 mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 1635 mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 1636 mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 1637 mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 1638 mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 1639 mask |= 1 << ((mmTPC4_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 1640 mask |= 1 << ((mmTPC4_CMDQ_CP_STS & 0x7F) >> 2); 1641 mask |= 1 << ((mmTPC4_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2); 1642 1643 WREG32(pb_addr + word_offset, ~mask); 1644 1645 pb_addr = (mmTPC4_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS; 1646 word_offset = ((mmTPC4_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7) 1647 << 2; 1648 mask = 1 << ((mmTPC4_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2); 1649 mask |= 1 << ((mmTPC4_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2); 1650 mask |= 1 << ((mmTPC4_CMDQ_CP_DBG_0 & 0x7F) >> 2); 1651 mask |= 1 << ((mmTPC4_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2); 1652 mask |= 1 << ((mmTPC4_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2); 1653 1654 WREG32(pb_addr + word_offset, ~mask); 1655 1656 goya_pb_set_block(hdev, mmTPC5_RTR_BASE); 1657 goya_pb_set_block(hdev, mmTPC5_RD_REGULATOR_BASE); 1658 goya_pb_set_block(hdev, mmTPC5_WR_REGULATOR_BASE); 1659 1660 pb_addr = (mmTPC5_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS; 1661 word_offset = ((mmTPC5_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2; 1662 1663 mask = 1 << ((mmTPC5_CFG_SEMAPHORE & 0x7F) >> 2); 1664 mask |= 1 << ((mmTPC5_CFG_VFLAGS & 0x7F) >> 2); 1665 mask |= 1 << ((mmTPC5_CFG_SFLAGS & 0x7F) >> 2); 1666 mask |= 1 << ((mmTPC5_CFG_STATUS & 0x7F) >> 2); 1667 1668 WREG32(pb_addr + word_offset, ~mask); 1669 1670 pb_addr = (mmTPC5_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS; 1671 word_offset = ((mmTPC5_CFG_CFG_BASE_ADDRESS_HIGH & 1672 PROT_BITS_OFFS) >> 7) << 2; 1673 mask = 1 << ((mmTPC5_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2); 1674 mask |= 1 << ((mmTPC5_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2); 1675 mask |= 1 << ((mmTPC5_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2); 1676 mask |= 1 << ((mmTPC5_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2); 1677 mask |= 1 << ((mmTPC5_CFG_TPC_STALL & 0x7F) >> 2); 1678 mask |= 1 << ((mmTPC5_CFG_MSS_CONFIG & 0x7F) >> 2); 1679 mask |= 1 << ((mmTPC5_CFG_TPC_INTR_CAUSE & 0x7F) >> 2); 1680 mask |= 1 << ((mmTPC5_CFG_TPC_INTR_MASK & 0x7F) >> 2); 1681 1682 WREG32(pb_addr + word_offset, ~mask); 1683 1684 pb_addr = (mmTPC5_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS; 1685 word_offset = ((mmTPC5_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2; 1686 mask = 1 << ((mmTPC5_CFG_ARUSER & 0x7F) >> 2); 1687 mask |= 1 << ((mmTPC5_CFG_AWUSER & 0x7F) >> 2); 1688 1689 WREG32(pb_addr + word_offset, ~mask); 1690 1691 pb_addr = (mmTPC5_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS; 1692 word_offset = ((mmTPC5_CFG_FUNC_MBIST_CNTRL & 1693 PROT_BITS_OFFS) >> 7) << 2; 1694 mask = 1 << ((mmTPC5_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2); 1695 mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_PAT & 0x7F) >> 2); 1696 mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2); 1697 mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2); 1698 mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2); 1699 mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2); 1700 mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2); 1701 mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2); 1702 mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2); 1703 mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2); 1704 mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2); 1705 mask |= 1 << ((mmTPC5_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2); 1706 1707 WREG32(pb_addr + word_offset, ~mask); 1708 1709 pb_addr = (mmTPC5_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1710 word_offset = ((mmTPC5_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1711 mask = 1 << ((mmTPC5_QM_GLBL_CFG0 & 0x7F) >> 2); 1712 mask |= 1 << ((mmTPC5_QM_GLBL_CFG1 & 0x7F) >> 2); 1713 mask |= 1 << ((mmTPC5_QM_GLBL_PROT & 0x7F) >> 2); 1714 mask |= 1 << ((mmTPC5_QM_GLBL_ERR_CFG & 0x7F) >> 2); 1715 mask |= 1 << ((mmTPC5_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 1716 mask |= 1 << ((mmTPC5_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 1717 mask |= 1 << ((mmTPC5_QM_GLBL_ERR_WDATA & 0x7F) >> 2); 1718 mask |= 1 << ((mmTPC5_QM_GLBL_SECURE_PROPS & 0x7F) >> 2); 1719 mask |= 1 << ((mmTPC5_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 1720 mask |= 1 << ((mmTPC5_QM_GLBL_STS0 & 0x7F) >> 2); 1721 mask |= 1 << ((mmTPC5_QM_GLBL_STS1 & 0x7F) >> 2); 1722 mask |= 1 << ((mmTPC5_QM_PQ_BASE_LO & 0x7F) >> 2); 1723 mask |= 1 << ((mmTPC5_QM_PQ_BASE_HI & 0x7F) >> 2); 1724 mask |= 1 << ((mmTPC5_QM_PQ_SIZE & 0x7F) >> 2); 1725 mask |= 1 << ((mmTPC5_QM_PQ_PI & 0x7F) >> 2); 1726 mask |= 1 << ((mmTPC5_QM_PQ_CI & 0x7F) >> 2); 1727 mask |= 1 << ((mmTPC5_QM_PQ_CFG0 & 0x7F) >> 2); 1728 mask |= 1 << ((mmTPC5_QM_PQ_CFG1 & 0x7F) >> 2); 1729 mask |= 1 << ((mmTPC5_QM_PQ_ARUSER & 0x7F) >> 2); 1730 1731 WREG32(pb_addr + word_offset, ~mask); 1732 1733 pb_addr = (mmTPC5_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 1734 word_offset = ((mmTPC5_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 1735 mask = 1 << ((mmTPC5_QM_PQ_PUSH0 & 0x7F) >> 2); 1736 mask |= 1 << ((mmTPC5_QM_PQ_PUSH1 & 0x7F) >> 2); 1737 mask |= 1 << ((mmTPC5_QM_PQ_PUSH2 & 0x7F) >> 2); 1738 mask |= 1 << ((mmTPC5_QM_PQ_PUSH3 & 0x7F) >> 2); 1739 mask |= 1 << ((mmTPC5_QM_PQ_STS0 & 0x7F) >> 2); 1740 mask |= 1 << ((mmTPC5_QM_PQ_STS1 & 0x7F) >> 2); 1741 mask |= 1 << ((mmTPC5_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1742 mask |= 1 << ((mmTPC5_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1743 mask |= 1 << ((mmTPC5_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1744 mask |= 1 << ((mmTPC5_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1745 mask |= 1 << ((mmTPC5_QM_CQ_CFG0 & 0x7F) >> 2); 1746 mask |= 1 << ((mmTPC5_QM_CQ_CFG1 & 0x7F) >> 2); 1747 mask |= 1 << ((mmTPC5_QM_CQ_ARUSER & 0x7F) >> 2); 1748 mask |= 1 << ((mmTPC5_QM_CQ_PTR_LO & 0x7F) >> 2); 1749 mask |= 1 << ((mmTPC5_QM_CQ_PTR_HI & 0x7F) >> 2); 1750 mask |= 1 << ((mmTPC5_QM_CQ_TSIZE & 0x7F) >> 2); 1751 mask |= 1 << ((mmTPC5_QM_CQ_CTL & 0x7F) >> 2); 1752 mask |= 1 << ((mmTPC5_QM_CQ_PTR_LO_STS & 0x7F) >> 2); 1753 mask |= 1 << ((mmTPC5_QM_CQ_PTR_HI_STS & 0x7F) >> 2); 1754 mask |= 1 << ((mmTPC5_QM_CQ_TSIZE_STS & 0x7F) >> 2); 1755 mask |= 1 << ((mmTPC5_QM_CQ_CTL_STS & 0x7F) >> 2); 1756 mask |= 1 << ((mmTPC5_QM_CQ_STS0 & 0x7F) >> 2); 1757 mask |= 1 << ((mmTPC5_QM_CQ_STS1 & 0x7F) >> 2); 1758 mask |= 1 << ((mmTPC5_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1759 mask |= 1 << ((mmTPC5_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1760 mask |= 1 << ((mmTPC5_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1761 mask |= 1 << ((mmTPC5_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1762 1763 WREG32(pb_addr + word_offset, ~mask); 1764 1765 pb_addr = (mmTPC5_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 1766 word_offset = ((mmTPC5_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 1767 mask = 1 << ((mmTPC5_QM_CQ_IFIFO_CNT & 0x7F) >> 2); 1768 mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 1769 mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 1770 mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 1771 mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 1772 mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 1773 mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 1774 mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 1775 mask |= 1 << ((mmTPC5_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 1776 mask |= 1 << ((mmTPC5_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 1777 mask |= 1 << ((mmTPC5_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 1778 mask |= 1 << ((mmTPC5_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 1779 mask |= 1 << ((mmTPC5_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 1780 mask |= 1 << ((mmTPC5_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 1781 mask |= 1 << ((mmTPC5_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 1782 1783 WREG32(pb_addr + word_offset, ~mask); 1784 1785 pb_addr = (mmTPC5_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1786 word_offset = ((mmTPC5_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1787 mask = 1 << ((mmTPC5_CMDQ_GLBL_CFG0 & 0x7F) >> 2); 1788 mask |= 1 << ((mmTPC5_CMDQ_GLBL_CFG1 & 0x7F) >> 2); 1789 mask |= 1 << ((mmTPC5_CMDQ_GLBL_PROT & 0x7F) >> 2); 1790 mask |= 1 << ((mmTPC5_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2); 1791 mask |= 1 << ((mmTPC5_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 1792 mask |= 1 << ((mmTPC5_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 1793 mask |= 1 << ((mmTPC5_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2); 1794 mask |= 1 << ((mmTPC5_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2); 1795 mask |= 1 << ((mmTPC5_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 1796 mask |= 1 << ((mmTPC5_CMDQ_GLBL_STS0 & 0x7F) >> 2); 1797 mask |= 1 << ((mmTPC5_CMDQ_GLBL_STS1 & 0x7F) >> 2); 1798 1799 WREG32(pb_addr + word_offset, ~mask); 1800 1801 pb_addr = (mmTPC5_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1802 word_offset = ((mmTPC5_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1803 mask = 1 << ((mmTPC5_CMDQ_CQ_CFG0 & 0x7F) >> 2); 1804 mask |= 1 << ((mmTPC5_CMDQ_CQ_CFG1 & 0x7F) >> 2); 1805 mask |= 1 << ((mmTPC5_CMDQ_CQ_ARUSER & 0x7F) >> 2); 1806 mask |= 1 << ((mmTPC5_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2); 1807 mask |= 1 << ((mmTPC5_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2); 1808 mask |= 1 << ((mmTPC5_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2); 1809 mask |= 1 << ((mmTPC5_CMDQ_CQ_CTL_STS & 0x7F) >> 2); 1810 mask |= 1 << ((mmTPC5_CMDQ_CQ_STS0 & 0x7F) >> 2); 1811 mask |= 1 << ((mmTPC5_CMDQ_CQ_STS1 & 0x7F) >> 2); 1812 mask |= 1 << ((mmTPC5_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1813 mask |= 1 << ((mmTPC5_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1814 mask |= 1 << ((mmTPC5_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1815 mask |= 1 << ((mmTPC5_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1816 1817 WREG32(pb_addr + word_offset, ~mask); 1818 1819 pb_addr = (mmTPC5_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 1820 word_offset = ((mmTPC5_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 1821 mask = 1 << ((mmTPC5_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2); 1822 mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 1823 mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 1824 mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 1825 mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 1826 mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 1827 mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 1828 mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 1829 mask |= 1 << ((mmTPC5_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 1830 mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 1831 mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 1832 mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 1833 mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 1834 mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 1835 mask |= 1 << ((mmTPC5_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 1836 mask |= 1 << ((mmTPC5_CMDQ_CP_STS & 0x7F) >> 2); 1837 mask |= 1 << ((mmTPC5_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2); 1838 1839 WREG32(pb_addr + word_offset, ~mask); 1840 1841 pb_addr = (mmTPC5_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS; 1842 word_offset = ((mmTPC5_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7) 1843 << 2; 1844 mask = 1 << ((mmTPC5_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2); 1845 mask |= 1 << ((mmTPC5_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2); 1846 mask |= 1 << ((mmTPC5_CMDQ_CP_DBG_0 & 0x7F) >> 2); 1847 mask |= 1 << ((mmTPC5_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2); 1848 mask |= 1 << ((mmTPC5_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2); 1849 1850 WREG32(pb_addr + word_offset, ~mask); 1851 1852 goya_pb_set_block(hdev, mmTPC6_RTR_BASE); 1853 goya_pb_set_block(hdev, mmTPC6_RD_REGULATOR_BASE); 1854 goya_pb_set_block(hdev, mmTPC6_WR_REGULATOR_BASE); 1855 1856 pb_addr = (mmTPC6_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS; 1857 word_offset = ((mmTPC6_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2; 1858 1859 mask = 1 << ((mmTPC6_CFG_SEMAPHORE & 0x7F) >> 2); 1860 mask |= 1 << ((mmTPC6_CFG_VFLAGS & 0x7F) >> 2); 1861 mask |= 1 << ((mmTPC6_CFG_SFLAGS & 0x7F) >> 2); 1862 mask |= 1 << ((mmTPC6_CFG_STATUS & 0x7F) >> 2); 1863 1864 WREG32(pb_addr + word_offset, ~mask); 1865 1866 pb_addr = (mmTPC6_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS; 1867 word_offset = ((mmTPC6_CFG_CFG_BASE_ADDRESS_HIGH & 1868 PROT_BITS_OFFS) >> 7) << 2; 1869 mask = 1 << ((mmTPC6_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2); 1870 mask |= 1 << ((mmTPC6_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2); 1871 mask |= 1 << ((mmTPC6_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2); 1872 mask |= 1 << ((mmTPC6_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2); 1873 mask |= 1 << ((mmTPC6_CFG_TPC_STALL & 0x7F) >> 2); 1874 mask |= 1 << ((mmTPC6_CFG_MSS_CONFIG & 0x7F) >> 2); 1875 mask |= 1 << ((mmTPC6_CFG_TPC_INTR_CAUSE & 0x7F) >> 2); 1876 mask |= 1 << ((mmTPC6_CFG_TPC_INTR_MASK & 0x7F) >> 2); 1877 1878 WREG32(pb_addr + word_offset, ~mask); 1879 1880 pb_addr = (mmTPC6_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS; 1881 word_offset = ((mmTPC6_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2; 1882 mask = 1 << ((mmTPC6_CFG_ARUSER & 0x7F) >> 2); 1883 mask |= 1 << ((mmTPC6_CFG_AWUSER & 0x7F) >> 2); 1884 1885 WREG32(pb_addr + word_offset, ~mask); 1886 1887 pb_addr = (mmTPC6_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS; 1888 word_offset = ((mmTPC6_CFG_FUNC_MBIST_CNTRL & 1889 PROT_BITS_OFFS) >> 7) << 2; 1890 mask = 1 << ((mmTPC6_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2); 1891 mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_PAT & 0x7F) >> 2); 1892 mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2); 1893 mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2); 1894 mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2); 1895 mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2); 1896 mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2); 1897 mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2); 1898 mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2); 1899 mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2); 1900 mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2); 1901 mask |= 1 << ((mmTPC6_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2); 1902 1903 WREG32(pb_addr + word_offset, ~mask); 1904 1905 pb_addr = (mmTPC6_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1906 word_offset = ((mmTPC6_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1907 mask = 1 << ((mmTPC6_QM_GLBL_CFG0 & 0x7F) >> 2); 1908 mask |= 1 << ((mmTPC6_QM_GLBL_CFG1 & 0x7F) >> 2); 1909 mask |= 1 << ((mmTPC6_QM_GLBL_PROT & 0x7F) >> 2); 1910 mask |= 1 << ((mmTPC6_QM_GLBL_ERR_CFG & 0x7F) >> 2); 1911 mask |= 1 << ((mmTPC6_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 1912 mask |= 1 << ((mmTPC6_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 1913 mask |= 1 << ((mmTPC6_QM_GLBL_ERR_WDATA & 0x7F) >> 2); 1914 mask |= 1 << ((mmTPC6_QM_GLBL_SECURE_PROPS & 0x7F) >> 2); 1915 mask |= 1 << ((mmTPC6_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 1916 mask |= 1 << ((mmTPC6_QM_GLBL_STS0 & 0x7F) >> 2); 1917 mask |= 1 << ((mmTPC6_QM_GLBL_STS1 & 0x7F) >> 2); 1918 mask |= 1 << ((mmTPC6_QM_PQ_BASE_LO & 0x7F) >> 2); 1919 mask |= 1 << ((mmTPC6_QM_PQ_BASE_HI & 0x7F) >> 2); 1920 mask |= 1 << ((mmTPC6_QM_PQ_SIZE & 0x7F) >> 2); 1921 mask |= 1 << ((mmTPC6_QM_PQ_PI & 0x7F) >> 2); 1922 mask |= 1 << ((mmTPC6_QM_PQ_CI & 0x7F) >> 2); 1923 mask |= 1 << ((mmTPC6_QM_PQ_CFG0 & 0x7F) >> 2); 1924 mask |= 1 << ((mmTPC6_QM_PQ_CFG1 & 0x7F) >> 2); 1925 mask |= 1 << ((mmTPC6_QM_PQ_ARUSER & 0x7F) >> 2); 1926 1927 WREG32(pb_addr + word_offset, ~mask); 1928 1929 pb_addr = (mmTPC6_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 1930 word_offset = ((mmTPC6_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 1931 mask = 1 << ((mmTPC6_QM_PQ_PUSH0 & 0x7F) >> 2); 1932 mask |= 1 << ((mmTPC6_QM_PQ_PUSH1 & 0x7F) >> 2); 1933 mask |= 1 << ((mmTPC6_QM_PQ_PUSH2 & 0x7F) >> 2); 1934 mask |= 1 << ((mmTPC6_QM_PQ_PUSH3 & 0x7F) >> 2); 1935 mask |= 1 << ((mmTPC6_QM_PQ_STS0 & 0x7F) >> 2); 1936 mask |= 1 << ((mmTPC6_QM_PQ_STS1 & 0x7F) >> 2); 1937 mask |= 1 << ((mmTPC6_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1938 mask |= 1 << ((mmTPC6_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1939 mask |= 1 << ((mmTPC6_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1940 mask |= 1 << ((mmTPC6_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1941 mask |= 1 << ((mmTPC6_QM_CQ_CFG0 & 0x7F) >> 2); 1942 mask |= 1 << ((mmTPC6_QM_CQ_CFG1 & 0x7F) >> 2); 1943 mask |= 1 << ((mmTPC6_QM_CQ_ARUSER & 0x7F) >> 2); 1944 mask |= 1 << ((mmTPC6_QM_CQ_PTR_LO & 0x7F) >> 2); 1945 mask |= 1 << ((mmTPC6_QM_CQ_PTR_HI & 0x7F) >> 2); 1946 mask |= 1 << ((mmTPC6_QM_CQ_TSIZE & 0x7F) >> 2); 1947 mask |= 1 << ((mmTPC6_QM_CQ_CTL & 0x7F) >> 2); 1948 mask |= 1 << ((mmTPC6_QM_CQ_PTR_LO_STS & 0x7F) >> 2); 1949 mask |= 1 << ((mmTPC6_QM_CQ_PTR_HI_STS & 0x7F) >> 2); 1950 mask |= 1 << ((mmTPC6_QM_CQ_TSIZE_STS & 0x7F) >> 2); 1951 mask |= 1 << ((mmTPC6_QM_CQ_CTL_STS & 0x7F) >> 2); 1952 mask |= 1 << ((mmTPC6_QM_CQ_STS0 & 0x7F) >> 2); 1953 mask |= 1 << ((mmTPC6_QM_CQ_STS1 & 0x7F) >> 2); 1954 mask |= 1 << ((mmTPC6_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 1955 mask |= 1 << ((mmTPC6_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 1956 mask |= 1 << ((mmTPC6_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 1957 mask |= 1 << ((mmTPC6_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 1958 1959 WREG32(pb_addr + word_offset, ~mask); 1960 1961 pb_addr = (mmTPC6_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 1962 word_offset = ((mmTPC6_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 1963 mask = 1 << ((mmTPC6_QM_CQ_IFIFO_CNT & 0x7F) >> 2); 1964 mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 1965 mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 1966 mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 1967 mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 1968 mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 1969 mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 1970 mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 1971 mask |= 1 << ((mmTPC6_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 1972 mask |= 1 << ((mmTPC6_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 1973 mask |= 1 << ((mmTPC6_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 1974 mask |= 1 << ((mmTPC6_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 1975 mask |= 1 << ((mmTPC6_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 1976 mask |= 1 << ((mmTPC6_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 1977 mask |= 1 << ((mmTPC6_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 1978 1979 WREG32(pb_addr + word_offset, ~mask); 1980 1981 pb_addr = (mmTPC6_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1982 word_offset = ((mmTPC6_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1983 mask = 1 << ((mmTPC6_CMDQ_GLBL_CFG0 & 0x7F) >> 2); 1984 mask |= 1 << ((mmTPC6_CMDQ_GLBL_CFG1 & 0x7F) >> 2); 1985 mask |= 1 << ((mmTPC6_CMDQ_GLBL_PROT & 0x7F) >> 2); 1986 mask |= 1 << ((mmTPC6_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2); 1987 mask |= 1 << ((mmTPC6_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 1988 mask |= 1 << ((mmTPC6_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 1989 mask |= 1 << ((mmTPC6_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2); 1990 mask |= 1 << ((mmTPC6_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2); 1991 mask |= 1 << ((mmTPC6_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 1992 mask |= 1 << ((mmTPC6_CMDQ_GLBL_STS0 & 0x7F) >> 2); 1993 mask |= 1 << ((mmTPC6_CMDQ_GLBL_STS1 & 0x7F) >> 2); 1994 1995 WREG32(pb_addr + word_offset, ~mask); 1996 1997 pb_addr = (mmTPC6_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 1998 word_offset = ((mmTPC6_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 1999 mask = 1 << ((mmTPC6_CMDQ_CQ_CFG0 & 0x7F) >> 2); 2000 mask |= 1 << ((mmTPC6_CMDQ_CQ_CFG1 & 0x7F) >> 2); 2001 mask |= 1 << ((mmTPC6_CMDQ_CQ_ARUSER & 0x7F) >> 2); 2002 mask |= 1 << ((mmTPC6_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2); 2003 mask |= 1 << ((mmTPC6_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2); 2004 mask |= 1 << ((mmTPC6_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2); 2005 mask |= 1 << ((mmTPC6_CMDQ_CQ_CTL_STS & 0x7F) >> 2); 2006 mask |= 1 << ((mmTPC6_CMDQ_CQ_STS0 & 0x7F) >> 2); 2007 mask |= 1 << ((mmTPC6_CMDQ_CQ_STS1 & 0x7F) >> 2); 2008 mask |= 1 << ((mmTPC6_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 2009 mask |= 1 << ((mmTPC6_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 2010 mask |= 1 << ((mmTPC6_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 2011 mask |= 1 << ((mmTPC6_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 2012 2013 WREG32(pb_addr + word_offset, ~mask); 2014 2015 pb_addr = (mmTPC6_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 2016 word_offset = ((mmTPC6_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 2017 mask = 1 << ((mmTPC6_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2); 2018 mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 2019 mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 2020 mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 2021 mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 2022 mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 2023 mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 2024 mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 2025 mask |= 1 << ((mmTPC6_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 2026 mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 2027 mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 2028 mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 2029 mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 2030 mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 2031 mask |= 1 << ((mmTPC6_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 2032 mask |= 1 << ((mmTPC6_CMDQ_CP_STS & 0x7F) >> 2); 2033 mask |= 1 << ((mmTPC6_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2); 2034 2035 WREG32(pb_addr + word_offset, ~mask); 2036 2037 pb_addr = (mmTPC6_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS; 2038 word_offset = ((mmTPC6_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7) 2039 << 2; 2040 mask = 1 << ((mmTPC6_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2); 2041 mask |= 1 << ((mmTPC6_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2); 2042 mask |= 1 << ((mmTPC6_CMDQ_CP_DBG_0 & 0x7F) >> 2); 2043 mask |= 1 << ((mmTPC6_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2); 2044 mask |= 1 << ((mmTPC6_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2); 2045 2046 WREG32(pb_addr + word_offset, ~mask); 2047 2048 goya_pb_set_block(hdev, mmTPC7_NRTR_BASE); 2049 goya_pb_set_block(hdev, mmTPC7_RD_REGULATOR_BASE); 2050 goya_pb_set_block(hdev, mmTPC7_WR_REGULATOR_BASE); 2051 2052 pb_addr = (mmTPC7_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS; 2053 word_offset = ((mmTPC7_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2; 2054 2055 mask = 1 << ((mmTPC7_CFG_SEMAPHORE & 0x7F) >> 2); 2056 mask |= 1 << ((mmTPC7_CFG_VFLAGS & 0x7F) >> 2); 2057 mask |= 1 << ((mmTPC7_CFG_SFLAGS & 0x7F) >> 2); 2058 mask |= 1 << ((mmTPC7_CFG_STATUS & 0x7F) >> 2); 2059 2060 WREG32(pb_addr + word_offset, ~mask); 2061 2062 pb_addr = (mmTPC7_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS; 2063 word_offset = ((mmTPC7_CFG_CFG_BASE_ADDRESS_HIGH & 2064 PROT_BITS_OFFS) >> 7) << 2; 2065 mask = 1 << ((mmTPC7_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2); 2066 mask |= 1 << ((mmTPC7_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2); 2067 mask |= 1 << ((mmTPC7_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2); 2068 mask |= 1 << ((mmTPC7_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2); 2069 mask |= 1 << ((mmTPC7_CFG_TPC_STALL & 0x7F) >> 2); 2070 mask |= 1 << ((mmTPC7_CFG_MSS_CONFIG & 0x7F) >> 2); 2071 mask |= 1 << ((mmTPC7_CFG_TPC_INTR_CAUSE & 0x7F) >> 2); 2072 mask |= 1 << ((mmTPC7_CFG_TPC_INTR_MASK & 0x7F) >> 2); 2073 2074 WREG32(pb_addr + word_offset, ~mask); 2075 2076 pb_addr = (mmTPC7_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS; 2077 word_offset = ((mmTPC7_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2; 2078 mask = 1 << ((mmTPC7_CFG_ARUSER & 0x7F) >> 2); 2079 mask |= 1 << ((mmTPC7_CFG_AWUSER & 0x7F) >> 2); 2080 2081 WREG32(pb_addr + word_offset, ~mask); 2082 2083 pb_addr = (mmTPC7_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS; 2084 word_offset = ((mmTPC7_CFG_FUNC_MBIST_CNTRL & 2085 PROT_BITS_OFFS) >> 7) << 2; 2086 mask = 1 << ((mmTPC7_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2); 2087 mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_PAT & 0x7F) >> 2); 2088 mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2); 2089 mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2); 2090 mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2); 2091 mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2); 2092 mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2); 2093 mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2); 2094 mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2); 2095 mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2); 2096 mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2); 2097 mask |= 1 << ((mmTPC7_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2); 2098 2099 WREG32(pb_addr + word_offset, ~mask); 2100 2101 pb_addr = (mmTPC7_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 2102 word_offset = ((mmTPC7_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 2103 mask = 1 << ((mmTPC7_QM_GLBL_CFG0 & 0x7F) >> 2); 2104 mask |= 1 << ((mmTPC7_QM_GLBL_CFG1 & 0x7F) >> 2); 2105 mask |= 1 << ((mmTPC7_QM_GLBL_PROT & 0x7F) >> 2); 2106 mask |= 1 << ((mmTPC7_QM_GLBL_ERR_CFG & 0x7F) >> 2); 2107 mask |= 1 << ((mmTPC7_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 2108 mask |= 1 << ((mmTPC7_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 2109 mask |= 1 << ((mmTPC7_QM_GLBL_ERR_WDATA & 0x7F) >> 2); 2110 mask |= 1 << ((mmTPC7_QM_GLBL_SECURE_PROPS & 0x7F) >> 2); 2111 mask |= 1 << ((mmTPC7_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 2112 mask |= 1 << ((mmTPC7_QM_GLBL_STS0 & 0x7F) >> 2); 2113 mask |= 1 << ((mmTPC7_QM_GLBL_STS1 & 0x7F) >> 2); 2114 mask |= 1 << ((mmTPC7_QM_PQ_BASE_LO & 0x7F) >> 2); 2115 mask |= 1 << ((mmTPC7_QM_PQ_BASE_HI & 0x7F) >> 2); 2116 mask |= 1 << ((mmTPC7_QM_PQ_SIZE & 0x7F) >> 2); 2117 mask |= 1 << ((mmTPC7_QM_PQ_PI & 0x7F) >> 2); 2118 mask |= 1 << ((mmTPC7_QM_PQ_CI & 0x7F) >> 2); 2119 mask |= 1 << ((mmTPC7_QM_PQ_CFG0 & 0x7F) >> 2); 2120 mask |= 1 << ((mmTPC7_QM_PQ_CFG1 & 0x7F) >> 2); 2121 mask |= 1 << ((mmTPC7_QM_PQ_ARUSER & 0x7F) >> 2); 2122 2123 WREG32(pb_addr + word_offset, ~mask); 2124 2125 pb_addr = (mmTPC7_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS; 2126 word_offset = ((mmTPC7_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2; 2127 mask = 1 << ((mmTPC7_QM_PQ_PUSH0 & 0x7F) >> 2); 2128 mask |= 1 << ((mmTPC7_QM_PQ_PUSH1 & 0x7F) >> 2); 2129 mask |= 1 << ((mmTPC7_QM_PQ_PUSH2 & 0x7F) >> 2); 2130 mask |= 1 << ((mmTPC7_QM_PQ_PUSH3 & 0x7F) >> 2); 2131 mask |= 1 << ((mmTPC7_QM_PQ_STS0 & 0x7F) >> 2); 2132 mask |= 1 << ((mmTPC7_QM_PQ_STS1 & 0x7F) >> 2); 2133 mask |= 1 << ((mmTPC7_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2); 2134 mask |= 1 << ((mmTPC7_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 2135 mask |= 1 << ((mmTPC7_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 2136 mask |= 1 << ((mmTPC7_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 2137 mask |= 1 << ((mmTPC7_QM_CQ_CFG0 & 0x7F) >> 2); 2138 mask |= 1 << ((mmTPC7_QM_CQ_CFG1 & 0x7F) >> 2); 2139 mask |= 1 << ((mmTPC7_QM_CQ_ARUSER & 0x7F) >> 2); 2140 mask |= 1 << ((mmTPC7_QM_CQ_PTR_LO & 0x7F) >> 2); 2141 mask |= 1 << ((mmTPC7_QM_CQ_PTR_HI & 0x7F) >> 2); 2142 mask |= 1 << ((mmTPC7_QM_CQ_TSIZE & 0x7F) >> 2); 2143 mask |= 1 << ((mmTPC7_QM_CQ_CTL & 0x7F) >> 2); 2144 mask |= 1 << ((mmTPC7_QM_CQ_PTR_LO_STS & 0x7F) >> 2); 2145 mask |= 1 << ((mmTPC7_QM_CQ_PTR_HI_STS & 0x7F) >> 2); 2146 mask |= 1 << ((mmTPC7_QM_CQ_TSIZE_STS & 0x7F) >> 2); 2147 mask |= 1 << ((mmTPC7_QM_CQ_CTL_STS & 0x7F) >> 2); 2148 mask |= 1 << ((mmTPC7_QM_CQ_STS0 & 0x7F) >> 2); 2149 mask |= 1 << ((mmTPC7_QM_CQ_STS1 & 0x7F) >> 2); 2150 mask |= 1 << ((mmTPC7_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 2151 mask |= 1 << ((mmTPC7_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 2152 mask |= 1 << ((mmTPC7_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 2153 mask |= 1 << ((mmTPC7_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 2154 2155 WREG32(pb_addr + word_offset, ~mask); 2156 2157 pb_addr = (mmTPC7_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 2158 word_offset = ((mmTPC7_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 2159 mask = 1 << ((mmTPC7_QM_CQ_IFIFO_CNT & 0x7F) >> 2); 2160 mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 2161 mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 2162 mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 2163 mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 2164 mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 2165 mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 2166 mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 2167 mask |= 1 << ((mmTPC7_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 2168 mask |= 1 << ((mmTPC7_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 2169 mask |= 1 << ((mmTPC7_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 2170 mask |= 1 << ((mmTPC7_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 2171 mask |= 1 << ((mmTPC7_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 2172 mask |= 1 << ((mmTPC7_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 2173 mask |= 1 << ((mmTPC7_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 2174 2175 WREG32(pb_addr + word_offset, ~mask); 2176 2177 pb_addr = (mmTPC7_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 2178 word_offset = ((mmTPC7_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 2179 mask = 1 << ((mmTPC7_CMDQ_GLBL_CFG0 & 0x7F) >> 2); 2180 mask |= 1 << ((mmTPC7_CMDQ_GLBL_CFG1 & 0x7F) >> 2); 2181 mask |= 1 << ((mmTPC7_CMDQ_GLBL_PROT & 0x7F) >> 2); 2182 mask |= 1 << ((mmTPC7_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2); 2183 mask |= 1 << ((mmTPC7_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2); 2184 mask |= 1 << ((mmTPC7_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2); 2185 mask |= 1 << ((mmTPC7_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2); 2186 mask |= 1 << ((mmTPC7_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2); 2187 mask |= 1 << ((mmTPC7_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2); 2188 mask |= 1 << ((mmTPC7_CMDQ_GLBL_STS0 & 0x7F) >> 2); 2189 mask |= 1 << ((mmTPC7_CMDQ_GLBL_STS1 & 0x7F) >> 2); 2190 2191 WREG32(pb_addr + word_offset, ~mask); 2192 2193 pb_addr = (mmTPC7_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS; 2194 word_offset = ((mmTPC7_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2; 2195 mask = 1 << ((mmTPC7_CMDQ_CQ_CFG0 & 0x7F) >> 2); 2196 mask |= 1 << ((mmTPC7_CMDQ_CQ_CFG1 & 0x7F) >> 2); 2197 mask |= 1 << ((mmTPC7_CMDQ_CQ_ARUSER & 0x7F) >> 2); 2198 mask |= 1 << ((mmTPC7_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2); 2199 mask |= 1 << ((mmTPC7_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2); 2200 mask |= 1 << ((mmTPC7_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2); 2201 mask |= 1 << ((mmTPC7_CMDQ_CQ_CTL_STS & 0x7F) >> 2); 2202 mask |= 1 << ((mmTPC7_CMDQ_CQ_STS0 & 0x7F) >> 2); 2203 mask |= 1 << ((mmTPC7_CMDQ_CQ_STS1 & 0x7F) >> 2); 2204 mask |= 1 << ((mmTPC7_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2); 2205 mask |= 1 << ((mmTPC7_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2); 2206 mask |= 1 << ((mmTPC7_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2); 2207 mask |= 1 << ((mmTPC7_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2); 2208 2209 WREG32(pb_addr + word_offset, ~mask); 2210 2211 pb_addr = (mmTPC7_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS; 2212 word_offset = ((mmTPC7_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2; 2213 mask = 1 << ((mmTPC7_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2); 2214 mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2); 2215 mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2); 2216 mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2); 2217 mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2); 2218 mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2); 2219 mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2); 2220 mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2); 2221 mask |= 1 << ((mmTPC7_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2); 2222 mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2); 2223 mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2); 2224 mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2); 2225 mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2); 2226 mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2); 2227 mask |= 1 << ((mmTPC7_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2); 2228 mask |= 1 << ((mmTPC7_CMDQ_CP_STS & 0x7F) >> 2); 2229 mask |= 1 << ((mmTPC7_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2); 2230 2231 WREG32(pb_addr + word_offset, ~mask); 2232 2233 pb_addr = (mmTPC7_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS; 2234 word_offset = ((mmTPC7_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7) 2235 << 2; 2236 mask = 1 << ((mmTPC7_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2); 2237 mask |= 1 << ((mmTPC7_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2); 2238 mask |= 1 << ((mmTPC7_CMDQ_CP_DBG_0 & 0x7F) >> 2); 2239 mask |= 1 << ((mmTPC7_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2); 2240 mask |= 1 << ((mmTPC7_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2); 2241 2242 WREG32(pb_addr + word_offset, ~mask); 2243} 2244 2245/* 2246 * goya_init_protection_bits - Initialize protection bits for specific registers 2247 * 2248 * @hdev: pointer to hl_device structure 2249 * 2250 * All protection bits are 1 by default, means not protected. Need to set to 0 2251 * each bit that belongs to a protected register. 2252 * 2253 */ 2254static void goya_init_protection_bits(struct hl_device *hdev) 2255{ 2256 /* 2257 * In each 4K block of registers, the last 128 bytes are protection 2258 * bits - total of 1024 bits, one for each register. Each bit is related 2259 * to a specific register, by the order of the registers. 2260 * So in order to calculate the bit that is related to a given register, 2261 * we need to calculate its word offset and then the exact bit inside 2262 * the word (which is 4 bytes). 2263 * 2264 * Register address: 2265 * 2266 * 31 12 11 7 6 2 1 0 2267 * ----------------------------------------------------------------- 2268 * | Don't | word | bit location | 0 | 2269 * | care | offset | inside word | | 2270 * ----------------------------------------------------------------- 2271 * 2272 * Bits 7-11 represents the word offset inside the 128 bytes. 2273 * Bits 2-6 represents the bit location inside the word. 2274 */ 2275 u32 pb_addr, mask; 2276 u8 word_offset; 2277 2278 goya_pb_set_block(hdev, mmPCI_NRTR_BASE); 2279 goya_pb_set_block(hdev, mmPCI_RD_REGULATOR_BASE); 2280 goya_pb_set_block(hdev, mmPCI_WR_REGULATOR_BASE); 2281 2282 goya_pb_set_block(hdev, mmSRAM_Y0_X0_BANK_BASE); 2283 goya_pb_set_block(hdev, mmSRAM_Y0_X0_RTR_BASE); 2284 goya_pb_set_block(hdev, mmSRAM_Y0_X1_BANK_BASE); 2285 goya_pb_set_block(hdev, mmSRAM_Y0_X1_RTR_BASE); 2286 goya_pb_set_block(hdev, mmSRAM_Y0_X2_BANK_BASE); 2287 goya_pb_set_block(hdev, mmSRAM_Y0_X2_RTR_BASE); 2288 goya_pb_set_block(hdev, mmSRAM_Y0_X3_BANK_BASE); 2289 goya_pb_set_block(hdev, mmSRAM_Y0_X3_RTR_BASE); 2290 goya_pb_set_block(hdev, mmSRAM_Y0_X4_BANK_BASE); 2291 goya_pb_set_block(hdev, mmSRAM_Y0_X4_RTR_BASE); 2292 2293 goya_pb_set_block(hdev, mmSRAM_Y1_X0_BANK_BASE); 2294 goya_pb_set_block(hdev, mmSRAM_Y1_X0_RTR_BASE); 2295 goya_pb_set_block(hdev, mmSRAM_Y1_X1_BANK_BASE); 2296 goya_pb_set_block(hdev, mmSRAM_Y1_X1_RTR_BASE); 2297 goya_pb_set_block(hdev, mmSRAM_Y1_X2_BANK_BASE); 2298 goya_pb_set_block(hdev, mmSRAM_Y1_X2_RTR_BASE); 2299 goya_pb_set_block(hdev, mmSRAM_Y1_X3_BANK_BASE); 2300 goya_pb_set_block(hdev, mmSRAM_Y1_X3_RTR_BASE); 2301 goya_pb_set_block(hdev, mmSRAM_Y1_X4_BANK_BASE); 2302 goya_pb_set_block(hdev, mmSRAM_Y1_X4_RTR_BASE); 2303 2304 goya_pb_set_block(hdev, mmSRAM_Y2_X0_BANK_BASE); 2305 goya_pb_set_block(hdev, mmSRAM_Y2_X0_RTR_BASE); 2306 goya_pb_set_block(hdev, mmSRAM_Y2_X1_BANK_BASE); 2307 goya_pb_set_block(hdev, mmSRAM_Y2_X1_RTR_BASE); 2308 goya_pb_set_block(hdev, mmSRAM_Y2_X2_BANK_BASE); 2309 goya_pb_set_block(hdev, mmSRAM_Y2_X2_RTR_BASE); 2310 goya_pb_set_block(hdev, mmSRAM_Y2_X3_BANK_BASE); 2311 goya_pb_set_block(hdev, mmSRAM_Y2_X3_RTR_BASE); 2312 goya_pb_set_block(hdev, mmSRAM_Y2_X4_BANK_BASE); 2313 goya_pb_set_block(hdev, mmSRAM_Y2_X4_RTR_BASE); 2314 2315 goya_pb_set_block(hdev, mmSRAM_Y3_X0_BANK_BASE); 2316 goya_pb_set_block(hdev, mmSRAM_Y3_X0_RTR_BASE); 2317 goya_pb_set_block(hdev, mmSRAM_Y3_X1_BANK_BASE); 2318 goya_pb_set_block(hdev, mmSRAM_Y3_X1_RTR_BASE); 2319 goya_pb_set_block(hdev, mmSRAM_Y3_X2_BANK_BASE); 2320 goya_pb_set_block(hdev, mmSRAM_Y3_X2_RTR_BASE); 2321 goya_pb_set_block(hdev, mmSRAM_Y3_X3_BANK_BASE); 2322 goya_pb_set_block(hdev, mmSRAM_Y3_X3_RTR_BASE); 2323 goya_pb_set_block(hdev, mmSRAM_Y3_X4_BANK_BASE); 2324 goya_pb_set_block(hdev, mmSRAM_Y3_X4_RTR_BASE); 2325 2326 goya_pb_set_block(hdev, mmSRAM_Y4_X0_BANK_BASE); 2327 goya_pb_set_block(hdev, mmSRAM_Y4_X0_RTR_BASE); 2328 goya_pb_set_block(hdev, mmSRAM_Y4_X1_BANK_BASE); 2329 goya_pb_set_block(hdev, mmSRAM_Y4_X1_RTR_BASE); 2330 goya_pb_set_block(hdev, mmSRAM_Y4_X2_BANK_BASE); 2331 goya_pb_set_block(hdev, mmSRAM_Y4_X2_RTR_BASE); 2332 goya_pb_set_block(hdev, mmSRAM_Y4_X3_BANK_BASE); 2333 goya_pb_set_block(hdev, mmSRAM_Y4_X3_RTR_BASE); 2334 goya_pb_set_block(hdev, mmSRAM_Y4_X4_BANK_BASE); 2335 goya_pb_set_block(hdev, mmSRAM_Y4_X4_RTR_BASE); 2336 2337 goya_pb_set_block(hdev, mmSRAM_Y5_X0_BANK_BASE); 2338 goya_pb_set_block(hdev, mmSRAM_Y5_X0_RTR_BASE); 2339 goya_pb_set_block(hdev, mmSRAM_Y5_X1_BANK_BASE); 2340 goya_pb_set_block(hdev, mmSRAM_Y5_X1_RTR_BASE); 2341 goya_pb_set_block(hdev, mmSRAM_Y5_X2_BANK_BASE); 2342 goya_pb_set_block(hdev, mmSRAM_Y5_X2_RTR_BASE); 2343 goya_pb_set_block(hdev, mmSRAM_Y5_X3_BANK_BASE); 2344 goya_pb_set_block(hdev, mmSRAM_Y5_X3_RTR_BASE); 2345 goya_pb_set_block(hdev, mmSRAM_Y5_X4_BANK_BASE); 2346 goya_pb_set_block(hdev, mmSRAM_Y5_X4_RTR_BASE); 2347 2348 goya_pb_set_block(hdev, mmPCIE_WRAP_BASE); 2349 goya_pb_set_block(hdev, mmPCIE_CORE_BASE); 2350 goya_pb_set_block(hdev, mmPCIE_DB_CFG_BASE); 2351 goya_pb_set_block(hdev, mmPCIE_DB_CMD_BASE); 2352 goya_pb_set_block(hdev, mmPCIE_AUX_BASE); 2353 goya_pb_set_block(hdev, mmPCIE_DB_RSV_BASE); 2354 goya_pb_set_block(hdev, mmPCIE_PHY_BASE); 2355 goya_pb_set_block(hdev, mmTPC0_NRTR_BASE); 2356 goya_pb_set_block(hdev, mmTPC_PLL_BASE); 2357 2358 pb_addr = (mmTPC_PLL_CLK_RLX_0 & ~0xFFF) + PROT_BITS_OFFS; 2359 word_offset = ((mmTPC_PLL_CLK_RLX_0 & PROT_BITS_OFFS) >> 7) << 2; 2360 mask = 1 << ((mmTPC_PLL_CLK_RLX_0 & 0x7C) >> 2); 2361 2362 WREG32(pb_addr + word_offset, mask); 2363 2364 goya_init_mme_protection_bits(hdev); 2365 2366 goya_init_dma_protection_bits(hdev); 2367 2368 goya_init_tpc_protection_bits(hdev); 2369} 2370 2371/* 2372 * goya_init_security - Initialize security model 2373 * 2374 * @hdev: pointer to hl_device structure 2375 * 2376 * Initialize the security model of the device 2377 * That includes range registers and protection bit per register 2378 * 2379 */ 2380void goya_init_security(struct hl_device *hdev) 2381{ 2382 struct goya_device *goya = hdev->asic_specific; 2383 2384 u32 dram_addr_lo = lower_32_bits(DRAM_PHYS_BASE); 2385 u32 dram_addr_hi = upper_32_bits(DRAM_PHYS_BASE); 2386 2387 u32 lbw_rng0_base = 0xFC440000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2388 u32 lbw_rng0_mask = 0xFFFF0000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2389 2390 u32 lbw_rng1_base = 0xFC480000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2391 u32 lbw_rng1_mask = 0xFFF80000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2392 2393 u32 lbw_rng2_base = 0xFC600000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2394 u32 lbw_rng2_mask = 0xFFE00000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2395 2396 u32 lbw_rng3_base = 0xFC800000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2397 u32 lbw_rng3_mask = 0xFFF00000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2398 2399 u32 lbw_rng4_base = 0xFCC02000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2400 u32 lbw_rng4_mask = 0xFFFFF000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2401 2402 u32 lbw_rng5_base = 0xFCC40000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2403 u32 lbw_rng5_mask = 0xFFFF8000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2404 2405 u32 lbw_rng6_base = 0xFCC48000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2406 u32 lbw_rng6_mask = 0xFFFFF000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2407 2408 u32 lbw_rng7_base = 0xFCC4A000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2409 u32 lbw_rng7_mask = 0xFFFFE000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2410 2411 u32 lbw_rng8_base = 0xFCC4C000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2412 u32 lbw_rng8_mask = 0xFFFFC000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2413 2414 u32 lbw_rng9_base = 0xFCC50000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2415 u32 lbw_rng9_mask = 0xFFFF0000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2416 2417 u32 lbw_rng10_base = 0xFCC60000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2418 u32 lbw_rng10_mask = 0xFFFE0000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2419 2420 u32 lbw_rng11_base = 0xFCE02000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2421 u32 lbw_rng11_mask = 0xFFFFE000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2422 2423 u32 lbw_rng12_base = 0xFE484000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2424 u32 lbw_rng12_mask = 0xFFFFF000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2425 2426 u32 lbw_rng13_base = 0xFEC43000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2427 u32 lbw_rng13_mask = 0xFFFFF000 & DMA_MACRO_LBW_RANGE_BASE_R_MASK; 2428 2429 WREG32(mmDMA_MACRO_LBW_RANGE_HIT_BLOCK, 0xFFFF); 2430 WREG32(mmDMA_MACRO_HBW_RANGE_HIT_BLOCK, 0xFF); 2431 2432 if (!(goya->hw_cap_initialized & HW_CAP_MMU)) { 2433 WREG32(mmDMA_MACRO_HBW_RANGE_HIT_BLOCK, 0xFE); 2434 2435 /* Protect HOST */ 2436 WREG32(mmDMA_MACRO_HBW_RANGE_BASE_31_0_0, 0); 2437 WREG32(mmDMA_MACRO_HBW_RANGE_BASE_49_32_0, 0); 2438 WREG32(mmDMA_MACRO_HBW_RANGE_MASK_31_0_0, 0); 2439 WREG32(mmDMA_MACRO_HBW_RANGE_MASK_49_32_0, 0xFFF80); 2440 } 2441 2442 /* 2443 * Protect DDR @ 2444 * DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END 2445 * The mask protects the first 512MB 2446 */ 2447 WREG32(mmDMA_MACRO_HBW_RANGE_BASE_31_0_1, dram_addr_lo); 2448 WREG32(mmDMA_MACRO_HBW_RANGE_BASE_49_32_1, dram_addr_hi); 2449 WREG32(mmDMA_MACRO_HBW_RANGE_MASK_31_0_1, 0xE0000000); 2450 WREG32(mmDMA_MACRO_HBW_RANGE_MASK_49_32_1, 0x3FFFF); 2451 2452 /* Protect registers */ 2453 2454 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_0, lbw_rng0_base); 2455 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_0, lbw_rng0_mask); 2456 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_1, lbw_rng1_base); 2457 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_1, lbw_rng1_mask); 2458 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_2, lbw_rng2_base); 2459 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_2, lbw_rng2_mask); 2460 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_3, lbw_rng3_base); 2461 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_3, lbw_rng3_mask); 2462 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_4, lbw_rng4_base); 2463 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_4, lbw_rng4_mask); 2464 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_5, lbw_rng5_base); 2465 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_5, lbw_rng5_mask); 2466 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_6, lbw_rng6_base); 2467 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_6, lbw_rng6_mask); 2468 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_7, lbw_rng7_base); 2469 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_7, lbw_rng7_mask); 2470 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_8, lbw_rng8_base); 2471 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_8, lbw_rng8_mask); 2472 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_9, lbw_rng9_base); 2473 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_9, lbw_rng9_mask); 2474 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_10, lbw_rng10_base); 2475 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_10, lbw_rng10_mask); 2476 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_11, lbw_rng11_base); 2477 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_11, lbw_rng11_mask); 2478 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_12, lbw_rng12_base); 2479 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_12, lbw_rng12_mask); 2480 WREG32(mmDMA_MACRO_LBW_RANGE_BASE_13, lbw_rng13_base); 2481 WREG32(mmDMA_MACRO_LBW_RANGE_MASK_13, lbw_rng13_mask); 2482 2483 WREG32(mmMME1_RTR_LBW_RANGE_HIT, 0xFFFF); 2484 WREG32(mmMME2_RTR_LBW_RANGE_HIT, 0xFFFF); 2485 WREG32(mmMME3_RTR_LBW_RANGE_HIT, 0xFFFF); 2486 WREG32(mmMME4_RTR_LBW_RANGE_HIT, 0xFFFF); 2487 WREG32(mmMME5_RTR_LBW_RANGE_HIT, 0xFFFF); 2488 WREG32(mmMME6_RTR_LBW_RANGE_HIT, 0xFFFF); 2489 2490 WREG32(mmMME1_RTR_HBW_RANGE_HIT, 0xFE); 2491 WREG32(mmMME2_RTR_HBW_RANGE_HIT, 0xFE); 2492 WREG32(mmMME3_RTR_HBW_RANGE_HIT, 0xFE); 2493 WREG32(mmMME4_RTR_HBW_RANGE_HIT, 0xFE); 2494 WREG32(mmMME5_RTR_HBW_RANGE_HIT, 0xFE); 2495 WREG32(mmMME6_RTR_HBW_RANGE_HIT, 0xFE); 2496 2497 /* Protect HOST */ 2498 WREG32(mmMME1_RTR_HBW_RANGE_BASE_L_0, 0); 2499 WREG32(mmMME1_RTR_HBW_RANGE_BASE_H_0, 0); 2500 WREG32(mmMME1_RTR_HBW_RANGE_MASK_L_0, 0); 2501 WREG32(mmMME1_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2502 2503 WREG32(mmMME2_RTR_HBW_RANGE_BASE_L_0, 0); 2504 WREG32(mmMME2_RTR_HBW_RANGE_BASE_H_0, 0); 2505 WREG32(mmMME2_RTR_HBW_RANGE_MASK_L_0, 0); 2506 WREG32(mmMME2_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2507 2508 WREG32(mmMME3_RTR_HBW_RANGE_BASE_L_0, 0); 2509 WREG32(mmMME3_RTR_HBW_RANGE_BASE_H_0, 0); 2510 WREG32(mmMME3_RTR_HBW_RANGE_MASK_L_0, 0); 2511 WREG32(mmMME3_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2512 2513 WREG32(mmMME4_RTR_HBW_RANGE_BASE_L_0, 0); 2514 WREG32(mmMME4_RTR_HBW_RANGE_BASE_H_0, 0); 2515 WREG32(mmMME4_RTR_HBW_RANGE_MASK_L_0, 0); 2516 WREG32(mmMME4_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2517 2518 WREG32(mmMME5_RTR_HBW_RANGE_BASE_L_0, 0); 2519 WREG32(mmMME5_RTR_HBW_RANGE_BASE_H_0, 0); 2520 WREG32(mmMME5_RTR_HBW_RANGE_MASK_L_0, 0); 2521 WREG32(mmMME5_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2522 2523 WREG32(mmMME6_RTR_HBW_RANGE_BASE_L_0, 0); 2524 WREG32(mmMME6_RTR_HBW_RANGE_BASE_H_0, 0); 2525 WREG32(mmMME6_RTR_HBW_RANGE_MASK_L_0, 0); 2526 WREG32(mmMME6_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2527 2528 /* 2529 * Protect DDR @ 2530 * DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END 2531 * The mask protects the first 512MB 2532 */ 2533 WREG32(mmMME1_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2534 WREG32(mmMME1_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2535 WREG32(mmMME1_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2536 WREG32(mmMME1_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2537 2538 WREG32(mmMME2_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2539 WREG32(mmMME2_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2540 WREG32(mmMME2_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2541 WREG32(mmMME2_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2542 2543 WREG32(mmMME3_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2544 WREG32(mmMME3_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2545 WREG32(mmMME3_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2546 WREG32(mmMME3_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2547 2548 WREG32(mmMME4_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2549 WREG32(mmMME4_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2550 WREG32(mmMME4_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2551 WREG32(mmMME4_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2552 2553 WREG32(mmMME5_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2554 WREG32(mmMME5_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2555 WREG32(mmMME5_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2556 WREG32(mmMME5_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2557 2558 WREG32(mmMME6_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2559 WREG32(mmMME6_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2560 WREG32(mmMME6_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2561 WREG32(mmMME6_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2562 2563 WREG32(mmMME1_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2564 WREG32(mmMME1_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2565 WREG32(mmMME1_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2566 WREG32(mmMME1_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 2567 WREG32(mmMME1_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 2568 WREG32(mmMME1_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 2569 WREG32(mmMME1_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 2570 WREG32(mmMME1_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 2571 WREG32(mmMME1_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 2572 WREG32(mmMME1_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 2573 WREG32(mmMME1_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 2574 WREG32(mmMME1_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 2575 WREG32(mmMME1_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 2576 WREG32(mmMME1_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 2577 WREG32(mmMME1_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 2578 WREG32(mmMME1_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 2579 WREG32(mmMME1_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 2580 WREG32(mmMME1_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 2581 WREG32(mmMME1_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 2582 WREG32(mmMME1_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 2583 WREG32(mmMME1_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 2584 WREG32(mmMME1_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 2585 WREG32(mmMME1_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 2586 WREG32(mmMME1_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 2587 WREG32(mmMME1_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 2588 WREG32(mmMME1_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 2589 WREG32(mmMME1_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 2590 WREG32(mmMME1_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 2591 2592 WREG32(mmMME2_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2593 WREG32(mmMME2_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2594 WREG32(mmMME2_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2595 WREG32(mmMME2_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 2596 WREG32(mmMME2_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 2597 WREG32(mmMME2_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 2598 WREG32(mmMME2_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 2599 WREG32(mmMME2_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 2600 WREG32(mmMME2_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 2601 WREG32(mmMME2_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 2602 WREG32(mmMME2_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 2603 WREG32(mmMME2_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 2604 WREG32(mmMME2_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 2605 WREG32(mmMME2_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 2606 WREG32(mmMME2_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 2607 WREG32(mmMME2_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 2608 WREG32(mmMME2_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 2609 WREG32(mmMME2_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 2610 WREG32(mmMME2_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 2611 WREG32(mmMME2_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 2612 WREG32(mmMME2_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 2613 WREG32(mmMME2_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 2614 WREG32(mmMME2_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 2615 WREG32(mmMME2_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 2616 WREG32(mmMME2_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 2617 WREG32(mmMME2_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 2618 WREG32(mmMME2_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 2619 WREG32(mmMME2_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 2620 2621 WREG32(mmMME3_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2622 WREG32(mmMME3_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2623 WREG32(mmMME3_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2624 WREG32(mmMME3_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 2625 WREG32(mmMME3_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 2626 WREG32(mmMME3_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 2627 WREG32(mmMME3_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 2628 WREG32(mmMME3_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 2629 WREG32(mmMME3_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 2630 WREG32(mmMME3_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 2631 WREG32(mmMME3_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 2632 WREG32(mmMME3_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 2633 WREG32(mmMME3_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 2634 WREG32(mmMME3_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 2635 WREG32(mmMME3_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 2636 WREG32(mmMME3_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 2637 WREG32(mmMME3_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 2638 WREG32(mmMME3_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 2639 WREG32(mmMME3_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 2640 WREG32(mmMME3_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 2641 WREG32(mmMME3_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 2642 WREG32(mmMME3_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 2643 WREG32(mmMME3_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 2644 WREG32(mmMME3_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 2645 WREG32(mmMME3_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 2646 WREG32(mmMME3_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 2647 WREG32(mmMME3_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 2648 WREG32(mmMME3_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 2649 2650 WREG32(mmMME4_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2651 WREG32(mmMME4_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2652 WREG32(mmMME4_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2653 WREG32(mmMME4_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 2654 WREG32(mmMME4_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 2655 WREG32(mmMME4_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 2656 WREG32(mmMME4_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 2657 WREG32(mmMME4_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 2658 WREG32(mmMME4_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 2659 WREG32(mmMME4_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 2660 WREG32(mmMME4_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 2661 WREG32(mmMME4_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 2662 WREG32(mmMME4_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 2663 WREG32(mmMME4_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 2664 WREG32(mmMME4_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 2665 WREG32(mmMME4_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 2666 WREG32(mmMME4_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 2667 WREG32(mmMME4_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 2668 WREG32(mmMME4_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 2669 WREG32(mmMME4_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 2670 WREG32(mmMME4_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 2671 WREG32(mmMME4_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 2672 WREG32(mmMME4_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 2673 WREG32(mmMME4_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 2674 WREG32(mmMME4_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 2675 WREG32(mmMME4_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 2676 WREG32(mmMME4_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 2677 WREG32(mmMME4_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 2678 2679 WREG32(mmMME5_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2680 WREG32(mmMME5_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2681 WREG32(mmMME5_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2682 WREG32(mmMME5_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 2683 WREG32(mmMME5_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 2684 WREG32(mmMME5_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 2685 WREG32(mmMME5_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 2686 WREG32(mmMME5_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 2687 WREG32(mmMME5_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 2688 WREG32(mmMME5_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 2689 WREG32(mmMME5_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 2690 WREG32(mmMME5_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 2691 WREG32(mmMME5_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 2692 WREG32(mmMME5_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 2693 WREG32(mmMME5_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 2694 WREG32(mmMME5_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 2695 WREG32(mmMME5_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 2696 WREG32(mmMME5_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 2697 WREG32(mmMME5_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 2698 WREG32(mmMME5_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 2699 WREG32(mmMME5_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 2700 WREG32(mmMME5_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 2701 WREG32(mmMME5_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 2702 WREG32(mmMME5_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 2703 WREG32(mmMME5_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 2704 WREG32(mmMME5_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 2705 WREG32(mmMME5_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 2706 WREG32(mmMME5_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 2707 2708 WREG32(mmMME6_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2709 WREG32(mmMME6_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2710 WREG32(mmMME6_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2711 WREG32(mmMME6_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 2712 WREG32(mmMME6_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 2713 WREG32(mmMME6_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 2714 WREG32(mmMME6_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 2715 WREG32(mmMME6_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 2716 WREG32(mmMME6_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 2717 WREG32(mmMME6_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 2718 WREG32(mmMME6_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 2719 WREG32(mmMME6_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 2720 WREG32(mmMME6_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 2721 WREG32(mmMME6_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 2722 WREG32(mmMME6_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 2723 WREG32(mmMME6_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 2724 WREG32(mmMME6_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 2725 WREG32(mmMME6_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 2726 WREG32(mmMME6_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 2727 WREG32(mmMME6_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 2728 WREG32(mmMME6_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 2729 WREG32(mmMME6_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 2730 WREG32(mmMME6_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 2731 WREG32(mmMME6_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 2732 WREG32(mmMME6_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 2733 WREG32(mmMME6_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 2734 WREG32(mmMME6_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 2735 WREG32(mmMME6_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 2736 2737 WREG32(mmTPC0_NRTR_LBW_RANGE_HIT, 0xFFFF); 2738 WREG32(mmTPC0_NRTR_HBW_RANGE_HIT, 0xFE); 2739 2740 /* Protect HOST */ 2741 WREG32(mmTPC0_NRTR_HBW_RANGE_BASE_L_0, 0); 2742 WREG32(mmTPC0_NRTR_HBW_RANGE_BASE_H_0, 0); 2743 WREG32(mmTPC0_NRTR_HBW_RANGE_MASK_L_0, 0); 2744 WREG32(mmTPC0_NRTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2745 2746 /* 2747 * Protect DDR @ 2748 * DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END 2749 * The mask protects the first 512MB 2750 */ 2751 WREG32(mmTPC0_NRTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2752 WREG32(mmTPC0_NRTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2753 WREG32(mmTPC0_NRTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2754 WREG32(mmTPC0_NRTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2755 2756 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2757 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2758 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2759 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 2760 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_2, lbw_rng2_base); 2761 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 2762 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_3, lbw_rng3_base); 2763 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 2764 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_4, lbw_rng4_base); 2765 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 2766 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_5, lbw_rng5_base); 2767 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 2768 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_6, lbw_rng6_base); 2769 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 2770 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_7, lbw_rng7_base); 2771 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 2772 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_8, lbw_rng8_base); 2773 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 2774 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_9, lbw_rng9_base); 2775 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 2776 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_10, lbw_rng10_base); 2777 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 2778 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_11, lbw_rng11_base); 2779 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 2780 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_12, lbw_rng12_base); 2781 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 2782 WREG32(mmTPC0_NRTR_LBW_RANGE_BASE_13, lbw_rng13_base); 2783 WREG32(mmTPC0_NRTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 2784 2785 WREG32(mmTPC1_RTR_LBW_RANGE_HIT, 0xFFFF); 2786 WREG32(mmTPC1_RTR_HBW_RANGE_HIT, 0xFE); 2787 2788 /* Protect HOST */ 2789 WREG32(mmTPC1_RTR_HBW_RANGE_BASE_L_0, 0); 2790 WREG32(mmTPC1_RTR_HBW_RANGE_BASE_H_0, 0); 2791 WREG32(mmTPC1_RTR_HBW_RANGE_MASK_L_0, 0); 2792 WREG32(mmTPC1_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2793 2794 /* 2795 * Protect DDR @ 2796 * DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END 2797 * The mask protects the first 512MB 2798 */ 2799 WREG32(mmTPC1_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2800 WREG32(mmTPC1_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2801 WREG32(mmTPC1_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2802 WREG32(mmTPC1_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2803 2804 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2805 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2806 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2807 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 2808 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 2809 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 2810 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 2811 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 2812 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 2813 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 2814 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 2815 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 2816 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 2817 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 2818 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 2819 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 2820 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 2821 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 2822 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 2823 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 2824 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 2825 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 2826 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 2827 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 2828 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 2829 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 2830 WREG32(mmTPC1_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 2831 WREG32(mmTPC1_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 2832 2833 WREG32(mmTPC2_RTR_LBW_RANGE_HIT, 0xFFFF); 2834 WREG32(mmTPC2_RTR_HBW_RANGE_HIT, 0xFE); 2835 2836 /* Protect HOST */ 2837 WREG32(mmTPC2_RTR_HBW_RANGE_BASE_L_0, 0); 2838 WREG32(mmTPC2_RTR_HBW_RANGE_BASE_H_0, 0); 2839 WREG32(mmTPC2_RTR_HBW_RANGE_MASK_L_0, 0); 2840 WREG32(mmTPC2_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2841 2842 /* 2843 * Protect DDR @ 2844 * DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END 2845 * The mask protects the first 512MB 2846 */ 2847 WREG32(mmTPC2_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2848 WREG32(mmTPC2_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2849 WREG32(mmTPC2_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2850 WREG32(mmTPC2_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2851 2852 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2853 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2854 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2855 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 2856 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 2857 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 2858 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 2859 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 2860 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 2861 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 2862 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 2863 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 2864 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 2865 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 2866 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 2867 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 2868 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 2869 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 2870 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 2871 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 2872 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 2873 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 2874 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 2875 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 2876 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 2877 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 2878 WREG32(mmTPC2_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 2879 WREG32(mmTPC2_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 2880 2881 WREG32(mmTPC3_RTR_LBW_RANGE_HIT, 0xFFFF); 2882 WREG32(mmTPC3_RTR_HBW_RANGE_HIT, 0xFE); 2883 2884 /* Protect HOST */ 2885 WREG32(mmTPC3_RTR_HBW_RANGE_BASE_L_0, 0); 2886 WREG32(mmTPC3_RTR_HBW_RANGE_BASE_H_0, 0); 2887 WREG32(mmTPC3_RTR_HBW_RANGE_MASK_L_0, 0); 2888 WREG32(mmTPC3_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2889 2890 /* 2891 * Protect DDR @ 2892 * DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END 2893 * The mask protects the first 512MB 2894 */ 2895 WREG32(mmTPC3_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2896 WREG32(mmTPC3_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2897 WREG32(mmTPC3_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2898 WREG32(mmTPC3_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2899 2900 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2901 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2902 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2903 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 2904 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 2905 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 2906 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 2907 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 2908 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 2909 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 2910 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 2911 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 2912 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 2913 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 2914 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 2915 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 2916 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 2917 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 2918 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 2919 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 2920 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 2921 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 2922 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 2923 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 2924 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 2925 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 2926 WREG32(mmTPC3_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 2927 WREG32(mmTPC3_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 2928 2929 WREG32(mmTPC4_RTR_LBW_RANGE_HIT, 0xFFFF); 2930 WREG32(mmTPC4_RTR_HBW_RANGE_HIT, 0xFE); 2931 2932 /* Protect HOST */ 2933 WREG32(mmTPC4_RTR_HBW_RANGE_BASE_L_0, 0); 2934 WREG32(mmTPC4_RTR_HBW_RANGE_BASE_H_0, 0); 2935 WREG32(mmTPC4_RTR_HBW_RANGE_MASK_L_0, 0); 2936 WREG32(mmTPC4_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2937 2938 /* 2939 * Protect DDR @ 2940 * DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END 2941 * The mask protects the first 512MB 2942 */ 2943 WREG32(mmTPC4_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2944 WREG32(mmTPC4_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2945 WREG32(mmTPC4_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2946 WREG32(mmTPC4_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2947 2948 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2949 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2950 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2951 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 2952 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 2953 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 2954 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 2955 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 2956 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 2957 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 2958 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 2959 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 2960 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 2961 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 2962 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 2963 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 2964 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 2965 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 2966 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 2967 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 2968 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 2969 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 2970 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 2971 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 2972 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 2973 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 2974 WREG32(mmTPC4_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 2975 WREG32(mmTPC4_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 2976 2977 WREG32(mmTPC5_RTR_LBW_RANGE_HIT, 0xFFFF); 2978 WREG32(mmTPC5_RTR_HBW_RANGE_HIT, 0xFE); 2979 2980 /* Protect HOST */ 2981 WREG32(mmTPC5_RTR_HBW_RANGE_BASE_L_0, 0); 2982 WREG32(mmTPC5_RTR_HBW_RANGE_BASE_H_0, 0); 2983 WREG32(mmTPC5_RTR_HBW_RANGE_MASK_L_0, 0); 2984 WREG32(mmTPC5_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 2985 2986 /* 2987 * Protect DDR @ 2988 * DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END 2989 * The mask protects the first 512MB 2990 */ 2991 WREG32(mmTPC5_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 2992 WREG32(mmTPC5_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 2993 WREG32(mmTPC5_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 2994 WREG32(mmTPC5_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 2995 2996 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 2997 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 2998 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 2999 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 3000 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 3001 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 3002 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 3003 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 3004 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 3005 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 3006 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 3007 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 3008 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 3009 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 3010 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 3011 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 3012 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 3013 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 3014 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 3015 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 3016 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 3017 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 3018 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 3019 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 3020 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 3021 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 3022 WREG32(mmTPC5_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 3023 WREG32(mmTPC5_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 3024 3025 WREG32(mmTPC6_RTR_LBW_RANGE_HIT, 0xFFFF); 3026 WREG32(mmTPC6_RTR_HBW_RANGE_HIT, 0xFE); 3027 3028 /* Protect HOST */ 3029 WREG32(mmTPC6_RTR_HBW_RANGE_BASE_L_0, 0); 3030 WREG32(mmTPC6_RTR_HBW_RANGE_BASE_H_0, 0); 3031 WREG32(mmTPC6_RTR_HBW_RANGE_MASK_L_0, 0); 3032 WREG32(mmTPC6_RTR_HBW_RANGE_MASK_H_0, 0xFFF80); 3033 3034 /* 3035 * Protect DDR @ 3036 * DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END 3037 * The mask protects the first 512MB 3038 */ 3039 WREG32(mmTPC6_RTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 3040 WREG32(mmTPC6_RTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 3041 WREG32(mmTPC6_RTR_HBW_RANGE_MASK_L_1, 0xE0000000); 3042 WREG32(mmTPC6_RTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 3043 3044 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_0, lbw_rng0_base); 3045 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 3046 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_1, lbw_rng1_base); 3047 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 3048 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_2, lbw_rng2_base); 3049 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 3050 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_3, lbw_rng3_base); 3051 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 3052 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_4, lbw_rng4_base); 3053 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 3054 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_5, lbw_rng5_base); 3055 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 3056 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_6, lbw_rng6_base); 3057 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 3058 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_7, lbw_rng7_base); 3059 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 3060 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_8, lbw_rng8_base); 3061 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 3062 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_9, lbw_rng9_base); 3063 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 3064 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_10, lbw_rng10_base); 3065 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 3066 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_11, lbw_rng11_base); 3067 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 3068 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_12, lbw_rng12_base); 3069 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 3070 WREG32(mmTPC6_RTR_LBW_RANGE_BASE_13, lbw_rng13_base); 3071 WREG32(mmTPC6_RTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 3072 3073 WREG32(mmTPC7_NRTR_LBW_RANGE_HIT, 0xFFFF); 3074 WREG32(mmTPC7_NRTR_HBW_RANGE_HIT, 0xFE); 3075 3076 /* Protect HOST */ 3077 WREG32(mmTPC7_NRTR_HBW_RANGE_BASE_L_0, 0); 3078 WREG32(mmTPC7_NRTR_HBW_RANGE_BASE_H_0, 0); 3079 WREG32(mmTPC7_NRTR_HBW_RANGE_MASK_L_0, 0); 3080 WREG32(mmTPC7_NRTR_HBW_RANGE_MASK_H_0, 0xFFF80); 3081 3082 /* 3083 * Protect DDR @ 3084 * DRAM_VIRT_BASE : DRAM_VIRT_BASE + DRAM_VIRT_END 3085 * The mask protects the first 512MB 3086 */ 3087 WREG32(mmTPC7_NRTR_HBW_RANGE_BASE_L_1, dram_addr_lo); 3088 WREG32(mmTPC7_NRTR_HBW_RANGE_BASE_H_1, dram_addr_hi); 3089 WREG32(mmTPC7_NRTR_HBW_RANGE_MASK_L_1, 0xE0000000); 3090 WREG32(mmTPC7_NRTR_HBW_RANGE_MASK_H_1, 0x3FFFF); 3091 3092 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_0, lbw_rng0_base); 3093 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_0, lbw_rng0_mask); 3094 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_1, lbw_rng1_base); 3095 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_1, lbw_rng1_mask); 3096 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_2, lbw_rng2_base); 3097 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_2, lbw_rng2_mask); 3098 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_3, lbw_rng3_base); 3099 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_3, lbw_rng3_mask); 3100 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_4, lbw_rng4_base); 3101 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_4, lbw_rng4_mask); 3102 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_5, lbw_rng5_base); 3103 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_5, lbw_rng5_mask); 3104 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_6, lbw_rng6_base); 3105 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_6, lbw_rng6_mask); 3106 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_7, lbw_rng7_base); 3107 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_7, lbw_rng7_mask); 3108 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_8, lbw_rng8_base); 3109 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_8, lbw_rng8_mask); 3110 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_9, lbw_rng9_base); 3111 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_9, lbw_rng9_mask); 3112 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_10, lbw_rng10_base); 3113 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_10, lbw_rng10_mask); 3114 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_11, lbw_rng11_base); 3115 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_11, lbw_rng11_mask); 3116 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_12, lbw_rng12_base); 3117 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_12, lbw_rng12_mask); 3118 WREG32(mmTPC7_NRTR_LBW_RANGE_BASE_13, lbw_rng13_base); 3119 WREG32(mmTPC7_NRTR_LBW_RANGE_MASK_13, lbw_rng13_mask); 3120 3121 goya_init_protection_bits(hdev); 3122} 3123 3124void goya_ack_protection_bits_errors(struct hl_device *hdev) 3125{ 3126 3127}