0001
0002
0003
0004
0005
0006
0007
0008 #include "goyaP.h"
0009 #include "../include/goya/asic_reg/goya_regs.h"
0010
0011
0012
0013
0014
0015
0016
0017
0018 static void goya_pb_set_block(struct hl_device *hdev, u64 base)
0019 {
0020 u32 pb_addr = base - CFG_BASE + PROT_BITS_OFFS;
0021
0022 while (pb_addr & 0xFFF) {
0023 WREG32(pb_addr, 0);
0024 pb_addr += 4;
0025 }
0026 }
0027
0028 static void goya_init_mme_protection_bits(struct hl_device *hdev)
0029 {
0030 u32 pb_addr, mask;
0031 u8 word_offset;
0032
0033
0034 u64 mmMME_SBB_POWER_ECO1 = 0xDFF60,
0035 mmMME_SBB_POWER_ECO2 = 0xDFF64;
0036
0037 goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_0_BASE);
0038 goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_1_BASE);
0039 goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_2_BASE);
0040 goya_pb_set_block(hdev, mmACC_MS_ECC_MEM_3_BASE);
0041
0042 goya_pb_set_block(hdev, mmSBA_ECC_MEM_BASE);
0043 goya_pb_set_block(hdev, mmSBB_ECC_MEM_BASE);
0044
0045 goya_pb_set_block(hdev, mmMME1_RTR_BASE);
0046 goya_pb_set_block(hdev, mmMME1_RD_REGULATOR_BASE);
0047 goya_pb_set_block(hdev, mmMME1_WR_REGULATOR_BASE);
0048 goya_pb_set_block(hdev, mmMME2_RTR_BASE);
0049 goya_pb_set_block(hdev, mmMME2_RD_REGULATOR_BASE);
0050 goya_pb_set_block(hdev, mmMME2_WR_REGULATOR_BASE);
0051 goya_pb_set_block(hdev, mmMME3_RTR_BASE);
0052 goya_pb_set_block(hdev, mmMME3_RD_REGULATOR_BASE);
0053 goya_pb_set_block(hdev, mmMME3_WR_REGULATOR_BASE);
0054
0055 goya_pb_set_block(hdev, mmMME4_RTR_BASE);
0056 goya_pb_set_block(hdev, mmMME4_RD_REGULATOR_BASE);
0057 goya_pb_set_block(hdev, mmMME4_WR_REGULATOR_BASE);
0058
0059 goya_pb_set_block(hdev, mmMME5_RTR_BASE);
0060 goya_pb_set_block(hdev, mmMME5_RD_REGULATOR_BASE);
0061 goya_pb_set_block(hdev, mmMME5_WR_REGULATOR_BASE);
0062
0063 goya_pb_set_block(hdev, mmMME6_RTR_BASE);
0064 goya_pb_set_block(hdev, mmMME6_RD_REGULATOR_BASE);
0065 goya_pb_set_block(hdev, mmMME6_WR_REGULATOR_BASE);
0066
0067 pb_addr = (mmMME_DUMMY & ~0xFFF) + PROT_BITS_OFFS;
0068 word_offset = ((mmMME_DUMMY & PROT_BITS_OFFS) >> 7) << 2;
0069 mask = 1 << ((mmMME_DUMMY & 0x7F) >> 2);
0070 mask |= 1 << ((mmMME_RESET & 0x7F) >> 2);
0071 mask |= 1 << ((mmMME_STALL & 0x7F) >> 2);
0072 mask |= 1 << ((mmMME_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);
0073 mask |= 1 << ((mmMME_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);
0074 mask |= 1 << ((mmMME_DBGMEM_ADD & 0x7F) >> 2);
0075 mask |= 1 << ((mmMME_DBGMEM_DATA_WR & 0x7F) >> 2);
0076 mask |= 1 << ((mmMME_DBGMEM_DATA_RD & 0x7F) >> 2);
0077 mask |= 1 << ((mmMME_DBGMEM_CTRL & 0x7F) >> 2);
0078 mask |= 1 << ((mmMME_DBGMEM_RC & 0x7F) >> 2);
0079 mask |= 1 << ((mmMME_LOG_SHADOW & 0x7F) >> 2);
0080
0081 WREG32(pb_addr + word_offset, ~mask);
0082
0083 pb_addr = (mmMME_STORE_MAX_CREDIT & ~0xFFF) + PROT_BITS_OFFS;
0084 word_offset = ((mmMME_STORE_MAX_CREDIT & PROT_BITS_OFFS) >> 7) << 2;
0085 mask = 1 << ((mmMME_STORE_MAX_CREDIT & 0x7F) >> 2);
0086 mask |= 1 << ((mmMME_AGU & 0x7F) >> 2);
0087 mask |= 1 << ((mmMME_SBA & 0x7F) >> 2);
0088 mask |= 1 << ((mmMME_SBB & 0x7F) >> 2);
0089 mask |= 1 << ((mmMME_SBC & 0x7F) >> 2);
0090 mask |= 1 << ((mmMME_WBC & 0x7F) >> 2);
0091 mask |= 1 << ((mmMME_SBA_CONTROL_DATA & 0x7F) >> 2);
0092 mask |= 1 << ((mmMME_SBB_CONTROL_DATA & 0x7F) >> 2);
0093 mask |= 1 << ((mmMME_SBC_CONTROL_DATA & 0x7F) >> 2);
0094 mask |= 1 << ((mmMME_WBC_CONTROL_DATA & 0x7F) >> 2);
0095 mask |= 1 << ((mmMME_TE & 0x7F) >> 2);
0096 mask |= 1 << ((mmMME_TE2DEC & 0x7F) >> 2);
0097 mask |= 1 << ((mmMME_REI_STATUS & 0x7F) >> 2);
0098 mask |= 1 << ((mmMME_REI_MASK & 0x7F) >> 2);
0099 mask |= 1 << ((mmMME_SEI_STATUS & 0x7F) >> 2);
0100 mask |= 1 << ((mmMME_SEI_MASK & 0x7F) >> 2);
0101 mask |= 1 << ((mmMME_SPI_STATUS & 0x7F) >> 2);
0102 mask |= 1 << ((mmMME_SPI_MASK & 0x7F) >> 2);
0103
0104 WREG32(pb_addr + word_offset, ~mask);
0105
0106 pb_addr = (mmMME_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0107 word_offset = ((mmMME_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0108 mask = 1 << ((mmMME_QM_GLBL_CFG0 & 0x7F) >> 2);
0109 mask |= 1 << ((mmMME_QM_GLBL_CFG1 & 0x7F) >> 2);
0110 mask |= 1 << ((mmMME_QM_GLBL_PROT & 0x7F) >> 2);
0111 mask |= 1 << ((mmMME_QM_GLBL_ERR_CFG & 0x7F) >> 2);
0112 mask |= 1 << ((mmMME_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);
0113 mask |= 1 << ((mmMME_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);
0114 mask |= 1 << ((mmMME_QM_GLBL_ERR_WDATA & 0x7F) >> 2);
0115 mask |= 1 << ((mmMME_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);
0116 mask |= 1 << ((mmMME_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);
0117 mask |= 1 << ((mmMME_QM_GLBL_STS0 & 0x7F) >> 2);
0118 mask |= 1 << ((mmMME_QM_GLBL_STS1 & 0x7F) >> 2);
0119 mask |= 1 << ((mmMME_QM_PQ_BASE_LO & 0x7F) >> 2);
0120 mask |= 1 << ((mmMME_QM_PQ_BASE_HI & 0x7F) >> 2);
0121 mask |= 1 << ((mmMME_QM_PQ_SIZE & 0x7F) >> 2);
0122 mask |= 1 << ((mmMME_QM_PQ_PI & 0x7F) >> 2);
0123 mask |= 1 << ((mmMME_QM_PQ_CI & 0x7F) >> 2);
0124 mask |= 1 << ((mmMME_QM_PQ_CFG0 & 0x7F) >> 2);
0125 mask |= 1 << ((mmMME_QM_PQ_CFG1 & 0x7F) >> 2);
0126 mask |= 1 << ((mmMME_QM_PQ_ARUSER & 0x7F) >> 2);
0127
0128 WREG32(pb_addr + word_offset, ~mask);
0129
0130 pb_addr = (mmMME_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;
0131 word_offset = ((mmMME_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;
0132 mask = 1 << ((mmMME_QM_PQ_PUSH0 & 0x7F) >> 2);
0133 mask |= 1 << ((mmMME_QM_PQ_PUSH1 & 0x7F) >> 2);
0134 mask |= 1 << ((mmMME_QM_PQ_PUSH2 & 0x7F) >> 2);
0135 mask |= 1 << ((mmMME_QM_PQ_PUSH3 & 0x7F) >> 2);
0136 mask |= 1 << ((mmMME_QM_PQ_STS0 & 0x7F) >> 2);
0137 mask |= 1 << ((mmMME_QM_PQ_STS1 & 0x7F) >> 2);
0138 mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0139 mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0140 mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0141 mask |= 1 << ((mmMME_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0142 mask |= 1 << ((mmMME_QM_CQ_CFG0 & 0x7F) >> 2);
0143 mask |= 1 << ((mmMME_QM_CQ_CFG1 & 0x7F) >> 2);
0144 mask |= 1 << ((mmMME_QM_CQ_ARUSER & 0x7F) >> 2);
0145 mask |= 1 << ((mmMME_QM_CQ_PTR_LO & 0x7F) >> 2);
0146 mask |= 1 << ((mmMME_QM_CQ_PTR_HI & 0x7F) >> 2);
0147 mask |= 1 << ((mmMME_QM_CQ_TSIZE & 0x7F) >> 2);
0148 mask |= 1 << ((mmMME_QM_CQ_CTL & 0x7F) >> 2);
0149 mask |= 1 << ((mmMME_QM_CQ_PTR_LO_STS & 0x7F) >> 2);
0150 mask |= 1 << ((mmMME_QM_CQ_PTR_HI_STS & 0x7F) >> 2);
0151 mask |= 1 << ((mmMME_QM_CQ_TSIZE_STS & 0x7F) >> 2);
0152 mask |= 1 << ((mmMME_QM_CQ_CTL_STS & 0x7F) >> 2);
0153 mask |= 1 << ((mmMME_QM_CQ_STS0 & 0x7F) >> 2);
0154 mask |= 1 << ((mmMME_QM_CQ_STS1 & 0x7F) >> 2);
0155 mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0156 mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0157 mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0158 mask |= 1 << ((mmMME_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0159
0160 WREG32(pb_addr + word_offset, ~mask);
0161
0162 pb_addr = (mmMME_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;
0163 word_offset = ((mmMME_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;
0164 mask = 1 << ((mmMME_QM_CQ_IFIFO_CNT & 0x7F) >> 2);
0165 mask |= 1 << ((mmMME_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);
0166 mask |= 1 << ((mmMME_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);
0167 mask |= 1 << ((mmMME_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);
0168 mask |= 1 << ((mmMME_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);
0169 mask |= 1 << ((mmMME_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);
0170 mask |= 1 << ((mmMME_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);
0171 mask |= 1 << ((mmMME_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);
0172 mask |= 1 << ((mmMME_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);
0173 mask |= 1 << ((mmMME_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);
0174 mask |= 1 << ((mmMME_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);
0175 mask |= 1 << ((mmMME_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);
0176 mask |= 1 << ((mmMME_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);
0177 mask |= 1 << ((mmMME_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);
0178 mask |= 1 << ((mmMME_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);
0179
0180 WREG32(pb_addr + word_offset, ~mask);
0181
0182 pb_addr = (mmMME_QM_CP_STS & ~0xFFF) + PROT_BITS_OFFS;
0183 word_offset = ((mmMME_QM_CP_STS & PROT_BITS_OFFS) >> 7) << 2;
0184 mask = 1 << ((mmMME_QM_CP_STS & 0x7F) >> 2);
0185 mask |= 1 << ((mmMME_QM_CP_CURRENT_INST_LO & 0x7F) >> 2);
0186 mask |= 1 << ((mmMME_QM_CP_CURRENT_INST_HI & 0x7F) >> 2);
0187 mask |= 1 << ((mmMME_QM_CP_BARRIER_CFG & 0x7F) >> 2);
0188 mask |= 1 << ((mmMME_QM_CP_DBG_0 & 0x7F) >> 2);
0189 mask |= 1 << ((mmMME_QM_PQ_BUF_ADDR & 0x7F) >> 2);
0190 mask |= 1 << ((mmMME_QM_PQ_BUF_RDATA & 0x7F) >> 2);
0191 mask |= 1 << ((mmMME_QM_CQ_BUF_ADDR & 0x7F) >> 2);
0192 mask |= 1 << ((mmMME_QM_CQ_BUF_RDATA & 0x7F) >> 2);
0193
0194 WREG32(pb_addr + word_offset, ~mask);
0195
0196 pb_addr = (mmMME_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0197 word_offset = ((mmMME_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0198 mask = 1 << ((mmMME_CMDQ_GLBL_CFG0 & 0x7F) >> 2);
0199 mask |= 1 << ((mmMME_CMDQ_GLBL_CFG1 & 0x7F) >> 2);
0200 mask |= 1 << ((mmMME_CMDQ_GLBL_PROT & 0x7F) >> 2);
0201 mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2);
0202 mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2);
0203 mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2);
0204 mask |= 1 << ((mmMME_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2);
0205 mask |= 1 << ((mmMME_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2);
0206 mask |= 1 << ((mmMME_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);
0207 mask |= 1 << ((mmMME_CMDQ_GLBL_STS0 & 0x7F) >> 2);
0208 mask |= 1 << ((mmMME_CMDQ_GLBL_STS1 & 0x7F) >> 2);
0209
0210 WREG32(pb_addr + word_offset, ~mask);
0211
0212 pb_addr = (mmMME_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0213 word_offset = ((mmMME_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0214 mask = 1 << ((mmMME_CMDQ_CQ_CFG0 & 0x7F) >> 2);
0215 mask |= 1 << ((mmMME_CMDQ_CQ_CFG1 & 0x7F) >> 2);
0216 mask |= 1 << ((mmMME_CMDQ_CQ_ARUSER & 0x7F) >> 2);
0217 mask |= 1 << ((mmMME_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2);
0218 mask |= 1 << ((mmMME_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2);
0219 mask |= 1 << ((mmMME_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2);
0220 mask |= 1 << ((mmMME_CMDQ_CQ_CTL_STS & 0x7F) >> 2);
0221 mask |= 1 << ((mmMME_CMDQ_CQ_STS0 & 0x7F) >> 2);
0222 mask |= 1 << ((mmMME_CMDQ_CQ_STS1 & 0x7F) >> 2);
0223 mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0224 mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0225 mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0226 mask |= 1 << ((mmMME_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0227
0228 WREG32(pb_addr + word_offset, ~mask);
0229
0230 pb_addr = (mmMME_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;
0231 word_offset = ((mmMME_CMDQ_CQ_IFIFO_CNT &
0232 PROT_BITS_OFFS) >> 7) << 2;
0233 mask = 1 << ((mmMME_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2);
0234 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);
0235 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);
0236 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);
0237 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);
0238 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);
0239 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);
0240 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);
0241 mask |= 1 << ((mmMME_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);
0242 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);
0243 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);
0244 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);
0245 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);
0246 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);
0247 mask |= 1 << ((mmMME_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);
0248 mask |= 1 << ((mmMME_CMDQ_CP_STS & 0x7F) >> 2);
0249 mask |= 1 << ((mmMME_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2);
0250
0251 WREG32(pb_addr + word_offset, ~mask);
0252
0253 pb_addr = (mmMME_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS;
0254 word_offset = ((mmMME_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7)
0255 << 2;
0256 mask = 1 << ((mmMME_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2);
0257 mask |= 1 << ((mmMME_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2);
0258 mask |= 1 << ((mmMME_CMDQ_CP_DBG_0 & 0x7F) >> 2);
0259 mask |= 1 << ((mmMME_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2);
0260 mask |= 1 << ((mmMME_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2);
0261
0262 WREG32(pb_addr + word_offset, ~mask);
0263
0264 pb_addr = (mmMME_SBB_POWER_ECO1 & ~0xFFF) + PROT_BITS_OFFS;
0265 word_offset = ((mmMME_SBB_POWER_ECO1 & PROT_BITS_OFFS) >> 7) << 2;
0266 mask = 1 << ((mmMME_SBB_POWER_ECO1 & 0x7F) >> 2);
0267 mask |= 1 << ((mmMME_SBB_POWER_ECO2 & 0x7F) >> 2);
0268
0269 WREG32(pb_addr + word_offset, ~mask);
0270 }
0271
0272 static void goya_init_dma_protection_bits(struct hl_device *hdev)
0273 {
0274 u32 pb_addr, mask;
0275 u8 word_offset;
0276
0277 goya_pb_set_block(hdev, mmDMA_NRTR_BASE);
0278 goya_pb_set_block(hdev, mmDMA_RD_REGULATOR_BASE);
0279 goya_pb_set_block(hdev, mmDMA_WR_REGULATOR_BASE);
0280
0281 pb_addr = (mmDMA_QM_0_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0282 word_offset = ((mmDMA_QM_0_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0283 mask = 1 << ((mmDMA_QM_0_GLBL_CFG0 & 0x7F) >> 2);
0284 mask |= 1 << ((mmDMA_QM_0_GLBL_CFG1 & 0x7F) >> 2);
0285 mask |= 1 << ((mmDMA_QM_0_GLBL_PROT & 0x7F) >> 2);
0286 mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_CFG & 0x7F) >> 2);
0287 mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_ADDR_LO & 0x7F) >> 2);
0288 mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_ADDR_HI & 0x7F) >> 2);
0289 mask |= 1 << ((mmDMA_QM_0_GLBL_ERR_WDATA & 0x7F) >> 2);
0290 mask |= 1 << ((mmDMA_QM_0_GLBL_SECURE_PROPS & 0x7F) >> 2);
0291 mask |= 1 << ((mmDMA_QM_0_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);
0292 mask |= 1 << ((mmDMA_QM_0_GLBL_STS0 & 0x7F) >> 2);
0293 mask |= 1 << ((mmDMA_QM_0_GLBL_STS1 & 0x7F) >> 2);
0294 mask |= 1 << ((mmDMA_QM_0_PQ_BASE_LO & 0x7F) >> 2);
0295 mask |= 1 << ((mmDMA_QM_0_PQ_BASE_HI & 0x7F) >> 2);
0296 mask |= 1 << ((mmDMA_QM_0_PQ_SIZE & 0x7F) >> 2);
0297 mask |= 1 << ((mmDMA_QM_0_PQ_PI & 0x7F) >> 2);
0298 mask |= 1 << ((mmDMA_QM_0_PQ_CI & 0x7F) >> 2);
0299 mask |= 1 << ((mmDMA_QM_0_PQ_CFG0 & 0x7F) >> 2);
0300 mask |= 1 << ((mmDMA_QM_0_PQ_CFG1 & 0x7F) >> 2);
0301 mask |= 1 << ((mmDMA_QM_0_PQ_ARUSER & 0x7F) >> 2);
0302
0303 WREG32(pb_addr + word_offset, ~mask);
0304
0305 pb_addr = (mmDMA_QM_0_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;
0306 word_offset = ((mmDMA_QM_0_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;
0307 mask = 1 << ((mmDMA_QM_0_PQ_PUSH0 & 0x7F) >> 2);
0308 mask |= 1 << ((mmDMA_QM_0_PQ_PUSH1 & 0x7F) >> 2);
0309 mask |= 1 << ((mmDMA_QM_0_PQ_PUSH2 & 0x7F) >> 2);
0310 mask |= 1 << ((mmDMA_QM_0_PQ_PUSH3 & 0x7F) >> 2);
0311 mask |= 1 << ((mmDMA_QM_0_PQ_STS0 & 0x7F) >> 2);
0312 mask |= 1 << ((mmDMA_QM_0_PQ_STS1 & 0x7F) >> 2);
0313 mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0314 mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0315 mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0316 mask |= 1 << ((mmDMA_QM_0_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0317 mask |= 1 << ((mmDMA_QM_0_CQ_CFG0 & 0x7F) >> 2);
0318 mask |= 1 << ((mmDMA_QM_0_CQ_CFG1 & 0x7F) >> 2);
0319 mask |= 1 << ((mmDMA_QM_0_CQ_ARUSER & 0x7F) >> 2);
0320 mask |= 1 << ((mmDMA_QM_0_CQ_PTR_LO & 0x7F) >> 2);
0321 mask |= 1 << ((mmDMA_QM_0_CQ_PTR_HI & 0x7F) >> 2);
0322 mask |= 1 << ((mmDMA_QM_0_CQ_TSIZE & 0x7F) >> 2);
0323 mask |= 1 << ((mmDMA_QM_0_CQ_CTL & 0x7F) >> 2);
0324 mask |= 1 << ((mmDMA_QM_0_CQ_PTR_LO_STS & 0x7F) >> 2);
0325 mask |= 1 << ((mmDMA_QM_0_CQ_PTR_HI_STS & 0x7F) >> 2);
0326 mask |= 1 << ((mmDMA_QM_0_CQ_TSIZE_STS & 0x7F) >> 2);
0327 mask |= 1 << ((mmDMA_QM_0_CQ_CTL_STS & 0x7F) >> 2);
0328 mask |= 1 << ((mmDMA_QM_0_CQ_STS0 & 0x7F) >> 2);
0329 mask |= 1 << ((mmDMA_QM_0_CQ_STS1 & 0x7F) >> 2);
0330 mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0331 mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0332 mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0333 mask |= 1 << ((mmDMA_QM_0_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0334
0335 WREG32(pb_addr + word_offset, ~mask);
0336
0337 pb_addr = (mmDMA_QM_0_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;
0338 word_offset = ((mmDMA_QM_0_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;
0339 mask = 1 << ((mmDMA_QM_0_CQ_IFIFO_CNT & 0x7F) >> 2);
0340 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);
0341 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);
0342 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);
0343 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);
0344 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);
0345 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);
0346 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);
0347 mask |= 1 << ((mmDMA_QM_0_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);
0348 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);
0349 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);
0350 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);
0351 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);
0352 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);
0353 mask |= 1 << ((mmDMA_QM_0_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);
0354
0355 WREG32(pb_addr + word_offset, ~mask);
0356
0357 goya_pb_set_block(hdev, mmDMA_CH_0_BASE);
0358
0359 pb_addr = (mmDMA_QM_1_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0360 word_offset = ((mmDMA_QM_1_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0361 mask = 1 << ((mmDMA_QM_1_GLBL_CFG0 & 0x7F) >> 2);
0362 mask |= 1 << ((mmDMA_QM_1_GLBL_CFG1 & 0x7F) >> 2);
0363 mask |= 1 << ((mmDMA_QM_1_GLBL_PROT & 0x7F) >> 2);
0364 mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_CFG & 0x7F) >> 2);
0365 mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_ADDR_LO & 0x7F) >> 2);
0366 mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_ADDR_HI & 0x7F) >> 2);
0367 mask |= 1 << ((mmDMA_QM_1_GLBL_ERR_WDATA & 0x7F) >> 2);
0368 mask |= 1 << ((mmDMA_QM_1_GLBL_SECURE_PROPS & 0x7F) >> 2);
0369 mask |= 1 << ((mmDMA_QM_1_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);
0370 mask |= 1 << ((mmDMA_QM_1_GLBL_STS0 & 0x7F) >> 2);
0371 mask |= 1 << ((mmDMA_QM_1_GLBL_STS1 & 0x7F) >> 2);
0372 mask |= 1 << ((mmDMA_QM_1_PQ_BASE_LO & 0x7F) >> 2);
0373 mask |= 1 << ((mmDMA_QM_1_PQ_BASE_HI & 0x7F) >> 2);
0374 mask |= 1 << ((mmDMA_QM_1_PQ_SIZE & 0x7F) >> 2);
0375 mask |= 1 << ((mmDMA_QM_1_PQ_PI & 0x7F) >> 2);
0376 mask |= 1 << ((mmDMA_QM_1_PQ_CI & 0x7F) >> 2);
0377 mask |= 1 << ((mmDMA_QM_1_PQ_CFG0 & 0x7F) >> 2);
0378 mask |= 1 << ((mmDMA_QM_1_PQ_CFG1 & 0x7F) >> 2);
0379 mask |= 1 << ((mmDMA_QM_1_PQ_ARUSER & 0x7F) >> 2);
0380
0381 WREG32(pb_addr + word_offset, ~mask);
0382
0383 pb_addr = (mmDMA_QM_1_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;
0384 word_offset = ((mmDMA_QM_1_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;
0385 mask = 1 << ((mmDMA_QM_1_PQ_PUSH0 & 0x7F) >> 2);
0386 mask |= 1 << ((mmDMA_QM_1_PQ_PUSH1 & 0x7F) >> 2);
0387 mask |= 1 << ((mmDMA_QM_1_PQ_PUSH2 & 0x7F) >> 2);
0388 mask |= 1 << ((mmDMA_QM_1_PQ_PUSH3 & 0x7F) >> 2);
0389 mask |= 1 << ((mmDMA_QM_1_PQ_STS0 & 0x7F) >> 2);
0390 mask |= 1 << ((mmDMA_QM_1_PQ_STS1 & 0x7F) >> 2);
0391 mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0392 mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0393 mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0394 mask |= 1 << ((mmDMA_QM_1_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0395 mask |= 1 << ((mmDMA_QM_1_CQ_CFG0 & 0x7F) >> 2);
0396 mask |= 1 << ((mmDMA_QM_1_CQ_CFG1 & 0x7F) >> 2);
0397 mask |= 1 << ((mmDMA_QM_1_CQ_ARUSER & 0x7F) >> 2);
0398 mask |= 1 << ((mmDMA_QM_1_CQ_PTR_LO & 0x7F) >> 2);
0399 mask |= 1 << ((mmDMA_QM_1_CQ_PTR_HI & 0x7F) >> 2);
0400 mask |= 1 << ((mmDMA_QM_1_CQ_TSIZE & 0x7F) >> 2);
0401 mask |= 1 << ((mmDMA_QM_1_CQ_CTL & 0x7F) >> 2);
0402 mask |= 1 << ((mmDMA_QM_1_CQ_PTR_LO_STS & 0x7F) >> 2);
0403 mask |= 1 << ((mmDMA_QM_1_CQ_PTR_HI_STS & 0x7F) >> 2);
0404 mask |= 1 << ((mmDMA_QM_1_CQ_TSIZE_STS & 0x7F) >> 2);
0405 mask |= 1 << ((mmDMA_QM_1_CQ_CTL_STS & 0x7F) >> 2);
0406 mask |= 1 << ((mmDMA_QM_1_CQ_STS0 & 0x7F) >> 2);
0407 mask |= 1 << ((mmDMA_QM_1_CQ_STS1 & 0x7F) >> 2);
0408 mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0409 mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0410 mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0411 mask |= 1 << ((mmDMA_QM_1_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0412
0413 WREG32(pb_addr + word_offset, ~mask);
0414
0415 pb_addr = (mmDMA_QM_1_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;
0416 word_offset = ((mmDMA_QM_1_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;
0417 mask = 1 << ((mmDMA_QM_1_CQ_IFIFO_CNT & 0x7F) >> 2);
0418 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);
0419 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);
0420 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);
0421 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);
0422 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);
0423 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);
0424 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);
0425 mask |= 1 << ((mmDMA_QM_1_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);
0426 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);
0427 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);
0428 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);
0429 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);
0430 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);
0431 mask |= 1 << ((mmDMA_QM_1_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);
0432
0433 WREG32(pb_addr + word_offset, ~mask);
0434
0435 goya_pb_set_block(hdev, mmDMA_CH_1_BASE);
0436
0437 pb_addr = (mmDMA_QM_2_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0438 word_offset = ((mmDMA_QM_2_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0439 mask = 1 << ((mmDMA_QM_2_GLBL_CFG0 & 0x7F) >> 2);
0440 mask |= 1 << ((mmDMA_QM_2_GLBL_CFG1 & 0x7F) >> 2);
0441 mask |= 1 << ((mmDMA_QM_2_GLBL_PROT & 0x7F) >> 2);
0442 mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_CFG & 0x7F) >> 2);
0443 mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_ADDR_LO & 0x7F) >> 2);
0444 mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_ADDR_HI & 0x7F) >> 2);
0445 mask |= 1 << ((mmDMA_QM_2_GLBL_ERR_WDATA & 0x7F) >> 2);
0446 mask |= 1 << ((mmDMA_QM_2_GLBL_SECURE_PROPS & 0x7F) >> 2);
0447 mask |= 1 << ((mmDMA_QM_2_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);
0448 mask |= 1 << ((mmDMA_QM_2_GLBL_STS0 & 0x7F) >> 2);
0449 mask |= 1 << ((mmDMA_QM_2_GLBL_STS1 & 0x7F) >> 2);
0450 mask |= 1 << ((mmDMA_QM_2_PQ_BASE_LO & 0x7F) >> 2);
0451 mask |= 1 << ((mmDMA_QM_2_PQ_BASE_HI & 0x7F) >> 2);
0452 mask |= 1 << ((mmDMA_QM_2_PQ_SIZE & 0x7F) >> 2);
0453 mask |= 1 << ((mmDMA_QM_2_PQ_PI & 0x7F) >> 2);
0454 mask |= 1 << ((mmDMA_QM_2_PQ_CI & 0x7F) >> 2);
0455 mask |= 1 << ((mmDMA_QM_2_PQ_CFG0 & 0x7F) >> 2);
0456 mask |= 1 << ((mmDMA_QM_2_PQ_CFG1 & 0x7F) >> 2);
0457 mask |= 1 << ((mmDMA_QM_2_PQ_ARUSER & 0x7F) >> 2);
0458
0459 WREG32(pb_addr + word_offset, ~mask);
0460
0461 pb_addr = (mmDMA_QM_2_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;
0462 word_offset = ((mmDMA_QM_2_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;
0463 mask = 1 << ((mmDMA_QM_2_PQ_PUSH0 & 0x7F) >> 2);
0464 mask |= 1 << ((mmDMA_QM_2_PQ_PUSH1 & 0x7F) >> 2);
0465 mask |= 1 << ((mmDMA_QM_2_PQ_PUSH2 & 0x7F) >> 2);
0466 mask |= 1 << ((mmDMA_QM_2_PQ_PUSH3 & 0x7F) >> 2);
0467 mask |= 1 << ((mmDMA_QM_2_PQ_STS0 & 0x7F) >> 2);
0468 mask |= 1 << ((mmDMA_QM_2_PQ_STS1 & 0x7F) >> 2);
0469 mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0470 mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0471 mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0472 mask |= 1 << ((mmDMA_QM_2_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0473 mask |= 1 << ((mmDMA_QM_2_CQ_CFG0 & 0x7F) >> 2);
0474 mask |= 1 << ((mmDMA_QM_2_CQ_CFG1 & 0x7F) >> 2);
0475 mask |= 1 << ((mmDMA_QM_2_CQ_ARUSER & 0x7F) >> 2);
0476 mask |= 1 << ((mmDMA_QM_2_CQ_PTR_LO & 0x7F) >> 2);
0477 mask |= 1 << ((mmDMA_QM_2_CQ_PTR_HI & 0x7F) >> 2);
0478 mask |= 1 << ((mmDMA_QM_2_CQ_TSIZE & 0x7F) >> 2);
0479 mask |= 1 << ((mmDMA_QM_2_CQ_CTL & 0x7F) >> 2);
0480 mask |= 1 << ((mmDMA_QM_2_CQ_PTR_LO_STS & 0x7F) >> 2);
0481 mask |= 1 << ((mmDMA_QM_2_CQ_PTR_HI_STS & 0x7F) >> 2);
0482 mask |= 1 << ((mmDMA_QM_2_CQ_TSIZE_STS & 0x7F) >> 2);
0483 mask |= 1 << ((mmDMA_QM_2_CQ_CTL_STS & 0x7F) >> 2);
0484 mask |= 1 << ((mmDMA_QM_2_CQ_STS0 & 0x7F) >> 2);
0485 mask |= 1 << ((mmDMA_QM_2_CQ_STS1 & 0x7F) >> 2);
0486 mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0487 mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0488 mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0489 mask |= 1 << ((mmDMA_QM_2_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0490
0491 WREG32(pb_addr + word_offset, ~mask);
0492
0493 pb_addr = (mmDMA_QM_2_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;
0494 word_offset = ((mmDMA_QM_2_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;
0495 mask = 1 << ((mmDMA_QM_2_CQ_IFIFO_CNT & 0x7F) >> 2);
0496 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);
0497 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);
0498 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);
0499 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);
0500 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);
0501 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);
0502 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);
0503 mask |= 1 << ((mmDMA_QM_2_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);
0504 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);
0505 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);
0506 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);
0507 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);
0508 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);
0509 mask |= 1 << ((mmDMA_QM_2_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);
0510
0511 WREG32(pb_addr + word_offset, ~mask);
0512
0513 goya_pb_set_block(hdev, mmDMA_CH_2_BASE);
0514
0515 pb_addr = (mmDMA_QM_3_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0516 word_offset = ((mmDMA_QM_3_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0517 mask = 1 << ((mmDMA_QM_3_GLBL_CFG0 & 0x7F) >> 2);
0518 mask |= 1 << ((mmDMA_QM_3_GLBL_CFG1 & 0x7F) >> 2);
0519 mask |= 1 << ((mmDMA_QM_3_GLBL_PROT & 0x7F) >> 2);
0520 mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_CFG & 0x7F) >> 2);
0521 mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_ADDR_LO & 0x7F) >> 2);
0522 mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_ADDR_HI & 0x7F) >> 2);
0523 mask |= 1 << ((mmDMA_QM_3_GLBL_ERR_WDATA & 0x7F) >> 2);
0524 mask |= 1 << ((mmDMA_QM_3_GLBL_SECURE_PROPS & 0x7F) >> 2);
0525 mask |= 1 << ((mmDMA_QM_3_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);
0526 mask |= 1 << ((mmDMA_QM_3_GLBL_STS0 & 0x7F) >> 2);
0527 mask |= 1 << ((mmDMA_QM_3_GLBL_STS1 & 0x7F) >> 2);
0528 mask |= 1 << ((mmDMA_QM_3_PQ_BASE_LO & 0x7F) >> 2);
0529 mask |= 1 << ((mmDMA_QM_3_PQ_BASE_HI & 0x7F) >> 2);
0530 mask |= 1 << ((mmDMA_QM_3_PQ_SIZE & 0x7F) >> 2);
0531 mask |= 1 << ((mmDMA_QM_3_PQ_PI & 0x7F) >> 2);
0532 mask |= 1 << ((mmDMA_QM_3_PQ_CI & 0x7F) >> 2);
0533 mask |= 1 << ((mmDMA_QM_3_PQ_CFG0 & 0x7F) >> 2);
0534 mask |= 1 << ((mmDMA_QM_3_PQ_CFG1 & 0x7F) >> 2);
0535 mask |= 1 << ((mmDMA_QM_3_PQ_ARUSER & 0x7F) >> 2);
0536
0537 WREG32(pb_addr + word_offset, ~mask);
0538
0539 pb_addr = (mmDMA_QM_3_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;
0540 word_offset = ((mmDMA_QM_3_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;
0541 mask = 1 << ((mmDMA_QM_3_PQ_PUSH0 & 0x7F) >> 2);
0542 mask |= 1 << ((mmDMA_QM_3_PQ_PUSH1 & 0x7F) >> 2);
0543 mask |= 1 << ((mmDMA_QM_3_PQ_PUSH2 & 0x7F) >> 2);
0544 mask |= 1 << ((mmDMA_QM_3_PQ_PUSH3 & 0x7F) >> 2);
0545 mask |= 1 << ((mmDMA_QM_3_PQ_STS0 & 0x7F) >> 2);
0546 mask |= 1 << ((mmDMA_QM_3_PQ_STS1 & 0x7F) >> 2);
0547 mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0548 mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0549 mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0550 mask |= 1 << ((mmDMA_QM_3_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0551 mask |= 1 << ((mmDMA_QM_3_CQ_CFG0 & 0x7F) >> 2);
0552 mask |= 1 << ((mmDMA_QM_3_CQ_CFG1 & 0x7F) >> 2);
0553 mask |= 1 << ((mmDMA_QM_3_CQ_ARUSER & 0x7F) >> 2);
0554 mask |= 1 << ((mmDMA_QM_3_CQ_PTR_LO & 0x7F) >> 2);
0555 mask |= 1 << ((mmDMA_QM_3_CQ_PTR_HI & 0x7F) >> 2);
0556 mask |= 1 << ((mmDMA_QM_3_CQ_TSIZE & 0x7F) >> 2);
0557 mask |= 1 << ((mmDMA_QM_3_CQ_CTL & 0x7F) >> 2);
0558 mask |= 1 << ((mmDMA_QM_3_CQ_PTR_LO_STS & 0x7F) >> 2);
0559 mask |= 1 << ((mmDMA_QM_3_CQ_PTR_HI_STS & 0x7F) >> 2);
0560 mask |= 1 << ((mmDMA_QM_3_CQ_TSIZE_STS & 0x7F) >> 2);
0561 mask |= 1 << ((mmDMA_QM_3_CQ_CTL_STS & 0x7F) >> 2);
0562 mask |= 1 << ((mmDMA_QM_3_CQ_STS0 & 0x7F) >> 2);
0563 mask |= 1 << ((mmDMA_QM_3_CQ_STS1 & 0x7F) >> 2);
0564 mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0565 mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0566 mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0567 mask |= 1 << ((mmDMA_QM_3_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0568
0569 WREG32(pb_addr + word_offset, ~mask);
0570
0571 pb_addr = (mmDMA_QM_3_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;
0572 word_offset = ((mmDMA_QM_3_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;
0573 mask = 1 << ((mmDMA_QM_3_CQ_IFIFO_CNT & 0x7F) >> 2);
0574 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);
0575 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);
0576 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);
0577 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);
0578 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);
0579 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);
0580 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);
0581 mask |= 1 << ((mmDMA_QM_3_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);
0582 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);
0583 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);
0584 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);
0585 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);
0586 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);
0587 mask |= 1 << ((mmDMA_QM_3_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);
0588
0589 WREG32(pb_addr + word_offset, ~mask);
0590
0591 goya_pb_set_block(hdev, mmDMA_CH_3_BASE);
0592
0593 pb_addr = (mmDMA_QM_4_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0594 word_offset = ((mmDMA_QM_4_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0595 mask = 1 << ((mmDMA_QM_4_GLBL_CFG0 & 0x7F) >> 2);
0596 mask |= 1 << ((mmDMA_QM_4_GLBL_CFG1 & 0x7F) >> 2);
0597 mask |= 1 << ((mmDMA_QM_4_GLBL_PROT & 0x7F) >> 2);
0598 mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_CFG & 0x7F) >> 2);
0599 mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_ADDR_LO & 0x7F) >> 2);
0600 mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_ADDR_HI & 0x7F) >> 2);
0601 mask |= 1 << ((mmDMA_QM_4_GLBL_ERR_WDATA & 0x7F) >> 2);
0602 mask |= 1 << ((mmDMA_QM_4_GLBL_SECURE_PROPS & 0x7F) >> 2);
0603 mask |= 1 << ((mmDMA_QM_4_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);
0604 mask |= 1 << ((mmDMA_QM_4_GLBL_STS0 & 0x7F) >> 2);
0605 mask |= 1 << ((mmDMA_QM_4_GLBL_STS1 & 0x7F) >> 2);
0606 mask |= 1 << ((mmDMA_QM_4_PQ_BASE_LO & 0x7F) >> 2);
0607 mask |= 1 << ((mmDMA_QM_4_PQ_BASE_HI & 0x7F) >> 2);
0608 mask |= 1 << ((mmDMA_QM_4_PQ_SIZE & 0x7F) >> 2);
0609 mask |= 1 << ((mmDMA_QM_4_PQ_PI & 0x7F) >> 2);
0610 mask |= 1 << ((mmDMA_QM_4_PQ_CI & 0x7F) >> 2);
0611 mask |= 1 << ((mmDMA_QM_4_PQ_CFG0 & 0x7F) >> 2);
0612 mask |= 1 << ((mmDMA_QM_4_PQ_CFG1 & 0x7F) >> 2);
0613 mask |= 1 << ((mmDMA_QM_4_PQ_ARUSER & 0x7F) >> 2);
0614
0615 WREG32(pb_addr + word_offset, ~mask);
0616
0617 pb_addr = (mmDMA_QM_4_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;
0618 word_offset = ((mmDMA_QM_4_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;
0619 mask = 1 << ((mmDMA_QM_4_PQ_PUSH0 & 0x7F) >> 2);
0620 mask |= 1 << ((mmDMA_QM_4_PQ_PUSH1 & 0x7F) >> 2);
0621 mask |= 1 << ((mmDMA_QM_4_PQ_PUSH2 & 0x7F) >> 2);
0622 mask |= 1 << ((mmDMA_QM_4_PQ_PUSH3 & 0x7F) >> 2);
0623 mask |= 1 << ((mmDMA_QM_4_PQ_STS0 & 0x7F) >> 2);
0624 mask |= 1 << ((mmDMA_QM_4_PQ_STS1 & 0x7F) >> 2);
0625 mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0626 mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0627 mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0628 mask |= 1 << ((mmDMA_QM_4_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0629 mask |= 1 << ((mmDMA_QM_4_CQ_CFG0 & 0x7F) >> 2);
0630 mask |= 1 << ((mmDMA_QM_4_CQ_CFG1 & 0x7F) >> 2);
0631 mask |= 1 << ((mmDMA_QM_4_CQ_ARUSER & 0x7F) >> 2);
0632 mask |= 1 << ((mmDMA_QM_4_CQ_PTR_LO & 0x7F) >> 2);
0633 mask |= 1 << ((mmDMA_QM_4_CQ_PTR_HI & 0x7F) >> 2);
0634 mask |= 1 << ((mmDMA_QM_4_CQ_TSIZE & 0x7F) >> 2);
0635 mask |= 1 << ((mmDMA_QM_4_CQ_CTL & 0x7F) >> 2);
0636 mask |= 1 << ((mmDMA_QM_4_CQ_PTR_LO_STS & 0x7F) >> 2);
0637 mask |= 1 << ((mmDMA_QM_4_CQ_PTR_HI_STS & 0x7F) >> 2);
0638 mask |= 1 << ((mmDMA_QM_4_CQ_TSIZE_STS & 0x7F) >> 2);
0639 mask |= 1 << ((mmDMA_QM_4_CQ_CTL_STS & 0x7F) >> 2);
0640 mask |= 1 << ((mmDMA_QM_4_CQ_STS0 & 0x7F) >> 2);
0641 mask |= 1 << ((mmDMA_QM_4_CQ_STS1 & 0x7F) >> 2);
0642 mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0643 mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0644 mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0645 mask |= 1 << ((mmDMA_QM_4_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0646
0647 WREG32(pb_addr + word_offset, ~mask);
0648
0649 pb_addr = (mmDMA_QM_4_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;
0650 word_offset = ((mmDMA_QM_4_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;
0651 mask = 1 << ((mmDMA_QM_4_CQ_IFIFO_CNT & 0x7F) >> 2);
0652 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);
0653 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);
0654 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);
0655 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);
0656 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);
0657 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);
0658 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);
0659 mask |= 1 << ((mmDMA_QM_4_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);
0660 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);
0661 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);
0662 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);
0663 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);
0664 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);
0665 mask |= 1 << ((mmDMA_QM_4_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);
0666
0667 WREG32(pb_addr + word_offset, ~mask);
0668
0669 goya_pb_set_block(hdev, mmDMA_CH_4_BASE);
0670 }
0671
0672 static void goya_init_tpc_protection_bits(struct hl_device *hdev)
0673 {
0674 u32 pb_addr, mask;
0675 u8 word_offset;
0676
0677 goya_pb_set_block(hdev, mmTPC0_RD_REGULATOR_BASE);
0678 goya_pb_set_block(hdev, mmTPC0_WR_REGULATOR_BASE);
0679
0680 pb_addr = (mmTPC0_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;
0681 word_offset = ((mmTPC0_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;
0682
0683 mask = 1 << ((mmTPC0_CFG_SEMAPHORE & 0x7F) >> 2);
0684 mask |= 1 << ((mmTPC0_CFG_VFLAGS & 0x7F) >> 2);
0685 mask |= 1 << ((mmTPC0_CFG_SFLAGS & 0x7F) >> 2);
0686 mask |= 1 << ((mmTPC0_CFG_STATUS & 0x7F) >> 2);
0687
0688 WREG32(pb_addr + word_offset, ~mask);
0689
0690 pb_addr = (mmTPC0_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;
0691 word_offset = ((mmTPC0_CFG_CFG_BASE_ADDRESS_HIGH &
0692 PROT_BITS_OFFS) >> 7) << 2;
0693 mask = 1 << ((mmTPC0_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2);
0694 mask |= 1 << ((mmTPC0_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);
0695 mask |= 1 << ((mmTPC0_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);
0696 mask |= 1 << ((mmTPC0_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);
0697 mask |= 1 << ((mmTPC0_CFG_TPC_STALL & 0x7F) >> 2);
0698 mask |= 1 << ((mmTPC0_CFG_MSS_CONFIG & 0x7F) >> 2);
0699 mask |= 1 << ((mmTPC0_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);
0700 mask |= 1 << ((mmTPC0_CFG_TPC_INTR_MASK & 0x7F) >> 2);
0701
0702 WREG32(pb_addr + word_offset, ~mask);
0703
0704 pb_addr = (mmTPC0_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS;
0705 word_offset = ((mmTPC0_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2;
0706 mask = 1 << ((mmTPC0_CFG_ARUSER & 0x7F) >> 2);
0707 mask |= 1 << ((mmTPC0_CFG_AWUSER & 0x7F) >> 2);
0708
0709 WREG32(pb_addr + word_offset, ~mask);
0710
0711 pb_addr = (mmTPC0_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS;
0712 word_offset = ((mmTPC0_CFG_FUNC_MBIST_CNTRL &
0713 PROT_BITS_OFFS) >> 7) << 2;
0714 mask = 1 << ((mmTPC0_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2);
0715 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_PAT & 0x7F) >> 2);
0716 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2);
0717 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2);
0718 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2);
0719 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2);
0720 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2);
0721 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2);
0722 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2);
0723 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2);
0724 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2);
0725 mask |= 1 << ((mmTPC0_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2);
0726
0727 WREG32(pb_addr + word_offset, ~mask);
0728
0729 pb_addr = (mmTPC0_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0730 word_offset = ((mmTPC0_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0731 mask = 1 << ((mmTPC0_QM_GLBL_CFG0 & 0x7F) >> 2);
0732 mask |= 1 << ((mmTPC0_QM_GLBL_CFG1 & 0x7F) >> 2);
0733 mask |= 1 << ((mmTPC0_QM_GLBL_PROT & 0x7F) >> 2);
0734 mask |= 1 << ((mmTPC0_QM_GLBL_ERR_CFG & 0x7F) >> 2);
0735 mask |= 1 << ((mmTPC0_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);
0736 mask |= 1 << ((mmTPC0_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);
0737 mask |= 1 << ((mmTPC0_QM_GLBL_ERR_WDATA & 0x7F) >> 2);
0738 mask |= 1 << ((mmTPC0_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);
0739 mask |= 1 << ((mmTPC0_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);
0740 mask |= 1 << ((mmTPC0_QM_GLBL_STS0 & 0x7F) >> 2);
0741 mask |= 1 << ((mmTPC0_QM_GLBL_STS1 & 0x7F) >> 2);
0742 mask |= 1 << ((mmTPC0_QM_PQ_BASE_LO & 0x7F) >> 2);
0743 mask |= 1 << ((mmTPC0_QM_PQ_BASE_HI & 0x7F) >> 2);
0744 mask |= 1 << ((mmTPC0_QM_PQ_SIZE & 0x7F) >> 2);
0745 mask |= 1 << ((mmTPC0_QM_PQ_PI & 0x7F) >> 2);
0746 mask |= 1 << ((mmTPC0_QM_PQ_CI & 0x7F) >> 2);
0747 mask |= 1 << ((mmTPC0_QM_PQ_CFG0 & 0x7F) >> 2);
0748 mask |= 1 << ((mmTPC0_QM_PQ_CFG1 & 0x7F) >> 2);
0749 mask |= 1 << ((mmTPC0_QM_PQ_ARUSER & 0x7F) >> 2);
0750
0751 WREG32(pb_addr + word_offset, ~mask);
0752
0753 pb_addr = (mmTPC0_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;
0754 word_offset = ((mmTPC0_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;
0755 mask = 1 << ((mmTPC0_QM_PQ_PUSH0 & 0x7F) >> 2);
0756 mask |= 1 << ((mmTPC0_QM_PQ_PUSH1 & 0x7F) >> 2);
0757 mask |= 1 << ((mmTPC0_QM_PQ_PUSH2 & 0x7F) >> 2);
0758 mask |= 1 << ((mmTPC0_QM_PQ_PUSH3 & 0x7F) >> 2);
0759 mask |= 1 << ((mmTPC0_QM_PQ_STS0 & 0x7F) >> 2);
0760 mask |= 1 << ((mmTPC0_QM_PQ_STS1 & 0x7F) >> 2);
0761 mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0762 mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0763 mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0764 mask |= 1 << ((mmTPC0_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0765 mask |= 1 << ((mmTPC0_QM_CQ_CFG0 & 0x7F) >> 2);
0766 mask |= 1 << ((mmTPC0_QM_CQ_CFG1 & 0x7F) >> 2);
0767 mask |= 1 << ((mmTPC0_QM_CQ_ARUSER & 0x7F) >> 2);
0768 mask |= 1 << ((mmTPC0_QM_CQ_PTR_LO & 0x7F) >> 2);
0769 mask |= 1 << ((mmTPC0_QM_CQ_PTR_HI & 0x7F) >> 2);
0770 mask |= 1 << ((mmTPC0_QM_CQ_TSIZE & 0x7F) >> 2);
0771 mask |= 1 << ((mmTPC0_QM_CQ_CTL & 0x7F) >> 2);
0772 mask |= 1 << ((mmTPC0_QM_CQ_PTR_LO_STS & 0x7F) >> 2);
0773 mask |= 1 << ((mmTPC0_QM_CQ_PTR_HI_STS & 0x7F) >> 2);
0774 mask |= 1 << ((mmTPC0_QM_CQ_TSIZE_STS & 0x7F) >> 2);
0775 mask |= 1 << ((mmTPC0_QM_CQ_CTL_STS & 0x7F) >> 2);
0776 mask |= 1 << ((mmTPC0_QM_CQ_STS0 & 0x7F) >> 2);
0777 mask |= 1 << ((mmTPC0_QM_CQ_STS1 & 0x7F) >> 2);
0778 mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0779 mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0780 mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0781 mask |= 1 << ((mmTPC0_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0782
0783 WREG32(pb_addr + word_offset, ~mask);
0784
0785 pb_addr = (mmTPC0_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;
0786 word_offset = ((mmTPC0_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;
0787 mask = 1 << ((mmTPC0_QM_CQ_IFIFO_CNT & 0x7F) >> 2);
0788 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);
0789 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);
0790 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);
0791 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);
0792 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);
0793 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);
0794 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);
0795 mask |= 1 << ((mmTPC0_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);
0796 mask |= 1 << ((mmTPC0_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);
0797 mask |= 1 << ((mmTPC0_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);
0798 mask |= 1 << ((mmTPC0_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);
0799 mask |= 1 << ((mmTPC0_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);
0800 mask |= 1 << ((mmTPC0_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);
0801 mask |= 1 << ((mmTPC0_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);
0802
0803 WREG32(pb_addr + word_offset, ~mask);
0804
0805 pb_addr = (mmTPC0_CMDQ_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0806 word_offset = ((mmTPC0_CMDQ_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0807 mask = 1 << ((mmTPC0_CMDQ_GLBL_CFG0 & 0x7F) >> 2);
0808 mask |= 1 << ((mmTPC0_CMDQ_GLBL_CFG1 & 0x7F) >> 2);
0809 mask |= 1 << ((mmTPC0_CMDQ_GLBL_PROT & 0x7F) >> 2);
0810 mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_CFG & 0x7F) >> 2);
0811 mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_ADDR_LO & 0x7F) >> 2);
0812 mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_ADDR_HI & 0x7F) >> 2);
0813 mask |= 1 << ((mmTPC0_CMDQ_GLBL_ERR_WDATA & 0x7F) >> 2);
0814 mask |= 1 << ((mmTPC0_CMDQ_GLBL_SECURE_PROPS & 0x7F) >> 2);
0815 mask |= 1 << ((mmTPC0_CMDQ_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);
0816 mask |= 1 << ((mmTPC0_CMDQ_GLBL_STS0 & 0x7F) >> 2);
0817 mask |= 1 << ((mmTPC0_CMDQ_GLBL_STS1 & 0x7F) >> 2);
0818
0819 WREG32(pb_addr + word_offset, ~mask);
0820
0821 pb_addr = (mmTPC0_CMDQ_CQ_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0822 word_offset = ((mmTPC0_CMDQ_CQ_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0823 mask = 1 << ((mmTPC0_CMDQ_CQ_CFG0 & 0x7F) >> 2);
0824 mask |= 1 << ((mmTPC0_CMDQ_CQ_CFG1 & 0x7F) >> 2);
0825 mask |= 1 << ((mmTPC0_CMDQ_CQ_ARUSER & 0x7F) >> 2);
0826 mask |= 1 << ((mmTPC0_CMDQ_CQ_PTR_LO_STS & 0x7F) >> 2);
0827 mask |= 1 << ((mmTPC0_CMDQ_CQ_PTR_HI_STS & 0x7F) >> 2);
0828 mask |= 1 << ((mmTPC0_CMDQ_CQ_TSIZE_STS & 0x7F) >> 2);
0829 mask |= 1 << ((mmTPC0_CMDQ_CQ_CTL_STS & 0x7F) >> 2);
0830 mask |= 1 << ((mmTPC0_CMDQ_CQ_STS0 & 0x7F) >> 2);
0831 mask |= 1 << ((mmTPC0_CMDQ_CQ_STS1 & 0x7F) >> 2);
0832 mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0833 mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0834 mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0835 mask |= 1 << ((mmTPC0_CMDQ_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0836
0837 WREG32(pb_addr + word_offset, ~mask);
0838
0839 pb_addr = (mmTPC0_CMDQ_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;
0840 word_offset = ((mmTPC0_CMDQ_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;
0841 mask = 1 << ((mmTPC0_CMDQ_CQ_IFIFO_CNT & 0x7F) >> 2);
0842 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);
0843 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);
0844 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);
0845 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);
0846 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);
0847 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);
0848 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);
0849 mask |= 1 << ((mmTPC0_CMDQ_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);
0850 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);
0851 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);
0852 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);
0853 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);
0854 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);
0855 mask |= 1 << ((mmTPC0_CMDQ_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);
0856 mask |= 1 << ((mmTPC0_CMDQ_CP_STS & 0x7F) >> 2);
0857 mask |= 1 << ((mmTPC0_CMDQ_CP_CURRENT_INST_LO & 0x7F) >> 2);
0858
0859 WREG32(pb_addr + word_offset, ~mask);
0860
0861 pb_addr = (mmTPC0_CMDQ_CP_CURRENT_INST_HI & ~0xFFF) + PROT_BITS_OFFS;
0862 word_offset = ((mmTPC0_CMDQ_CP_CURRENT_INST_HI & PROT_BITS_OFFS) >> 7)
0863 << 2;
0864 mask = 1 << ((mmTPC0_CMDQ_CP_CURRENT_INST_HI & 0x7F) >> 2);
0865 mask |= 1 << ((mmTPC0_CMDQ_CP_BARRIER_CFG & 0x7F) >> 2);
0866 mask |= 1 << ((mmTPC0_CMDQ_CP_DBG_0 & 0x7F) >> 2);
0867 mask |= 1 << ((mmTPC0_CMDQ_CQ_BUF_ADDR & 0x7F) >> 2);
0868 mask |= 1 << ((mmTPC0_CMDQ_CQ_BUF_RDATA & 0x7F) >> 2);
0869
0870 WREG32(pb_addr + word_offset, ~mask);
0871
0872 goya_pb_set_block(hdev, mmTPC1_RTR_BASE);
0873 goya_pb_set_block(hdev, mmTPC1_RD_REGULATOR_BASE);
0874 goya_pb_set_block(hdev, mmTPC1_WR_REGULATOR_BASE);
0875
0876 pb_addr = (mmTPC1_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;
0877 word_offset = ((mmTPC1_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;
0878
0879 mask = 1 << ((mmTPC1_CFG_SEMAPHORE & 0x7F) >> 2);
0880 mask |= 1 << ((mmTPC1_CFG_VFLAGS & 0x7F) >> 2);
0881 mask |= 1 << ((mmTPC1_CFG_SFLAGS & 0x7F) >> 2);
0882 mask |= 1 << ((mmTPC1_CFG_STATUS & 0x7F) >> 2);
0883
0884 WREG32(pb_addr + word_offset, ~mask);
0885
0886 pb_addr = (mmTPC1_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;
0887 word_offset = ((mmTPC1_CFG_CFG_BASE_ADDRESS_HIGH &
0888 PROT_BITS_OFFS) >> 7) << 2;
0889 mask = 1 << ((mmTPC1_CFG_CFG_BASE_ADDRESS_HIGH & 0x7F) >> 2);
0890 mask |= 1 << ((mmTPC1_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);
0891 mask |= 1 << ((mmTPC1_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);
0892 mask |= 1 << ((mmTPC1_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);
0893 mask |= 1 << ((mmTPC1_CFG_TPC_STALL & 0x7F) >> 2);
0894 mask |= 1 << ((mmTPC1_CFG_MSS_CONFIG & 0x7F) >> 2);
0895 mask |= 1 << ((mmTPC1_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);
0896 mask |= 1 << ((mmTPC1_CFG_TPC_INTR_MASK & 0x7F) >> 2);
0897
0898 WREG32(pb_addr + word_offset, ~mask);
0899
0900 pb_addr = (mmTPC1_CFG_ARUSER & ~0xFFF) + PROT_BITS_OFFS;
0901 word_offset = ((mmTPC1_CFG_ARUSER & PROT_BITS_OFFS) >> 7) << 2;
0902 mask = 1 << ((mmTPC1_CFG_ARUSER & 0x7F) >> 2);
0903 mask |= 1 << ((mmTPC1_CFG_AWUSER & 0x7F) >> 2);
0904
0905 WREG32(pb_addr + word_offset, ~mask);
0906
0907 pb_addr = (mmTPC1_CFG_FUNC_MBIST_CNTRL & ~0xFFF) + PROT_BITS_OFFS;
0908 word_offset = ((mmTPC1_CFG_FUNC_MBIST_CNTRL & PROT_BITS_OFFS) >> 7)
0909 << 2;
0910 mask = 1 << ((mmTPC1_CFG_FUNC_MBIST_CNTRL & 0x7F) >> 2);
0911 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_PAT & 0x7F) >> 2);
0912 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_0 & 0x7F) >> 2);
0913 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_1 & 0x7F) >> 2);
0914 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_2 & 0x7F) >> 2);
0915 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_3 & 0x7F) >> 2);
0916 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_4 & 0x7F) >> 2);
0917 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_5 & 0x7F) >> 2);
0918 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_6 & 0x7F) >> 2);
0919 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_7 & 0x7F) >> 2);
0920 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_8 & 0x7F) >> 2);
0921 mask |= 1 << ((mmTPC1_CFG_FUNC_MBIST_MEM_9 & 0x7F) >> 2);
0922
0923 WREG32(pb_addr + word_offset, ~mask);
0924
0925 pb_addr = (mmTPC1_QM_GLBL_CFG0 & ~0xFFF) + PROT_BITS_OFFS;
0926 word_offset = ((mmTPC1_QM_GLBL_CFG0 & PROT_BITS_OFFS) >> 7) << 2;
0927 mask = 1 << ((mmTPC1_QM_GLBL_CFG0 & 0x7F) >> 2);
0928 mask |= 1 << ((mmTPC1_QM_GLBL_CFG1 & 0x7F) >> 2);
0929 mask |= 1 << ((mmTPC1_QM_GLBL_PROT & 0x7F) >> 2);
0930 mask |= 1 << ((mmTPC1_QM_GLBL_ERR_CFG & 0x7F) >> 2);
0931 mask |= 1 << ((mmTPC1_QM_GLBL_ERR_ADDR_LO & 0x7F) >> 2);
0932 mask |= 1 << ((mmTPC1_QM_GLBL_ERR_ADDR_HI & 0x7F) >> 2);
0933 mask |= 1 << ((mmTPC1_QM_GLBL_ERR_WDATA & 0x7F) >> 2);
0934 mask |= 1 << ((mmTPC1_QM_GLBL_SECURE_PROPS & 0x7F) >> 2);
0935 mask |= 1 << ((mmTPC1_QM_GLBL_NON_SECURE_PROPS & 0x7F) >> 2);
0936 mask |= 1 << ((mmTPC1_QM_GLBL_STS0 & 0x7F) >> 2);
0937 mask |= 1 << ((mmTPC1_QM_GLBL_STS1 & 0x7F) >> 2);
0938 mask |= 1 << ((mmTPC1_QM_PQ_BASE_LO & 0x7F) >> 2);
0939 mask |= 1 << ((mmTPC1_QM_PQ_BASE_HI & 0x7F) >> 2);
0940 mask |= 1 << ((mmTPC1_QM_PQ_SIZE & 0x7F) >> 2);
0941 mask |= 1 << ((mmTPC1_QM_PQ_PI & 0x7F) >> 2);
0942 mask |= 1 << ((mmTPC1_QM_PQ_CI & 0x7F) >> 2);
0943 mask |= 1 << ((mmTPC1_QM_PQ_CFG0 & 0x7F) >> 2);
0944 mask |= 1 << ((mmTPC1_QM_PQ_CFG1 & 0x7F) >> 2);
0945 mask |= 1 << ((mmTPC1_QM_PQ_ARUSER & 0x7F) >> 2);
0946
0947 WREG32(pb_addr + word_offset, ~mask);
0948
0949 pb_addr = (mmTPC1_QM_PQ_PUSH0 & ~0xFFF) + PROT_BITS_OFFS;
0950 word_offset = ((mmTPC1_QM_PQ_PUSH0 & PROT_BITS_OFFS) >> 7) << 2;
0951 mask = 1 << ((mmTPC1_QM_PQ_PUSH0 & 0x7F) >> 2);
0952 mask |= 1 << ((mmTPC1_QM_PQ_PUSH1 & 0x7F) >> 2);
0953 mask |= 1 << ((mmTPC1_QM_PQ_PUSH2 & 0x7F) >> 2);
0954 mask |= 1 << ((mmTPC1_QM_PQ_PUSH3 & 0x7F) >> 2);
0955 mask |= 1 << ((mmTPC1_QM_PQ_STS0 & 0x7F) >> 2);
0956 mask |= 1 << ((mmTPC1_QM_PQ_STS1 & 0x7F) >> 2);
0957 mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0958 mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0959 mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0960 mask |= 1 << ((mmTPC1_QM_PQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0961 mask |= 1 << ((mmTPC1_QM_CQ_CFG0 & 0x7F) >> 2);
0962 mask |= 1 << ((mmTPC1_QM_CQ_CFG1 & 0x7F) >> 2);
0963 mask |= 1 << ((mmTPC1_QM_CQ_ARUSER & 0x7F) >> 2);
0964 mask |= 1 << ((mmTPC1_QM_CQ_PTR_LO & 0x7F) >> 2);
0965 mask |= 1 << ((mmTPC1_QM_CQ_PTR_HI & 0x7F) >> 2);
0966 mask |= 1 << ((mmTPC1_QM_CQ_TSIZE & 0x7F) >> 2);
0967 mask |= 1 << ((mmTPC1_QM_CQ_CTL & 0x7F) >> 2);
0968 mask |= 1 << ((mmTPC1_QM_CQ_PTR_LO_STS & 0x7F) >> 2);
0969 mask |= 1 << ((mmTPC1_QM_CQ_PTR_HI_STS & 0x7F) >> 2);
0970 mask |= 1 << ((mmTPC1_QM_CQ_TSIZE_STS & 0x7F) >> 2);
0971 mask |= 1 << ((mmTPC1_QM_CQ_CTL_STS & 0x7F) >> 2);
0972 mask |= 1 << ((mmTPC1_QM_CQ_STS0 & 0x7F) >> 2);
0973 mask |= 1 << ((mmTPC1_QM_CQ_STS1 & 0x7F) >> 2);
0974 mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_EN & 0x7F) >> 2);
0975 mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_RST_TOKEN & 0x7F) >> 2);
0976 mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_SAT & 0x7F) >> 2);
0977 mask |= 1 << ((mmTPC1_QM_CQ_RD_RATE_LIM_TOUT & 0x7F) >> 2);
0978
0979 WREG32(pb_addr + word_offset, ~mask);
0980
0981 pb_addr = (mmTPC1_QM_CQ_IFIFO_CNT & ~0xFFF) + PROT_BITS_OFFS;
0982 word_offset = ((mmTPC1_QM_CQ_IFIFO_CNT & PROT_BITS_OFFS) >> 7) << 2;
0983 mask = 1 << ((mmTPC1_QM_CQ_IFIFO_CNT & 0x7F) >> 2);
0984 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE0_ADDR_LO & 0x7F) >> 2);
0985 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE0_ADDR_HI & 0x7F) >> 2);
0986 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE1_ADDR_LO & 0x7F) >> 2);
0987 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE1_ADDR_HI & 0x7F) >> 2);
0988 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE2_ADDR_LO & 0x7F) >> 2);
0989 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE2_ADDR_HI & 0x7F) >> 2);
0990 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE3_ADDR_LO & 0x7F) >> 2);
0991 mask |= 1 << ((mmTPC1_QM_CP_MSG_BASE3_ADDR_HI & 0x7F) >> 2);
0992 mask |= 1 << ((mmTPC1_QM_CP_LDMA_TSIZE_OFFSET & 0x7F) >> 2);
0993 mask |= 1 << ((mmTPC1_QM_CP_LDMA_SRC_BASE_LO_OFFSET & 0x7F) >> 2);
0994 mask |= 1 << ((mmTPC1_QM_CP_LDMA_SRC_BASE_HI_OFFSET & 0x7F) >> 2);
0995 mask |= 1 << ((mmTPC1_QM_CP_LDMA_DST_BASE_LO_OFFSET & 0x7F) >> 2);
0996 mask |= 1 << ((mmTPC1_QM_CP_LDMA_DST_BASE_HI_OFFSET & 0x7F) >> 2);
0997 mask |= 1 << ((mmTPC1_QM_CP_LDMA_COMMIT_OFFSET & 0x7F) >> 2);
0998
0999 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
2247
2248
2249
2250
2251
2252
2253
2254 static void goya_init_protection_bits(struct hl_device *hdev)
2255 {
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
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
2373
2374
2375
2376
2377
2378
2379
2380 void 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
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
2444
2445
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
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
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
2530
2531
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
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
2748
2749
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
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
2796
2797
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
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
2844
2845
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
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
2892
2893
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
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
2940
2941
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
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
2988
2989
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
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
3036
3037
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
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
3084
3085
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
3124 void goya_ack_protection_bits_errors(struct hl_device *hdev)
3125 {
3126
3127 }