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