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