xref: /OK3568_Linux_fs/kernel/drivers/misc/habanalabs/include/gaudi/gaudi_masks.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun  *
3*4882a593Smuzhiyun  * Copyright 2016-2020 HabanaLabs, Ltd.
4*4882a593Smuzhiyun  * All Rights Reserved.
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef GAUDI_MASKS_H_
9*4882a593Smuzhiyun #define GAUDI_MASKS_H_
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #include "asic_reg/gaudi_regs.h"
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun /* Useful masks for bits in various registers */
14*4882a593Smuzhiyun #define PCI_DMA_QMAN_ENABLE		(\
15*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \
16*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_CFG0_CQF_EN_MASK, 0xF)) | \
17*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_CFG0_CP_EN_MASK, 0xF)))
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #define QMAN_EXTERNAL_MAKE_TRUSTED	(\
20*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_PROT_PQF_MASK, 0xF)) | \
21*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_PROT_CQF_MASK, 0xF)) | \
22*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_PROT_CP_MASK, 0xF)) | \
23*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_PROT_ERR_MASK, 0x1)))
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun #define QMAN_INTERNAL_MAKE_TRUSTED	(\
26*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_PROT_PQF_MASK, 0xF)) | \
27*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_PROT_ERR_MASK, 0x1)))
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun #define HBM_DMA_QMAN_ENABLE		(\
30*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \
31*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_CFG0_CQF_EN_MASK, 0x1F)) | \
32*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_CFG0_CP_EN_MASK, 0x1F)))
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun #define QMAN_MME_ENABLE		(\
35*4882a593Smuzhiyun 	(FIELD_PREP(MME0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \
36*4882a593Smuzhiyun 	(FIELD_PREP(MME0_QM_GLBL_CFG0_CQF_EN_MASK, 0x1F)) | \
37*4882a593Smuzhiyun 	(FIELD_PREP(MME0_QM_GLBL_CFG0_CP_EN_MASK, 0x1F)))
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun #define QMAN_TPC_ENABLE		(\
40*4882a593Smuzhiyun 	(FIELD_PREP(TPC0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \
41*4882a593Smuzhiyun 	(FIELD_PREP(TPC0_QM_GLBL_CFG0_CQF_EN_MASK, 0x1F)) | \
42*4882a593Smuzhiyun 	(FIELD_PREP(TPC0_QM_GLBL_CFG0_CP_EN_MASK, 0x1F)))
43*4882a593Smuzhiyun 
44*4882a593Smuzhiyun #define QMAN_UPPER_CP_CGM_PWR_GATE_EN	(\
45*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_CGM_CFG_IDLE_TH_MASK, 0x20)) | \
46*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_CGM_CFG_G2F_TH_MASK, 0xA)) | \
47*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_CGM_CFG_CP_IDLE_MASK_MASK, 0x10)) | \
48*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_CGM_CFG_EN_MASK, 0x1)))
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun #define QMAN_COMMON_CP_CGM_PWR_GATE_EN	(\
51*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_CGM_CFG_IDLE_TH_MASK, 0x20)) | \
52*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_CGM_CFG_G2F_TH_MASK, 0xA)) | \
53*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_CGM_CFG_CP_IDLE_MASK_MASK, 0xF)) | \
54*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_CGM_CFG_EN_MASK, 0x1)))
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun #define PCI_DMA_QMAN_GLBL_ERR_CFG_MSG_EN_MASK	(\
57*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \
58*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0xF)) | \
59*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0xF)))
60*4882a593Smuzhiyun 
61*4882a593Smuzhiyun #define PCI_DMA_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK	(\
62*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \
63*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0xF)) | \
64*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0xF)))
65*4882a593Smuzhiyun 
66*4882a593Smuzhiyun #define HBM_DMA_QMAN_GLBL_ERR_CFG_MSG_EN_MASK	(\
67*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \
68*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0x1F)) | \
69*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0x1F)))
70*4882a593Smuzhiyun 
71*4882a593Smuzhiyun #define HBM_DMA_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK	(\
72*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \
73*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0x1F)) | \
74*4882a593Smuzhiyun 	(FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0x1F)))
75*4882a593Smuzhiyun 
76*4882a593Smuzhiyun #define TPC_QMAN_GLBL_ERR_CFG_MSG_EN_MASK	(\
77*4882a593Smuzhiyun 	(FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \
78*4882a593Smuzhiyun 	(FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0x1F)) | \
79*4882a593Smuzhiyun 	(FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0x1F)))
80*4882a593Smuzhiyun 
81*4882a593Smuzhiyun #define TPC_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK	(\
82*4882a593Smuzhiyun 	(FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \
83*4882a593Smuzhiyun 	(FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0x1F)) | \
84*4882a593Smuzhiyun 	(FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0x1F)))
85*4882a593Smuzhiyun 
86*4882a593Smuzhiyun #define MME_QMAN_GLBL_ERR_CFG_MSG_EN_MASK	(\
87*4882a593Smuzhiyun 	(FIELD_PREP(MME0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \
88*4882a593Smuzhiyun 	(FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0x1F)) | \
89*4882a593Smuzhiyun 	(FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0x1F)))
90*4882a593Smuzhiyun 
91*4882a593Smuzhiyun #define MME_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK	(\
92*4882a593Smuzhiyun 	(FIELD_PREP(MME0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \
93*4882a593Smuzhiyun 	(FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0x1F)) | \
94*4882a593Smuzhiyun 	(FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0x1F)))
95*4882a593Smuzhiyun 
96*4882a593Smuzhiyun #define QMAN_CGM1_PWR_GATE_EN	(FIELD_PREP(DMA0_QM_CGM_CFG1_MASK_TH_MASK, 0xA))
97*4882a593Smuzhiyun 
98*4882a593Smuzhiyun /* RESET registers configuration */
99*4882a593Smuzhiyun #define CFG_RST_L_PSOC_MASK		BIT_MASK(0)
100*4882a593Smuzhiyun #define CFG_RST_L_PCIE_MASK		BIT_MASK(1)
101*4882a593Smuzhiyun #define CFG_RST_L_PCIE_IF_MASK		BIT_MASK(2)
102*4882a593Smuzhiyun #define CFG_RST_L_HBM_S_PLL_MASK	BIT_MASK(3)
103*4882a593Smuzhiyun #define CFG_RST_L_TPC_S_PLL_MASK	BIT_MASK(4)
104*4882a593Smuzhiyun #define CFG_RST_L_MME_S_PLL_MASK	BIT_MASK(5)
105*4882a593Smuzhiyun #define CFG_RST_L_CPU_PLL_MASK		BIT_MASK(6)
106*4882a593Smuzhiyun #define CFG_RST_L_PCIE_PLL_MASK		BIT_MASK(7)
107*4882a593Smuzhiyun #define CFG_RST_L_NIC_S_PLL_MASK	BIT_MASK(8)
108*4882a593Smuzhiyun #define CFG_RST_L_HBM_N_PLL_MASK	BIT_MASK(9)
109*4882a593Smuzhiyun #define CFG_RST_L_TPC_N_PLL_MASK	BIT_MASK(10)
110*4882a593Smuzhiyun #define CFG_RST_L_MME_N_PLL_MASK	BIT_MASK(11)
111*4882a593Smuzhiyun #define CFG_RST_L_NIC_N_PLL_MASK	BIT_MASK(12)
112*4882a593Smuzhiyun #define CFG_RST_L_DMA_W_PLL_MASK	BIT_MASK(13)
113*4882a593Smuzhiyun #define CFG_RST_L_SIF_W_PLL_MASK	BIT_MASK(14)
114*4882a593Smuzhiyun #define CFG_RST_L_MESH_W_PLL_MASK	BIT_MASK(15)
115*4882a593Smuzhiyun #define CFG_RST_L_SRAM_W_PLL_MASK	BIT_MASK(16)
116*4882a593Smuzhiyun #define CFG_RST_L_DMA_E_PLL_MASK	BIT_MASK(17)
117*4882a593Smuzhiyun #define CFG_RST_L_SIF_E_PLL_MASK	BIT_MASK(18)
118*4882a593Smuzhiyun #define CFG_RST_L_MESH_E_PLL_MASK	BIT_MASK(19)
119*4882a593Smuzhiyun #define CFG_RST_L_SRAM_E_PLL_MASK	BIT_MASK(20)
120*4882a593Smuzhiyun 
121*4882a593Smuzhiyun #define CFG_RST_L_IF_1_MASK		BIT_MASK(21)
122*4882a593Smuzhiyun #define CFG_RST_L_IF_0_MASK		BIT_MASK(22)
123*4882a593Smuzhiyun #define CFG_RST_L_IF_2_MASK		BIT_MASK(23)
124*4882a593Smuzhiyun #define CFG_RST_L_IF_3_MASK		BIT_MASK(24)
125*4882a593Smuzhiyun #define CFG_RST_L_IF_MASK		GENMASK(24, 21)
126*4882a593Smuzhiyun 
127*4882a593Smuzhiyun #define CFG_RST_L_TPC_0_MASK		BIT_MASK(25)
128*4882a593Smuzhiyun #define CFG_RST_L_TPC_1_MASK		BIT_MASK(26)
129*4882a593Smuzhiyun #define CFG_RST_L_TPC_2_MASK		BIT_MASK(27)
130*4882a593Smuzhiyun #define CFG_RST_L_TPC_3_MASK		BIT_MASK(28)
131*4882a593Smuzhiyun #define CFG_RST_L_TPC_4_MASK		BIT_MASK(29)
132*4882a593Smuzhiyun #define CFG_RST_L_TPC_5_MASK		BIT_MASK(30)
133*4882a593Smuzhiyun #define CFG_RST_L_TPC_6_MASK		BIT_MASK(31)
134*4882a593Smuzhiyun #define CFG_RST_L_TPC_MASK		GENMASK(31, 25)
135*4882a593Smuzhiyun 
136*4882a593Smuzhiyun #define CFG_RST_H_TPC_7_MASK		BIT_MASK(0)
137*4882a593Smuzhiyun 
138*4882a593Smuzhiyun #define CFG_RST_H_MME_0_MASK		BIT_MASK(1)
139*4882a593Smuzhiyun #define CFG_RST_H_MME_1_MASK		BIT_MASK(2)
140*4882a593Smuzhiyun #define CFG_RST_H_MME_2_MASK		BIT_MASK(3)
141*4882a593Smuzhiyun #define CFG_RST_H_MME_3_MASK		BIT_MASK(4)
142*4882a593Smuzhiyun #define CFG_RST_H_MME_MASK		GENMASK(4, 1)
143*4882a593Smuzhiyun 
144*4882a593Smuzhiyun #define CFG_RST_H_HBM_0_MASK		BIT_MASK(5)
145*4882a593Smuzhiyun #define CFG_RST_H_HBM_1_MASK		BIT_MASK(6)
146*4882a593Smuzhiyun #define CFG_RST_H_HBM_2_MASK		BIT_MASK(7)
147*4882a593Smuzhiyun #define CFG_RST_H_HBM_3_MASK		BIT_MASK(8)
148*4882a593Smuzhiyun #define CFG_RST_H_HBM_MASK		GENMASK(8, 5)
149*4882a593Smuzhiyun 
150*4882a593Smuzhiyun #define CFG_RST_H_NIC_0_MASK		BIT_MASK(9)
151*4882a593Smuzhiyun #define CFG_RST_H_NIC_1_MASK		BIT_MASK(10)
152*4882a593Smuzhiyun #define CFG_RST_H_NIC_2_MASK		BIT_MASK(11)
153*4882a593Smuzhiyun #define CFG_RST_H_NIC_3_MASK		BIT_MASK(12)
154*4882a593Smuzhiyun #define CFG_RST_H_NIC_4_MASK		BIT_MASK(13)
155*4882a593Smuzhiyun #define CFG_RST_H_NIC_MASK		GENMASK(13, 9)
156*4882a593Smuzhiyun 
157*4882a593Smuzhiyun #define CFG_RST_H_SM_0_MASK		BIT_MASK(14)
158*4882a593Smuzhiyun #define CFG_RST_H_SM_1_MASK		BIT_MASK(15)
159*4882a593Smuzhiyun #define CFG_RST_H_SM_2_MASK		BIT_MASK(16)
160*4882a593Smuzhiyun #define CFG_RST_H_SM_3_MASK		BIT_MASK(17)
161*4882a593Smuzhiyun #define CFG_RST_H_SM_MASK		GENMASK(17, 14)
162*4882a593Smuzhiyun 
163*4882a593Smuzhiyun #define CFG_RST_H_DMA_0_MASK		BIT_MASK(18)
164*4882a593Smuzhiyun #define CFG_RST_H_DMA_1_MASK		BIT_MASK(19)
165*4882a593Smuzhiyun #define CFG_RST_H_DMA_MASK		GENMASK(19, 18)
166*4882a593Smuzhiyun 
167*4882a593Smuzhiyun #define CFG_RST_H_CPU_MASK		BIT_MASK(20)
168*4882a593Smuzhiyun #define CFG_RST_H_MMU_MASK		BIT_MASK(21)
169*4882a593Smuzhiyun 
170*4882a593Smuzhiyun #define UNIT_RST_L_PSOC_SHIFT		0
171*4882a593Smuzhiyun #define UNIT_RST_L_PCIE_SHIFT		1
172*4882a593Smuzhiyun #define UNIT_RST_L_PCIE_IF_SHIFT	2
173*4882a593Smuzhiyun #define UNIT_RST_L_HBM_S_PLL_SHIFT	3
174*4882a593Smuzhiyun #define UNIT_RST_L_TPC_S_PLL_SHIFT	4
175*4882a593Smuzhiyun #define UNIT_RST_L_MME_S_PLL_SHIFT	5
176*4882a593Smuzhiyun #define UNIT_RST_L_CPU_PLL_SHIFT	6
177*4882a593Smuzhiyun #define UNIT_RST_L_PCIE_PLL_SHIFT	7
178*4882a593Smuzhiyun #define UNIT_RST_L_NIC_S_PLL_SHIFT	8
179*4882a593Smuzhiyun #define UNIT_RST_L_HBM_N_PLL_SHIFT	9
180*4882a593Smuzhiyun #define UNIT_RST_L_TPC_N_PLL_SHIFT	10
181*4882a593Smuzhiyun #define UNIT_RST_L_MME_N_PLL_SHIFT	11
182*4882a593Smuzhiyun #define UNIT_RST_L_NIC_N_PLL_SHIFT	12
183*4882a593Smuzhiyun #define UNIT_RST_L_DMA_W_PLL_SHIFT	13
184*4882a593Smuzhiyun #define UNIT_RST_L_SIF_W_PLL_SHIFT	14
185*4882a593Smuzhiyun #define UNIT_RST_L_MESH_W_PLL_SHIFT	15
186*4882a593Smuzhiyun #define UNIT_RST_L_SRAM_W_PLL_SHIFT	16
187*4882a593Smuzhiyun #define UNIT_RST_L_DMA_E_PLL_SHIFT	17
188*4882a593Smuzhiyun #define UNIT_RST_L_SIF_E_PLL_SHIFT	18
189*4882a593Smuzhiyun #define UNIT_RST_L_MESH_E_PLL_SHIFT	19
190*4882a593Smuzhiyun #define UNIT_RST_L_SRAM_E_PLL_SHIFT	20
191*4882a593Smuzhiyun #define UNIT_RST_L_TPC_0_SHIFT		21
192*4882a593Smuzhiyun #define UNIT_RST_L_TPC_1_SHIFT		22
193*4882a593Smuzhiyun #define UNIT_RST_L_TPC_2_SHIFT		23
194*4882a593Smuzhiyun #define UNIT_RST_L_TPC_3_SHIFT		24
195*4882a593Smuzhiyun #define UNIT_RST_L_TPC_4_SHIFT		25
196*4882a593Smuzhiyun #define UNIT_RST_L_TPC_5_SHIFT		26
197*4882a593Smuzhiyun #define UNIT_RST_L_TPC_6_SHIFT		27
198*4882a593Smuzhiyun #define UNIT_RST_L_TPC_7_SHIFT		28
199*4882a593Smuzhiyun #define UNIT_RST_L_MME_0_SHIFT		29
200*4882a593Smuzhiyun #define UNIT_RST_L_MME_1_SHIFT		30
201*4882a593Smuzhiyun #define UNIT_RST_L_MME_2_SHIFT		31
202*4882a593Smuzhiyun 
203*4882a593Smuzhiyun #define UNIT_RST_H_MME_3_SHIFT		0
204*4882a593Smuzhiyun #define UNIT_RST_H_HBM_0_SHIFT		1
205*4882a593Smuzhiyun #define UNIT_RST_H_HBM_1_SHIFT		2
206*4882a593Smuzhiyun #define UNIT_RST_H_HBM_2_SHIFT		3
207*4882a593Smuzhiyun #define UNIT_RST_H_HBM_3_SHIFT		4
208*4882a593Smuzhiyun #define UNIT_RST_H_NIC_0_SHIFT		5
209*4882a593Smuzhiyun #define UNIT_RST_H_NIC_1_SHIFT		6
210*4882a593Smuzhiyun #define UNIT_RST_H_NIC_2_SHIFT		7
211*4882a593Smuzhiyun #define UNIT_RST_H_NIC_3_SHIFT		8
212*4882a593Smuzhiyun #define UNIT_RST_H_NIC_4_SHIFT		9
213*4882a593Smuzhiyun #define UNIT_RST_H_SM_0_SHIFT		10
214*4882a593Smuzhiyun #define UNIT_RST_H_SM_1_SHIFT		11
215*4882a593Smuzhiyun #define UNIT_RST_H_SM_2_SHIFT		12
216*4882a593Smuzhiyun #define UNIT_RST_H_SM_3_SHIFT		13
217*4882a593Smuzhiyun #define UNIT_RST_H_IF_0_SHIFT		14
218*4882a593Smuzhiyun #define UNIT_RST_H_IF_1_SHIFT		15
219*4882a593Smuzhiyun #define UNIT_RST_H_IF_2_SHIFT		16
220*4882a593Smuzhiyun #define UNIT_RST_H_IF_3_SHIFT		17
221*4882a593Smuzhiyun #define UNIT_RST_H_DMA_0_SHIFT		18
222*4882a593Smuzhiyun #define UNIT_RST_H_DMA_1_SHIFT		19
223*4882a593Smuzhiyun #define UNIT_RST_H_CPU_SHIFT		20
224*4882a593Smuzhiyun #define UNIT_RST_H_MMU_SHIFT		21
225*4882a593Smuzhiyun 
226*4882a593Smuzhiyun #define UNIT_RST_H_HBM_MASK		((1 << UNIT_RST_H_HBM_0_SHIFT) | \
227*4882a593Smuzhiyun 					(1 << UNIT_RST_H_HBM_1_SHIFT) | \
228*4882a593Smuzhiyun 					(1 << UNIT_RST_H_HBM_2_SHIFT) | \
229*4882a593Smuzhiyun 					(1 << UNIT_RST_H_HBM_3_SHIFT))
230*4882a593Smuzhiyun 
231*4882a593Smuzhiyun #define UNIT_RST_H_NIC_MASK		((1 << UNIT_RST_H_NIC_0_SHIFT) | \
232*4882a593Smuzhiyun 					(1 << UNIT_RST_H_NIC_1_SHIFT) | \
233*4882a593Smuzhiyun 					(1 << UNIT_RST_H_NIC_2_SHIFT) | \
234*4882a593Smuzhiyun 					(1 << UNIT_RST_H_NIC_3_SHIFT) | \
235*4882a593Smuzhiyun 					(1 << UNIT_RST_H_NIC_4_SHIFT))
236*4882a593Smuzhiyun 
237*4882a593Smuzhiyun #define UNIT_RST_H_SM_MASK		((1 << UNIT_RST_H_SM_0_SHIFT) | \
238*4882a593Smuzhiyun 					(1 << UNIT_RST_H_SM_1_SHIFT) | \
239*4882a593Smuzhiyun 					(1 << UNIT_RST_H_SM_2_SHIFT) | \
240*4882a593Smuzhiyun 					(1 << UNIT_RST_H_SM_3_SHIFT))
241*4882a593Smuzhiyun 
242*4882a593Smuzhiyun #define UNIT_RST_H_MME_MASK		((1 << UNIT_RST_H_MME_0_SHIFT) | \
243*4882a593Smuzhiyun 					(1 << UNIT_RST_H_MME_1_SHIFT) | \
244*4882a593Smuzhiyun 					(1 << UNIT_RST_H_MME_2_SHIFT))
245*4882a593Smuzhiyun 
246*4882a593Smuzhiyun #define UNIT_RST_L_MME_MASK		(1 << UNIT_RST_L_MME_3_SHIFT)
247*4882a593Smuzhiyun 
248*4882a593Smuzhiyun #define UNIT_RST_L_IF_MASK		((1 << UNIT_RST_L_IF_0_SHIFT) | \
249*4882a593Smuzhiyun 					(1 << UNIT_RST_L_IF_1_SHIFT) | \
250*4882a593Smuzhiyun 					(1 << UNIT_RST_L_IF_2_SHIFT) | \
251*4882a593Smuzhiyun 					(1 << UNIT_RST_L_IF_3_SHIFT))
252*4882a593Smuzhiyun 
253*4882a593Smuzhiyun #define UNIT_RST_L_TPC_MASK		((1 << UNIT_RST_L_TPC_0_SHIFT) | \
254*4882a593Smuzhiyun 					(1 << UNIT_RST_L_TPC_1_SHIFT) | \
255*4882a593Smuzhiyun 					(1 << UNIT_RST_L_TPC_2_SHIFT) | \
256*4882a593Smuzhiyun 					(1 << UNIT_RST_L_TPC_3_SHIFT) | \
257*4882a593Smuzhiyun 					(1 << UNIT_RST_L_TPC_4_SHIFT) | \
258*4882a593Smuzhiyun 					(1 << UNIT_RST_L_TPC_5_SHIFT) | \
259*4882a593Smuzhiyun 					(1 << UNIT_RST_L_TPC_6_SHIFT) | \
260*4882a593Smuzhiyun 					(1 << UNIT_RST_L_TPC_7_SHIFT))
261*4882a593Smuzhiyun 
262*4882a593Smuzhiyun /* CPU_CA53_CFG_ARM_RST_CONTROL */
263*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_NCPUPORESET_SHIFT               0
264*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_NCPUPORESET_MASK                0x3
265*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_NCORERESET_SHIFT                4
266*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_NCORERESET_MASK                 0x30
267*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_NL2RESET_SHIFT                  8
268*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_NL2RESET_MASK                   0x100
269*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_NPRESETDBG_SHIFT                12
270*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_NPRESETDBG_MASK                 0x1000
271*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT               16
272*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_MASK                0x10000
273*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_WARMRSTREQ_SHIFT                20
274*4882a593Smuzhiyun #define CPU_CA53_CFG_ARM_RST_CONTROL_WARMRSTREQ_MASK                 0x300000
275*4882a593Smuzhiyun 
276*4882a593Smuzhiyun #define CPU_RESET_ASSERT	(\
277*4882a593Smuzhiyun 			1 << CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT)
278*4882a593Smuzhiyun 
279*4882a593Smuzhiyun #define CPU_RESET_CORE0_DEASSERT	(\
280*4882a593Smuzhiyun 			1 << CPU_CA53_CFG_ARM_RST_CONTROL_NCPUPORESET_SHIFT |\
281*4882a593Smuzhiyun 			1 << CPU_CA53_CFG_ARM_RST_CONTROL_NCORERESET_SHIFT |\
282*4882a593Smuzhiyun 			1 << CPU_CA53_CFG_ARM_RST_CONTROL_NL2RESET_SHIFT |\
283*4882a593Smuzhiyun 			1 << CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT)
284*4882a593Smuzhiyun 
285*4882a593Smuzhiyun /* QM_IDLE_MASK is valid for all engines QM idle check */
286*4882a593Smuzhiyun #define QM_IDLE_MASK	(DMA0_QM_GLBL_STS0_PQF_IDLE_MASK | \
287*4882a593Smuzhiyun 			DMA0_QM_GLBL_STS0_CQF_IDLE_MASK | \
288*4882a593Smuzhiyun 			DMA0_QM_GLBL_STS0_CP_IDLE_MASK)
289*4882a593Smuzhiyun 
290*4882a593Smuzhiyun /* CGM_IDLE_MASK is valid for all engines CGM idle check */
291*4882a593Smuzhiyun #define CGM_IDLE_MASK	DMA0_QM_CGM_STS_AGENT_IDLE_MASK
292*4882a593Smuzhiyun 
293*4882a593Smuzhiyun #define TPC_IDLE_MASK	((1 << TPC0_CFG_STATUS_SCALAR_PIPE_EMPTY_SHIFT) | \
294*4882a593Smuzhiyun 			(1 << TPC0_CFG_STATUS_VECTOR_PIPE_EMPTY_SHIFT) | \
295*4882a593Smuzhiyun 			(1 << TPC0_CFG_STATUS_IQ_EMPTY_SHIFT) | \
296*4882a593Smuzhiyun 			(1 << TPC0_CFG_STATUS_SB_EMPTY_SHIFT) | \
297*4882a593Smuzhiyun 			(1 << TPC0_CFG_STATUS_QM_IDLE_SHIFT) | \
298*4882a593Smuzhiyun 			(1 << TPC0_CFG_STATUS_QM_RDY_SHIFT))
299*4882a593Smuzhiyun 
300*4882a593Smuzhiyun #define MME0_CTRL_ARCH_STATUS_SB_A_EMPTY_MASK                        0x80
301*4882a593Smuzhiyun #define MME0_CTRL_ARCH_STATUS_SB_B_EMPTY_MASK                        0x100
302*4882a593Smuzhiyun #define MME0_CTRL_ARCH_STATUS_WBC_AXI_IDLE_MASK                      0x1000
303*4882a593Smuzhiyun 
304*4882a593Smuzhiyun #define MME_ARCH_IDLE_MASK	(MME0_CTRL_ARCH_STATUS_SB_A_EMPTY_MASK | \
305*4882a593Smuzhiyun 				MME0_CTRL_ARCH_STATUS_SB_B_EMPTY_MASK | \
306*4882a593Smuzhiyun 				MME0_CTRL_ARCH_STATUS_WBC_AXI_IDLE_MASK)
307*4882a593Smuzhiyun 
308*4882a593Smuzhiyun #define IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) \
309*4882a593Smuzhiyun 	((((qm_glbl_sts0) & QM_IDLE_MASK) == QM_IDLE_MASK) && \
310*4882a593Smuzhiyun 			(((qm_cgm_sts) & CGM_IDLE_MASK) == CGM_IDLE_MASK))
311*4882a593Smuzhiyun 
312*4882a593Smuzhiyun #define IS_DMA_IDLE(dma_core_sts0) \
313*4882a593Smuzhiyun 	!(dma_core_sts0 & DMA0_CORE_STS0_BUSY_MASK)
314*4882a593Smuzhiyun 
315*4882a593Smuzhiyun #define IS_TPC_IDLE(tpc_cfg_sts) \
316*4882a593Smuzhiyun 	(((tpc_cfg_sts) & TPC_IDLE_MASK) == TPC_IDLE_MASK)
317*4882a593Smuzhiyun 
318*4882a593Smuzhiyun #define IS_MME_IDLE(mme_arch_sts) \
319*4882a593Smuzhiyun 	(((mme_arch_sts) & MME_ARCH_IDLE_MASK) == MME_ARCH_IDLE_MASK)
320*4882a593Smuzhiyun 
321*4882a593Smuzhiyun enum axi_id {
322*4882a593Smuzhiyun 	AXI_ID_MME,
323*4882a593Smuzhiyun 	AXI_ID_TPC,
324*4882a593Smuzhiyun 	AXI_ID_DMA,
325*4882a593Smuzhiyun 	AXI_ID_NIC,	/* Local NIC */
326*4882a593Smuzhiyun 	AXI_ID_PCI,
327*4882a593Smuzhiyun 	AXI_ID_CPU,
328*4882a593Smuzhiyun 	AXI_ID_PSOC,
329*4882a593Smuzhiyun 	AXI_ID_MMU,
330*4882a593Smuzhiyun 	AXI_ID_NIC_FT	/* Feed-Through NIC */
331*4882a593Smuzhiyun };
332*4882a593Smuzhiyun 
333*4882a593Smuzhiyun /* RAZWI initiator ID is built from the location in the chip and the AXI ID */
334*4882a593Smuzhiyun 
335*4882a593Smuzhiyun #define RAZWI_INITIATOR_AXI_ID_SHIFT	20
336*4882a593Smuzhiyun #define RAZWI_INITIATOR_AXI_ID_MASK	0xF
337*4882a593Smuzhiyun #define RAZWI_INITIATOR_X_SHIFT		24
338*4882a593Smuzhiyun #define RAZWI_INITIATOR_X_MASK		0xF
339*4882a593Smuzhiyun #define RAZWI_INITIATOR_Y_SHIFT		28
340*4882a593Smuzhiyun #define RAZWI_INITIATOR_Y_MASK		0x7
341*4882a593Smuzhiyun 
342*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_AXI_ID(axi_id) \
343*4882a593Smuzhiyun 	(((axi_id) & RAZWI_INITIATOR_AXI_ID_MASK) << \
344*4882a593Smuzhiyun 		RAZWI_INITIATOR_AXI_ID_SHIFT)
345*4882a593Smuzhiyun 
346*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y(x, y) \
347*4882a593Smuzhiyun 	((((y) & RAZWI_INITIATOR_Y_MASK) << RAZWI_INITIATOR_Y_SHIFT) | \
348*4882a593Smuzhiyun 		(((x) & RAZWI_INITIATOR_X_MASK) << RAZWI_INITIATOR_X_SHIFT))
349*4882a593Smuzhiyun 
350*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_TPC0_NIC0	RAZWI_INITIATOR_ID_X_Y(1, 1)
351*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_TPC1		RAZWI_INITIATOR_ID_X_Y(2, 1)
352*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_MME0_0		RAZWI_INITIATOR_ID_X_Y(3, 1)
353*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_MME0_1		RAZWI_INITIATOR_ID_X_Y(4, 1)
354*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_MME1_0		RAZWI_INITIATOR_ID_X_Y(5, 1)
355*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_MME1_1		RAZWI_INITIATOR_ID_X_Y(6, 1)
356*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_TPC2		RAZWI_INITIATOR_ID_X_Y(7, 1)
357*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_TPC3_PCI_CPU_PSOC \
358*4882a593Smuzhiyun 						RAZWI_INITIATOR_ID_X_Y(8, 1)
359*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_S_0	RAZWI_INITIATOR_ID_X_Y(0, 1)
360*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_S_0	RAZWI_INITIATOR_ID_X_Y(9, 1)
361*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_S_1	RAZWI_INITIATOR_ID_X_Y(0, 2)
362*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_S_1	RAZWI_INITIATOR_ID_X_Y(9, 2)
363*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_N_0	RAZWI_INITIATOR_ID_X_Y(0, 3)
364*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_N_0	RAZWI_INITIATOR_ID_X_Y(9, 3)
365*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_N_1	RAZWI_INITIATOR_ID_X_Y(0, 4)
366*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_N_1	RAZWI_INITIATOR_ID_X_Y(9, 4)
367*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_TPC4_NIC1_NIC2	RAZWI_INITIATOR_ID_X_Y(1, 6)
368*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_TPC5		RAZWI_INITIATOR_ID_X_Y(2, 6)
369*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_MME2_0		RAZWI_INITIATOR_ID_X_Y(3, 6)
370*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_MME2_1		RAZWI_INITIATOR_ID_X_Y(4, 6)
371*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_MME3_0		RAZWI_INITIATOR_ID_X_Y(5, 6)
372*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_MME3_1		RAZWI_INITIATOR_ID_X_Y(6, 6)
373*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_TPC6		RAZWI_INITIATOR_ID_X_Y(7, 6)
374*4882a593Smuzhiyun #define RAZWI_INITIATOR_ID_X_Y_TPC7_NIC4_NIC5	RAZWI_INITIATOR_ID_X_Y(8, 6)
375*4882a593Smuzhiyun 
376*4882a593Smuzhiyun #define PSOC_ETR_AXICTL_PROTCTRLBIT1_SHIFT                           1
377*4882a593Smuzhiyun 
378*4882a593Smuzhiyun /* STLB_CACHE_INV */
379*4882a593Smuzhiyun #define STLB_CACHE_INV_PRODUCER_INDEX_SHIFT                          0
380*4882a593Smuzhiyun #define STLB_CACHE_INV_PRODUCER_INDEX_MASK                           0xFF
381*4882a593Smuzhiyun #define STLB_CACHE_INV_INDEX_MASK_SHIFT                              8
382*4882a593Smuzhiyun #define STLB_CACHE_INV_INDEX_MASK_MASK                               0xFF00
383*4882a593Smuzhiyun 
384*4882a593Smuzhiyun #define MME_ACC_ACC_STALL_R_SHIFT                                    0
385*4882a593Smuzhiyun #define MME_SBAB_SB_STALL_R_SHIFT                                    0
386*4882a593Smuzhiyun 
387*4882a593Smuzhiyun #define PCIE_WRAP_LBW_PROT_OVR_RD_EN_MASK                            0x700
388*4882a593Smuzhiyun #define PCIE_WRAP_LBW_PROT_OVR_WR_EN_MASK                            0x7000
389*4882a593Smuzhiyun 
390*4882a593Smuzhiyun #define PCIE_WRAP_LBW_DRAIN_CFG_EN_SHIFT                             0
391*4882a593Smuzhiyun #define PCIE_WRAP_HBW_DRAIN_CFG_EN_SHIFT                             0
392*4882a593Smuzhiyun 
393*4882a593Smuzhiyun /* DMA_IF_HBM_CRED_EN */
394*4882a593Smuzhiyun #define DMA_IF_HBM_CRED_EN_READ_CREDIT_EN_SHIFT                      0
395*4882a593Smuzhiyun #define DMA_IF_HBM_CRED_EN_READ_CREDIT_EN_MASK                       0x1
396*4882a593Smuzhiyun #define DMA_IF_HBM_CRED_EN_WRITE_CREDIT_EN_SHIFT                     1
397*4882a593Smuzhiyun #define DMA_IF_HBM_CRED_EN_WRITE_CREDIT_EN_MASK                      0x2
398*4882a593Smuzhiyun 
399*4882a593Smuzhiyun #define DMA_IF_DOWN_CHX_SCRAM_SRAM_EN_VAL_SHIFT                      0
400*4882a593Smuzhiyun #define DMA_IF_DOWN_CHX_SCRAM_HBM_EN_VAL_SHIFT                       0
401*4882a593Smuzhiyun #define DMA_IF_DOWN_CHX_E2E_HBM_EN_VAL_SHIFT                         0
402*4882a593Smuzhiyun #define DMA_IF_DOWN_CHX_E2E_PCI_EN_VAL_SHIFT                         0
403*4882a593Smuzhiyun 
404*4882a593Smuzhiyun #define IF_RTR_CTRL_SCRAM_SRAM_EN_VAL_SHIFT                          0
405*4882a593Smuzhiyun #define IF_RTR_CTRL_SCRAM_HBM_EN_VAL_SHIFT                           0
406*4882a593Smuzhiyun 
407*4882a593Smuzhiyun #define IF_RTR_CTRL_E2E_HBM_EN_VAL_SHIFT                             0
408*4882a593Smuzhiyun #define IF_RTR_CTRL_E2E_PCI_EN_VAL_SHIFT                             0
409*4882a593Smuzhiyun 
410*4882a593Smuzhiyun /* MMU_UP_PAGE_ERROR_CAPTURE */
411*4882a593Smuzhiyun #define MMU_UP_PAGE_ERROR_CAPTURE_VA_49_32_MASK                      0x3FFFF
412*4882a593Smuzhiyun #define MMU_UP_PAGE_ERROR_CAPTURE_ENTRY_VALID_MASK                   0x40000
413*4882a593Smuzhiyun 
414*4882a593Smuzhiyun /* MMU_UP_ACCESS_ERROR_CAPTURE */
415*4882a593Smuzhiyun #define MMU_UP_ACCESS_ERROR_CAPTURE_VA_49_32_MASK                    0x3FFFF
416*4882a593Smuzhiyun #define MMU_UP_ACCESS_ERROR_CAPTURE_ENTRY_VALID_MASK                 0x40000
417*4882a593Smuzhiyun 
418*4882a593Smuzhiyun #define QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK                            0x1
419*4882a593Smuzhiyun #define QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK                            0x2
420*4882a593Smuzhiyun #define QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK                           0x4
421*4882a593Smuzhiyun 
422*4882a593Smuzhiyun #define QM_ARB_ERR_MSG_EN_MASK		(\
423*4882a593Smuzhiyun 					QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK |\
424*4882a593Smuzhiyun 					QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK)
425*4882a593Smuzhiyun 
426*4882a593Smuzhiyun #define PCIE_AUX_FLR_CTRL_HW_CTRL_MASK                               0x1
427*4882a593Smuzhiyun #define PCIE_AUX_FLR_CTRL_INT_MASK_MASK                              0x2
428*4882a593Smuzhiyun 
429*4882a593Smuzhiyun #endif /* GAUDI_MASKS_H_ */
430