1 // SPDX-License-Identifier: GPL-2.0
4 * Copyright 2019-2022 HabanaLabs, Ltd.
7 #include "gaudi2_coresight_regs.h"
8 #include <uapi/drm/habanalabs_accel.h>
10 #define GAUDI2_PLDM_CORESIGHT_TIMEOUT_USEC (CORESIGHT_TIMEOUT_USEC * 2000)
11 #define SPMU_MAX_COUNTERS 6
13 #define COMPONENT_ID_INVALID ((u32)(-1))
14 #define MAX_BMONS_PER_UNIT 8
16 enum gaudi2_hif_hmmu_id
{
36 enum gaudi2_xbar_edge_id
{
45 * struct component_config_offsets - per cs_dbg unit - view off all related components indices
46 * @funnel_id: funnel id - index in debug_funnel_regs
47 * @etf_id: etf id - index in debug_etf_regs
48 * @stm_id: stm id - index in debug_stm_regs
49 * @spmu_id: spmu_id - index in debug_spmu_regs
50 * @bmon_count: number of bmons per unit
51 * @bmon_ids: array of bmon id (max size - MAX_BMONS_PER_UNIT) index in debug_bmon_regs
53 struct component_config_offsets
{
59 u32 bmon_ids
[MAX_BMONS_PER_UNIT
];
62 static u64 debug_stm_regs
[GAUDI2_STM_LAST
+ 1] = {
63 [GAUDI2_STM_DCORE0_TPC0_EML
] = mmDCORE0_TPC0_EML_STM_BASE
,
64 [GAUDI2_STM_DCORE0_TPC1_EML
] = mmDCORE0_TPC1_EML_STM_BASE
,
65 [GAUDI2_STM_DCORE0_TPC2_EML
] = mmDCORE0_TPC2_EML_STM_BASE
,
66 [GAUDI2_STM_DCORE0_TPC3_EML
] = mmDCORE0_TPC3_EML_STM_BASE
,
67 [GAUDI2_STM_DCORE0_TPC4_EML
] = mmDCORE0_TPC4_EML_STM_BASE
,
68 [GAUDI2_STM_DCORE0_TPC5_EML
] = mmDCORE0_TPC5_EML_STM_BASE
,
69 [GAUDI2_STM_DCORE0_TPC6_EML
] = mmDCORE0_TPC6_EML_STM_BASE
,
70 [GAUDI2_STM_DCORE1_TPC0_EML
] = mmDCORE1_TPC0_EML_STM_BASE
,
71 [GAUDI2_STM_DCORE1_TPC1_EML
] = mmDCORE1_TPC1_EML_STM_BASE
,
72 [GAUDI2_STM_DCORE1_TPC2_EML
] = mmDCORE1_TPC2_EML_STM_BASE
,
73 [GAUDI2_STM_DCORE1_TPC3_EML
] = mmDCORE1_TPC3_EML_STM_BASE
,
74 [GAUDI2_STM_DCORE1_TPC4_EML
] = mmDCORE1_TPC4_EML_STM_BASE
,
75 [GAUDI2_STM_DCORE1_TPC5_EML
] = mmDCORE1_TPC5_EML_STM_BASE
,
76 [GAUDI2_STM_DCORE2_TPC0_EML
] = mmDCORE2_TPC0_EML_STM_BASE
,
77 [GAUDI2_STM_DCORE2_TPC1_EML
] = mmDCORE2_TPC1_EML_STM_BASE
,
78 [GAUDI2_STM_DCORE2_TPC2_EML
] = mmDCORE2_TPC2_EML_STM_BASE
,
79 [GAUDI2_STM_DCORE2_TPC3_EML
] = mmDCORE2_TPC3_EML_STM_BASE
,
80 [GAUDI2_STM_DCORE2_TPC4_EML
] = mmDCORE2_TPC4_EML_STM_BASE
,
81 [GAUDI2_STM_DCORE2_TPC5_EML
] = mmDCORE2_TPC5_EML_STM_BASE
,
82 [GAUDI2_STM_DCORE3_TPC0_EML
] = mmDCORE3_TPC0_EML_STM_BASE
,
83 [GAUDI2_STM_DCORE3_TPC1_EML
] = mmDCORE3_TPC1_EML_STM_BASE
,
84 [GAUDI2_STM_DCORE3_TPC2_EML
] = mmDCORE3_TPC2_EML_STM_BASE
,
85 [GAUDI2_STM_DCORE3_TPC3_EML
] = mmDCORE3_TPC3_EML_STM_BASE
,
86 [GAUDI2_STM_DCORE3_TPC4_EML
] = mmDCORE3_TPC4_EML_STM_BASE
,
87 [GAUDI2_STM_DCORE3_TPC5_EML
] = mmDCORE3_TPC5_EML_STM_BASE
,
88 [GAUDI2_STM_DCORE0_HMMU0_CS
] = mmDCORE0_HMMU0_CS_STM_BASE
,
89 [GAUDI2_STM_DCORE0_HMMU1_CS
] = mmDCORE0_HMMU1_CS_STM_BASE
,
90 [GAUDI2_STM_DCORE0_HMMU2_CS
] = mmDCORE0_HMMU2_CS_STM_BASE
,
91 [GAUDI2_STM_DCORE0_HMMU3_CS
] = mmDCORE0_HMMU3_CS_STM_BASE
,
92 [GAUDI2_STM_DCORE0_MME_CTRL
] = mmDCORE0_MME_CTRL_STM_BASE
,
93 [GAUDI2_STM_DCORE0_MME_SBTE0
] = mmDCORE0_MME_SBTE0_STM_BASE
,
94 [GAUDI2_STM_DCORE0_MME_SBTE1
] = mmDCORE0_MME_SBTE1_STM_BASE
,
95 [GAUDI2_STM_DCORE0_MME_SBTE2
] = mmDCORE0_MME_SBTE2_STM_BASE
,
96 [GAUDI2_STM_DCORE0_MME_SBTE3
] = mmDCORE0_MME_SBTE3_STM_BASE
,
97 [GAUDI2_STM_DCORE0_MME_SBTE4
] = mmDCORE0_MME_SBTE4_STM_BASE
,
98 [GAUDI2_STM_DCORE0_MME_ACC
] = mmDCORE0_MME_ACC_STM_BASE
,
99 [GAUDI2_STM_DCORE0_SM
] = mmDCORE0_SM_STM_BASE
,
100 [GAUDI2_STM_DCORE0_EDMA0_CS
] = mmDCORE0_EDMA0_CS_STM_BASE
,
101 [GAUDI2_STM_DCORE0_EDMA1_CS
] = mmDCORE0_EDMA1_CS_STM_BASE
,
102 [GAUDI2_STM_DCORE0_VDEC0_CS
] = mmDCORE0_VDEC0_CS_STM_BASE
,
103 [GAUDI2_STM_DCORE0_VDEC1_CS
] = mmDCORE0_VDEC1_CS_STM_BASE
,
104 [GAUDI2_STM_DCORE1_HMMU0_CS
] = mmDCORE1_HMMU0_CS_STM_BASE
,
105 [GAUDI2_STM_DCORE1_HMMU1_CS
] = mmDCORE1_HMMU1_CS_STM_BASE
,
106 [GAUDI2_STM_DCORE1_HMMU2_CS
] = mmDCORE1_HMMU2_CS_STM_BASE
,
107 [GAUDI2_STM_DCORE1_HMMU3_CS
] = mmDCORE1_HMMU3_CS_STM_BASE
,
108 [GAUDI2_STM_DCORE1_MME_CTRL
] = mmDCORE1_MME_CTRL_STM_BASE
,
109 [GAUDI2_STM_DCORE1_MME_SBTE0
] = mmDCORE1_MME_SBTE0_STM_BASE
,
110 [GAUDI2_STM_DCORE1_MME_SBTE1
] = mmDCORE1_MME_SBTE1_STM_BASE
,
111 [GAUDI2_STM_DCORE1_MME_SBTE2
] = mmDCORE1_MME_SBTE2_STM_BASE
,
112 [GAUDI2_STM_DCORE1_MME_SBTE3
] = mmDCORE1_MME_SBTE3_STM_BASE
,
113 [GAUDI2_STM_DCORE1_MME_SBTE4
] = mmDCORE1_MME_SBTE4_STM_BASE
,
114 [GAUDI2_STM_DCORE1_MME_ACC
] = mmDCORE1_MME_ACC_STM_BASE
,
115 [GAUDI2_STM_DCORE1_SM
] = mmDCORE1_SM_STM_BASE
,
116 [GAUDI2_STM_DCORE1_EDMA0_CS
] = mmDCORE1_EDMA0_CS_STM_BASE
,
117 [GAUDI2_STM_DCORE1_EDMA1_CS
] = mmDCORE1_EDMA1_CS_STM_BASE
,
118 [GAUDI2_STM_DCORE1_VDEC0_CS
] = mmDCORE1_VDEC0_CS_STM_BASE
,
119 [GAUDI2_STM_DCORE1_VDEC1_CS
] = mmDCORE1_VDEC1_CS_STM_BASE
,
120 [GAUDI2_STM_DCORE2_HMMU0_CS
] = mmDCORE2_HMMU0_CS_STM_BASE
,
121 [GAUDI2_STM_DCORE2_HMMU1_CS
] = mmDCORE2_HMMU1_CS_STM_BASE
,
122 [GAUDI2_STM_DCORE2_HMMU2_CS
] = mmDCORE2_HMMU2_CS_STM_BASE
,
123 [GAUDI2_STM_DCORE2_HMMU3_CS
] = mmDCORE2_HMMU3_CS_STM_BASE
,
124 [GAUDI2_STM_DCORE2_MME_CTRL
] = mmDCORE2_MME_CTRL_STM_BASE
,
125 [GAUDI2_STM_DCORE2_MME_SBTE0
] = mmDCORE2_MME_SBTE0_STM_BASE
,
126 [GAUDI2_STM_DCORE2_MME_SBTE1
] = mmDCORE2_MME_SBTE1_STM_BASE
,
127 [GAUDI2_STM_DCORE2_MME_SBTE2
] = mmDCORE2_MME_SBTE2_STM_BASE
,
128 [GAUDI2_STM_DCORE2_MME_SBTE3
] = mmDCORE2_MME_SBTE3_STM_BASE
,
129 [GAUDI2_STM_DCORE2_MME_SBTE4
] = mmDCORE2_MME_SBTE4_STM_BASE
,
130 [GAUDI2_STM_DCORE2_MME_ACC
] = mmDCORE2_MME_ACC_STM_BASE
,
131 [GAUDI2_STM_DCORE2_SM
] = mmDCORE2_SM_STM_BASE
,
132 [GAUDI2_STM_DCORE2_EDMA0_CS
] = mmDCORE2_EDMA0_CS_STM_BASE
,
133 [GAUDI2_STM_DCORE2_EDMA1_CS
] = mmDCORE2_EDMA1_CS_STM_BASE
,
134 [GAUDI2_STM_DCORE2_VDEC0_CS
] = mmDCORE2_VDEC0_CS_STM_BASE
,
135 [GAUDI2_STM_DCORE2_VDEC1_CS
] = mmDCORE2_VDEC1_CS_STM_BASE
,
136 [GAUDI2_STM_DCORE3_HMMU0_CS
] = mmDCORE3_HMMU0_CS_STM_BASE
,
137 [GAUDI2_STM_DCORE3_HMMU1_CS
] = mmDCORE3_HMMU1_CS_STM_BASE
,
138 [GAUDI2_STM_DCORE3_HMMU2_CS
] = mmDCORE3_HMMU2_CS_STM_BASE
,
139 [GAUDI2_STM_DCORE3_HMMU3_CS
] = mmDCORE3_HMMU3_CS_STM_BASE
,
140 [GAUDI2_STM_DCORE3_MME_CTRL
] = mmDCORE3_MME_CTRL_STM_BASE
,
141 [GAUDI2_STM_DCORE3_MME_SBTE0
] = mmDCORE3_MME_SBTE0_STM_BASE
,
142 [GAUDI2_STM_DCORE3_MME_SBTE1
] = mmDCORE3_MME_SBTE1_STM_BASE
,
143 [GAUDI2_STM_DCORE3_MME_SBTE2
] = mmDCORE3_MME_SBTE2_STM_BASE
,
144 [GAUDI2_STM_DCORE3_MME_SBTE3
] = mmDCORE3_MME_SBTE3_STM_BASE
,
145 [GAUDI2_STM_DCORE3_MME_SBTE4
] = mmDCORE3_MME_SBTE4_STM_BASE
,
146 [GAUDI2_STM_DCORE3_MME_ACC
] = mmDCORE3_MME_ACC_STM_BASE
,
147 [GAUDI2_STM_DCORE3_SM
] = mmDCORE3_SM_STM_BASE
,
148 [GAUDI2_STM_DCORE3_EDMA0_CS
] = mmDCORE3_EDMA0_CS_STM_BASE
,
149 [GAUDI2_STM_DCORE3_EDMA1_CS
] = mmDCORE3_EDMA1_CS_STM_BASE
,
150 [GAUDI2_STM_DCORE3_VDEC0_CS
] = mmDCORE3_VDEC0_CS_STM_BASE
,
151 [GAUDI2_STM_DCORE3_VDEC1_CS
] = mmDCORE3_VDEC1_CS_STM_BASE
,
152 [GAUDI2_STM_PCIE
] = mmPCIE_STM_BASE
,
153 [GAUDI2_STM_PSOC
] = mmPSOC_STM_BASE
,
154 [GAUDI2_STM_PSOC_ARC0_CS
] = 0,
155 [GAUDI2_STM_PSOC_ARC1_CS
] = 0,
156 [GAUDI2_STM_PDMA0_CS
] = mmPDMA0_CS_STM_BASE
,
157 [GAUDI2_STM_PDMA1_CS
] = mmPDMA1_CS_STM_BASE
,
158 [GAUDI2_STM_CPU
] = mmCPU_STM_BASE
,
159 [GAUDI2_STM_PMMU_CS
] = mmPMMU_CS_STM_BASE
,
160 [GAUDI2_STM_ROT0_CS
] = mmROT0_CS_STM_BASE
,
161 [GAUDI2_STM_ROT1_CS
] = mmROT1_CS_STM_BASE
,
162 [GAUDI2_STM_ARC_FARM_CS
] = mmARC_FARM_CS_STM_BASE
,
163 [GAUDI2_STM_KDMA_CS
] = mmKDMA_CS_STM_BASE
,
164 [GAUDI2_STM_PCIE_VDEC0_CS
] = mmPCIE_VDEC0_CS_STM_BASE
,
165 [GAUDI2_STM_PCIE_VDEC1_CS
] = mmPCIE_VDEC1_CS_STM_BASE
,
166 [GAUDI2_STM_HBM0_MC0_CS
] = mmHBM0_MC0_CS_STM_BASE
,
167 [GAUDI2_STM_HBM0_MC1_CS
] = mmHBM0_MC1_CS_STM_BASE
,
168 [GAUDI2_STM_HBM1_MC0_CS
] = mmHBM1_MC0_CS_STM_BASE
,
169 [GAUDI2_STM_HBM1_MC1_CS
] = mmHBM1_MC1_CS_STM_BASE
,
170 [GAUDI2_STM_HBM2_MC0_CS
] = mmHBM2_MC0_CS_STM_BASE
,
171 [GAUDI2_STM_HBM2_MC1_CS
] = mmHBM2_MC1_CS_STM_BASE
,
172 [GAUDI2_STM_HBM3_MC0_CS
] = mmHBM3_MC0_CS_STM_BASE
,
173 [GAUDI2_STM_HBM3_MC1_CS
] = mmHBM3_MC1_CS_STM_BASE
,
174 [GAUDI2_STM_HBM4_MC0_CS
] = mmHBM4_MC0_CS_STM_BASE
,
175 [GAUDI2_STM_HBM4_MC1_CS
] = mmHBM4_MC1_CS_STM_BASE
,
176 [GAUDI2_STM_HBM5_MC0_CS
] = mmHBM5_MC0_CS_STM_BASE
,
177 [GAUDI2_STM_HBM5_MC1_CS
] = mmHBM5_MC1_CS_STM_BASE
,
178 [GAUDI2_STM_NIC0_DBG_0
] = mmNIC0_DBG_STM_0_BASE
,
179 [GAUDI2_STM_NIC0_DBG_1
] = mmNIC0_DBG_STM_1_BASE
,
180 [GAUDI2_STM_NIC1_DBG_0
] = mmNIC1_DBG_STM_0_BASE
,
181 [GAUDI2_STM_NIC1_DBG_1
] = mmNIC1_DBG_STM_1_BASE
,
182 [GAUDI2_STM_NIC2_DBG_0
] = mmNIC2_DBG_STM_0_BASE
,
183 [GAUDI2_STM_NIC2_DBG_1
] = mmNIC2_DBG_STM_1_BASE
,
184 [GAUDI2_STM_NIC3_DBG_0
] = mmNIC3_DBG_STM_0_BASE
,
185 [GAUDI2_STM_NIC3_DBG_1
] = mmNIC3_DBG_STM_1_BASE
,
186 [GAUDI2_STM_NIC4_DBG_0
] = mmNIC4_DBG_STM_0_BASE
,
187 [GAUDI2_STM_NIC4_DBG_1
] = mmNIC4_DBG_STM_1_BASE
,
188 [GAUDI2_STM_NIC5_DBG_0
] = mmNIC5_DBG_STM_0_BASE
,
189 [GAUDI2_STM_NIC5_DBG_1
] = mmNIC5_DBG_STM_1_BASE
,
190 [GAUDI2_STM_NIC6_DBG_0
] = mmNIC6_DBG_STM_0_BASE
,
191 [GAUDI2_STM_NIC6_DBG_1
] = mmNIC6_DBG_STM_1_BASE
,
192 [GAUDI2_STM_NIC7_DBG_0
] = mmNIC7_DBG_STM_0_BASE
,
193 [GAUDI2_STM_NIC7_DBG_1
] = mmNIC7_DBG_STM_1_BASE
,
194 [GAUDI2_STM_NIC8_DBG_0
] = mmNIC8_DBG_STM_0_BASE
,
195 [GAUDI2_STM_NIC8_DBG_1
] = mmNIC8_DBG_STM_1_BASE
,
196 [GAUDI2_STM_NIC9_DBG_0
] = mmNIC9_DBG_STM_0_BASE
,
197 [GAUDI2_STM_NIC9_DBG_1
] = mmNIC9_DBG_STM_1_BASE
,
198 [GAUDI2_STM_NIC10_DBG_0
] = mmNIC10_DBG_STM_0_BASE
,
199 [GAUDI2_STM_NIC10_DBG_1
] = mmNIC10_DBG_STM_1_BASE
,
200 [GAUDI2_STM_NIC11_DBG_0
] = mmNIC11_DBG_STM_0_BASE
,
201 [GAUDI2_STM_NIC11_DBG_1
] = mmNIC11_DBG_STM_1_BASE
204 static u64 debug_etf_regs
[GAUDI2_ETF_LAST
+ 1] = {
205 [GAUDI2_ETF_DCORE0_TPC0_EML
] = mmDCORE0_TPC0_EML_ETF_BASE
,
206 [GAUDI2_ETF_DCORE0_TPC1_EML
] = mmDCORE0_TPC1_EML_ETF_BASE
,
207 [GAUDI2_ETF_DCORE0_TPC2_EML
] = mmDCORE0_TPC2_EML_ETF_BASE
,
208 [GAUDI2_ETF_DCORE0_TPC3_EML
] = mmDCORE0_TPC3_EML_ETF_BASE
,
209 [GAUDI2_ETF_DCORE0_TPC4_EML
] = mmDCORE0_TPC4_EML_ETF_BASE
,
210 [GAUDI2_ETF_DCORE0_TPC5_EML
] = mmDCORE0_TPC5_EML_ETF_BASE
,
211 [GAUDI2_ETF_DCORE0_TPC6_EML
] = mmDCORE0_TPC6_EML_ETF_BASE
,
212 [GAUDI2_ETF_DCORE1_TPC0_EML
] = mmDCORE1_TPC0_EML_ETF_BASE
,
213 [GAUDI2_ETF_DCORE1_TPC1_EML
] = mmDCORE1_TPC1_EML_ETF_BASE
,
214 [GAUDI2_ETF_DCORE1_TPC2_EML
] = mmDCORE1_TPC2_EML_ETF_BASE
,
215 [GAUDI2_ETF_DCORE1_TPC3_EML
] = mmDCORE1_TPC3_EML_ETF_BASE
,
216 [GAUDI2_ETF_DCORE1_TPC4_EML
] = mmDCORE1_TPC4_EML_ETF_BASE
,
217 [GAUDI2_ETF_DCORE1_TPC5_EML
] = mmDCORE1_TPC5_EML_ETF_BASE
,
218 [GAUDI2_ETF_DCORE2_TPC0_EML
] = mmDCORE2_TPC0_EML_ETF_BASE
,
219 [GAUDI2_ETF_DCORE2_TPC1_EML
] = mmDCORE2_TPC1_EML_ETF_BASE
,
220 [GAUDI2_ETF_DCORE2_TPC2_EML
] = mmDCORE2_TPC2_EML_ETF_BASE
,
221 [GAUDI2_ETF_DCORE2_TPC3_EML
] = mmDCORE2_TPC3_EML_ETF_BASE
,
222 [GAUDI2_ETF_DCORE2_TPC4_EML
] = mmDCORE2_TPC4_EML_ETF_BASE
,
223 [GAUDI2_ETF_DCORE2_TPC5_EML
] = mmDCORE2_TPC5_EML_ETF_BASE
,
224 [GAUDI2_ETF_DCORE3_TPC0_EML
] = mmDCORE3_TPC0_EML_ETF_BASE
,
225 [GAUDI2_ETF_DCORE3_TPC1_EML
] = mmDCORE3_TPC1_EML_ETF_BASE
,
226 [GAUDI2_ETF_DCORE3_TPC2_EML
] = mmDCORE3_TPC2_EML_ETF_BASE
,
227 [GAUDI2_ETF_DCORE3_TPC3_EML
] = mmDCORE3_TPC3_EML_ETF_BASE
,
228 [GAUDI2_ETF_DCORE3_TPC4_EML
] = mmDCORE3_TPC4_EML_ETF_BASE
,
229 [GAUDI2_ETF_DCORE3_TPC5_EML
] = mmDCORE3_TPC5_EML_ETF_BASE
,
230 [GAUDI2_ETF_DCORE0_HMMU0_CS
] = mmDCORE0_HMMU0_CS_ETF_BASE
,
231 [GAUDI2_ETF_DCORE0_HMMU1_CS
] = mmDCORE0_HMMU1_CS_ETF_BASE
,
232 [GAUDI2_ETF_DCORE0_HMMU2_CS
] = mmDCORE0_HMMU2_CS_ETF_BASE
,
233 [GAUDI2_ETF_DCORE0_HMMU3_CS
] = mmDCORE0_HMMU3_CS_ETF_BASE
,
234 [GAUDI2_ETF_DCORE0_MME_CTRL
] = mmDCORE0_MME_CTRL_ETF_BASE
,
235 [GAUDI2_ETF_DCORE0_MME_SBTE0
] = mmDCORE0_MME_SBTE0_ETF_BASE
,
236 [GAUDI2_ETF_DCORE0_MME_SBTE1
] = mmDCORE0_MME_SBTE1_ETF_BASE
,
237 [GAUDI2_ETF_DCORE0_MME_SBTE2
] = mmDCORE0_MME_SBTE2_ETF_BASE
,
238 [GAUDI2_ETF_DCORE0_MME_SBTE3
] = mmDCORE0_MME_SBTE3_ETF_BASE
,
239 [GAUDI2_ETF_DCORE0_MME_SBTE4
] = mmDCORE0_MME_SBTE4_ETF_BASE
,
240 [GAUDI2_ETF_DCORE0_MME_ACC
] = mmDCORE0_MME_ACC_ETF_BASE
,
241 [GAUDI2_ETF_DCORE0_SM
] = mmDCORE0_SM_ETF_BASE
,
242 [GAUDI2_ETF_DCORE0_EDMA0_CS
] = mmDCORE0_EDMA0_CS_ETF_BASE
,
243 [GAUDI2_ETF_DCORE0_EDMA1_CS
] = mmDCORE0_EDMA1_CS_ETF_BASE
,
244 [GAUDI2_ETF_DCORE0_VDEC0_CS
] = mmDCORE0_VDEC0_CS_ETF_BASE
,
245 [GAUDI2_ETF_DCORE0_VDEC1_CS
] = mmDCORE0_VDEC1_CS_ETF_BASE
,
246 [GAUDI2_ETF_DCORE1_HMMU0_CS
] = mmDCORE1_HMMU0_CS_ETF_BASE
,
247 [GAUDI2_ETF_DCORE1_HMMU1_CS
] = mmDCORE1_HMMU1_CS_ETF_BASE
,
248 [GAUDI2_ETF_DCORE1_HMMU2_CS
] = mmDCORE1_HMMU2_CS_ETF_BASE
,
249 [GAUDI2_ETF_DCORE1_HMMU3_CS
] = mmDCORE1_HMMU3_CS_ETF_BASE
,
250 [GAUDI2_ETF_DCORE1_MME_CTRL
] = mmDCORE1_MME_CTRL_ETF_BASE
,
251 [GAUDI2_ETF_DCORE1_MME_SBTE0
] = mmDCORE1_MME_SBTE0_ETF_BASE
,
252 [GAUDI2_ETF_DCORE1_MME_SBTE1
] = mmDCORE1_MME_SBTE1_ETF_BASE
,
253 [GAUDI2_ETF_DCORE1_MME_SBTE2
] = mmDCORE1_MME_SBTE2_ETF_BASE
,
254 [GAUDI2_ETF_DCORE1_MME_SBTE3
] = mmDCORE1_MME_SBTE3_ETF_BASE
,
255 [GAUDI2_ETF_DCORE1_MME_SBTE4
] = mmDCORE1_MME_SBTE4_ETF_BASE
,
256 [GAUDI2_ETF_DCORE1_MME_ACC
] = mmDCORE1_MME_ACC_ETF_BASE
,
257 [GAUDI2_ETF_DCORE1_SM
] = mmDCORE1_SM_ETF_BASE
,
258 [GAUDI2_ETF_DCORE1_EDMA0_CS
] = mmDCORE1_EDMA0_CS_ETF_BASE
,
259 [GAUDI2_ETF_DCORE1_EDMA1_CS
] = mmDCORE1_EDMA1_CS_ETF_BASE
,
260 [GAUDI2_ETF_DCORE1_VDEC0_CS
] = mmDCORE1_VDEC0_CS_ETF_BASE
,
261 [GAUDI2_ETF_DCORE1_VDEC1_CS
] = mmDCORE1_VDEC1_CS_ETF_BASE
,
262 [GAUDI2_ETF_DCORE2_HMMU0_CS
] = mmDCORE2_HMMU0_CS_ETF_BASE
,
263 [GAUDI2_ETF_DCORE2_HMMU1_CS
] = mmDCORE2_HMMU1_CS_ETF_BASE
,
264 [GAUDI2_ETF_DCORE2_HMMU2_CS
] = mmDCORE2_HMMU2_CS_ETF_BASE
,
265 [GAUDI2_ETF_DCORE2_HMMU3_CS
] = mmDCORE2_HMMU3_CS_ETF_BASE
,
266 [GAUDI2_ETF_DCORE2_MME_CTRL
] = mmDCORE2_MME_CTRL_ETF_BASE
,
267 [GAUDI2_ETF_DCORE2_MME_SBTE0
] = mmDCORE2_MME_SBTE0_ETF_BASE
,
268 [GAUDI2_ETF_DCORE2_MME_SBTE1
] = mmDCORE2_MME_SBTE1_ETF_BASE
,
269 [GAUDI2_ETF_DCORE2_MME_SBTE2
] = mmDCORE2_MME_SBTE2_ETF_BASE
,
270 [GAUDI2_ETF_DCORE2_MME_SBTE3
] = mmDCORE2_MME_SBTE3_ETF_BASE
,
271 [GAUDI2_ETF_DCORE2_MME_SBTE4
] = mmDCORE2_MME_SBTE4_ETF_BASE
,
272 [GAUDI2_ETF_DCORE2_MME_ACC
] = mmDCORE2_MME_ACC_ETF_BASE
,
273 [GAUDI2_ETF_DCORE2_SM
] = mmDCORE2_SM_ETF_BASE
,
274 [GAUDI2_ETF_DCORE2_EDMA0_CS
] = mmDCORE2_EDMA0_CS_ETF_BASE
,
275 [GAUDI2_ETF_DCORE2_EDMA1_CS
] = mmDCORE2_EDMA1_CS_ETF_BASE
,
276 [GAUDI2_ETF_DCORE2_VDEC0_CS
] = mmDCORE2_VDEC0_CS_ETF_BASE
,
277 [GAUDI2_ETF_DCORE2_VDEC1_CS
] = mmDCORE2_VDEC1_CS_ETF_BASE
,
278 [GAUDI2_ETF_DCORE3_HMMU0_CS
] = mmDCORE3_HMMU0_CS_ETF_BASE
,
279 [GAUDI2_ETF_DCORE3_HMMU1_CS
] = mmDCORE3_HMMU1_CS_ETF_BASE
,
280 [GAUDI2_ETF_DCORE3_HMMU2_CS
] = mmDCORE3_HMMU2_CS_ETF_BASE
,
281 [GAUDI2_ETF_DCORE3_HMMU3_CS
] = mmDCORE3_HMMU3_CS_ETF_BASE
,
282 [GAUDI2_ETF_DCORE3_MME_CTRL
] = mmDCORE3_MME_CTRL_ETF_BASE
,
283 [GAUDI2_ETF_DCORE3_MME_SBTE0
] = mmDCORE3_MME_SBTE0_ETF_BASE
,
284 [GAUDI2_ETF_DCORE3_MME_SBTE1
] = mmDCORE3_MME_SBTE1_ETF_BASE
,
285 [GAUDI2_ETF_DCORE3_MME_SBTE2
] = mmDCORE3_MME_SBTE2_ETF_BASE
,
286 [GAUDI2_ETF_DCORE3_MME_SBTE3
] = mmDCORE3_MME_SBTE3_ETF_BASE
,
287 [GAUDI2_ETF_DCORE3_MME_SBTE4
] = mmDCORE3_MME_SBTE4_ETF_BASE
,
288 [GAUDI2_ETF_DCORE3_MME_ACC
] = mmDCORE3_MME_ACC_ETF_BASE
,
289 [GAUDI2_ETF_DCORE3_SM
] = mmDCORE3_SM_ETF_BASE
,
290 [GAUDI2_ETF_DCORE3_EDMA0_CS
] = mmDCORE3_EDMA0_CS_ETF_BASE
,
291 [GAUDI2_ETF_DCORE3_EDMA1_CS
] = mmDCORE3_EDMA1_CS_ETF_BASE
,
292 [GAUDI2_ETF_DCORE3_VDEC0_CS
] = mmDCORE3_VDEC0_CS_ETF_BASE
,
293 [GAUDI2_ETF_DCORE3_VDEC1_CS
] = mmDCORE3_VDEC1_CS_ETF_BASE
,
294 [GAUDI2_ETF_PCIE
] = mmPCIE_ETF_BASE
,
295 [GAUDI2_ETF_PSOC
] = mmPSOC_ETF_BASE
,
296 [GAUDI2_ETF_PSOC_ARC0_CS
] = 0,
297 [GAUDI2_ETF_PSOC_ARC1_CS
] = 0,
298 [GAUDI2_ETF_PDMA0_CS
] = mmPDMA0_CS_ETF_BASE
,
299 [GAUDI2_ETF_PDMA1_CS
] = mmPDMA1_CS_ETF_BASE
,
300 [GAUDI2_ETF_CPU_0
] = mmCPU_ETF_0_BASE
,
301 [GAUDI2_ETF_CPU_1
] = mmCPU_ETF_1_BASE
,
302 [GAUDI2_ETF_CPU_TRACE
] = mmCPU_ETF_TRACE_BASE
,
303 [GAUDI2_ETF_PMMU_CS
] = mmPMMU_CS_ETF_BASE
,
304 [GAUDI2_ETF_ROT0_CS
] = mmROT0_CS_ETF_BASE
,
305 [GAUDI2_ETF_ROT1_CS
] = mmROT1_CS_ETF_BASE
,
306 [GAUDI2_ETF_ARC_FARM_CS
] = mmARC_FARM_CS_ETF_BASE
,
307 [GAUDI2_ETF_KDMA_CS
] = mmKDMA_CS_ETF_BASE
,
308 [GAUDI2_ETF_PCIE_VDEC0_CS
] = mmPCIE_VDEC0_CS_ETF_BASE
,
309 [GAUDI2_ETF_PCIE_VDEC1_CS
] = mmPCIE_VDEC1_CS_ETF_BASE
,
310 [GAUDI2_ETF_HBM0_MC0_CS
] = mmHBM0_MC0_CS_ETF_BASE
,
311 [GAUDI2_ETF_HBM0_MC1_CS
] = mmHBM0_MC1_CS_ETF_BASE
,
312 [GAUDI2_ETF_HBM1_MC0_CS
] = mmHBM1_MC0_CS_ETF_BASE
,
313 [GAUDI2_ETF_HBM1_MC1_CS
] = mmHBM1_MC1_CS_ETF_BASE
,
314 [GAUDI2_ETF_HBM2_MC0_CS
] = mmHBM2_MC0_CS_ETF_BASE
,
315 [GAUDI2_ETF_HBM2_MC1_CS
] = mmHBM2_MC1_CS_ETF_BASE
,
316 [GAUDI2_ETF_HBM3_MC0_CS
] = mmHBM3_MC0_CS_ETF_BASE
,
317 [GAUDI2_ETF_HBM3_MC1_CS
] = mmHBM3_MC1_CS_ETF_BASE
,
318 [GAUDI2_ETF_HBM4_MC0_CS
] = mmHBM4_MC0_CS_ETF_BASE
,
319 [GAUDI2_ETF_HBM4_MC1_CS
] = mmHBM4_MC1_CS_ETF_BASE
,
320 [GAUDI2_ETF_HBM5_MC0_CS
] = mmHBM5_MC0_CS_ETF_BASE
,
321 [GAUDI2_ETF_HBM5_MC1_CS
] = mmHBM5_MC1_CS_ETF_BASE
,
322 [GAUDI2_ETF_NIC0_DBG_0
] = mmNIC0_DBG_ETF_0_BASE
,
323 [GAUDI2_ETF_NIC0_DBG_1
] = mmNIC0_DBG_ETF_1_BASE
,
324 [GAUDI2_ETF_NIC1_DBG_0
] = mmNIC1_DBG_ETF_0_BASE
,
325 [GAUDI2_ETF_NIC1_DBG_1
] = mmNIC1_DBG_ETF_1_BASE
,
326 [GAUDI2_ETF_NIC2_DBG_0
] = mmNIC2_DBG_ETF_0_BASE
,
327 [GAUDI2_ETF_NIC2_DBG_1
] = mmNIC2_DBG_ETF_1_BASE
,
328 [GAUDI2_ETF_NIC3_DBG_0
] = mmNIC3_DBG_ETF_0_BASE
,
329 [GAUDI2_ETF_NIC3_DBG_1
] = mmNIC3_DBG_ETF_1_BASE
,
330 [GAUDI2_ETF_NIC4_DBG_0
] = mmNIC4_DBG_ETF_0_BASE
,
331 [GAUDI2_ETF_NIC4_DBG_1
] = mmNIC4_DBG_ETF_1_BASE
,
332 [GAUDI2_ETF_NIC5_DBG_0
] = mmNIC5_DBG_ETF_0_BASE
,
333 [GAUDI2_ETF_NIC5_DBG_1
] = mmNIC5_DBG_ETF_1_BASE
,
334 [GAUDI2_ETF_NIC6_DBG_0
] = mmNIC6_DBG_ETF_0_BASE
,
335 [GAUDI2_ETF_NIC6_DBG_1
] = mmNIC6_DBG_ETF_1_BASE
,
336 [GAUDI2_ETF_NIC7_DBG_0
] = mmNIC7_DBG_ETF_0_BASE
,
337 [GAUDI2_ETF_NIC7_DBG_1
] = mmNIC7_DBG_ETF_1_BASE
,
338 [GAUDI2_ETF_NIC8_DBG_0
] = mmNIC8_DBG_ETF_0_BASE
,
339 [GAUDI2_ETF_NIC8_DBG_1
] = mmNIC8_DBG_ETF_1_BASE
,
340 [GAUDI2_ETF_NIC9_DBG_0
] = mmNIC9_DBG_ETF_0_BASE
,
341 [GAUDI2_ETF_NIC9_DBG_1
] = mmNIC9_DBG_ETF_1_BASE
,
342 [GAUDI2_ETF_NIC10_DBG_0
] = mmNIC10_DBG_ETF_0_BASE
,
343 [GAUDI2_ETF_NIC10_DBG_1
] = mmNIC10_DBG_ETF_1_BASE
,
344 [GAUDI2_ETF_NIC11_DBG_0
] = mmNIC11_DBG_ETF_0_BASE
,
345 [GAUDI2_ETF_NIC11_DBG_1
] = mmNIC11_DBG_ETF_1_BASE
348 static u64 debug_funnel_regs
[GAUDI2_FUNNEL_LAST
+ 1] = {
349 [GAUDI2_FUNNEL_DCORE0_TPC0_EML
] = mmDCORE0_TPC0_EML_FUNNEL_BASE
,
350 [GAUDI2_FUNNEL_DCORE0_TPC1_EML
] = mmDCORE0_TPC1_EML_FUNNEL_BASE
,
351 [GAUDI2_FUNNEL_DCORE0_TPC2_EML
] = mmDCORE0_TPC2_EML_FUNNEL_BASE
,
352 [GAUDI2_FUNNEL_DCORE0_TPC3_EML
] = mmDCORE0_TPC3_EML_FUNNEL_BASE
,
353 [GAUDI2_FUNNEL_DCORE0_TPC4_EML
] = mmDCORE0_TPC4_EML_FUNNEL_BASE
,
354 [GAUDI2_FUNNEL_DCORE0_TPC5_EML
] = mmDCORE0_TPC5_EML_FUNNEL_BASE
,
355 [GAUDI2_FUNNEL_DCORE0_TPC6_EML
] = mmDCORE0_TPC6_EML_FUNNEL_BASE
,
356 [GAUDI2_FUNNEL_DCORE1_TPC0_EML
] = mmDCORE1_TPC0_EML_FUNNEL_BASE
,
357 [GAUDI2_FUNNEL_DCORE1_TPC1_EML
] = mmDCORE1_TPC1_EML_FUNNEL_BASE
,
358 [GAUDI2_FUNNEL_DCORE1_TPC2_EML
] = mmDCORE1_TPC2_EML_FUNNEL_BASE
,
359 [GAUDI2_FUNNEL_DCORE1_TPC3_EML
] = mmDCORE1_TPC3_EML_FUNNEL_BASE
,
360 [GAUDI2_FUNNEL_DCORE1_TPC4_EML
] = mmDCORE1_TPC4_EML_FUNNEL_BASE
,
361 [GAUDI2_FUNNEL_DCORE1_TPC5_EML
] = mmDCORE1_TPC5_EML_FUNNEL_BASE
,
362 [GAUDI2_FUNNEL_DCORE2_TPC0_EML
] = mmDCORE2_TPC0_EML_FUNNEL_BASE
,
363 [GAUDI2_FUNNEL_DCORE2_TPC1_EML
] = mmDCORE2_TPC1_EML_FUNNEL_BASE
,
364 [GAUDI2_FUNNEL_DCORE2_TPC2_EML
] = mmDCORE2_TPC2_EML_FUNNEL_BASE
,
365 [GAUDI2_FUNNEL_DCORE2_TPC3_EML
] = mmDCORE2_TPC3_EML_FUNNEL_BASE
,
366 [GAUDI2_FUNNEL_DCORE2_TPC4_EML
] = mmDCORE2_TPC4_EML_FUNNEL_BASE
,
367 [GAUDI2_FUNNEL_DCORE2_TPC5_EML
] = mmDCORE2_TPC5_EML_FUNNEL_BASE
,
368 [GAUDI2_FUNNEL_DCORE3_TPC0_EML
] = mmDCORE3_TPC0_EML_FUNNEL_BASE
,
369 [GAUDI2_FUNNEL_DCORE3_TPC1_EML
] = mmDCORE3_TPC1_EML_FUNNEL_BASE
,
370 [GAUDI2_FUNNEL_DCORE3_TPC2_EML
] = mmDCORE3_TPC2_EML_FUNNEL_BASE
,
371 [GAUDI2_FUNNEL_DCORE3_TPC3_EML
] = mmDCORE3_TPC3_EML_FUNNEL_BASE
,
372 [GAUDI2_FUNNEL_DCORE3_TPC4_EML
] = mmDCORE3_TPC4_EML_FUNNEL_BASE
,
373 [GAUDI2_FUNNEL_DCORE3_TPC5_EML
] = mmDCORE3_TPC5_EML_FUNNEL_BASE
,
374 [GAUDI2_FUNNEL_DCORE0_XFT
] = mmDCORE0_XFT_FUNNEL_BASE
,
375 [GAUDI2_FUNNEL_DCORE0_TFT0
] = mmDCORE0_TFT0_FUNNEL_BASE
,
376 [GAUDI2_FUNNEL_DCORE0_TFT1
] = mmDCORE0_TFT1_FUNNEL_BASE
,
377 [GAUDI2_FUNNEL_DCORE0_TFT2
] = mmDCORE0_TFT2_FUNNEL_BASE
,
378 [GAUDI2_FUNNEL_DCORE0_RTR0
] = mmDCORE0_RTR0_FUNNEL_BASE
,
379 [GAUDI2_FUNNEL_DCORE0_RTR1
] = mmDCORE0_RTR1_FUNNEL_BASE
,
380 [GAUDI2_FUNNEL_DCORE0_RTR2
] = mmDCORE0_RTR2_FUNNEL_BASE
,
381 [GAUDI2_FUNNEL_DCORE0_RTR3
] = mmDCORE0_RTR3_FUNNEL_BASE
,
382 [GAUDI2_FUNNEL_DCORE0_RTR4
] = mmDCORE0_RTR4_FUNNEL_BASE
,
383 [GAUDI2_FUNNEL_DCORE0_MIF0
] = mmDCORE0_MIF0_FUNNEL_BASE
,
384 [GAUDI2_FUNNEL_DCORE0_RTR5
] = mmDCORE0_RTR5_FUNNEL_BASE
,
385 [GAUDI2_FUNNEL_DCORE0_MIF1
] = mmDCORE0_MIF1_FUNNEL_BASE
,
386 [GAUDI2_FUNNEL_DCORE0_RTR6
] = mmDCORE0_RTR6_FUNNEL_BASE
,
387 [GAUDI2_FUNNEL_DCORE0_MIF2
] = mmDCORE0_MIF2_FUNNEL_BASE
,
388 [GAUDI2_FUNNEL_DCORE0_RTR7
] = mmDCORE0_RTR7_FUNNEL_BASE
,
389 [GAUDI2_FUNNEL_DCORE0_MIF3
] = mmDCORE0_MIF3_FUNNEL_BASE
,
390 [GAUDI2_FUNNEL_DCORE1_XFT
] = mmDCORE1_XFT_FUNNEL_BASE
,
391 [GAUDI2_FUNNEL_DCORE1_TFT0
] = mmDCORE1_TFT0_FUNNEL_BASE
,
392 [GAUDI2_FUNNEL_DCORE1_TFT1
] = mmDCORE1_TFT1_FUNNEL_BASE
,
393 [GAUDI2_FUNNEL_DCORE1_TFT2
] = mmDCORE1_TFT2_FUNNEL_BASE
,
394 [GAUDI2_FUNNEL_DCORE1_RTR0
] = mmDCORE1_RTR0_FUNNEL_BASE
,
395 [GAUDI2_FUNNEL_DCORE1_MIF0
] = mmDCORE1_MIF0_FUNNEL_BASE
,
396 [GAUDI2_FUNNEL_DCORE1_RTR1
] = mmDCORE1_RTR1_FUNNEL_BASE
,
397 [GAUDI2_FUNNEL_DCORE1_MIF1
] = mmDCORE1_MIF1_FUNNEL_BASE
,
398 [GAUDI2_FUNNEL_DCORE1_RTR2
] = mmDCORE1_RTR2_FUNNEL_BASE
,
399 [GAUDI2_FUNNEL_DCORE1_MIF2
] = mmDCORE1_MIF2_FUNNEL_BASE
,
400 [GAUDI2_FUNNEL_DCORE1_RTR3
] = mmDCORE1_RTR3_FUNNEL_BASE
,
401 [GAUDI2_FUNNEL_DCORE1_MIF3
] = mmDCORE1_MIF3_FUNNEL_BASE
,
402 [GAUDI2_FUNNEL_DCORE1_RTR4
] = mmDCORE1_RTR4_FUNNEL_BASE
,
403 [GAUDI2_FUNNEL_DCORE1_RTR5
] = mmDCORE1_RTR5_FUNNEL_BASE
,
404 [GAUDI2_FUNNEL_DCORE1_RTR6
] = mmDCORE1_RTR6_FUNNEL_BASE
,
405 [GAUDI2_FUNNEL_DCORE1_RTR7
] = mmDCORE1_RTR7_FUNNEL_BASE
,
406 [GAUDI2_FUNNEL_DCORE2_XFT
] = mmDCORE2_XFT_FUNNEL_BASE
,
407 [GAUDI2_FUNNEL_DCORE2_TFT0
] = mmDCORE2_TFT0_FUNNEL_BASE
,
408 [GAUDI2_FUNNEL_DCORE2_TFT1
] = mmDCORE2_TFT1_FUNNEL_BASE
,
409 [GAUDI2_FUNNEL_DCORE2_TFT2
] = mmDCORE2_TFT2_FUNNEL_BASE
,
410 [GAUDI2_FUNNEL_DCORE2_RTR0
] = mmDCORE2_RTR0_FUNNEL_BASE
,
411 [GAUDI2_FUNNEL_DCORE2_RTR1
] = mmDCORE2_RTR1_FUNNEL_BASE
,
412 [GAUDI2_FUNNEL_DCORE2_RTR2
] = mmDCORE2_RTR2_FUNNEL_BASE
,
413 [GAUDI2_FUNNEL_DCORE2_RTR3
] = mmDCORE2_RTR3_FUNNEL_BASE
,
414 [GAUDI2_FUNNEL_DCORE2_RTR4
] = mmDCORE2_RTR4_FUNNEL_BASE
,
415 [GAUDI2_FUNNEL_DCORE2_MIF0
] = mmDCORE2_MIF0_FUNNEL_BASE
,
416 [GAUDI2_FUNNEL_DCORE2_RTR5
] = mmDCORE2_RTR5_FUNNEL_BASE
,
417 [GAUDI2_FUNNEL_DCORE2_MIF1
] = mmDCORE2_MIF1_FUNNEL_BASE
,
418 [GAUDI2_FUNNEL_DCORE2_RTR6
] = mmDCORE2_RTR6_FUNNEL_BASE
,
419 [GAUDI2_FUNNEL_DCORE2_MIF2
] = mmDCORE2_MIF2_FUNNEL_BASE
,
420 [GAUDI2_FUNNEL_DCORE2_RTR7
] = mmDCORE2_RTR7_FUNNEL_BASE
,
421 [GAUDI2_FUNNEL_DCORE2_MIF3
] = mmDCORE2_MIF3_FUNNEL_BASE
,
422 [GAUDI2_FUNNEL_DCORE3_XFT
] = mmDCORE3_XFT_FUNNEL_BASE
,
423 [GAUDI2_FUNNEL_DCORE3_TFT0
] = mmDCORE3_TFT0_FUNNEL_BASE
,
424 [GAUDI2_FUNNEL_DCORE3_TFT1
] = mmDCORE3_TFT1_FUNNEL_BASE
,
425 [GAUDI2_FUNNEL_DCORE3_TFT2
] = mmDCORE3_TFT2_FUNNEL_BASE
,
426 [GAUDI2_FUNNEL_DCORE3_RTR0
] = mmDCORE3_RTR0_FUNNEL_BASE
,
427 [GAUDI2_FUNNEL_DCORE3_MIF0
] = mmDCORE3_MIF0_FUNNEL_BASE
,
428 [GAUDI2_FUNNEL_DCORE3_RTR1
] = mmDCORE3_RTR1_FUNNEL_BASE
,
429 [GAUDI2_FUNNEL_DCORE3_MIF1
] = mmDCORE3_MIF1_FUNNEL_BASE
,
430 [GAUDI2_FUNNEL_DCORE3_RTR2
] = mmDCORE3_RTR2_FUNNEL_BASE
,
431 [GAUDI2_FUNNEL_DCORE3_MIF2
] = mmDCORE3_MIF2_FUNNEL_BASE
,
432 [GAUDI2_FUNNEL_DCORE3_RTR3
] = mmDCORE3_RTR3_FUNNEL_BASE
,
433 [GAUDI2_FUNNEL_DCORE3_MIF3
] = mmDCORE3_MIF3_FUNNEL_BASE
,
434 [GAUDI2_FUNNEL_DCORE3_RTR4
] = mmDCORE3_RTR4_FUNNEL_BASE
,
435 [GAUDI2_FUNNEL_DCORE3_RTR5
] = mmDCORE3_RTR5_FUNNEL_BASE
,
436 [GAUDI2_FUNNEL_DCORE3_RTR6
] = mmDCORE3_RTR6_FUNNEL_BASE
,
437 [GAUDI2_FUNNEL_DCORE3_RTR7
] = mmDCORE3_RTR7_FUNNEL_BASE
,
438 [GAUDI2_FUNNEL_PSOC
] = mmPSOC_FUNNEL_BASE
,
439 [GAUDI2_FUNNEL_PSOC_ARC0
] = 0,
440 [GAUDI2_FUNNEL_PSOC_ARC1
] = 0,
441 [GAUDI2_FUNNEL_XDMA
] = mmXDMA_FUNNEL_BASE
,
442 [GAUDI2_FUNNEL_CPU
] = mmCPU_FUNNEL_BASE
,
443 [GAUDI2_FUNNEL_PMMU
] = mmPMMU_FUNNEL_BASE
,
444 [GAUDI2_FUNNEL_PMMU_DEC
] = mmPMMU_FUNNEL_DEC_BASE
,
445 [GAUDI2_FUNNEL_DCORE0_XBAR_MID
] = mmDCORE0_XBAR_MID_FUNNEL_BASE
,
446 [GAUDI2_FUNNEL_DCORE0_XBAR_EDGE
] = mmDCORE0_XBAR_EDGE_FUNNEL_BASE
,
447 [GAUDI2_FUNNEL_DCORE1_XBAR_MID
] = mmDCORE1_XBAR_MID_FUNNEL_BASE
,
448 [GAUDI2_FUNNEL_DCORE1_XBAR_EDGE
] = mmDCORE1_XBAR_EDGE_FUNNEL_BASE
,
449 [GAUDI2_FUNNEL_DCORE2_XBAR_MID
] = mmDCORE2_XBAR_MID_FUNNEL_BASE
,
450 [GAUDI2_FUNNEL_DCORE2_XBAR_EDGE
] = mmDCORE2_XBAR_EDGE_FUNNEL_BASE
,
451 [GAUDI2_FUNNEL_DCORE3_XBAR_MID
] = mmDCORE3_XBAR_MID_FUNNEL_BASE
,
452 [GAUDI2_FUNNEL_DCORE3_XBAR_EDGE
] = mmDCORE3_XBAR_EDGE_FUNNEL_BASE
,
453 [GAUDI2_FUNNEL_ARC_FARM
] = mmARC_FARM_FUNNEL_BASE
,
454 [GAUDI2_FUNNEL_HBM0_MC0
] = mmHBM0_MC0_FUNNEL_BASE
,
455 [GAUDI2_FUNNEL_HBM0_MC1
] = mmHBM0_MC1_FUNNEL_BASE
,
456 [GAUDI2_FUNNEL_HBM1_MC0
] = mmHBM1_MC0_FUNNEL_BASE
,
457 [GAUDI2_FUNNEL_HBM1_MC1
] = mmHBM1_MC1_FUNNEL_BASE
,
458 [GAUDI2_FUNNEL_HBM2_MC0
] = mmHBM2_MC0_FUNNEL_BASE
,
459 [GAUDI2_FUNNEL_HBM2_MC1
] = mmHBM2_MC1_FUNNEL_BASE
,
460 [GAUDI2_FUNNEL_HBM3_MC0
] = mmHBM3_MC0_FUNNEL_BASE
,
461 [GAUDI2_FUNNEL_HBM3_MC1
] = mmHBM3_MC1_FUNNEL_BASE
,
462 [GAUDI2_FUNNEL_HBM4_MC0
] = mmHBM4_MC0_FUNNEL_BASE
,
463 [GAUDI2_FUNNEL_HBM4_MC1
] = mmHBM4_MC1_FUNNEL_BASE
,
464 [GAUDI2_FUNNEL_HBM5_MC0
] = mmHBM5_MC0_FUNNEL_BASE
,
465 [GAUDI2_FUNNEL_HBM5_MC1
] = mmHBM5_MC1_FUNNEL_BASE
,
466 [GAUDI2_FUNNEL_NIC0_DBG_TX
] = mmNIC0_DBG_FUNNEL_TX_BASE
,
467 [GAUDI2_FUNNEL_NIC0_DBG_NCH
] = mmNIC0_DBG_FUNNEL_NCH_BASE
,
468 [GAUDI2_FUNNEL_NIC1_DBG_TX
] = mmNIC1_DBG_FUNNEL_TX_BASE
,
469 [GAUDI2_FUNNEL_NIC1_DBG_NCH
] = mmNIC1_DBG_FUNNEL_NCH_BASE
,
470 [GAUDI2_FUNNEL_NIC2_DBG_TX
] = mmNIC2_DBG_FUNNEL_TX_BASE
,
471 [GAUDI2_FUNNEL_NIC2_DBG_NCH
] = mmNIC2_DBG_FUNNEL_NCH_BASE
,
472 [GAUDI2_FUNNEL_NIC3_DBG_TX
] = mmNIC3_DBG_FUNNEL_TX_BASE
,
473 [GAUDI2_FUNNEL_NIC3_DBG_NCH
] = mmNIC3_DBG_FUNNEL_NCH_BASE
,
474 [GAUDI2_FUNNEL_NIC4_DBG_TX
] = mmNIC4_DBG_FUNNEL_TX_BASE
,
475 [GAUDI2_FUNNEL_NIC4_DBG_NCH
] = mmNIC4_DBG_FUNNEL_NCH_BASE
,
476 [GAUDI2_FUNNEL_NIC5_DBG_TX
] = mmNIC5_DBG_FUNNEL_TX_BASE
,
477 [GAUDI2_FUNNEL_NIC5_DBG_NCH
] = mmNIC5_DBG_FUNNEL_NCH_BASE
,
478 [GAUDI2_FUNNEL_NIC6_DBG_TX
] = mmNIC6_DBG_FUNNEL_TX_BASE
,
479 [GAUDI2_FUNNEL_NIC6_DBG_NCH
] = mmNIC6_DBG_FUNNEL_NCH_BASE
,
480 [GAUDI2_FUNNEL_NIC7_DBG_TX
] = mmNIC7_DBG_FUNNEL_TX_BASE
,
481 [GAUDI2_FUNNEL_NIC7_DBG_NCH
] = mmNIC7_DBG_FUNNEL_NCH_BASE
,
482 [GAUDI2_FUNNEL_NIC8_DBG_TX
] = mmNIC8_DBG_FUNNEL_TX_BASE
,
483 [GAUDI2_FUNNEL_NIC8_DBG_NCH
] = mmNIC8_DBG_FUNNEL_NCH_BASE
,
484 [GAUDI2_FUNNEL_NIC9_DBG_TX
] = mmNIC9_DBG_FUNNEL_TX_BASE
,
485 [GAUDI2_FUNNEL_NIC9_DBG_NCH
] = mmNIC9_DBG_FUNNEL_NCH_BASE
,
486 [GAUDI2_FUNNEL_NIC10_DBG_TX
] = mmNIC10_DBG_FUNNEL_TX_BASE
,
487 [GAUDI2_FUNNEL_NIC10_DBG_NCH
] = mmNIC10_DBG_FUNNEL_NCH_BASE
,
488 [GAUDI2_FUNNEL_NIC11_DBG_TX
] = mmNIC11_DBG_FUNNEL_TX_BASE
,
489 [GAUDI2_FUNNEL_NIC11_DBG_NCH
] = mmNIC11_DBG_FUNNEL_NCH_BASE
492 static u64 debug_bmon_regs
[GAUDI2_BMON_LAST
+ 1] = {
493 [GAUDI2_BMON_DCORE0_TPC0_EML_0
] = mmDCORE0_TPC0_EML_BUSMON_0_BASE
,
494 [GAUDI2_BMON_DCORE0_TPC0_EML_1
] = mmDCORE0_TPC0_EML_BUSMON_1_BASE
,
495 [GAUDI2_BMON_DCORE0_TPC0_EML_2
] = mmDCORE0_TPC0_EML_BUSMON_2_BASE
,
496 [GAUDI2_BMON_DCORE0_TPC0_EML_3
] = mmDCORE0_TPC0_EML_BUSMON_3_BASE
,
497 [GAUDI2_BMON_DCORE0_TPC1_EML_0
] = mmDCORE0_TPC1_EML_BUSMON_0_BASE
,
498 [GAUDI2_BMON_DCORE0_TPC1_EML_1
] = mmDCORE0_TPC1_EML_BUSMON_1_BASE
,
499 [GAUDI2_BMON_DCORE0_TPC1_EML_2
] = mmDCORE0_TPC1_EML_BUSMON_2_BASE
,
500 [GAUDI2_BMON_DCORE0_TPC1_EML_3
] = mmDCORE0_TPC1_EML_BUSMON_3_BASE
,
501 [GAUDI2_BMON_DCORE0_TPC2_EML_0
] = mmDCORE0_TPC2_EML_BUSMON_0_BASE
,
502 [GAUDI2_BMON_DCORE0_TPC2_EML_1
] = mmDCORE0_TPC2_EML_BUSMON_1_BASE
,
503 [GAUDI2_BMON_DCORE0_TPC2_EML_2
] = mmDCORE0_TPC2_EML_BUSMON_2_BASE
,
504 [GAUDI2_BMON_DCORE0_TPC2_EML_3
] = mmDCORE0_TPC2_EML_BUSMON_3_BASE
,
505 [GAUDI2_BMON_DCORE0_TPC3_EML_0
] = mmDCORE0_TPC3_EML_BUSMON_0_BASE
,
506 [GAUDI2_BMON_DCORE0_TPC3_EML_1
] = mmDCORE0_TPC3_EML_BUSMON_1_BASE
,
507 [GAUDI2_BMON_DCORE0_TPC3_EML_2
] = mmDCORE0_TPC3_EML_BUSMON_2_BASE
,
508 [GAUDI2_BMON_DCORE0_TPC3_EML_3
] = mmDCORE0_TPC3_EML_BUSMON_3_BASE
,
509 [GAUDI2_BMON_DCORE0_TPC4_EML_0
] = mmDCORE0_TPC4_EML_BUSMON_0_BASE
,
510 [GAUDI2_BMON_DCORE0_TPC4_EML_1
] = mmDCORE0_TPC4_EML_BUSMON_1_BASE
,
511 [GAUDI2_BMON_DCORE0_TPC4_EML_2
] = mmDCORE0_TPC4_EML_BUSMON_2_BASE
,
512 [GAUDI2_BMON_DCORE0_TPC4_EML_3
] = mmDCORE0_TPC4_EML_BUSMON_3_BASE
,
513 [GAUDI2_BMON_DCORE0_TPC5_EML_0
] = mmDCORE0_TPC5_EML_BUSMON_0_BASE
,
514 [GAUDI2_BMON_DCORE0_TPC5_EML_1
] = mmDCORE0_TPC5_EML_BUSMON_1_BASE
,
515 [GAUDI2_BMON_DCORE0_TPC5_EML_2
] = mmDCORE0_TPC5_EML_BUSMON_2_BASE
,
516 [GAUDI2_BMON_DCORE0_TPC5_EML_3
] = mmDCORE0_TPC5_EML_BUSMON_3_BASE
,
517 [GAUDI2_BMON_DCORE0_TPC6_EML_0
] = mmDCORE0_TPC6_EML_BUSMON_0_BASE
,
518 [GAUDI2_BMON_DCORE0_TPC6_EML_1
] = mmDCORE0_TPC6_EML_BUSMON_1_BASE
,
519 [GAUDI2_BMON_DCORE0_TPC6_EML_2
] = mmDCORE0_TPC6_EML_BUSMON_2_BASE
,
520 [GAUDI2_BMON_DCORE0_TPC6_EML_3
] = mmDCORE0_TPC6_EML_BUSMON_3_BASE
,
521 [GAUDI2_BMON_DCORE1_TPC0_EML_0
] = mmDCORE1_TPC0_EML_BUSMON_0_BASE
,
522 [GAUDI2_BMON_DCORE1_TPC0_EML_1
] = mmDCORE1_TPC0_EML_BUSMON_1_BASE
,
523 [GAUDI2_BMON_DCORE1_TPC0_EML_2
] = mmDCORE1_TPC0_EML_BUSMON_2_BASE
,
524 [GAUDI2_BMON_DCORE1_TPC0_EML_3
] = mmDCORE1_TPC0_EML_BUSMON_3_BASE
,
525 [GAUDI2_BMON_DCORE1_TPC1_EML_0
] = mmDCORE1_TPC1_EML_BUSMON_0_BASE
,
526 [GAUDI2_BMON_DCORE1_TPC1_EML_1
] = mmDCORE1_TPC1_EML_BUSMON_1_BASE
,
527 [GAUDI2_BMON_DCORE1_TPC1_EML_2
] = mmDCORE1_TPC1_EML_BUSMON_2_BASE
,
528 [GAUDI2_BMON_DCORE1_TPC1_EML_3
] = mmDCORE1_TPC1_EML_BUSMON_3_BASE
,
529 [GAUDI2_BMON_DCORE1_TPC2_EML_0
] = mmDCORE1_TPC2_EML_BUSMON_0_BASE
,
530 [GAUDI2_BMON_DCORE1_TPC2_EML_1
] = mmDCORE1_TPC2_EML_BUSMON_1_BASE
,
531 [GAUDI2_BMON_DCORE1_TPC2_EML_2
] = mmDCORE1_TPC2_EML_BUSMON_2_BASE
,
532 [GAUDI2_BMON_DCORE1_TPC2_EML_3
] = mmDCORE1_TPC2_EML_BUSMON_3_BASE
,
533 [GAUDI2_BMON_DCORE1_TPC3_EML_0
] = mmDCORE1_TPC3_EML_BUSMON_0_BASE
,
534 [GAUDI2_BMON_DCORE1_TPC3_EML_1
] = mmDCORE1_TPC3_EML_BUSMON_1_BASE
,
535 [GAUDI2_BMON_DCORE1_TPC3_EML_2
] = mmDCORE1_TPC3_EML_BUSMON_2_BASE
,
536 [GAUDI2_BMON_DCORE1_TPC3_EML_3
] = mmDCORE1_TPC3_EML_BUSMON_3_BASE
,
537 [GAUDI2_BMON_DCORE1_TPC4_EML_0
] = mmDCORE1_TPC4_EML_BUSMON_0_BASE
,
538 [GAUDI2_BMON_DCORE1_TPC4_EML_1
] = mmDCORE1_TPC4_EML_BUSMON_1_BASE
,
539 [GAUDI2_BMON_DCORE1_TPC4_EML_2
] = mmDCORE1_TPC4_EML_BUSMON_2_BASE
,
540 [GAUDI2_BMON_DCORE1_TPC4_EML_3
] = mmDCORE1_TPC4_EML_BUSMON_3_BASE
,
541 [GAUDI2_BMON_DCORE1_TPC5_EML_0
] = mmDCORE1_TPC5_EML_BUSMON_0_BASE
,
542 [GAUDI2_BMON_DCORE1_TPC5_EML_1
] = mmDCORE1_TPC5_EML_BUSMON_1_BASE
,
543 [GAUDI2_BMON_DCORE1_TPC5_EML_2
] = mmDCORE1_TPC5_EML_BUSMON_2_BASE
,
544 [GAUDI2_BMON_DCORE1_TPC5_EML_3
] = mmDCORE1_TPC5_EML_BUSMON_3_BASE
,
545 [GAUDI2_BMON_DCORE2_TPC0_EML_0
] = mmDCORE2_TPC0_EML_BUSMON_0_BASE
,
546 [GAUDI2_BMON_DCORE2_TPC0_EML_1
] = mmDCORE2_TPC0_EML_BUSMON_1_BASE
,
547 [GAUDI2_BMON_DCORE2_TPC0_EML_2
] = mmDCORE2_TPC0_EML_BUSMON_2_BASE
,
548 [GAUDI2_BMON_DCORE2_TPC0_EML_3
] = mmDCORE2_TPC0_EML_BUSMON_3_BASE
,
549 [GAUDI2_BMON_DCORE2_TPC1_EML_0
] = mmDCORE2_TPC1_EML_BUSMON_0_BASE
,
550 [GAUDI2_BMON_DCORE2_TPC1_EML_1
] = mmDCORE2_TPC1_EML_BUSMON_1_BASE
,
551 [GAUDI2_BMON_DCORE2_TPC1_EML_2
] = mmDCORE2_TPC1_EML_BUSMON_2_BASE
,
552 [GAUDI2_BMON_DCORE2_TPC1_EML_3
] = mmDCORE2_TPC1_EML_BUSMON_3_BASE
,
553 [GAUDI2_BMON_DCORE2_TPC2_EML_0
] = mmDCORE2_TPC2_EML_BUSMON_0_BASE
,
554 [GAUDI2_BMON_DCORE2_TPC2_EML_1
] = mmDCORE2_TPC2_EML_BUSMON_1_BASE
,
555 [GAUDI2_BMON_DCORE2_TPC2_EML_2
] = mmDCORE2_TPC2_EML_BUSMON_2_BASE
,
556 [GAUDI2_BMON_DCORE2_TPC2_EML_3
] = mmDCORE2_TPC2_EML_BUSMON_3_BASE
,
557 [GAUDI2_BMON_DCORE2_TPC3_EML_0
] = mmDCORE2_TPC3_EML_BUSMON_0_BASE
,
558 [GAUDI2_BMON_DCORE2_TPC3_EML_1
] = mmDCORE2_TPC3_EML_BUSMON_1_BASE
,
559 [GAUDI2_BMON_DCORE2_TPC3_EML_2
] = mmDCORE2_TPC3_EML_BUSMON_2_BASE
,
560 [GAUDI2_BMON_DCORE2_TPC3_EML_3
] = mmDCORE2_TPC3_EML_BUSMON_3_BASE
,
561 [GAUDI2_BMON_DCORE2_TPC4_EML_0
] = mmDCORE2_TPC4_EML_BUSMON_0_BASE
,
562 [GAUDI2_BMON_DCORE2_TPC4_EML_1
] = mmDCORE2_TPC4_EML_BUSMON_1_BASE
,
563 [GAUDI2_BMON_DCORE2_TPC4_EML_2
] = mmDCORE2_TPC4_EML_BUSMON_2_BASE
,
564 [GAUDI2_BMON_DCORE2_TPC4_EML_3
] = mmDCORE2_TPC4_EML_BUSMON_3_BASE
,
565 [GAUDI2_BMON_DCORE2_TPC5_EML_0
] = mmDCORE2_TPC5_EML_BUSMON_0_BASE
,
566 [GAUDI2_BMON_DCORE2_TPC5_EML_1
] = mmDCORE2_TPC5_EML_BUSMON_1_BASE
,
567 [GAUDI2_BMON_DCORE2_TPC5_EML_2
] = mmDCORE2_TPC5_EML_BUSMON_2_BASE
,
568 [GAUDI2_BMON_DCORE2_TPC5_EML_3
] = mmDCORE2_TPC5_EML_BUSMON_3_BASE
,
569 [GAUDI2_BMON_DCORE3_TPC0_EML_0
] = mmDCORE3_TPC0_EML_BUSMON_0_BASE
,
570 [GAUDI2_BMON_DCORE3_TPC0_EML_1
] = mmDCORE3_TPC0_EML_BUSMON_1_BASE
,
571 [GAUDI2_BMON_DCORE3_TPC0_EML_2
] = mmDCORE3_TPC0_EML_BUSMON_2_BASE
,
572 [GAUDI2_BMON_DCORE3_TPC0_EML_3
] = mmDCORE3_TPC0_EML_BUSMON_3_BASE
,
573 [GAUDI2_BMON_DCORE3_TPC1_EML_0
] = mmDCORE3_TPC1_EML_BUSMON_0_BASE
,
574 [GAUDI2_BMON_DCORE3_TPC1_EML_1
] = mmDCORE3_TPC1_EML_BUSMON_1_BASE
,
575 [GAUDI2_BMON_DCORE3_TPC1_EML_2
] = mmDCORE3_TPC1_EML_BUSMON_2_BASE
,
576 [GAUDI2_BMON_DCORE3_TPC1_EML_3
] = mmDCORE3_TPC1_EML_BUSMON_3_BASE
,
577 [GAUDI2_BMON_DCORE3_TPC2_EML_0
] = mmDCORE3_TPC2_EML_BUSMON_0_BASE
,
578 [GAUDI2_BMON_DCORE3_TPC2_EML_1
] = mmDCORE3_TPC2_EML_BUSMON_1_BASE
,
579 [GAUDI2_BMON_DCORE3_TPC2_EML_2
] = mmDCORE3_TPC2_EML_BUSMON_2_BASE
,
580 [GAUDI2_BMON_DCORE3_TPC2_EML_3
] = mmDCORE3_TPC2_EML_BUSMON_3_BASE
,
581 [GAUDI2_BMON_DCORE3_TPC3_EML_0
] = mmDCORE3_TPC3_EML_BUSMON_0_BASE
,
582 [GAUDI2_BMON_DCORE3_TPC3_EML_1
] = mmDCORE3_TPC3_EML_BUSMON_1_BASE
,
583 [GAUDI2_BMON_DCORE3_TPC3_EML_2
] = mmDCORE3_TPC3_EML_BUSMON_2_BASE
,
584 [GAUDI2_BMON_DCORE3_TPC3_EML_3
] = mmDCORE3_TPC3_EML_BUSMON_3_BASE
,
585 [GAUDI2_BMON_DCORE3_TPC4_EML_0
] = mmDCORE3_TPC4_EML_BUSMON_0_BASE
,
586 [GAUDI2_BMON_DCORE3_TPC4_EML_1
] = mmDCORE3_TPC4_EML_BUSMON_1_BASE
,
587 [GAUDI2_BMON_DCORE3_TPC4_EML_2
] = mmDCORE3_TPC4_EML_BUSMON_2_BASE
,
588 [GAUDI2_BMON_DCORE3_TPC4_EML_3
] = mmDCORE3_TPC4_EML_BUSMON_3_BASE
,
589 [GAUDI2_BMON_DCORE3_TPC5_EML_0
] = mmDCORE3_TPC5_EML_BUSMON_0_BASE
,
590 [GAUDI2_BMON_DCORE3_TPC5_EML_1
] = mmDCORE3_TPC5_EML_BUSMON_1_BASE
,
591 [GAUDI2_BMON_DCORE3_TPC5_EML_2
] = mmDCORE3_TPC5_EML_BUSMON_2_BASE
,
592 [GAUDI2_BMON_DCORE3_TPC5_EML_3
] = mmDCORE3_TPC5_EML_BUSMON_3_BASE
,
593 [GAUDI2_BMON_DCORE0_HMMU0_0
] = mmDCORE0_HMMU0_BMON_0_BASE
,
594 [GAUDI2_BMON_DCORE0_HMMU0_1
] = mmDCORE0_HMMU0_BMON_1_BASE
,
595 [GAUDI2_BMON_DCORE0_HMMU0_3
] = mmDCORE0_HMMU0_BMON_3_BASE
,
596 [GAUDI2_BMON_DCORE0_HMMU0_2
] = mmDCORE0_HMMU0_BMON_2_BASE
,
597 [GAUDI2_BMON_DCORE0_HMMU0_4
] = mmDCORE0_HMMU0_BMON_4_BASE
,
598 [GAUDI2_BMON_DCORE0_HMMU1_0
] = mmDCORE0_HMMU1_BMON_0_BASE
,
599 [GAUDI2_BMON_DCORE0_HMMU1_1
] = mmDCORE0_HMMU1_BMON_1_BASE
,
600 [GAUDI2_BMON_DCORE0_HMMU1_3
] = mmDCORE0_HMMU1_BMON_3_BASE
,
601 [GAUDI2_BMON_DCORE0_HMMU1_2
] = mmDCORE0_HMMU1_BMON_2_BASE
,
602 [GAUDI2_BMON_DCORE0_HMMU1_4
] = mmDCORE0_HMMU1_BMON_4_BASE
,
603 [GAUDI2_BMON_DCORE0_HMMU2_0
] = mmDCORE0_HMMU2_BMON_0_BASE
,
604 [GAUDI2_BMON_DCORE0_HMMU2_1
] = mmDCORE0_HMMU2_BMON_1_BASE
,
605 [GAUDI2_BMON_DCORE0_HMMU2_3
] = mmDCORE0_HMMU2_BMON_3_BASE
,
606 [GAUDI2_BMON_DCORE0_HMMU2_2
] = mmDCORE0_HMMU2_BMON_2_BASE
,
607 [GAUDI2_BMON_DCORE0_HMMU2_4
] = mmDCORE0_HMMU2_BMON_4_BASE
,
608 [GAUDI2_BMON_DCORE0_HMMU3_0
] = mmDCORE0_HMMU3_BMON_0_BASE
,
609 [GAUDI2_BMON_DCORE0_HMMU3_1
] = mmDCORE0_HMMU3_BMON_1_BASE
,
610 [GAUDI2_BMON_DCORE0_HMMU3_3
] = mmDCORE0_HMMU3_BMON_3_BASE
,
611 [GAUDI2_BMON_DCORE0_HMMU3_2
] = mmDCORE0_HMMU3_BMON_2_BASE
,
612 [GAUDI2_BMON_DCORE0_HMMU3_4
] = mmDCORE0_HMMU3_BMON_4_BASE
,
613 [GAUDI2_BMON_DCORE0_MME_CTRL_0
] = mmDCORE0_MME_CTRL_BMON0_BASE
,
614 [GAUDI2_BMON_DCORE0_MME_CTRL_1
] = mmDCORE0_MME_CTRL_BMON1_BASE
,
615 [GAUDI2_BMON_DCORE0_MME_CTRL_2
] = mmDCORE0_MME_CTRL_BMON2_BASE
,
616 [GAUDI2_BMON_DCORE0_MME_CTRL_3
] = mmDCORE0_MME_CTRL_BMON3_BASE
,
617 [GAUDI2_BMON_DCORE0_MME_SBTE0_0
] = mmDCORE0_MME_SBTE0_BMON0_BASE
,
618 [GAUDI2_BMON_DCORE0_MME_SBTE1_0
] = mmDCORE0_MME_SBTE1_BMON0_BASE
,
619 [GAUDI2_BMON_DCORE0_MME_SBTE2_0
] = mmDCORE0_MME_SBTE2_BMON0_BASE
,
620 [GAUDI2_BMON_DCORE0_MME_SBTE3_0
] = mmDCORE0_MME_SBTE3_BMON0_BASE
,
621 [GAUDI2_BMON_DCORE0_MME_SBTE4_0
] = mmDCORE0_MME_SBTE4_BMON0_BASE
,
622 [GAUDI2_BMON_DCORE0_MME_ACC_0
] = mmDCORE0_MME_ACC_BMON0_BASE
,
623 [GAUDI2_BMON_DCORE0_MME_ACC_1
] = mmDCORE0_MME_ACC_BMON1_BASE
,
624 [GAUDI2_BMON_DCORE0_SM
] = mmDCORE0_SM_BMON_BASE
,
625 [GAUDI2_BMON_DCORE0_SM_1
] = mmDCORE0_SM_BMON1_BASE
,
626 [GAUDI2_BMON_DCORE0_EDMA0_0
] = mmDCORE0_EDMA0_BMON_0_BASE
,
627 [GAUDI2_BMON_DCORE0_EDMA0_1
] = mmDCORE0_EDMA0_BMON_1_BASE
,
628 [GAUDI2_BMON_DCORE0_EDMA1_0
] = mmDCORE0_EDMA1_BMON_0_BASE
,
629 [GAUDI2_BMON_DCORE0_EDMA1_1
] = mmDCORE0_EDMA1_BMON_1_BASE
,
630 [GAUDI2_BMON_DCORE0_VDEC0_0
] = mmDCORE0_VDEC0_BMON_0_BASE
,
631 [GAUDI2_BMON_DCORE0_VDEC0_1
] = mmDCORE0_VDEC0_BMON_1_BASE
,
632 [GAUDI2_BMON_DCORE0_VDEC0_2
] = mmDCORE0_VDEC0_BMON_2_BASE
,
633 [GAUDI2_BMON_DCORE0_VDEC1_0
] = mmDCORE0_VDEC1_BMON_0_BASE
,
634 [GAUDI2_BMON_DCORE0_VDEC1_1
] = mmDCORE0_VDEC1_BMON_1_BASE
,
635 [GAUDI2_BMON_DCORE0_VDEC1_2
] = mmDCORE0_VDEC1_BMON_2_BASE
,
636 [GAUDI2_BMON_DCORE1_HMMU0_0
] = mmDCORE1_HMMU0_BMON_0_BASE
,
637 [GAUDI2_BMON_DCORE1_HMMU0_1
] = mmDCORE1_HMMU0_BMON_1_BASE
,
638 [GAUDI2_BMON_DCORE1_HMMU0_3
] = mmDCORE1_HMMU0_BMON_3_BASE
,
639 [GAUDI2_BMON_DCORE1_HMMU0_2
] = mmDCORE1_HMMU0_BMON_2_BASE
,
640 [GAUDI2_BMON_DCORE1_HMMU0_4
] = mmDCORE1_HMMU0_BMON_4_BASE
,
641 [GAUDI2_BMON_DCORE1_HMMU1_0
] = mmDCORE1_HMMU1_BMON_0_BASE
,
642 [GAUDI2_BMON_DCORE1_HMMU1_1
] = mmDCORE1_HMMU1_BMON_1_BASE
,
643 [GAUDI2_BMON_DCORE1_HMMU1_3
] = mmDCORE1_HMMU1_BMON_3_BASE
,
644 [GAUDI2_BMON_DCORE1_HMMU1_2
] = mmDCORE1_HMMU1_BMON_2_BASE
,
645 [GAUDI2_BMON_DCORE1_HMMU1_4
] = mmDCORE1_HMMU1_BMON_4_BASE
,
646 [GAUDI2_BMON_DCORE1_HMMU2_0
] = mmDCORE1_HMMU2_BMON_0_BASE
,
647 [GAUDI2_BMON_DCORE1_HMMU2_1
] = mmDCORE1_HMMU2_BMON_1_BASE
,
648 [GAUDI2_BMON_DCORE1_HMMU2_3
] = mmDCORE1_HMMU2_BMON_3_BASE
,
649 [GAUDI2_BMON_DCORE1_HMMU2_2
] = mmDCORE1_HMMU2_BMON_2_BASE
,
650 [GAUDI2_BMON_DCORE1_HMMU2_4
] = mmDCORE1_HMMU2_BMON_4_BASE
,
651 [GAUDI2_BMON_DCORE1_HMMU3_0
] = mmDCORE1_HMMU3_BMON_0_BASE
,
652 [GAUDI2_BMON_DCORE1_HMMU3_1
] = mmDCORE1_HMMU3_BMON_1_BASE
,
653 [GAUDI2_BMON_DCORE1_HMMU3_3
] = mmDCORE1_HMMU3_BMON_3_BASE
,
654 [GAUDI2_BMON_DCORE1_HMMU3_2
] = mmDCORE1_HMMU3_BMON_2_BASE
,
655 [GAUDI2_BMON_DCORE1_HMMU3_4
] = mmDCORE1_HMMU3_BMON_4_BASE
,
656 [GAUDI2_BMON_DCORE1_MME_CTRL_0
] = mmDCORE1_MME_CTRL_BMON0_BASE
,
657 [GAUDI2_BMON_DCORE1_MME_CTRL_1
] = mmDCORE1_MME_CTRL_BMON1_BASE
,
658 [GAUDI2_BMON_DCORE1_MME_CTRL_2
] = mmDCORE1_MME_CTRL_BMON2_BASE
,
659 [GAUDI2_BMON_DCORE1_MME_CTRL_3
] = mmDCORE1_MME_CTRL_BMON3_BASE
,
660 [GAUDI2_BMON_DCORE1_MME_SBTE0_0
] = mmDCORE1_MME_SBTE0_BMON0_BASE
,
661 [GAUDI2_BMON_DCORE1_MME_SBTE1_0
] = mmDCORE1_MME_SBTE1_BMON0_BASE
,
662 [GAUDI2_BMON_DCORE1_MME_SBTE2_0
] = mmDCORE1_MME_SBTE2_BMON0_BASE
,
663 [GAUDI2_BMON_DCORE1_MME_SBTE3_0
] = mmDCORE1_MME_SBTE3_BMON0_BASE
,
664 [GAUDI2_BMON_DCORE1_MME_SBTE4_0
] = mmDCORE1_MME_SBTE4_BMON0_BASE
,
665 [GAUDI2_BMON_DCORE1_MME_ACC_0
] = mmDCORE1_MME_ACC_BMON0_BASE
,
666 [GAUDI2_BMON_DCORE1_MME_ACC_1
] = mmDCORE1_MME_ACC_BMON1_BASE
,
667 [GAUDI2_BMON_DCORE1_SM
] = mmDCORE1_SM_BMON_BASE
,
668 [GAUDI2_BMON_DCORE1_SM_1
] = mmDCORE1_SM_BMON1_BASE
,
669 [GAUDI2_BMON_DCORE1_EDMA0_0
] = mmDCORE1_EDMA0_BMON_0_BASE
,
670 [GAUDI2_BMON_DCORE1_EDMA0_1
] = mmDCORE1_EDMA0_BMON_1_BASE
,
671 [GAUDI2_BMON_DCORE1_EDMA1_0
] = mmDCORE1_EDMA1_BMON_0_BASE
,
672 [GAUDI2_BMON_DCORE1_EDMA1_1
] = mmDCORE1_EDMA1_BMON_1_BASE
,
673 [GAUDI2_BMON_DCORE1_VDEC0_0
] = mmDCORE1_VDEC0_BMON_0_BASE
,
674 [GAUDI2_BMON_DCORE1_VDEC0_1
] = mmDCORE1_VDEC0_BMON_1_BASE
,
675 [GAUDI2_BMON_DCORE1_VDEC0_2
] = mmDCORE1_VDEC0_BMON_2_BASE
,
676 [GAUDI2_BMON_DCORE1_VDEC1_0
] = mmDCORE1_VDEC1_BMON_0_BASE
,
677 [GAUDI2_BMON_DCORE1_VDEC1_1
] = mmDCORE1_VDEC1_BMON_1_BASE
,
678 [GAUDI2_BMON_DCORE1_VDEC1_2
] = mmDCORE1_VDEC1_BMON_2_BASE
,
679 [GAUDI2_BMON_DCORE2_HMMU0_0
] = mmDCORE2_HMMU0_BMON_0_BASE
,
680 [GAUDI2_BMON_DCORE2_HMMU0_1
] = mmDCORE2_HMMU0_BMON_1_BASE
,
681 [GAUDI2_BMON_DCORE2_HMMU0_3
] = mmDCORE2_HMMU0_BMON_3_BASE
,
682 [GAUDI2_BMON_DCORE2_HMMU0_2
] = mmDCORE2_HMMU0_BMON_2_BASE
,
683 [GAUDI2_BMON_DCORE2_HMMU0_4
] = mmDCORE2_HMMU0_BMON_4_BASE
,
684 [GAUDI2_BMON_DCORE2_HMMU1_0
] = mmDCORE2_HMMU1_BMON_0_BASE
,
685 [GAUDI2_BMON_DCORE2_HMMU1_1
] = mmDCORE2_HMMU1_BMON_1_BASE
,
686 [GAUDI2_BMON_DCORE2_HMMU1_3
] = mmDCORE2_HMMU1_BMON_3_BASE
,
687 [GAUDI2_BMON_DCORE2_HMMU1_2
] = mmDCORE2_HMMU1_BMON_2_BASE
,
688 [GAUDI2_BMON_DCORE2_HMMU1_4
] = mmDCORE2_HMMU1_BMON_4_BASE
,
689 [GAUDI2_BMON_DCORE2_HMMU2_0
] = mmDCORE2_HMMU2_BMON_0_BASE
,
690 [GAUDI2_BMON_DCORE2_HMMU2_1
] = mmDCORE2_HMMU2_BMON_1_BASE
,
691 [GAUDI2_BMON_DCORE2_HMMU2_3
] = mmDCORE2_HMMU2_BMON_3_BASE
,
692 [GAUDI2_BMON_DCORE2_HMMU2_2
] = mmDCORE2_HMMU2_BMON_2_BASE
,
693 [GAUDI2_BMON_DCORE2_HMMU2_4
] = mmDCORE2_HMMU2_BMON_4_BASE
,
694 [GAUDI2_BMON_DCORE2_HMMU3_0
] = mmDCORE2_HMMU3_BMON_0_BASE
,
695 [GAUDI2_BMON_DCORE2_HMMU3_1
] = mmDCORE2_HMMU3_BMON_1_BASE
,
696 [GAUDI2_BMON_DCORE2_HMMU3_3
] = mmDCORE2_HMMU3_BMON_3_BASE
,
697 [GAUDI2_BMON_DCORE2_HMMU3_2
] = mmDCORE2_HMMU3_BMON_2_BASE
,
698 [GAUDI2_BMON_DCORE2_HMMU3_4
] = mmDCORE2_HMMU3_BMON_4_BASE
,
699 [GAUDI2_BMON_DCORE2_MME_CTRL_0
] = mmDCORE2_MME_CTRL_BMON0_BASE
,
700 [GAUDI2_BMON_DCORE2_MME_CTRL_1
] = mmDCORE2_MME_CTRL_BMON1_BASE
,
701 [GAUDI2_BMON_DCORE2_MME_CTRL_2
] = mmDCORE2_MME_CTRL_BMON2_BASE
,
702 [GAUDI2_BMON_DCORE2_MME_CTRL_3
] = mmDCORE2_MME_CTRL_BMON3_BASE
,
703 [GAUDI2_BMON_DCORE2_MME_SBTE0_0
] = mmDCORE2_MME_SBTE0_BMON0_BASE
,
704 [GAUDI2_BMON_DCORE2_MME_SBTE1_0
] = mmDCORE2_MME_SBTE1_BMON0_BASE
,
705 [GAUDI2_BMON_DCORE2_MME_SBTE2_0
] = mmDCORE2_MME_SBTE2_BMON0_BASE
,
706 [GAUDI2_BMON_DCORE2_MME_SBTE3_0
] = mmDCORE2_MME_SBTE3_BMON0_BASE
,
707 [GAUDI2_BMON_DCORE2_MME_SBTE4_0
] = mmDCORE2_MME_SBTE4_BMON0_BASE
,
708 [GAUDI2_BMON_DCORE2_MME_ACC_0
] = mmDCORE2_MME_ACC_BMON0_BASE
,
709 [GAUDI2_BMON_DCORE2_MME_ACC_1
] = mmDCORE2_MME_ACC_BMON1_BASE
,
710 [GAUDI2_BMON_DCORE2_SM
] = mmDCORE2_SM_BMON_BASE
,
711 [GAUDI2_BMON_DCORE2_SM_1
] = mmDCORE2_SM_BMON1_BASE
,
712 [GAUDI2_BMON_DCORE2_EDMA0_0
] = mmDCORE2_EDMA0_BMON_0_BASE
,
713 [GAUDI2_BMON_DCORE2_EDMA0_1
] = mmDCORE2_EDMA0_BMON_1_BASE
,
714 [GAUDI2_BMON_DCORE2_EDMA1_0
] = mmDCORE2_EDMA1_BMON_0_BASE
,
715 [GAUDI2_BMON_DCORE2_EDMA1_1
] = mmDCORE2_EDMA1_BMON_1_BASE
,
716 [GAUDI2_BMON_DCORE2_VDEC0_0
] = mmDCORE2_VDEC0_BMON_0_BASE
,
717 [GAUDI2_BMON_DCORE2_VDEC0_1
] = mmDCORE2_VDEC0_BMON_1_BASE
,
718 [GAUDI2_BMON_DCORE2_VDEC0_2
] = mmDCORE2_VDEC0_BMON_2_BASE
,
719 [GAUDI2_BMON_DCORE2_VDEC1_0
] = mmDCORE2_VDEC1_BMON_0_BASE
,
720 [GAUDI2_BMON_DCORE2_VDEC1_1
] = mmDCORE2_VDEC1_BMON_1_BASE
,
721 [GAUDI2_BMON_DCORE2_VDEC1_2
] = mmDCORE2_VDEC1_BMON_2_BASE
,
722 [GAUDI2_BMON_DCORE3_HMMU0_0
] = mmDCORE3_HMMU0_BMON_0_BASE
,
723 [GAUDI2_BMON_DCORE3_HMMU0_1
] = mmDCORE3_HMMU0_BMON_1_BASE
,
724 [GAUDI2_BMON_DCORE3_HMMU0_3
] = mmDCORE3_HMMU0_BMON_3_BASE
,
725 [GAUDI2_BMON_DCORE3_HMMU0_2
] = mmDCORE3_HMMU0_BMON_2_BASE
,
726 [GAUDI2_BMON_DCORE3_HMMU0_4
] = mmDCORE3_HMMU0_BMON_4_BASE
,
727 [GAUDI2_BMON_DCORE3_HMMU1_0
] = mmDCORE3_HMMU1_BMON_0_BASE
,
728 [GAUDI2_BMON_DCORE3_HMMU1_1
] = mmDCORE3_HMMU1_BMON_1_BASE
,
729 [GAUDI2_BMON_DCORE3_HMMU1_3
] = mmDCORE3_HMMU1_BMON_3_BASE
,
730 [GAUDI2_BMON_DCORE3_HMMU1_2
] = mmDCORE3_HMMU1_BMON_2_BASE
,
731 [GAUDI2_BMON_DCORE3_HMMU1_4
] = mmDCORE3_HMMU1_BMON_4_BASE
,
732 [GAUDI2_BMON_DCORE3_HMMU2_0
] = mmDCORE3_HMMU2_BMON_0_BASE
,
733 [GAUDI2_BMON_DCORE3_HMMU2_1
] = mmDCORE3_HMMU2_BMON_1_BASE
,
734 [GAUDI2_BMON_DCORE3_HMMU2_3
] = mmDCORE3_HMMU2_BMON_3_BASE
,
735 [GAUDI2_BMON_DCORE3_HMMU2_2
] = mmDCORE3_HMMU2_BMON_2_BASE
,
736 [GAUDI2_BMON_DCORE3_HMMU2_4
] = mmDCORE3_HMMU2_BMON_4_BASE
,
737 [GAUDI2_BMON_DCORE3_HMMU3_0
] = mmDCORE3_HMMU3_BMON_0_BASE
,
738 [GAUDI2_BMON_DCORE3_HMMU3_1
] = mmDCORE3_HMMU3_BMON_1_BASE
,
739 [GAUDI2_BMON_DCORE3_HMMU3_3
] = mmDCORE3_HMMU3_BMON_3_BASE
,
740 [GAUDI2_BMON_DCORE3_HMMU3_2
] = mmDCORE3_HMMU3_BMON_2_BASE
,
741 [GAUDI2_BMON_DCORE3_HMMU3_4
] = mmDCORE3_HMMU3_BMON_4_BASE
,
742 [GAUDI2_BMON_DCORE3_MME_CTRL_0
] = mmDCORE3_MME_CTRL_BMON0_BASE
,
743 [GAUDI2_BMON_DCORE3_MME_CTRL_1
] = mmDCORE3_MME_CTRL_BMON1_BASE
,
744 [GAUDI2_BMON_DCORE3_MME_CTRL_2
] = mmDCORE3_MME_CTRL_BMON2_BASE
,
745 [GAUDI2_BMON_DCORE3_MME_CTRL_3
] = mmDCORE3_MME_CTRL_BMON3_BASE
,
746 [GAUDI2_BMON_DCORE3_MME_SBTE0_0
] = mmDCORE3_MME_SBTE0_BMON0_BASE
,
747 [GAUDI2_BMON_DCORE3_MME_SBTE1_0
] = mmDCORE3_MME_SBTE1_BMON0_BASE
,
748 [GAUDI2_BMON_DCORE3_MME_SBTE2_0
] = mmDCORE3_MME_SBTE2_BMON0_BASE
,
749 [GAUDI2_BMON_DCORE3_MME_SBTE3_0
] = mmDCORE3_MME_SBTE3_BMON0_BASE
,
750 [GAUDI2_BMON_DCORE3_MME_SBTE4_0
] = mmDCORE3_MME_SBTE4_BMON0_BASE
,
751 [GAUDI2_BMON_DCORE3_MME_ACC_0
] = mmDCORE3_MME_ACC_BMON0_BASE
,
752 [GAUDI2_BMON_DCORE3_MME_ACC_1
] = mmDCORE3_MME_ACC_BMON1_BASE
,
753 [GAUDI2_BMON_DCORE3_SM
] = mmDCORE3_SM_BMON_BASE
,
754 [GAUDI2_BMON_DCORE3_SM_1
] = mmDCORE3_SM_BMON1_BASE
,
755 [GAUDI2_BMON_DCORE3_EDMA0_0
] = mmDCORE3_EDMA0_BMON_0_BASE
,
756 [GAUDI2_BMON_DCORE3_EDMA0_1
] = mmDCORE3_EDMA0_BMON_1_BASE
,
757 [GAUDI2_BMON_DCORE3_EDMA1_0
] = mmDCORE3_EDMA1_BMON_0_BASE
,
758 [GAUDI2_BMON_DCORE3_EDMA1_1
] = mmDCORE3_EDMA1_BMON_1_BASE
,
759 [GAUDI2_BMON_DCORE3_VDEC0_0
] = mmDCORE3_VDEC0_BMON_0_BASE
,
760 [GAUDI2_BMON_DCORE3_VDEC0_1
] = mmDCORE3_VDEC0_BMON_1_BASE
,
761 [GAUDI2_BMON_DCORE3_VDEC0_2
] = mmDCORE3_VDEC0_BMON_2_BASE
,
762 [GAUDI2_BMON_DCORE3_VDEC1_0
] = mmDCORE3_VDEC1_BMON_0_BASE
,
763 [GAUDI2_BMON_DCORE3_VDEC1_1
] = mmDCORE3_VDEC1_BMON_1_BASE
,
764 [GAUDI2_BMON_DCORE3_VDEC1_2
] = mmDCORE3_VDEC1_BMON_2_BASE
,
765 [GAUDI2_BMON_PCIE_MSTR_WR
] = mmPCIE_BMON_MSTR_WR_BASE
,
766 [GAUDI2_BMON_PCIE_MSTR_RD
] = mmPCIE_BMON_MSTR_RD_BASE
,
767 [GAUDI2_BMON_PCIE_SLV_WR
] = mmPCIE_BMON_SLV_WR_BASE
,
768 [GAUDI2_BMON_PCIE_SLV_RD
] = mmPCIE_BMON_SLV_RD_BASE
,
769 [GAUDI2_BMON_PSOC_ARC0_0
] = 0,
770 [GAUDI2_BMON_PSOC_ARC0_1
] = 0,
771 [GAUDI2_BMON_PSOC_ARC1_0
] = 0,
772 [GAUDI2_BMON_PSOC_ARC1_1
] = 0,
773 [GAUDI2_BMON_PDMA0_0
] = mmPDMA0_BMON_0_BASE
,
774 [GAUDI2_BMON_PDMA0_1
] = mmPDMA0_BMON_1_BASE
,
775 [GAUDI2_BMON_PDMA1_0
] = mmPDMA1_BMON_0_BASE
,
776 [GAUDI2_BMON_PDMA1_1
] = mmPDMA1_BMON_1_BASE
,
777 [GAUDI2_BMON_CPU_WR
] = mmCPU_WR_BMON_BASE
,
778 [GAUDI2_BMON_CPU_RD
] = mmCPU_RD_BMON_BASE
,
779 [GAUDI2_BMON_PMMU_0
] = mmPMMU_BMON_0_BASE
,
780 [GAUDI2_BMON_PMMU_1
] = mmPMMU_BMON_1_BASE
,
781 [GAUDI2_BMON_PMMU_2
] = mmPMMU_BMON_2_BASE
,
782 [GAUDI2_BMON_PMMU_3
] = mmPMMU_BMON_3_BASE
,
783 [GAUDI2_BMON_PMMU_4
] = mmPMMU_BMON_4_BASE
,
784 [GAUDI2_BMON_ROT0_0
] = mmROT0_BMON_0_BASE
,
785 [GAUDI2_BMON_ROT0_1
] = mmROT0_BMON_1_BASE
,
786 [GAUDI2_BMON_ROT0_2
] = mmROT0_BMON_2_BASE
,
787 [GAUDI2_BMON_ROT0_3
] = mmROT0_BMON_3_BASE
,
788 [GAUDI2_BMON_ROT1_0
] = mmROT1_BMON_0_BASE
,
789 [GAUDI2_BMON_ROT1_1
] = mmROT1_BMON_1_BASE
,
790 [GAUDI2_BMON_ROT1_2
] = mmROT1_BMON_2_BASE
,
791 [GAUDI2_BMON_ROT1_3
] = mmROT1_BMON_3_BASE
,
792 [GAUDI2_BMON_ARC_FARM_0
] = mmARC_FARM_BMON_0_BASE
,
793 [GAUDI2_BMON_ARC_FARM_1
] = mmARC_FARM_BMON_1_BASE
,
794 [GAUDI2_BMON_ARC_FARM_2
] = mmARC_FARM_BMON_2_BASE
,
795 [GAUDI2_BMON_ARC_FARM_3
] = mmARC_FARM_BMON_3_BASE
,
796 [GAUDI2_BMON_KDMA_0
] = mmKDMA_BMON_0_BASE
,
797 [GAUDI2_BMON_KDMA_1
] = mmKDMA_BMON_1_BASE
,
798 [GAUDI2_BMON_KDMA_2
] = mmKDMA_BMON_2_BASE
,
799 [GAUDI2_BMON_KDMA_3
] = mmKDMA_BMON_3_BASE
,
800 [GAUDI2_BMON_PCIE_VDEC0_0
] = mmPCIE_VDEC0_BMON_0_BASE
,
801 [GAUDI2_BMON_PCIE_VDEC0_1
] = mmPCIE_VDEC0_BMON_1_BASE
,
802 [GAUDI2_BMON_PCIE_VDEC0_2
] = mmPCIE_VDEC0_BMON_2_BASE
,
803 [GAUDI2_BMON_PCIE_VDEC1_0
] = mmPCIE_VDEC1_BMON_0_BASE
,
804 [GAUDI2_BMON_PCIE_VDEC1_1
] = mmPCIE_VDEC1_BMON_1_BASE
,
805 [GAUDI2_BMON_PCIE_VDEC1_2
] = mmPCIE_VDEC1_BMON_2_BASE
,
806 [GAUDI2_BMON_NIC0_DBG_0_0
] = mmNIC0_DBG_BMON0_0_BASE
,
807 [GAUDI2_BMON_NIC0_DBG_1_0
] = mmNIC0_DBG_BMON1_0_BASE
,
808 [GAUDI2_BMON_NIC0_DBG_2_0
] = mmNIC0_DBG_BMON2_0_BASE
,
809 [GAUDI2_BMON_NIC0_DBG_0_1
] = mmNIC0_DBG_BMON0_1_BASE
,
810 [GAUDI2_BMON_NIC0_DBG_1_1
] = mmNIC0_DBG_BMON1_1_BASE
,
811 [GAUDI2_BMON_NIC0_DBG_2_1
] = mmNIC0_DBG_BMON2_1_BASE
,
812 [GAUDI2_BMON_NIC1_DBG_0_0
] = mmNIC1_DBG_BMON0_0_BASE
,
813 [GAUDI2_BMON_NIC1_DBG_1_0
] = mmNIC1_DBG_BMON1_0_BASE
,
814 [GAUDI2_BMON_NIC1_DBG_2_0
] = mmNIC1_DBG_BMON2_0_BASE
,
815 [GAUDI2_BMON_NIC1_DBG_0_1
] = mmNIC1_DBG_BMON0_1_BASE
,
816 [GAUDI2_BMON_NIC1_DBG_1_1
] = mmNIC1_DBG_BMON1_1_BASE
,
817 [GAUDI2_BMON_NIC1_DBG_2_1
] = mmNIC1_DBG_BMON2_1_BASE
,
818 [GAUDI2_BMON_NIC2_DBG_0_0
] = mmNIC2_DBG_BMON0_0_BASE
,
819 [GAUDI2_BMON_NIC2_DBG_1_0
] = mmNIC2_DBG_BMON1_0_BASE
,
820 [GAUDI2_BMON_NIC2_DBG_2_0
] = mmNIC2_DBG_BMON2_0_BASE
,
821 [GAUDI2_BMON_NIC2_DBG_0_1
] = mmNIC2_DBG_BMON0_1_BASE
,
822 [GAUDI2_BMON_NIC2_DBG_1_1
] = mmNIC2_DBG_BMON1_1_BASE
,
823 [GAUDI2_BMON_NIC2_DBG_2_1
] = mmNIC2_DBG_BMON2_1_BASE
,
824 [GAUDI2_BMON_NIC3_DBG_0_0
] = mmNIC3_DBG_BMON0_0_BASE
,
825 [GAUDI2_BMON_NIC3_DBG_1_0
] = mmNIC3_DBG_BMON1_0_BASE
,
826 [GAUDI2_BMON_NIC3_DBG_2_0
] = mmNIC3_DBG_BMON2_0_BASE
,
827 [GAUDI2_BMON_NIC3_DBG_0_1
] = mmNIC3_DBG_BMON0_1_BASE
,
828 [GAUDI2_BMON_NIC3_DBG_1_1
] = mmNIC3_DBG_BMON1_1_BASE
,
829 [GAUDI2_BMON_NIC3_DBG_2_1
] = mmNIC3_DBG_BMON2_1_BASE
,
830 [GAUDI2_BMON_NIC4_DBG_0_0
] = mmNIC4_DBG_BMON0_0_BASE
,
831 [GAUDI2_BMON_NIC4_DBG_1_0
] = mmNIC4_DBG_BMON1_0_BASE
,
832 [GAUDI2_BMON_NIC4_DBG_2_0
] = mmNIC4_DBG_BMON2_0_BASE
,
833 [GAUDI2_BMON_NIC4_DBG_0_1
] = mmNIC4_DBG_BMON0_1_BASE
,
834 [GAUDI2_BMON_NIC4_DBG_1_1
] = mmNIC4_DBG_BMON1_1_BASE
,
835 [GAUDI2_BMON_NIC4_DBG_2_1
] = mmNIC4_DBG_BMON2_1_BASE
,
836 [GAUDI2_BMON_NIC5_DBG_0_0
] = mmNIC5_DBG_BMON0_0_BASE
,
837 [GAUDI2_BMON_NIC5_DBG_1_0
] = mmNIC5_DBG_BMON1_0_BASE
,
838 [GAUDI2_BMON_NIC5_DBG_2_0
] = mmNIC5_DBG_BMON2_0_BASE
,
839 [GAUDI2_BMON_NIC5_DBG_0_1
] = mmNIC5_DBG_BMON0_1_BASE
,
840 [GAUDI2_BMON_NIC5_DBG_1_1
] = mmNIC5_DBG_BMON1_1_BASE
,
841 [GAUDI2_BMON_NIC5_DBG_2_1
] = mmNIC5_DBG_BMON2_1_BASE
,
842 [GAUDI2_BMON_NIC6_DBG_0_0
] = mmNIC6_DBG_BMON0_0_BASE
,
843 [GAUDI2_BMON_NIC6_DBG_1_0
] = mmNIC6_DBG_BMON1_0_BASE
,
844 [GAUDI2_BMON_NIC6_DBG_2_0
] = mmNIC6_DBG_BMON2_0_BASE
,
845 [GAUDI2_BMON_NIC6_DBG_0_1
] = mmNIC6_DBG_BMON0_1_BASE
,
846 [GAUDI2_BMON_NIC6_DBG_1_1
] = mmNIC6_DBG_BMON1_1_BASE
,
847 [GAUDI2_BMON_NIC6_DBG_2_1
] = mmNIC6_DBG_BMON2_1_BASE
,
848 [GAUDI2_BMON_NIC7_DBG_0_0
] = mmNIC7_DBG_BMON0_0_BASE
,
849 [GAUDI2_BMON_NIC7_DBG_1_0
] = mmNIC7_DBG_BMON1_0_BASE
,
850 [GAUDI2_BMON_NIC7_DBG_2_0
] = mmNIC7_DBG_BMON2_0_BASE
,
851 [GAUDI2_BMON_NIC7_DBG_0_1
] = mmNIC7_DBG_BMON0_1_BASE
,
852 [GAUDI2_BMON_NIC7_DBG_1_1
] = mmNIC7_DBG_BMON1_1_BASE
,
853 [GAUDI2_BMON_NIC7_DBG_2_1
] = mmNIC7_DBG_BMON2_1_BASE
,
854 [GAUDI2_BMON_NIC8_DBG_0_0
] = mmNIC8_DBG_BMON0_0_BASE
,
855 [GAUDI2_BMON_NIC8_DBG_1_0
] = mmNIC8_DBG_BMON1_0_BASE
,
856 [GAUDI2_BMON_NIC8_DBG_2_0
] = mmNIC8_DBG_BMON2_0_BASE
,
857 [GAUDI2_BMON_NIC8_DBG_0_1
] = mmNIC8_DBG_BMON0_1_BASE
,
858 [GAUDI2_BMON_NIC8_DBG_1_1
] = mmNIC8_DBG_BMON1_1_BASE
,
859 [GAUDI2_BMON_NIC8_DBG_2_1
] = mmNIC8_DBG_BMON2_1_BASE
,
860 [GAUDI2_BMON_NIC9_DBG_0_0
] = mmNIC9_DBG_BMON0_0_BASE
,
861 [GAUDI2_BMON_NIC9_DBG_1_0
] = mmNIC9_DBG_BMON1_0_BASE
,
862 [GAUDI2_BMON_NIC9_DBG_2_0
] = mmNIC9_DBG_BMON2_0_BASE
,
863 [GAUDI2_BMON_NIC9_DBG_0_1
] = mmNIC9_DBG_BMON0_1_BASE
,
864 [GAUDI2_BMON_NIC9_DBG_1_1
] = mmNIC9_DBG_BMON1_1_BASE
,
865 [GAUDI2_BMON_NIC9_DBG_2_1
] = mmNIC9_DBG_BMON2_1_BASE
,
866 [GAUDI2_BMON_NIC10_DBG_0_0
] = mmNIC10_DBG_BMON0_0_BASE
,
867 [GAUDI2_BMON_NIC10_DBG_1_0
] = mmNIC10_DBG_BMON1_0_BASE
,
868 [GAUDI2_BMON_NIC10_DBG_2_0
] = mmNIC10_DBG_BMON2_0_BASE
,
869 [GAUDI2_BMON_NIC10_DBG_0_1
] = mmNIC10_DBG_BMON0_1_BASE
,
870 [GAUDI2_BMON_NIC10_DBG_1_1
] = mmNIC10_DBG_BMON1_1_BASE
,
871 [GAUDI2_BMON_NIC10_DBG_2_1
] = mmNIC10_DBG_BMON2_1_BASE
,
872 [GAUDI2_BMON_NIC11_DBG_0_0
] = mmNIC11_DBG_BMON0_0_BASE
,
873 [GAUDI2_BMON_NIC11_DBG_1_0
] = mmNIC11_DBG_BMON1_0_BASE
,
874 [GAUDI2_BMON_NIC11_DBG_2_0
] = mmNIC11_DBG_BMON2_0_BASE
,
875 [GAUDI2_BMON_NIC11_DBG_0_1
] = mmNIC11_DBG_BMON0_1_BASE
,
876 [GAUDI2_BMON_NIC11_DBG_1_1
] = mmNIC11_DBG_BMON1_1_BASE
,
877 [GAUDI2_BMON_NIC11_DBG_2_1
] = mmNIC11_DBG_BMON2_1_BASE
880 static u64 debug_spmu_regs
[GAUDI2_SPMU_LAST
+ 1] = {
881 [GAUDI2_SPMU_DCORE0_TPC0_EML
] = mmDCORE0_TPC0_EML_SPMU_BASE
,
882 [GAUDI2_SPMU_DCORE0_TPC1_EML
] = mmDCORE0_TPC1_EML_SPMU_BASE
,
883 [GAUDI2_SPMU_DCORE0_TPC2_EML
] = mmDCORE0_TPC2_EML_SPMU_BASE
,
884 [GAUDI2_SPMU_DCORE0_TPC3_EML
] = mmDCORE0_TPC3_EML_SPMU_BASE
,
885 [GAUDI2_SPMU_DCORE0_TPC4_EML
] = mmDCORE0_TPC4_EML_SPMU_BASE
,
886 [GAUDI2_SPMU_DCORE0_TPC5_EML
] = mmDCORE0_TPC5_EML_SPMU_BASE
,
887 [GAUDI2_SPMU_DCORE0_TPC6_EML
] = mmDCORE0_TPC6_EML_SPMU_BASE
,
888 [GAUDI2_SPMU_DCORE1_TPC0_EML
] = mmDCORE1_TPC0_EML_SPMU_BASE
,
889 [GAUDI2_SPMU_DCORE1_TPC1_EML
] = mmDCORE1_TPC1_EML_SPMU_BASE
,
890 [GAUDI2_SPMU_DCORE1_TPC2_EML
] = mmDCORE1_TPC2_EML_SPMU_BASE
,
891 [GAUDI2_SPMU_DCORE1_TPC3_EML
] = mmDCORE1_TPC3_EML_SPMU_BASE
,
892 [GAUDI2_SPMU_DCORE1_TPC4_EML
] = mmDCORE1_TPC4_EML_SPMU_BASE
,
893 [GAUDI2_SPMU_DCORE1_TPC5_EML
] = mmDCORE1_TPC5_EML_SPMU_BASE
,
894 [GAUDI2_SPMU_DCORE2_TPC0_EML
] = mmDCORE2_TPC0_EML_SPMU_BASE
,
895 [GAUDI2_SPMU_DCORE2_TPC1_EML
] = mmDCORE2_TPC1_EML_SPMU_BASE
,
896 [GAUDI2_SPMU_DCORE2_TPC2_EML
] = mmDCORE2_TPC2_EML_SPMU_BASE
,
897 [GAUDI2_SPMU_DCORE2_TPC3_EML
] = mmDCORE2_TPC3_EML_SPMU_BASE
,
898 [GAUDI2_SPMU_DCORE2_TPC4_EML
] = mmDCORE2_TPC4_EML_SPMU_BASE
,
899 [GAUDI2_SPMU_DCORE2_TPC5_EML
] = mmDCORE2_TPC5_EML_SPMU_BASE
,
900 [GAUDI2_SPMU_DCORE3_TPC0_EML
] = mmDCORE3_TPC0_EML_SPMU_BASE
,
901 [GAUDI2_SPMU_DCORE3_TPC1_EML
] = mmDCORE3_TPC1_EML_SPMU_BASE
,
902 [GAUDI2_SPMU_DCORE3_TPC2_EML
] = mmDCORE3_TPC2_EML_SPMU_BASE
,
903 [GAUDI2_SPMU_DCORE3_TPC3_EML
] = mmDCORE3_TPC3_EML_SPMU_BASE
,
904 [GAUDI2_SPMU_DCORE3_TPC4_EML
] = mmDCORE3_TPC4_EML_SPMU_BASE
,
905 [GAUDI2_SPMU_DCORE3_TPC5_EML
] = mmDCORE3_TPC5_EML_SPMU_BASE
,
906 [GAUDI2_SPMU_DCORE0_HMMU0_CS
] = mmDCORE0_HMMU0_CS_SPMU_BASE
,
907 [GAUDI2_SPMU_DCORE0_HMMU1_CS
] = mmDCORE0_HMMU1_CS_SPMU_BASE
,
908 [GAUDI2_SPMU_DCORE0_HMMU2_CS
] = mmDCORE0_HMMU2_CS_SPMU_BASE
,
909 [GAUDI2_SPMU_DCORE0_HMMU3_CS
] = mmDCORE0_HMMU3_CS_SPMU_BASE
,
910 [GAUDI2_SPMU_DCORE0_MME_CTRL
] = mmDCORE0_MME_CTRL_SPMU_BASE
,
911 [GAUDI2_SPMU_DCORE0_MME_SBTE0
] = mmDCORE0_MME_SBTE0_SPMU_BASE
,
912 [GAUDI2_SPMU_DCORE0_MME_SBTE1
] = mmDCORE0_MME_SBTE1_SPMU_BASE
,
913 [GAUDI2_SPMU_DCORE0_MME_SBTE2
] = mmDCORE0_MME_SBTE2_SPMU_BASE
,
914 [GAUDI2_SPMU_DCORE0_MME_SBTE3
] = mmDCORE0_MME_SBTE3_SPMU_BASE
,
915 [GAUDI2_SPMU_DCORE0_MME_SBTE4
] = mmDCORE0_MME_SBTE4_SPMU_BASE
,
916 [GAUDI2_SPMU_DCORE0_MME_ACC
] = mmDCORE0_MME_ACC_SPMU_BASE
,
917 [GAUDI2_SPMU_DCORE0_SM
] = mmDCORE0_SM_SPMU_BASE
,
918 [GAUDI2_SPMU_DCORE0_EDMA0_CS
] = mmDCORE0_EDMA0_CS_SPMU_BASE
,
919 [GAUDI2_SPMU_DCORE0_EDMA1_CS
] = mmDCORE0_EDMA1_CS_SPMU_BASE
,
920 [GAUDI2_SPMU_DCORE0_VDEC0_CS
] = mmDCORE0_VDEC0_CS_SPMU_BASE
,
921 [GAUDI2_SPMU_DCORE0_VDEC1_CS
] = mmDCORE0_VDEC1_CS_SPMU_BASE
,
922 [GAUDI2_SPMU_DCORE1_HMMU0_CS
] = mmDCORE1_HMMU0_CS_SPMU_BASE
,
923 [GAUDI2_SPMU_DCORE1_HMMU1_CS
] = mmDCORE1_HMMU1_CS_SPMU_BASE
,
924 [GAUDI2_SPMU_DCORE1_HMMU2_CS
] = mmDCORE1_HMMU2_CS_SPMU_BASE
,
925 [GAUDI2_SPMU_DCORE1_HMMU3_CS
] = mmDCORE1_HMMU3_CS_SPMU_BASE
,
926 [GAUDI2_SPMU_DCORE1_MME_CTRL
] = mmDCORE1_MME_CTRL_SPMU_BASE
,
927 [GAUDI2_SPMU_DCORE1_MME_SBTE0
] = mmDCORE1_MME_SBTE0_SPMU_BASE
,
928 [GAUDI2_SPMU_DCORE1_MME_SBTE1
] = mmDCORE1_MME_SBTE1_SPMU_BASE
,
929 [GAUDI2_SPMU_DCORE1_MME_SBTE2
] = mmDCORE1_MME_SBTE2_SPMU_BASE
,
930 [GAUDI2_SPMU_DCORE1_MME_SBTE3
] = mmDCORE1_MME_SBTE3_SPMU_BASE
,
931 [GAUDI2_SPMU_DCORE1_MME_SBTE4
] = mmDCORE1_MME_SBTE4_SPMU_BASE
,
932 [GAUDI2_SPMU_DCORE1_MME_ACC
] = mmDCORE1_MME_ACC_SPMU_BASE
,
933 [GAUDI2_SPMU_DCORE1_SM
] = mmDCORE1_SM_SPMU_BASE
,
934 [GAUDI2_SPMU_DCORE1_EDMA0_CS
] = mmDCORE1_EDMA0_CS_SPMU_BASE
,
935 [GAUDI2_SPMU_DCORE1_EDMA1_CS
] = mmDCORE1_EDMA1_CS_SPMU_BASE
,
936 [GAUDI2_SPMU_DCORE1_VDEC0_CS
] = mmDCORE1_VDEC0_CS_SPMU_BASE
,
937 [GAUDI2_SPMU_DCORE1_VDEC1_CS
] = mmDCORE1_VDEC1_CS_SPMU_BASE
,
938 [GAUDI2_SPMU_DCORE2_HMMU0_CS
] = mmDCORE2_HMMU0_CS_SPMU_BASE
,
939 [GAUDI2_SPMU_DCORE2_HMMU1_CS
] = mmDCORE2_HMMU1_CS_SPMU_BASE
,
940 [GAUDI2_SPMU_DCORE2_HMMU2_CS
] = mmDCORE2_HMMU2_CS_SPMU_BASE
,
941 [GAUDI2_SPMU_DCORE2_HMMU3_CS
] = mmDCORE2_HMMU3_CS_SPMU_BASE
,
942 [GAUDI2_SPMU_DCORE2_MME_CTRL
] = mmDCORE2_MME_CTRL_SPMU_BASE
,
943 [GAUDI2_SPMU_DCORE2_MME_SBTE0
] = mmDCORE2_MME_SBTE0_SPMU_BASE
,
944 [GAUDI2_SPMU_DCORE2_MME_SBTE1
] = mmDCORE2_MME_SBTE1_SPMU_BASE
,
945 [GAUDI2_SPMU_DCORE2_MME_SBTE2
] = mmDCORE2_MME_SBTE2_SPMU_BASE
,
946 [GAUDI2_SPMU_DCORE2_MME_SBTE3
] = mmDCORE2_MME_SBTE3_SPMU_BASE
,
947 [GAUDI2_SPMU_DCORE2_MME_SBTE4
] = mmDCORE2_MME_SBTE4_SPMU_BASE
,
948 [GAUDI2_SPMU_DCORE2_MME_ACC
] = mmDCORE2_MME_ACC_SPMU_BASE
,
949 [GAUDI2_SPMU_DCORE2_SM
] = mmDCORE2_SM_SPMU_BASE
,
950 [GAUDI2_SPMU_DCORE2_EDMA0_CS
] = mmDCORE2_EDMA0_CS_SPMU_BASE
,
951 [GAUDI2_SPMU_DCORE2_EDMA1_CS
] = mmDCORE2_EDMA1_CS_SPMU_BASE
,
952 [GAUDI2_SPMU_DCORE2_VDEC0_CS
] = mmDCORE2_VDEC0_CS_SPMU_BASE
,
953 [GAUDI2_SPMU_DCORE2_VDEC1_CS
] = mmDCORE2_VDEC1_CS_SPMU_BASE
,
954 [GAUDI2_SPMU_DCORE3_HMMU0_CS
] = mmDCORE3_HMMU0_CS_SPMU_BASE
,
955 [GAUDI2_SPMU_DCORE3_HMMU1_CS
] = mmDCORE3_HMMU1_CS_SPMU_BASE
,
956 [GAUDI2_SPMU_DCORE3_HMMU2_CS
] = mmDCORE3_HMMU2_CS_SPMU_BASE
,
957 [GAUDI2_SPMU_DCORE3_HMMU3_CS
] = mmDCORE3_HMMU3_CS_SPMU_BASE
,
958 [GAUDI2_SPMU_DCORE3_MME_CTRL
] = mmDCORE3_MME_CTRL_SPMU_BASE
,
959 [GAUDI2_SPMU_DCORE3_MME_SBTE0
] = mmDCORE3_MME_SBTE0_SPMU_BASE
,
960 [GAUDI2_SPMU_DCORE3_MME_SBTE1
] = mmDCORE3_MME_SBTE1_SPMU_BASE
,
961 [GAUDI2_SPMU_DCORE3_MME_SBTE2
] = mmDCORE3_MME_SBTE2_SPMU_BASE
,
962 [GAUDI2_SPMU_DCORE3_MME_SBTE3
] = mmDCORE3_MME_SBTE3_SPMU_BASE
,
963 [GAUDI2_SPMU_DCORE3_MME_SBTE4
] = mmDCORE3_MME_SBTE4_SPMU_BASE
,
964 [GAUDI2_SPMU_DCORE3_MME_ACC
] = mmDCORE3_MME_ACC_SPMU_BASE
,
965 [GAUDI2_SPMU_DCORE3_SM
] = mmDCORE3_SM_SPMU_BASE
,
966 [GAUDI2_SPMU_DCORE3_EDMA0_CS
] = mmDCORE3_EDMA0_CS_SPMU_BASE
,
967 [GAUDI2_SPMU_DCORE3_EDMA1_CS
] = mmDCORE3_EDMA1_CS_SPMU_BASE
,
968 [GAUDI2_SPMU_DCORE3_VDEC0_CS
] = mmDCORE3_VDEC0_CS_SPMU_BASE
,
969 [GAUDI2_SPMU_DCORE3_VDEC1_CS
] = mmDCORE3_VDEC1_CS_SPMU_BASE
,
970 [GAUDI2_SPMU_PCIE
] = mmPCIE_SPMU_BASE
,
971 [GAUDI2_SPMU_PSOC_ARC0_CS
] = 0,
972 [GAUDI2_SPMU_PSOC_ARC1_CS
] = 0,
973 [GAUDI2_SPMU_PDMA0_CS
] = mmPDMA0_CS_SPMU_BASE
,
974 [GAUDI2_SPMU_PDMA1_CS
] = mmPDMA1_CS_SPMU_BASE
,
975 [GAUDI2_SPMU_PMMU_CS
] = mmPMMU_CS_SPMU_BASE
,
976 [GAUDI2_SPMU_ROT0_CS
] = mmROT0_CS_SPMU_BASE
,
977 [GAUDI2_SPMU_ROT1_CS
] = mmROT1_CS_SPMU_BASE
,
978 [GAUDI2_SPMU_ARC_FARM_CS
] = mmARC_FARM_CS_SPMU_BASE
,
979 [GAUDI2_SPMU_KDMA_CS
] = mmKDMA_CS_SPMU_BASE
,
980 [GAUDI2_SPMU_PCIE_VDEC0_CS
] = mmPCIE_VDEC0_CS_SPMU_BASE
,
981 [GAUDI2_SPMU_PCIE_VDEC1_CS
] = mmPCIE_VDEC1_CS_SPMU_BASE
,
982 [GAUDI2_SPMU_HBM0_MC0_CS
] = mmHBM0_MC0_CS_SPMU_BASE
,
983 [GAUDI2_SPMU_HBM0_MC1_CS
] = mmHBM0_MC1_CS_SPMU_BASE
,
984 [GAUDI2_SPMU_HBM1_MC0_CS
] = mmHBM1_MC0_CS_SPMU_BASE
,
985 [GAUDI2_SPMU_HBM1_MC1_CS
] = mmHBM1_MC1_CS_SPMU_BASE
,
986 [GAUDI2_SPMU_HBM2_MC0_CS
] = mmHBM2_MC0_CS_SPMU_BASE
,
987 [GAUDI2_SPMU_HBM2_MC1_CS
] = mmHBM2_MC1_CS_SPMU_BASE
,
988 [GAUDI2_SPMU_HBM3_MC0_CS
] = mmHBM3_MC0_CS_SPMU_BASE
,
989 [GAUDI2_SPMU_HBM3_MC1_CS
] = mmHBM3_MC1_CS_SPMU_BASE
,
990 [GAUDI2_SPMU_HBM4_MC0_CS
] = mmHBM4_MC0_CS_SPMU_BASE
,
991 [GAUDI2_SPMU_HBM4_MC1_CS
] = mmHBM4_MC1_CS_SPMU_BASE
,
992 [GAUDI2_SPMU_HBM5_MC0_CS
] = mmHBM5_MC0_CS_SPMU_BASE
,
993 [GAUDI2_SPMU_HBM5_MC1_CS
] = mmHBM5_MC1_CS_SPMU_BASE
,
994 [GAUDI2_SPMU_NIC0_DBG_0
] = mmNIC0_DBG_SPMU_0_BASE
,
995 [GAUDI2_SPMU_NIC0_DBG_1
] = mmNIC0_DBG_SPMU_1_BASE
,
996 [GAUDI2_SPMU_NIC1_DBG_0
] = mmNIC1_DBG_SPMU_0_BASE
,
997 [GAUDI2_SPMU_NIC1_DBG_1
] = mmNIC1_DBG_SPMU_1_BASE
,
998 [GAUDI2_SPMU_NIC2_DBG_0
] = mmNIC2_DBG_SPMU_0_BASE
,
999 [GAUDI2_SPMU_NIC2_DBG_1
] = mmNIC2_DBG_SPMU_1_BASE
,
1000 [GAUDI2_SPMU_NIC3_DBG_0
] = mmNIC3_DBG_SPMU_0_BASE
,
1001 [GAUDI2_SPMU_NIC3_DBG_1
] = mmNIC3_DBG_SPMU_1_BASE
,
1002 [GAUDI2_SPMU_NIC4_DBG_0
] = mmNIC4_DBG_SPMU_0_BASE
,
1003 [GAUDI2_SPMU_NIC4_DBG_1
] = mmNIC4_DBG_SPMU_1_BASE
,
1004 [GAUDI2_SPMU_NIC5_DBG_0
] = mmNIC5_DBG_SPMU_0_BASE
,
1005 [GAUDI2_SPMU_NIC5_DBG_1
] = mmNIC5_DBG_SPMU_1_BASE
,
1006 [GAUDI2_SPMU_NIC6_DBG_0
] = mmNIC6_DBG_SPMU_0_BASE
,
1007 [GAUDI2_SPMU_NIC6_DBG_1
] = mmNIC6_DBG_SPMU_1_BASE
,
1008 [GAUDI2_SPMU_NIC7_DBG_0
] = mmNIC7_DBG_SPMU_0_BASE
,
1009 [GAUDI2_SPMU_NIC7_DBG_1
] = mmNIC7_DBG_SPMU_1_BASE
,
1010 [GAUDI2_SPMU_NIC8_DBG_0
] = mmNIC8_DBG_SPMU_0_BASE
,
1011 [GAUDI2_SPMU_NIC8_DBG_1
] = mmNIC8_DBG_SPMU_1_BASE
,
1012 [GAUDI2_SPMU_NIC9_DBG_0
] = mmNIC9_DBG_SPMU_0_BASE
,
1013 [GAUDI2_SPMU_NIC9_DBG_1
] = mmNIC9_DBG_SPMU_1_BASE
,
1014 [GAUDI2_SPMU_NIC10_DBG_0
] = mmNIC10_DBG_SPMU_0_BASE
,
1015 [GAUDI2_SPMU_NIC10_DBG_1
] = mmNIC10_DBG_SPMU_1_BASE
,
1016 [GAUDI2_SPMU_NIC11_DBG_0
] = mmNIC11_DBG_SPMU_0_BASE
,
1017 [GAUDI2_SPMU_NIC11_DBG_1
] = mmNIC11_DBG_SPMU_1_BASE
1020 static struct component_config_offsets xbar_edge_binning_cfg_table
[XBAR_EDGE_ID_SIZE
] = {
1021 [XBAR_EDGE_ID_DCORE0
] = {
1022 .funnel_id
= GAUDI2_FUNNEL_DCORE0_XBAR_EDGE
,
1023 .etf_id
= COMPONENT_ID_INVALID
,
1024 .stm_id
= COMPONENT_ID_INVALID
,
1025 .spmu_id
= COMPONENT_ID_INVALID
,
1027 .bmon_ids
= {COMPONENT_ID_INVALID
}
1029 [XBAR_EDGE_ID_DCORE1
] = {
1030 .funnel_id
= GAUDI2_FUNNEL_DCORE1_XBAR_EDGE
,
1031 .etf_id
= COMPONENT_ID_INVALID
,
1032 .stm_id
= COMPONENT_ID_INVALID
,
1033 .spmu_id
= COMPONENT_ID_INVALID
,
1035 .bmon_ids
= {COMPONENT_ID_INVALID
}
1037 [XBAR_EDGE_ID_DCORE2
] = {
1038 .funnel_id
= GAUDI2_FUNNEL_DCORE2_XBAR_EDGE
,
1039 .etf_id
= COMPONENT_ID_INVALID
,
1040 .stm_id
= COMPONENT_ID_INVALID
,
1041 .spmu_id
= COMPONENT_ID_INVALID
,
1043 .bmon_ids
= {COMPONENT_ID_INVALID
}
1045 [XBAR_EDGE_ID_DCORE3
] = {
1046 .funnel_id
= GAUDI2_FUNNEL_DCORE3_XBAR_EDGE
,
1047 .etf_id
= COMPONENT_ID_INVALID
,
1048 .stm_id
= COMPONENT_ID_INVALID
,
1049 .spmu_id
= COMPONENT_ID_INVALID
,
1051 .bmon_ids
= {COMPONENT_ID_INVALID
}
1056 static struct component_config_offsets hmmu_binning_cfg_table
[HMMU_ID_SIZE
] = {
1057 [HMMU_ID_DCORE0_HMMU0
] = {
1058 .funnel_id
= COMPONENT_ID_INVALID
,
1059 .etf_id
= GAUDI2_ETF_DCORE0_HMMU0_CS
,
1060 .stm_id
= GAUDI2_STM_DCORE0_HMMU0_CS
,
1061 .spmu_id
= GAUDI2_SPMU_DCORE0_HMMU0_CS
,
1064 GAUDI2_BMON_DCORE0_HMMU0_0
,
1065 GAUDI2_BMON_DCORE0_HMMU0_1
,
1066 GAUDI2_BMON_DCORE0_HMMU0_2
,
1067 GAUDI2_BMON_DCORE0_HMMU0_3
,
1068 GAUDI2_BMON_DCORE0_HMMU0_4
,
1071 [HMMU_ID_DCORE0_HMMU1
] = {
1072 .funnel_id
= COMPONENT_ID_INVALID
,
1073 .etf_id
= GAUDI2_ETF_DCORE0_HMMU1_CS
,
1074 .stm_id
= GAUDI2_STM_DCORE0_HMMU1_CS
,
1075 .spmu_id
= GAUDI2_SPMU_DCORE0_HMMU1_CS
,
1078 GAUDI2_BMON_DCORE0_HMMU1_0
,
1079 GAUDI2_BMON_DCORE0_HMMU1_1
,
1080 GAUDI2_BMON_DCORE0_HMMU1_2
,
1081 GAUDI2_BMON_DCORE0_HMMU1_3
,
1082 GAUDI2_BMON_DCORE0_HMMU1_4
,
1085 [HMMU_ID_DCORE0_HMMU2
] = {
1086 .funnel_id
= COMPONENT_ID_INVALID
,
1087 .etf_id
= GAUDI2_ETF_DCORE0_HMMU2_CS
,
1088 .stm_id
= GAUDI2_STM_DCORE0_HMMU2_CS
,
1089 .spmu_id
= GAUDI2_SPMU_DCORE0_HMMU2_CS
,
1092 GAUDI2_BMON_DCORE0_HMMU2_0
,
1093 GAUDI2_BMON_DCORE0_HMMU2_1
,
1094 GAUDI2_BMON_DCORE0_HMMU2_2
,
1095 GAUDI2_BMON_DCORE0_HMMU2_3
,
1096 GAUDI2_BMON_DCORE0_HMMU2_4
,
1099 [HMMU_ID_DCORE0_HMMU3
] = {
1100 .funnel_id
= COMPONENT_ID_INVALID
,
1101 .etf_id
= GAUDI2_ETF_DCORE0_HMMU3_CS
,
1102 .stm_id
= GAUDI2_STM_DCORE0_HMMU3_CS
,
1103 .spmu_id
= GAUDI2_SPMU_DCORE0_HMMU3_CS
,
1106 GAUDI2_BMON_DCORE0_HMMU3_0
,
1107 GAUDI2_BMON_DCORE0_HMMU3_1
,
1108 GAUDI2_BMON_DCORE0_HMMU3_2
,
1109 GAUDI2_BMON_DCORE0_HMMU3_3
,
1110 GAUDI2_BMON_DCORE0_HMMU3_4
,
1113 [HMMU_ID_DCORE1_HMMU0
] = {
1114 .funnel_id
= COMPONENT_ID_INVALID
,
1115 .etf_id
= GAUDI2_ETF_DCORE1_HMMU0_CS
,
1116 .stm_id
= GAUDI2_STM_DCORE1_HMMU0_CS
,
1117 .spmu_id
= GAUDI2_SPMU_DCORE1_HMMU0_CS
,
1120 GAUDI2_BMON_DCORE1_HMMU0_0
,
1121 GAUDI2_BMON_DCORE1_HMMU0_1
,
1122 GAUDI2_BMON_DCORE1_HMMU0_2
,
1123 GAUDI2_BMON_DCORE1_HMMU0_3
,
1124 GAUDI2_BMON_DCORE1_HMMU0_4
,
1127 [HMMU_ID_DCORE1_HMMU1
] = {
1128 .funnel_id
= COMPONENT_ID_INVALID
,
1129 .etf_id
= GAUDI2_ETF_DCORE1_HMMU1_CS
,
1130 .stm_id
= GAUDI2_STM_DCORE1_HMMU1_CS
,
1131 .spmu_id
= GAUDI2_SPMU_DCORE1_HMMU1_CS
,
1134 GAUDI2_BMON_DCORE1_HMMU1_0
,
1135 GAUDI2_BMON_DCORE1_HMMU1_1
,
1136 GAUDI2_BMON_DCORE1_HMMU1_2
,
1137 GAUDI2_BMON_DCORE1_HMMU1_3
,
1138 GAUDI2_BMON_DCORE1_HMMU1_4
,
1141 [HMMU_ID_DCORE1_HMMU2
] = {
1142 .funnel_id
= COMPONENT_ID_INVALID
,
1143 .etf_id
= GAUDI2_ETF_DCORE1_HMMU2_CS
,
1144 .stm_id
= GAUDI2_STM_DCORE1_HMMU2_CS
,
1145 .spmu_id
= GAUDI2_SPMU_DCORE1_HMMU2_CS
,
1148 GAUDI2_BMON_DCORE1_HMMU2_0
,
1149 GAUDI2_BMON_DCORE1_HMMU2_1
,
1150 GAUDI2_BMON_DCORE1_HMMU2_2
,
1151 GAUDI2_BMON_DCORE1_HMMU2_3
,
1152 GAUDI2_BMON_DCORE1_HMMU2_4
,
1155 [HMMU_ID_DCORE1_HMMU3
] = {
1156 .funnel_id
= COMPONENT_ID_INVALID
,
1157 .etf_id
= GAUDI2_ETF_DCORE1_HMMU3_CS
,
1158 .stm_id
= GAUDI2_STM_DCORE1_HMMU3_CS
,
1159 .spmu_id
= GAUDI2_SPMU_DCORE1_HMMU3_CS
,
1162 GAUDI2_BMON_DCORE1_HMMU3_0
,
1163 GAUDI2_BMON_DCORE1_HMMU3_1
,
1164 GAUDI2_BMON_DCORE1_HMMU3_2
,
1165 GAUDI2_BMON_DCORE1_HMMU3_3
,
1166 GAUDI2_BMON_DCORE1_HMMU3_4
,
1169 [HMMU_ID_DCORE2_HMMU0
] = {
1170 .funnel_id
= COMPONENT_ID_INVALID
,
1171 .etf_id
= GAUDI2_ETF_DCORE2_HMMU0_CS
,
1172 .stm_id
= GAUDI2_STM_DCORE2_HMMU0_CS
,
1173 .spmu_id
= GAUDI2_SPMU_DCORE2_HMMU0_CS
,
1176 GAUDI2_BMON_DCORE2_HMMU0_0
,
1177 GAUDI2_BMON_DCORE2_HMMU0_1
,
1178 GAUDI2_BMON_DCORE2_HMMU0_2
,
1179 GAUDI2_BMON_DCORE2_HMMU0_3
,
1180 GAUDI2_BMON_DCORE2_HMMU0_4
,
1183 [HMMU_ID_DCORE2_HMMU1
] = {
1184 .funnel_id
= COMPONENT_ID_INVALID
,
1185 .etf_id
= GAUDI2_ETF_DCORE2_HMMU1_CS
,
1186 .stm_id
= GAUDI2_STM_DCORE2_HMMU1_CS
,
1187 .spmu_id
= GAUDI2_SPMU_DCORE2_HMMU1_CS
,
1190 GAUDI2_BMON_DCORE2_HMMU1_0
,
1191 GAUDI2_BMON_DCORE2_HMMU1_1
,
1192 GAUDI2_BMON_DCORE2_HMMU1_2
,
1193 GAUDI2_BMON_DCORE2_HMMU1_3
,
1194 GAUDI2_BMON_DCORE2_HMMU1_4
,
1197 [HMMU_ID_DCORE2_HMMU2
] = {
1198 .funnel_id
= COMPONENT_ID_INVALID
,
1199 .etf_id
= GAUDI2_ETF_DCORE2_HMMU2_CS
,
1200 .stm_id
= GAUDI2_STM_DCORE2_HMMU2_CS
,
1201 .spmu_id
= GAUDI2_SPMU_DCORE2_HMMU2_CS
,
1204 GAUDI2_BMON_DCORE2_HMMU2_0
,
1205 GAUDI2_BMON_DCORE2_HMMU2_1
,
1206 GAUDI2_BMON_DCORE2_HMMU2_2
,
1207 GAUDI2_BMON_DCORE2_HMMU2_3
,
1208 GAUDI2_BMON_DCORE2_HMMU2_4
,
1211 [HMMU_ID_DCORE2_HMMU3
] = {
1212 .funnel_id
= COMPONENT_ID_INVALID
,
1213 .etf_id
= GAUDI2_ETF_DCORE2_HMMU3_CS
,
1214 .stm_id
= GAUDI2_STM_DCORE2_HMMU3_CS
,
1215 .spmu_id
= GAUDI2_SPMU_DCORE2_HMMU3_CS
,
1218 GAUDI2_BMON_DCORE2_HMMU3_0
,
1219 GAUDI2_BMON_DCORE2_HMMU3_1
,
1220 GAUDI2_BMON_DCORE2_HMMU3_2
,
1221 GAUDI2_BMON_DCORE2_HMMU3_3
,
1222 GAUDI2_BMON_DCORE2_HMMU3_4
,
1225 [HMMU_ID_DCORE3_HMMU0
] = {
1226 .funnel_id
= COMPONENT_ID_INVALID
,
1227 .etf_id
= GAUDI2_ETF_DCORE3_HMMU0_CS
,
1228 .stm_id
= GAUDI2_STM_DCORE3_HMMU0_CS
,
1229 .spmu_id
= GAUDI2_SPMU_DCORE3_HMMU0_CS
,
1232 GAUDI2_BMON_DCORE3_HMMU0_0
,
1233 GAUDI2_BMON_DCORE3_HMMU0_1
,
1234 GAUDI2_BMON_DCORE3_HMMU0_2
,
1235 GAUDI2_BMON_DCORE3_HMMU0_3
,
1236 GAUDI2_BMON_DCORE3_HMMU0_4
,
1239 [HMMU_ID_DCORE3_HMMU1
] = {
1240 .funnel_id
= COMPONENT_ID_INVALID
,
1241 .etf_id
= GAUDI2_ETF_DCORE3_HMMU1_CS
,
1242 .stm_id
= GAUDI2_STM_DCORE3_HMMU1_CS
,
1243 .spmu_id
= GAUDI2_SPMU_DCORE3_HMMU1_CS
,
1246 GAUDI2_BMON_DCORE3_HMMU1_0
,
1247 GAUDI2_BMON_DCORE3_HMMU1_1
,
1248 GAUDI2_BMON_DCORE3_HMMU1_2
,
1249 GAUDI2_BMON_DCORE3_HMMU1_3
,
1250 GAUDI2_BMON_DCORE3_HMMU1_4
,
1253 [HMMU_ID_DCORE3_HMMU2
] = {
1254 .funnel_id
= COMPONENT_ID_INVALID
,
1255 .etf_id
= GAUDI2_ETF_DCORE3_HMMU2_CS
,
1256 .stm_id
= GAUDI2_STM_DCORE3_HMMU2_CS
,
1257 .spmu_id
= GAUDI2_SPMU_DCORE3_HMMU2_CS
,
1260 GAUDI2_BMON_DCORE3_HMMU2_0
,
1261 GAUDI2_BMON_DCORE3_HMMU2_1
,
1262 GAUDI2_BMON_DCORE3_HMMU2_2
,
1263 GAUDI2_BMON_DCORE3_HMMU2_3
,
1264 GAUDI2_BMON_DCORE3_HMMU2_4
,
1267 [HMMU_ID_DCORE3_HMMU3
] = {
1268 .funnel_id
= COMPONENT_ID_INVALID
,
1269 .etf_id
= GAUDI2_ETF_DCORE3_HMMU3_CS
,
1270 .stm_id
= GAUDI2_STM_DCORE3_HMMU3_CS
,
1271 .spmu_id
= GAUDI2_SPMU_DCORE3_HMMU3_CS
,
1274 GAUDI2_BMON_DCORE3_HMMU3_0
,
1275 GAUDI2_BMON_DCORE3_HMMU3_1
,
1276 GAUDI2_BMON_DCORE3_HMMU3_2
,
1277 GAUDI2_BMON_DCORE3_HMMU3_3
,
1278 GAUDI2_BMON_DCORE3_HMMU3_4
,
1283 static struct component_config_offsets hbm_mc0_binning_cfg_table
[HBM_ID_SIZE
] = {
1285 .funnel_id
= GAUDI2_FUNNEL_HBM0_MC0
,
1286 .etf_id
= GAUDI2_ETF_HBM0_MC0_CS
,
1287 .stm_id
= GAUDI2_STM_HBM0_MC0_CS
,
1288 .spmu_id
= GAUDI2_SPMU_HBM0_MC0_CS
,
1290 .bmon_ids
= {COMPONENT_ID_INVALID
}
1293 .funnel_id
= GAUDI2_FUNNEL_HBM1_MC0
,
1294 .etf_id
= GAUDI2_ETF_HBM1_MC0_CS
,
1295 .stm_id
= GAUDI2_STM_HBM1_MC0_CS
,
1296 .spmu_id
= GAUDI2_SPMU_HBM1_MC0_CS
,
1298 .bmon_ids
= {COMPONENT_ID_INVALID
}
1301 .funnel_id
= GAUDI2_FUNNEL_HBM2_MC0
,
1302 .etf_id
= GAUDI2_ETF_HBM2_MC0_CS
,
1303 .stm_id
= GAUDI2_STM_HBM2_MC0_CS
,
1304 .spmu_id
= GAUDI2_SPMU_HBM2_MC0_CS
,
1306 .bmon_ids
= {COMPONENT_ID_INVALID
}
1309 .funnel_id
= GAUDI2_FUNNEL_HBM3_MC0
,
1310 .etf_id
= GAUDI2_ETF_HBM3_MC0_CS
,
1311 .stm_id
= GAUDI2_STM_HBM3_MC0_CS
,
1312 .spmu_id
= GAUDI2_SPMU_HBM3_MC0_CS
,
1314 .bmon_ids
= {COMPONENT_ID_INVALID
}
1317 .funnel_id
= GAUDI2_FUNNEL_HBM4_MC0
,
1318 .etf_id
= GAUDI2_ETF_HBM4_MC0_CS
,
1319 .stm_id
= GAUDI2_STM_HBM4_MC0_CS
,
1320 .spmu_id
= GAUDI2_SPMU_HBM4_MC0_CS
,
1322 .bmon_ids
= {COMPONENT_ID_INVALID
}
1325 .funnel_id
= GAUDI2_FUNNEL_HBM5_MC0
,
1326 .etf_id
= GAUDI2_ETF_HBM5_MC0_CS
,
1327 .stm_id
= GAUDI2_STM_HBM5_MC0_CS
,
1328 .spmu_id
= GAUDI2_SPMU_HBM5_MC0_CS
,
1330 .bmon_ids
= {COMPONENT_ID_INVALID
}
1334 static struct component_config_offsets hbm_mc1_binning_cfg_table
[HBM_ID_SIZE
] = {
1336 .funnel_id
= GAUDI2_FUNNEL_HBM0_MC1
,
1337 .etf_id
= GAUDI2_ETF_HBM0_MC1_CS
,
1338 .stm_id
= GAUDI2_STM_HBM0_MC1_CS
,
1339 .spmu_id
= GAUDI2_SPMU_HBM0_MC1_CS
,
1341 .bmon_ids
= {COMPONENT_ID_INVALID
}
1344 .funnel_id
= GAUDI2_FUNNEL_HBM1_MC1
,
1345 .etf_id
= GAUDI2_ETF_HBM1_MC1_CS
,
1346 .stm_id
= GAUDI2_STM_HBM1_MC1_CS
,
1347 .spmu_id
= GAUDI2_SPMU_HBM1_MC1_CS
,
1349 .bmon_ids
= {COMPONENT_ID_INVALID
}
1352 .funnel_id
= GAUDI2_FUNNEL_HBM2_MC1
,
1353 .etf_id
= GAUDI2_ETF_HBM2_MC1_CS
,
1354 .stm_id
= GAUDI2_STM_HBM2_MC1_CS
,
1355 .spmu_id
= GAUDI2_SPMU_HBM2_MC1_CS
,
1357 .bmon_ids
= {COMPONENT_ID_INVALID
}
1360 .funnel_id
= GAUDI2_FUNNEL_HBM3_MC1
,
1361 .etf_id
= GAUDI2_ETF_HBM3_MC1_CS
,
1362 .stm_id
= GAUDI2_STM_HBM3_MC1_CS
,
1363 .spmu_id
= GAUDI2_SPMU_HBM3_MC1_CS
,
1365 .bmon_ids
= {COMPONENT_ID_INVALID
}
1368 .funnel_id
= GAUDI2_FUNNEL_HBM4_MC1
,
1369 .etf_id
= GAUDI2_ETF_HBM4_MC1_CS
,
1370 .stm_id
= GAUDI2_STM_HBM4_MC1_CS
,
1371 .spmu_id
= GAUDI2_SPMU_HBM4_MC1_CS
,
1373 .bmon_ids
= {COMPONENT_ID_INVALID
}
1376 .funnel_id
= GAUDI2_FUNNEL_HBM5_MC1
,
1377 .etf_id
= GAUDI2_ETF_HBM5_MC1_CS
,
1378 .stm_id
= GAUDI2_STM_HBM5_MC1_CS
,
1379 .spmu_id
= GAUDI2_SPMU_HBM5_MC1_CS
,
1381 .bmon_ids
= {COMPONENT_ID_INVALID
}
1385 static struct component_config_offsets decoder_binning_cfg_table
[DEC_ID_SIZE
] = {
1386 [DEC_ID_DCORE0_DEC0
] = {
1387 .funnel_id
= COMPONENT_ID_INVALID
,
1388 .etf_id
= GAUDI2_ETF_DCORE0_VDEC0_CS
,
1389 .stm_id
= GAUDI2_STM_DCORE0_VDEC0_CS
,
1390 .spmu_id
= GAUDI2_SPMU_DCORE0_VDEC0_CS
,
1393 GAUDI2_BMON_DCORE0_VDEC0_0
,
1394 GAUDI2_BMON_DCORE0_VDEC0_1
,
1395 GAUDI2_BMON_DCORE0_VDEC0_2
,
1398 [DEC_ID_DCORE0_DEC1
] = {
1399 .funnel_id
= COMPONENT_ID_INVALID
,
1400 .etf_id
= GAUDI2_ETF_DCORE0_VDEC1_CS
,
1401 .stm_id
= GAUDI2_STM_DCORE0_VDEC1_CS
,
1402 .spmu_id
= GAUDI2_SPMU_DCORE0_VDEC1_CS
,
1405 GAUDI2_BMON_DCORE0_VDEC1_0
,
1406 GAUDI2_BMON_DCORE0_VDEC1_1
,
1407 GAUDI2_BMON_DCORE0_VDEC1_2
,
1410 [DEC_ID_DCORE1_DEC0
] = {
1411 .funnel_id
= COMPONENT_ID_INVALID
,
1412 .etf_id
= GAUDI2_ETF_DCORE1_VDEC0_CS
,
1413 .stm_id
= GAUDI2_STM_DCORE1_VDEC0_CS
,
1414 .spmu_id
= GAUDI2_SPMU_DCORE1_VDEC0_CS
,
1417 GAUDI2_BMON_DCORE1_VDEC0_0
,
1418 GAUDI2_BMON_DCORE1_VDEC0_1
,
1419 GAUDI2_BMON_DCORE1_VDEC0_2
,
1422 [DEC_ID_DCORE1_DEC1
] = {
1423 .funnel_id
= COMPONENT_ID_INVALID
,
1424 .etf_id
= GAUDI2_ETF_DCORE1_VDEC1_CS
,
1425 .stm_id
= GAUDI2_STM_DCORE1_VDEC1_CS
,
1426 .spmu_id
= GAUDI2_SPMU_DCORE1_VDEC1_CS
,
1429 GAUDI2_BMON_DCORE1_VDEC1_0
,
1430 GAUDI2_BMON_DCORE1_VDEC1_1
,
1431 GAUDI2_BMON_DCORE1_VDEC1_2
,
1434 [DEC_ID_DCORE2_DEC0
] = {
1435 .funnel_id
= COMPONENT_ID_INVALID
,
1436 .etf_id
= GAUDI2_ETF_DCORE2_VDEC0_CS
,
1437 .stm_id
= GAUDI2_STM_DCORE2_VDEC0_CS
,
1438 .spmu_id
= GAUDI2_SPMU_DCORE2_VDEC0_CS
,
1441 GAUDI2_BMON_DCORE2_VDEC0_0
,
1442 GAUDI2_BMON_DCORE2_VDEC0_1
,
1443 GAUDI2_BMON_DCORE2_VDEC0_2
,
1446 [DEC_ID_DCORE2_DEC1
] = {
1447 .funnel_id
= COMPONENT_ID_INVALID
,
1448 .etf_id
= GAUDI2_ETF_DCORE2_VDEC1_CS
,
1449 .stm_id
= GAUDI2_STM_DCORE2_VDEC1_CS
,
1450 .spmu_id
= GAUDI2_SPMU_DCORE2_VDEC1_CS
,
1453 GAUDI2_BMON_DCORE2_VDEC1_0
,
1454 GAUDI2_BMON_DCORE2_VDEC1_1
,
1455 GAUDI2_BMON_DCORE2_VDEC1_2
,
1458 [DEC_ID_DCORE3_DEC0
] = {
1459 .funnel_id
= COMPONENT_ID_INVALID
,
1460 .etf_id
= GAUDI2_ETF_DCORE3_VDEC0_CS
,
1461 .stm_id
= GAUDI2_STM_DCORE3_VDEC0_CS
,
1462 .spmu_id
= GAUDI2_SPMU_DCORE3_VDEC0_CS
,
1465 GAUDI2_BMON_DCORE3_VDEC0_0
,
1466 GAUDI2_BMON_DCORE3_VDEC0_1
,
1467 GAUDI2_BMON_DCORE3_VDEC0_2
,
1470 [DEC_ID_DCORE3_DEC1
] = {
1471 .funnel_id
= COMPONENT_ID_INVALID
,
1472 .etf_id
= GAUDI2_ETF_DCORE3_VDEC1_CS
,
1473 .stm_id
= GAUDI2_STM_DCORE3_VDEC1_CS
,
1474 .spmu_id
= GAUDI2_SPMU_DCORE3_VDEC1_CS
,
1477 GAUDI2_BMON_DCORE3_VDEC1_0
,
1478 GAUDI2_BMON_DCORE3_VDEC1_1
,
1479 GAUDI2_BMON_DCORE3_VDEC1_2
,
1482 [DEC_ID_PCIE_VDEC0
] = {
1483 .funnel_id
= COMPONENT_ID_INVALID
,
1484 .etf_id
= GAUDI2_ETF_PCIE_VDEC0_CS
,
1485 .stm_id
= GAUDI2_STM_PCIE_VDEC0_CS
,
1486 .spmu_id
= GAUDI2_SPMU_PCIE_VDEC0_CS
,
1489 GAUDI2_BMON_PCIE_VDEC0_0
,
1490 GAUDI2_BMON_PCIE_VDEC0_1
,
1491 GAUDI2_BMON_PCIE_VDEC0_2
,
1494 [DEC_ID_PCIE_VDEC1
] = {
1495 .funnel_id
= COMPONENT_ID_INVALID
,
1496 .etf_id
= GAUDI2_ETF_PCIE_VDEC1_CS
,
1497 .stm_id
= GAUDI2_STM_PCIE_VDEC1_CS
,
1498 .spmu_id
= GAUDI2_SPMU_PCIE_VDEC1_CS
,
1501 GAUDI2_BMON_PCIE_VDEC1_0
,
1502 GAUDI2_BMON_PCIE_VDEC1_1
,
1503 GAUDI2_BMON_PCIE_VDEC1_2
,
1508 static struct component_config_offsets edma_binning_cfg_table
[EDMA_ID_SIZE
] = {
1509 [EDMA_ID_DCORE0_INSTANCE0
] = {
1510 .funnel_id
= COMPONENT_ID_INVALID
,
1511 .etf_id
= GAUDI2_ETF_DCORE0_EDMA0_CS
,
1512 .stm_id
= GAUDI2_STM_DCORE0_EDMA0_CS
,
1513 .spmu_id
= GAUDI2_SPMU_DCORE0_EDMA0_CS
,
1516 GAUDI2_BMON_DCORE0_EDMA0_0
,
1517 GAUDI2_BMON_DCORE0_EDMA0_1
,
1520 [EDMA_ID_DCORE0_INSTANCE1
] = {
1521 .funnel_id
= COMPONENT_ID_INVALID
,
1522 .etf_id
= GAUDI2_ETF_DCORE0_EDMA1_CS
,
1523 .stm_id
= GAUDI2_STM_DCORE0_EDMA1_CS
,
1524 .spmu_id
= GAUDI2_SPMU_DCORE0_EDMA1_CS
,
1527 GAUDI2_BMON_DCORE0_EDMA1_0
,
1528 GAUDI2_BMON_DCORE0_EDMA1_1
,
1531 [EDMA_ID_DCORE1_INSTANCE0
] = {
1532 .funnel_id
= COMPONENT_ID_INVALID
,
1533 .etf_id
= GAUDI2_ETF_DCORE1_EDMA0_CS
,
1534 .stm_id
= GAUDI2_STM_DCORE1_EDMA0_CS
,
1535 .spmu_id
= GAUDI2_SPMU_DCORE1_EDMA0_CS
,
1538 GAUDI2_BMON_DCORE1_EDMA0_0
,
1539 GAUDI2_BMON_DCORE1_EDMA0_1
,
1542 [EDMA_ID_DCORE1_INSTANCE1
] = {
1543 .funnel_id
= COMPONENT_ID_INVALID
,
1544 .etf_id
= GAUDI2_ETF_DCORE1_EDMA1_CS
,
1545 .stm_id
= GAUDI2_STM_DCORE1_EDMA1_CS
,
1546 .spmu_id
= GAUDI2_SPMU_DCORE1_EDMA1_CS
,
1549 GAUDI2_BMON_DCORE1_EDMA1_0
,
1550 GAUDI2_BMON_DCORE1_EDMA1_1
,
1553 [EDMA_ID_DCORE2_INSTANCE0
] = {
1554 .funnel_id
= COMPONENT_ID_INVALID
,
1555 .etf_id
= GAUDI2_ETF_DCORE2_EDMA0_CS
,
1556 .stm_id
= GAUDI2_STM_DCORE2_EDMA0_CS
,
1557 .spmu_id
= GAUDI2_SPMU_DCORE2_EDMA0_CS
,
1560 GAUDI2_BMON_DCORE2_EDMA0_0
,
1561 GAUDI2_BMON_DCORE2_EDMA0_1
,
1564 [EDMA_ID_DCORE2_INSTANCE1
] = {
1565 .funnel_id
= COMPONENT_ID_INVALID
,
1566 .etf_id
= GAUDI2_ETF_DCORE2_EDMA1_CS
,
1567 .stm_id
= GAUDI2_STM_DCORE2_EDMA1_CS
,
1568 .spmu_id
= GAUDI2_SPMU_DCORE2_EDMA1_CS
,
1571 GAUDI2_BMON_DCORE2_EDMA1_0
,
1572 GAUDI2_BMON_DCORE2_EDMA1_1
,
1575 [EDMA_ID_DCORE3_INSTANCE0
] = {
1576 .funnel_id
= COMPONENT_ID_INVALID
,
1577 .etf_id
= GAUDI2_ETF_DCORE3_EDMA0_CS
,
1578 .stm_id
= GAUDI2_STM_DCORE3_EDMA0_CS
,
1579 .spmu_id
= GAUDI2_SPMU_DCORE3_EDMA0_CS
,
1582 GAUDI2_BMON_DCORE3_EDMA0_0
,
1583 GAUDI2_BMON_DCORE3_EDMA0_1
,
1586 [EDMA_ID_DCORE3_INSTANCE1
] = {
1587 .funnel_id
= COMPONENT_ID_INVALID
,
1588 .etf_id
= GAUDI2_ETF_DCORE3_EDMA1_CS
,
1589 .stm_id
= GAUDI2_STM_DCORE3_EDMA1_CS
,
1590 .spmu_id
= GAUDI2_SPMU_DCORE3_EDMA1_CS
,
1593 GAUDI2_BMON_DCORE3_EDMA1_0
,
1594 GAUDI2_BMON_DCORE3_EDMA1_1
,
1599 static struct component_config_offsets tpc_binning_cfg_table
[TPC_ID_SIZE
] = {
1600 [TPC_ID_DCORE0_TPC0
] = {
1601 .funnel_id
= GAUDI2_FUNNEL_DCORE0_TPC0_EML
,
1602 .etf_id
= GAUDI2_ETF_DCORE0_TPC0_EML
,
1603 .stm_id
= GAUDI2_STM_DCORE0_TPC0_EML
,
1604 .spmu_id
= GAUDI2_SPMU_DCORE0_TPC0_EML
,
1607 GAUDI2_BMON_DCORE0_TPC0_EML_0
,
1608 GAUDI2_BMON_DCORE0_TPC0_EML_1
,
1609 GAUDI2_BMON_DCORE0_TPC0_EML_2
,
1610 GAUDI2_BMON_DCORE0_TPC0_EML_3
,
1613 [TPC_ID_DCORE0_TPC1
] = {
1614 .funnel_id
= GAUDI2_FUNNEL_DCORE0_TPC1_EML
,
1615 .etf_id
= GAUDI2_ETF_DCORE0_TPC1_EML
,
1616 .stm_id
= GAUDI2_STM_DCORE0_TPC1_EML
,
1617 .spmu_id
= GAUDI2_SPMU_DCORE0_TPC1_EML
,
1620 GAUDI2_BMON_DCORE0_TPC1_EML_0
,
1621 GAUDI2_BMON_DCORE0_TPC1_EML_1
,
1622 GAUDI2_BMON_DCORE0_TPC1_EML_2
,
1623 GAUDI2_BMON_DCORE0_TPC1_EML_3
,
1626 [TPC_ID_DCORE0_TPC2
] = {
1627 .funnel_id
= GAUDI2_FUNNEL_DCORE0_TPC2_EML
,
1628 .etf_id
= GAUDI2_ETF_DCORE0_TPC2_EML
,
1629 .stm_id
= GAUDI2_STM_DCORE0_TPC2_EML
,
1630 .spmu_id
= GAUDI2_SPMU_DCORE0_TPC2_EML
,
1633 GAUDI2_BMON_DCORE0_TPC2_EML_0
,
1634 GAUDI2_BMON_DCORE0_TPC2_EML_1
,
1635 GAUDI2_BMON_DCORE0_TPC2_EML_2
,
1636 GAUDI2_BMON_DCORE0_TPC2_EML_3
,
1639 [TPC_ID_DCORE0_TPC3
] = {
1640 .funnel_id
= GAUDI2_FUNNEL_DCORE0_TPC3_EML
,
1641 .etf_id
= GAUDI2_ETF_DCORE0_TPC3_EML
,
1642 .stm_id
= GAUDI2_STM_DCORE0_TPC3_EML
,
1643 .spmu_id
= GAUDI2_SPMU_DCORE0_TPC3_EML
,
1646 GAUDI2_BMON_DCORE0_TPC3_EML_0
,
1647 GAUDI2_BMON_DCORE0_TPC3_EML_1
,
1648 GAUDI2_BMON_DCORE0_TPC3_EML_2
,
1649 GAUDI2_BMON_DCORE0_TPC3_EML_3
,
1652 [TPC_ID_DCORE0_TPC4
] = {
1653 .funnel_id
= GAUDI2_FUNNEL_DCORE0_TPC4_EML
,
1654 .etf_id
= GAUDI2_ETF_DCORE0_TPC4_EML
,
1655 .stm_id
= GAUDI2_STM_DCORE0_TPC4_EML
,
1656 .spmu_id
= GAUDI2_SPMU_DCORE0_TPC4_EML
,
1659 GAUDI2_BMON_DCORE0_TPC4_EML_0
,
1660 GAUDI2_BMON_DCORE0_TPC4_EML_1
,
1661 GAUDI2_BMON_DCORE0_TPC4_EML_2
,
1662 GAUDI2_BMON_DCORE0_TPC4_EML_3
,
1665 [TPC_ID_DCORE0_TPC5
] = {
1666 .funnel_id
= GAUDI2_FUNNEL_DCORE0_TPC5_EML
,
1667 .etf_id
= GAUDI2_ETF_DCORE0_TPC5_EML
,
1668 .stm_id
= GAUDI2_STM_DCORE0_TPC5_EML
,
1669 .spmu_id
= GAUDI2_SPMU_DCORE0_TPC5_EML
,
1672 GAUDI2_BMON_DCORE0_TPC5_EML_0
,
1673 GAUDI2_BMON_DCORE0_TPC5_EML_1
,
1674 GAUDI2_BMON_DCORE0_TPC5_EML_2
,
1675 GAUDI2_BMON_DCORE0_TPC5_EML_3
,
1678 [TPC_ID_DCORE1_TPC0
] = {
1679 .funnel_id
= GAUDI2_FUNNEL_DCORE1_TPC0_EML
,
1680 .etf_id
= GAUDI2_ETF_DCORE1_TPC0_EML
,
1681 .stm_id
= GAUDI2_STM_DCORE1_TPC0_EML
,
1682 .spmu_id
= GAUDI2_SPMU_DCORE1_TPC0_EML
,
1685 GAUDI2_BMON_DCORE1_TPC0_EML_0
,
1686 GAUDI2_BMON_DCORE1_TPC0_EML_1
,
1687 GAUDI2_BMON_DCORE1_TPC0_EML_2
,
1688 GAUDI2_BMON_DCORE1_TPC0_EML_3
,
1691 [TPC_ID_DCORE1_TPC1
] = {
1692 .funnel_id
= GAUDI2_FUNNEL_DCORE1_TPC1_EML
,
1693 .etf_id
= GAUDI2_ETF_DCORE1_TPC1_EML
,
1694 .stm_id
= GAUDI2_STM_DCORE1_TPC1_EML
,
1695 .spmu_id
= GAUDI2_SPMU_DCORE1_TPC1_EML
,
1698 GAUDI2_BMON_DCORE1_TPC1_EML_0
,
1699 GAUDI2_BMON_DCORE1_TPC1_EML_1
,
1700 GAUDI2_BMON_DCORE1_TPC1_EML_2
,
1701 GAUDI2_BMON_DCORE1_TPC1_EML_3
,
1704 [TPC_ID_DCORE1_TPC2
] = {
1705 .funnel_id
= GAUDI2_FUNNEL_DCORE1_TPC2_EML
,
1706 .etf_id
= GAUDI2_ETF_DCORE1_TPC2_EML
,
1707 .stm_id
= GAUDI2_STM_DCORE1_TPC2_EML
,
1708 .spmu_id
= GAUDI2_SPMU_DCORE1_TPC2_EML
,
1711 GAUDI2_BMON_DCORE1_TPC2_EML_0
,
1712 GAUDI2_BMON_DCORE1_TPC2_EML_1
,
1713 GAUDI2_BMON_DCORE1_TPC2_EML_2
,
1714 GAUDI2_BMON_DCORE1_TPC2_EML_3
,
1717 [TPC_ID_DCORE1_TPC3
] = {
1718 .funnel_id
= GAUDI2_FUNNEL_DCORE1_TPC3_EML
,
1719 .etf_id
= GAUDI2_ETF_DCORE1_TPC3_EML
,
1720 .stm_id
= GAUDI2_STM_DCORE1_TPC3_EML
,
1721 .spmu_id
= GAUDI2_SPMU_DCORE1_TPC3_EML
,
1724 GAUDI2_BMON_DCORE1_TPC3_EML_0
,
1725 GAUDI2_BMON_DCORE1_TPC3_EML_1
,
1726 GAUDI2_BMON_DCORE1_TPC3_EML_2
,
1727 GAUDI2_BMON_DCORE1_TPC3_EML_3
,
1730 [TPC_ID_DCORE1_TPC4
] = {
1731 .funnel_id
= GAUDI2_FUNNEL_DCORE1_TPC4_EML
,
1732 .etf_id
= GAUDI2_ETF_DCORE1_TPC4_EML
,
1733 .stm_id
= GAUDI2_STM_DCORE1_TPC4_EML
,
1734 .spmu_id
= GAUDI2_SPMU_DCORE1_TPC4_EML
,
1737 GAUDI2_BMON_DCORE1_TPC4_EML_0
,
1738 GAUDI2_BMON_DCORE1_TPC4_EML_1
,
1739 GAUDI2_BMON_DCORE1_TPC4_EML_2
,
1740 GAUDI2_BMON_DCORE1_TPC4_EML_3
,
1743 [TPC_ID_DCORE1_TPC5
] = {
1744 .funnel_id
= GAUDI2_FUNNEL_DCORE1_TPC5_EML
,
1745 .etf_id
= GAUDI2_ETF_DCORE1_TPC5_EML
,
1746 .stm_id
= GAUDI2_STM_DCORE1_TPC5_EML
,
1747 .spmu_id
= GAUDI2_SPMU_DCORE1_TPC5_EML
,
1750 GAUDI2_BMON_DCORE1_TPC5_EML_0
,
1751 GAUDI2_BMON_DCORE1_TPC5_EML_1
,
1752 GAUDI2_BMON_DCORE1_TPC5_EML_2
,
1753 GAUDI2_BMON_DCORE1_TPC5_EML_3
,
1756 [TPC_ID_DCORE2_TPC0
] = {
1757 .funnel_id
= GAUDI2_FUNNEL_DCORE2_TPC0_EML
,
1758 .etf_id
= GAUDI2_ETF_DCORE2_TPC0_EML
,
1759 .stm_id
= GAUDI2_STM_DCORE2_TPC0_EML
,
1760 .spmu_id
= GAUDI2_SPMU_DCORE2_TPC0_EML
,
1763 GAUDI2_BMON_DCORE2_TPC0_EML_0
,
1764 GAUDI2_BMON_DCORE2_TPC0_EML_1
,
1765 GAUDI2_BMON_DCORE2_TPC0_EML_2
,
1766 GAUDI2_BMON_DCORE2_TPC0_EML_3
,
1769 [TPC_ID_DCORE2_TPC1
] = {
1770 .funnel_id
= GAUDI2_FUNNEL_DCORE2_TPC1_EML
,
1771 .etf_id
= GAUDI2_ETF_DCORE2_TPC1_EML
,
1772 .stm_id
= GAUDI2_STM_DCORE2_TPC1_EML
,
1773 .spmu_id
= GAUDI2_SPMU_DCORE2_TPC1_EML
,
1776 GAUDI2_BMON_DCORE2_TPC1_EML_0
,
1777 GAUDI2_BMON_DCORE2_TPC1_EML_1
,
1778 GAUDI2_BMON_DCORE2_TPC1_EML_2
,
1779 GAUDI2_BMON_DCORE2_TPC1_EML_3
,
1782 [TPC_ID_DCORE2_TPC2
] = {
1783 .funnel_id
= GAUDI2_FUNNEL_DCORE2_TPC2_EML
,
1784 .etf_id
= GAUDI2_ETF_DCORE2_TPC2_EML
,
1785 .stm_id
= GAUDI2_STM_DCORE2_TPC2_EML
,
1786 .spmu_id
= GAUDI2_SPMU_DCORE2_TPC2_EML
,
1789 GAUDI2_BMON_DCORE2_TPC2_EML_0
,
1790 GAUDI2_BMON_DCORE2_TPC2_EML_1
,
1791 GAUDI2_BMON_DCORE2_TPC2_EML_2
,
1792 GAUDI2_BMON_DCORE2_TPC2_EML_3
,
1795 [TPC_ID_DCORE2_TPC3
] = {
1796 .funnel_id
= GAUDI2_FUNNEL_DCORE2_TPC3_EML
,
1797 .etf_id
= GAUDI2_ETF_DCORE2_TPC3_EML
,
1798 .stm_id
= GAUDI2_STM_DCORE2_TPC3_EML
,
1799 .spmu_id
= GAUDI2_SPMU_DCORE2_TPC3_EML
,
1802 GAUDI2_BMON_DCORE2_TPC3_EML_0
,
1803 GAUDI2_BMON_DCORE2_TPC3_EML_1
,
1804 GAUDI2_BMON_DCORE2_TPC3_EML_2
,
1805 GAUDI2_BMON_DCORE2_TPC3_EML_3
,
1808 [TPC_ID_DCORE2_TPC4
] = {
1809 .funnel_id
= GAUDI2_FUNNEL_DCORE2_TPC4_EML
,
1810 .etf_id
= GAUDI2_ETF_DCORE2_TPC4_EML
,
1811 .stm_id
= GAUDI2_STM_DCORE2_TPC4_EML
,
1812 .spmu_id
= GAUDI2_SPMU_DCORE2_TPC4_EML
,
1815 GAUDI2_BMON_DCORE2_TPC4_EML_0
,
1816 GAUDI2_BMON_DCORE2_TPC4_EML_1
,
1817 GAUDI2_BMON_DCORE2_TPC4_EML_2
,
1818 GAUDI2_BMON_DCORE2_TPC4_EML_3
,
1821 [TPC_ID_DCORE2_TPC5
] = {
1822 .funnel_id
= GAUDI2_FUNNEL_DCORE2_TPC5_EML
,
1823 .etf_id
= GAUDI2_ETF_DCORE2_TPC5_EML
,
1824 .stm_id
= GAUDI2_STM_DCORE2_TPC5_EML
,
1825 .spmu_id
= GAUDI2_SPMU_DCORE2_TPC5_EML
,
1828 GAUDI2_BMON_DCORE2_TPC5_EML_0
,
1829 GAUDI2_BMON_DCORE2_TPC5_EML_1
,
1830 GAUDI2_BMON_DCORE2_TPC5_EML_2
,
1831 GAUDI2_BMON_DCORE2_TPC5_EML_3
,
1834 [TPC_ID_DCORE3_TPC0
] = {
1835 .funnel_id
= GAUDI2_FUNNEL_DCORE3_TPC0_EML
,
1836 .etf_id
= GAUDI2_ETF_DCORE3_TPC0_EML
,
1837 .stm_id
= GAUDI2_STM_DCORE3_TPC0_EML
,
1838 .spmu_id
= GAUDI2_SPMU_DCORE3_TPC0_EML
,
1841 GAUDI2_BMON_DCORE3_TPC0_EML_0
,
1842 GAUDI2_BMON_DCORE3_TPC0_EML_1
,
1843 GAUDI2_BMON_DCORE3_TPC0_EML_2
,
1844 GAUDI2_BMON_DCORE3_TPC0_EML_3
,
1847 [TPC_ID_DCORE3_TPC1
] = {
1848 .funnel_id
= GAUDI2_FUNNEL_DCORE3_TPC1_EML
,
1849 .etf_id
= GAUDI2_ETF_DCORE3_TPC1_EML
,
1850 .stm_id
= GAUDI2_STM_DCORE3_TPC1_EML
,
1851 .spmu_id
= GAUDI2_SPMU_DCORE3_TPC1_EML
,
1854 GAUDI2_BMON_DCORE3_TPC1_EML_0
,
1855 GAUDI2_BMON_DCORE3_TPC1_EML_1
,
1856 GAUDI2_BMON_DCORE3_TPC1_EML_2
,
1857 GAUDI2_BMON_DCORE3_TPC1_EML_3
,
1860 [TPC_ID_DCORE3_TPC2
] = {
1861 .funnel_id
= GAUDI2_FUNNEL_DCORE3_TPC2_EML
,
1862 .etf_id
= GAUDI2_ETF_DCORE3_TPC2_EML
,
1863 .stm_id
= GAUDI2_STM_DCORE3_TPC2_EML
,
1864 .spmu_id
= GAUDI2_SPMU_DCORE3_TPC2_EML
,
1867 GAUDI2_BMON_DCORE3_TPC2_EML_0
,
1868 GAUDI2_BMON_DCORE3_TPC2_EML_1
,
1869 GAUDI2_BMON_DCORE3_TPC2_EML_2
,
1870 GAUDI2_BMON_DCORE3_TPC2_EML_3
,
1873 [TPC_ID_DCORE3_TPC3
] = {
1874 .funnel_id
= GAUDI2_FUNNEL_DCORE3_TPC3_EML
,
1875 .etf_id
= GAUDI2_ETF_DCORE3_TPC3_EML
,
1876 .stm_id
= GAUDI2_STM_DCORE3_TPC3_EML
,
1877 .spmu_id
= GAUDI2_SPMU_DCORE3_TPC3_EML
,
1880 GAUDI2_BMON_DCORE3_TPC3_EML_0
,
1881 GAUDI2_BMON_DCORE3_TPC3_EML_1
,
1882 GAUDI2_BMON_DCORE3_TPC3_EML_2
,
1883 GAUDI2_BMON_DCORE3_TPC3_EML_3
,
1886 [TPC_ID_DCORE3_TPC4
] = {
1887 .funnel_id
= GAUDI2_FUNNEL_DCORE3_TPC4_EML
,
1888 .etf_id
= GAUDI2_ETF_DCORE3_TPC4_EML
,
1889 .stm_id
= GAUDI2_STM_DCORE3_TPC4_EML
,
1890 .spmu_id
= GAUDI2_SPMU_DCORE3_TPC4_EML
,
1893 GAUDI2_BMON_DCORE3_TPC4_EML_0
,
1894 GAUDI2_BMON_DCORE3_TPC4_EML_1
,
1895 GAUDI2_BMON_DCORE3_TPC4_EML_2
,
1896 GAUDI2_BMON_DCORE3_TPC4_EML_3
,
1899 [TPC_ID_DCORE3_TPC5
] = {
1900 .funnel_id
= GAUDI2_FUNNEL_DCORE3_TPC5_EML
,
1901 .etf_id
= GAUDI2_ETF_DCORE3_TPC5_EML
,
1902 .stm_id
= GAUDI2_STM_DCORE3_TPC5_EML
,
1903 .spmu_id
= GAUDI2_SPMU_DCORE3_TPC5_EML
,
1906 GAUDI2_BMON_DCORE3_TPC5_EML_0
,
1907 GAUDI2_BMON_DCORE3_TPC5_EML_1
,
1908 GAUDI2_BMON_DCORE3_TPC5_EML_2
,
1909 GAUDI2_BMON_DCORE3_TPC5_EML_3
,
1912 [TPC_ID_DCORE0_TPC6
] = {
1913 .funnel_id
= GAUDI2_FUNNEL_DCORE0_TPC6_EML
,
1914 .etf_id
= GAUDI2_ETF_DCORE0_TPC6_EML
,
1915 .stm_id
= GAUDI2_STM_DCORE0_TPC6_EML
,
1916 .spmu_id
= GAUDI2_SPMU_DCORE0_TPC6_EML
,
1919 GAUDI2_BMON_DCORE0_TPC6_EML_0
,
1920 GAUDI2_BMON_DCORE0_TPC6_EML_1
,
1921 GAUDI2_BMON_DCORE0_TPC6_EML_2
,
1922 GAUDI2_BMON_DCORE0_TPC6_EML_3
,
1927 static int gaudi2_coresight_timeout(struct hl_device
*hdev
, u64 addr
,
1928 int position
, bool up
)
1931 u32 val
, timeout_usec
;
1934 timeout_usec
= GAUDI2_PLDM_CORESIGHT_TIMEOUT_USEC
;
1936 timeout_usec
= CORESIGHT_TIMEOUT_USEC
;
1938 rc
= hl_poll_timeout(
1942 up
? val
& BIT(position
) : !(val
& BIT(position
)),
1948 "Timeout while waiting for coresight, addr: 0x%llx, position: %d, up: %d\n",
1949 addr
, position
, up
);
1954 static int gaudi2_unlock_coresight_unit(struct hl_device
*hdev
,
1959 WREG32(base_reg
+ mmCORESIGHT_UNLOCK_REGISTER_OFFSET
, CORESIGHT_UNLOCK
);
1961 rc
= gaudi2_coresight_timeout(hdev
, base_reg
+ mmCORESIGHT_UNLOCK_STATUS_REGISTER_OFFSET
,
1966 "Failed to unlock register base addr: 0x%llx , position: 1, up: 0\n",
1972 static int gaudi2_config_stm(struct hl_device
*hdev
, struct hl_debug_params
*params
)
1974 struct hl_debug_params_stm
*input
;
1980 if (params
->reg_idx
>= ARRAY_SIZE(debug_stm_regs
)) {
1981 dev_err(hdev
->dev
, "Invalid register index in STM\n");
1985 base_reg
= debug_stm_regs
[params
->reg_idx
];
1988 * in case base reg is 0x0 we ignore this configuration
1993 /* check if stub component on pldm
1994 * we check offset 0xCFC STMDMAIDR in case
1995 * return value is 0x0 - hence stub component
1997 read_reg
= RREG32(base_reg
+ mmSTM_STMDMAIDR_OFFSET
);
1998 if (hdev
->pldm
&& read_reg
== 0x0)
2001 rc
= gaudi2_unlock_coresight_unit(hdev
, base_reg
);
2005 if (params
->enable
) {
2006 input
= params
->input
;
2011 WREG32(base_reg
+ mmSTM_STMTCSR_OFFSET
, 0x80004);
2012 /* dummy read for pldm to flush outstanding writes */
2014 RREG32(base_reg
+ mmSTM_STMTCSR_OFFSET
);
2016 WREG32(base_reg
+ mmSTM_STMHEMCR_OFFSET
, 7);
2017 WREG32(base_reg
+ mmSTM_STMHEBSR_OFFSET
, 0);
2018 WREG32(base_reg
+ mmSTM_STMHEER_OFFSET
, lower_32_bits(input
->he_mask
));
2019 WREG32(base_reg
+ mmSTM_STMHEBSR_OFFSET
, 1);
2020 WREG32(base_reg
+ mmSTM_STMHEER_OFFSET
, upper_32_bits(input
->he_mask
));
2021 WREG32(base_reg
+ mmSTM_STMSPTRIGCSR_OFFSET
, 0x10);
2022 WREG32(base_reg
+ mmSTM_STMSPSCR_OFFSET
, 0);
2023 WREG32(base_reg
+ mmSTM_STMSPER_OFFSET
, lower_32_bits(input
->sp_mask
));
2024 WREG32(base_reg
+ mmSTM_STMITATBID_OFFSET
, input
->id
);
2025 WREG32(base_reg
+ mmSTM_STMHEMASTR_OFFSET
, 0x80);
2026 frequency
= hdev
->asic_prop
.psoc_timestamp_frequency
;
2028 frequency
= input
->frequency
;
2029 WREG32(base_reg
+ mmSTM_STMTSFREQR_OFFSET
, frequency
);
2030 WREG32(base_reg
+ mmSTM_STMSYNCR_OFFSET
, 0x7FF);
2031 WREG32(base_reg
+ mmSTM_STMTCSR_OFFSET
, 0x27 | (input
->id
<< 16));
2033 WREG32(base_reg
+ mmSTM_STMTCSR_OFFSET
, 4);
2034 WREG32(base_reg
+ mmSTM_STMHEMCR_OFFSET
, 0);
2035 WREG32(base_reg
+ mmSTM_STMHEBSR_OFFSET
, 1);
2036 WREG32(base_reg
+ mmSTM_STMHEER_OFFSET
, 0);
2037 WREG32(base_reg
+ mmSTM_STMHETER_OFFSET
, 0);
2038 WREG32(base_reg
+ mmSTM_STMHEBSR_OFFSET
, 0);
2039 WREG32(base_reg
+ mmSTM_STMSPTER_OFFSET
, 0);
2040 WREG32(base_reg
+ mmSTM_STMSPER_OFFSET
, 0);
2041 WREG32(base_reg
+ mmSTM_STMHEMASTR_OFFSET
, 0x80);
2042 WREG32(base_reg
+ mmSTM_STMSPTRIGCSR_OFFSET
, 0);
2043 WREG32(base_reg
+ mmSTM_STMSPSCR_OFFSET
, 0);
2044 WREG32(base_reg
+ mmSTM_STMSPMSCR_OFFSET
, 0);
2045 WREG32(base_reg
+ mmSTM_STMTSFREQR_OFFSET
, 0);
2047 rc
= gaudi2_coresight_timeout(hdev
, base_reg
+ mmSTM_STMTCSR_OFFSET
, 23, false);
2049 dev_err(hdev
->dev
, "Failed to disable STM on timeout, error %d\n", rc
);
2053 WREG32(base_reg
+ mmSTM_STMTCSR_OFFSET
, 4);
2059 static int gaudi2_config_etf(struct hl_device
*hdev
, struct hl_debug_params
*params
)
2061 struct hl_debug_params_etf
*input
;
2067 if (params
->reg_idx
>= ARRAY_SIZE(debug_etf_regs
)) {
2068 dev_err(hdev
->dev
, "Invalid register index in ETF\n");
2072 base_reg
= debug_etf_regs
[params
->reg_idx
];
2075 * in case base reg is 0x0 we ignore this configuration
2081 /* in pldm we need to check if unit is not stub
2082 * for doing do need to read ETF STS register and check
2083 * it is not return 0x0 - in case it does
2084 * it means that this is stub, we ignore this and return 0
2087 read_reg
= RREG32(base_reg
+ mmETF_STS_OFFSET
);
2088 if (hdev
->pldm
&& read_reg
== 0x0)
2091 rc
= gaudi2_unlock_coresight_unit(hdev
, base_reg
);
2095 val
= RREG32(base_reg
+ mmETF_CTL_OFFSET
);
2097 if ((!params
->enable
&& val
== 0x0) || (params
->enable
&& val
!= 0x0))
2100 val
= RREG32(base_reg
+ mmETF_FFCR_OFFSET
);
2102 WREG32(base_reg
+ mmETF_FFCR_OFFSET
, val
);
2104 WREG32(base_reg
+ mmETF_FFCR_OFFSET
, val
);
2106 rc
= gaudi2_coresight_timeout(hdev
, base_reg
+ mmETF_FFCR_OFFSET
, 6, false);
2108 dev_err(hdev
->dev
, "Failed to %s ETF on timeout, error %d\n",
2109 params
->enable
? "enable" : "disable", rc
);
2113 rc
= gaudi2_coresight_timeout(hdev
, base_reg
+ mmETF_STS_OFFSET
, 2, true);
2115 dev_err(hdev
->dev
, "Failed to %s ETF on timeout, error %d\n",
2116 params
->enable
? "enable" : "disable", rc
);
2120 WREG32(base_reg
+ mmETF_CTL_OFFSET
, 0);
2122 if (params
->enable
) {
2123 input
= params
->input
;
2128 val
= RREG32(base_reg
+ mmETF_RSZ_OFFSET
) << 2;
2131 WREG32(base_reg
+ mmETF_PSCR_OFFSET
, val
);
2133 WREG32(base_reg
+ mmETF_PSCR_OFFSET
, 0x10);
2136 WREG32(base_reg
+ mmETF_BUFWM_OFFSET
, 0x3FFC);
2137 WREG32(base_reg
+ mmETF_MODE_OFFSET
, input
->sink_mode
);
2138 WREG32(base_reg
+ mmETF_FFCR_OFFSET
, 0x4001);
2139 WREG32(base_reg
+ mmETF_CTL_OFFSET
, 1);
2141 WREG32(base_reg
+ mmETF_BUFWM_OFFSET
, 0);
2142 WREG32(base_reg
+ mmETF_MODE_OFFSET
, 0);
2143 WREG32(base_reg
+ mmETF_FFCR_OFFSET
, 0);
2149 static int gaudi2_etr_validate_address(struct hl_device
*hdev
, u64 addr
, u64 size
)
2151 struct asic_fixed_properties
*prop
= &hdev
->asic_prop
;
2152 struct gaudi2_device
*gaudi2
= hdev
->asic_specific
;
2154 if (addr
> (addr
+ size
)) {
2155 dev_err(hdev
->dev
, "ETR buffer size %llu overflow\n", size
);
2159 if (gaudi2
->hw_cap_initialized
& HW_CAP_PMMU
) {
2160 if (hl_mem_area_inside_range(addr
, size
,
2161 prop
->pmmu
.start_addr
,
2162 prop
->pmmu
.end_addr
))
2165 if (hl_mem_area_inside_range(addr
, size
,
2166 prop
->pmmu_huge
.start_addr
,
2167 prop
->pmmu_huge
.end_addr
))
2170 if (hl_mem_area_inside_range(addr
, size
,
2171 prop
->dmmu
.start_addr
,
2172 prop
->dmmu
.end_addr
))
2175 if (hl_mem_area_inside_range(addr
, size
,
2176 prop
->dram_user_base_address
,
2177 prop
->dram_end_address
))
2181 if (hl_mem_area_inside_range(addr
, size
,
2182 prop
->sram_user_base_address
,
2183 prop
->sram_end_address
))
2186 if (!(gaudi2
->hw_cap_initialized
& HW_CAP_PMMU
))
2187 dev_err(hdev
->dev
, "ETR buffer should be in SRAM/DRAM\n");
2192 static int gaudi2_config_etr(struct hl_device
*hdev
, struct hl_ctx
*ctx
,
2193 struct hl_debug_params
*params
)
2195 struct hl_debug_params_etr
*input
;
2200 rc
= gaudi2_unlock_coresight_unit(hdev
, mmPSOC_ETR_BASE
);
2204 val
= RREG32(mmPSOC_ETR_CTL
);
2206 if ((!params
->enable
&& val
== 0x0) || (params
->enable
&& val
!= 0x0))
2209 val
= RREG32(mmPSOC_ETR_FFCR
);
2211 WREG32(mmPSOC_ETR_FFCR
, val
);
2213 WREG32(mmPSOC_ETR_FFCR
, val
);
2215 rc
= gaudi2_coresight_timeout(hdev
, mmPSOC_ETR_FFCR
, 6, false);
2217 dev_err(hdev
->dev
, "Failed to %s ETR on timeout, error %d\n",
2218 params
->enable
? "enable" : "disable", rc
);
2222 rc
= gaudi2_coresight_timeout(hdev
, mmPSOC_ETR_STS
, 2, true);
2224 dev_err(hdev
->dev
, "Failed to %s ETR on timeout, error %d\n",
2225 params
->enable
? "enable" : "disable", rc
);
2229 WREG32(mmPSOC_ETR_CTL
, 0);
2231 if (params
->enable
) {
2232 input
= params
->input
;
2237 if (input
->buffer_size
== 0) {
2238 dev_err(hdev
->dev
, "ETR buffer size should be bigger than 0\n");
2242 if (!gaudi2_etr_validate_address(hdev
, input
->buffer_address
, input
->buffer_size
)) {
2243 dev_err(hdev
->dev
, "ETR buffer address is invalid\n");
2247 RMWREG32(mmPSOC_GLOBAL_CONF_TRACE_AWUSER
, ctx
->asid
, MMUBP_ASID_MASK
);
2248 RMWREG32(mmPSOC_GLOBAL_CONF_TRACE_ARUSER
, ctx
->asid
, MMUBP_ASID_MASK
);
2250 msb
= upper_32_bits(input
->buffer_address
) >> 8;
2251 WREG32(mmPSOC_GLOBAL_CONF_TRACE_ADDR
, msb
);
2253 WREG32(mmPSOC_ETR_BUFWM
, 0x3FFC);
2254 WREG32(mmPSOC_ETR_RSZ
, input
->buffer_size
);
2255 WREG32(mmPSOC_ETR_MODE
, input
->sink_mode
);
2256 /* write the protection bits only if security is disable */
2257 if (!(hdev
->fw_components
& FW_TYPE_BOOT_CPU
)) {
2258 /* make ETR not privileged */
2259 val
= FIELD_PREP(PSOC_ETR_AXICTL_PROTCTRLBIT0_MASK
, 0);
2260 /* make ETR non-secured (inverted logic) */
2261 val
|= FIELD_PREP(PSOC_ETR_AXICTL_PROTCTRLBIT1_MASK
, 1);
2263 val
|= FIELD_PREP(PSOC_ETR_AXICTL_WRBURSTLEN_MASK
, 0xF);
2264 WREG32(mmPSOC_ETR_AXICTL
, val
);
2266 WREG32(mmPSOC_ETR_DBALO
, lower_32_bits(input
->buffer_address
));
2267 WREG32(mmPSOC_ETR_DBAHI
, upper_32_bits(input
->buffer_address
));
2268 WREG32(mmPSOC_ETR_FFCR
, 3);
2269 WREG32(mmPSOC_ETR_PSCR
, 0x10);
2270 WREG32(mmPSOC_ETR_CTL
, 1);
2272 WREG32(mmPSOC_ETR_BUFWM
, 0);
2273 WREG32(mmPSOC_ETR_RSZ
, 0x400);
2274 WREG32(mmPSOC_ETR_DBALO
, 0);
2275 WREG32(mmPSOC_ETR_DBAHI
, 0);
2276 WREG32(mmPSOC_ETR_PSCR
, 0);
2277 WREG32(mmPSOC_ETR_MODE
, 0);
2278 WREG32(mmPSOC_ETR_FFCR
, 0);
2280 if (params
->output_size
>= sizeof(u64
)) {
2284 * The trace buffer address is 64 bits wide. The end of
2285 * the buffer is set in the RWP register (lower 32
2286 * bits), and in the RWPHI register (upper 8 bits).
2287 * The 24 msb of the 64-bit address are stored in a
2288 * global configuration register.
2290 rwp
= RREG32(mmPSOC_ETR_RWP
);
2291 rwphi
= RREG32(mmPSOC_ETR_RWPHI
) & 0xff;
2292 msb
= RREG32(mmPSOC_GLOBAL_CONF_TRACE_ADDR
);
2293 *(u64
*) params
->output
= ((u64
) msb
<< 40) | ((u64
) rwphi
<< 32) | rwp
;
2300 static int gaudi2_config_funnel(struct hl_device
*hdev
, struct hl_debug_params
*params
)
2303 u32 val
= params
->enable
? 0xFFF : 0;
2307 if (params
->reg_idx
>= ARRAY_SIZE(debug_funnel_regs
)) {
2308 dev_err(hdev
->dev
, "Invalid register index in FUNNEL\n");
2312 base_reg
= debug_funnel_regs
[params
->reg_idx
];
2315 * in case base reg is 0x0 we ignore this configuration
2321 /* in pldm we need to check if unit is not stub
2322 * for doing so, need to read DEVID value.
2323 * in case return 0x0 - it means that this is stub,
2324 * we ignore this and return 0 - means success
2326 read_reg
= RREG32(base_reg
+ mmFUNNEL_DEVID_OFFSET
);
2327 if (hdev
->pldm
&& read_reg
== 0x0)
2330 rc
= gaudi2_unlock_coresight_unit(hdev
, base_reg
);
2334 WREG32(base_reg
, val
);
2339 static int gaudi2_config_bmon(struct hl_device
*hdev
, struct hl_debug_params
*params
)
2341 struct hl_debug_params_bmon
*input
;
2345 if (params
->reg_idx
>= ARRAY_SIZE(debug_bmon_regs
)) {
2346 dev_err(hdev
->dev
, "Invalid register index in BMON\n");
2350 base_reg
= debug_bmon_regs
[params
->reg_idx
];
2353 * in case base reg is 0x0 we ignore this configuration
2359 /* in pldm we need to check if unit is not stub
2360 * for doing do need to read Control Register (offset 0x0) and check
2361 * it is not return 0x0 - in case it does
2362 * it means that this is stub, we ignore this and return 0
2365 read_reg
= RREG32(base_reg
+ mmBMON_CR_OFFSET
);
2366 if (hdev
->pldm
&& read_reg
== 0x0)
2369 WREG32(base_reg
+ mmBMON_ATTREN_OFFSET
, 1);
2370 /* dummy read for pldm to flush outstanding writes */
2372 RREG32(base_reg
+ mmBMON_ATTREN_OFFSET
);
2374 /* Write Only Reset AXIMON */
2376 WREG32(base_reg
+ mmBMON_RESET_OFFSET
, 0x1);
2378 if (params
->enable
) {
2379 input
= params
->input
;
2384 WREG32(base_reg
+ mmBMON_ADDRL_S0_OFFSET
, lower_32_bits(input
->start_addr0
));
2385 WREG32(base_reg
+ mmBMON_ADDRH_S0_OFFSET
, upper_32_bits(input
->start_addr0
));
2386 WREG32(base_reg
+ mmBMON_ADDRL_E0_OFFSET
, lower_32_bits(input
->addr_mask0
));
2387 WREG32(base_reg
+ mmBMON_ADDRH_E0_OFFSET
, upper_32_bits(input
->addr_mask0
));
2388 WREG32(base_reg
+ mmBMON_ADDRL_S1_OFFSET
, lower_32_bits(input
->start_addr1
));
2389 WREG32(base_reg
+ mmBMON_ADDRH_S1_OFFSET
, upper_32_bits(input
->start_addr1
));
2390 WREG32(base_reg
+ mmBMON_ADDRL_E1_OFFSET
, lower_32_bits(input
->addr_mask1
));
2391 WREG32(base_reg
+ mmBMON_ADDRH_E1_OFFSET
, upper_32_bits(input
->addr_mask1
));
2392 WREG32(base_reg
+ mmBMON_ADDRL_S2_OFFSET
, lower_32_bits(input
->start_addr2
));
2393 WREG32(base_reg
+ mmBMON_ADDRH_S2_OFFSET
, upper_32_bits(input
->start_addr2
));
2394 WREG32(base_reg
+ mmBMON_ADDRL_E2_OFFSET
, lower_32_bits(input
->end_addr2
));
2395 WREG32(base_reg
+ mmBMON_ADDRH_E2_OFFSET
, upper_32_bits(input
->end_addr2
));
2396 WREG32(base_reg
+ mmBMON_ADDRL_S3_OFFSET
, lower_32_bits(input
->start_addr3
));
2397 WREG32(base_reg
+ mmBMON_ADDRH_S3_OFFSET
, upper_32_bits(input
->start_addr3
));
2398 WREG32(base_reg
+ mmBMON_ADDRL_E3_OFFSET
, lower_32_bits(input
->end_addr3
));
2399 WREG32(base_reg
+ mmBMON_ADDRH_E3_OFFSET
, upper_32_bits(input
->end_addr3
));
2401 WREG32(base_reg
+ mmBMON_IDL_OFFSET
, 0x0);
2402 WREG32(base_reg
+ mmBMON_IDH_OFFSET
, 0x0);
2404 WREG32(base_reg
+ mmBMON_ATTREN_OFFSET
, 0);
2405 WREG32(base_reg
+ mmBMON_BW_WIN_OFFSET
, input
->bw_win
);
2406 WREG32(base_reg
+ mmBMON_WIN_CAPTURE_OFFSET
, input
->win_capture
);
2407 WREG32(base_reg
+ mmBMON_REDUCTION_OFFSET
, 0x1 | (13 << 8));
2408 WREG32(base_reg
+ mmBMON_STM_TRC_OFFSET
, 0x7 | (input
->id
<< 8));
2409 WREG32(base_reg
+ mmBMON_CR_OFFSET
, input
->control
);
2411 WREG32(base_reg
+ mmBMON_ADDRL_S0_OFFSET
, 0);
2412 WREG32(base_reg
+ mmBMON_ADDRH_S0_OFFSET
, 0);
2413 WREG32(base_reg
+ mmBMON_ADDRL_E0_OFFSET
, 0);
2414 WREG32(base_reg
+ mmBMON_ADDRH_E0_OFFSET
, 0);
2415 WREG32(base_reg
+ mmBMON_ADDRL_S1_OFFSET
, 0);
2416 WREG32(base_reg
+ mmBMON_ADDRH_S1_OFFSET
, 0);
2417 WREG32(base_reg
+ mmBMON_ADDRL_E1_OFFSET
, 0);
2418 WREG32(base_reg
+ mmBMON_ADDRH_E1_OFFSET
, 0);
2419 WREG32(base_reg
+ mmBMON_ADDRL_S2_OFFSET
, 0);
2420 WREG32(base_reg
+ mmBMON_ADDRH_S2_OFFSET
, 0);
2421 WREG32(base_reg
+ mmBMON_ADDRL_E2_OFFSET
, 0);
2422 WREG32(base_reg
+ mmBMON_ADDRH_E2_OFFSET
, 0);
2423 WREG32(base_reg
+ mmBMON_ADDRL_S3_OFFSET
, 0);
2424 WREG32(base_reg
+ mmBMON_ADDRH_S3_OFFSET
, 0);
2425 WREG32(base_reg
+ mmBMON_ADDRL_E3_OFFSET
, 0);
2426 WREG32(base_reg
+ mmBMON_ADDRH_E3_OFFSET
, 0);
2427 WREG32(base_reg
+ mmBMON_REDUCTION_OFFSET
, 0);
2428 WREG32(base_reg
+ mmBMON_STM_TRC_OFFSET
, 0x7 | (0xA << 8));
2429 WREG32(base_reg
+ mmBMON_CR_OFFSET
, 0x77 | 0xf << 24);
2435 static int gaudi2_config_spmu(struct hl_device
*hdev
, struct hl_debug_params
*params
)
2437 struct hl_debug_params_spmu
*input
= params
->input
;
2448 if (params
->reg_idx
>= ARRAY_SIZE(debug_spmu_regs
)) {
2449 dev_err(hdev
->dev
, "Invalid register index in SPMU\n");
2453 base_reg
= debug_spmu_regs
[params
->reg_idx
];
2456 * in case base reg is 0x0 we ignore this configuration
2461 /* in pldm we need to check if unit is not stub
2462 * for doing do need to read PMTRC (at offset 0x200)
2463 * address and check if return value is 0x0 - in case it does
2464 * it means that this is stub, we ignore this and return 0
2467 read_reg
= RREG32(base_reg
+ mmSPMU_PMCR_EL0_OFFSET
);
2468 if (hdev
->pldm
&& read_reg
== 0x0)
2471 if (params
->enable
) {
2472 input
= params
->input
;
2477 if (input
->event_types_num
> SPMU_MAX_COUNTERS
) {
2478 dev_err(hdev
->dev
, "too many event types values for SPMU enable\n");
2482 WREG32(base_reg
+ mmSPMU_PMCR_EL0_OFFSET
, 0x41013046);
2483 WREG32(base_reg
+ mmSPMU_PMCR_EL0_OFFSET
, 0x41013040);
2485 /* dummy read for pldm to flush outstanding writes */
2489 for (i
= 0 ; i
< input
->event_types_num
; i
++)
2490 WREG32(base_reg
+ mmSPMU_PMEVTYPER0_EL0_OFFSET
+ i
* 4,
2491 input
->event_types
[i
]);
2493 WREG32(base_reg
+ mmSPMU_PMTRC_OFFSET
, input
->pmtrc_val
);
2494 WREG32(base_reg
+ mmSPMU_TRC_CTRL_HOST_OFFSET
, input
->trc_ctrl_host_val
);
2495 WREG32(base_reg
+ mmSPMU_TRC_EN_HOST_OFFSET
, input
->trc_en_host_val
);
2497 WREG32(base_reg
+ mmSPMU_PMCR_EL0_OFFSET
, 0x41013041);
2500 * set enabled events mask based on input->event_types_num
2502 event_mask
= 0x80000000;
2503 if (input
->event_types_num
)
2504 event_mask
|= GENMASK(input
->event_types_num
- 1, 0);
2506 WREG32(base_reg
+ mmSPMU_PMCNTENSET_EL0_OFFSET
, event_mask
);
2508 output
= params
->output
;
2509 output_arr_len
= params
->output_size
/ 8;
2510 events_num
= output_arr_len
- 2;
2511 overflow_idx
= output_arr_len
- 2;
2512 cycle_cnt_idx
= output_arr_len
- 1;
2514 WREG32(base_reg
+ mmSPMU_PMCR_EL0_OFFSET
, 0x41013040);
2516 if (output
&& output_arr_len
> 2) {
2518 if (events_num
> SPMU_MAX_COUNTERS
) {
2519 dev_err(hdev
->dev
, "too many events values for SPMU disable\n");
2523 for (i
= 0 ; i
< events_num
; i
++) {
2524 const u64 performance_counter_offset
=
2525 base_reg
+ mmSPMU_PMEVCNTR0_EL0_OFFSET
+ (i
* 8);
2527 output
[i
] = RREG32(performance_counter_offset
);
2530 output
[overflow_idx
] = RREG32(base_reg
+ mmSPMU_PMOVSSET_EL0_OFFSET
);
2531 output
[cycle_cnt_idx
] = RREG32(base_reg
+ mmSPMU_PMCCNTR_H_EL0_OFFSET
);
2532 output
[cycle_cnt_idx
] <<= 32;
2533 output
[cycle_cnt_idx
] |= RREG32(base_reg
+ mmSPMU_PMCCNTR_L_EL0_OFFSET
);
2536 WREG32(base_reg
+ mmSPMU_PMOVSSET_EL0_OFFSET
, 0);
2538 /* clean pmtrc to reset value */
2539 WREG32(base_reg
+ mmSPMU_PMTRC_OFFSET
, 0x100400);
2545 int gaudi2_debug_coresight(struct hl_device
*hdev
, struct hl_ctx
*ctx
, void *data
)
2547 struct hl_debug_params
*params
= data
;
2550 switch (params
->op
) {
2551 case HL_DEBUG_OP_STM
:
2552 rc
= gaudi2_config_stm(hdev
, params
);
2554 case HL_DEBUG_OP_ETF
:
2555 rc
= gaudi2_config_etf(hdev
, params
);
2557 case HL_DEBUG_OP_ETR
:
2558 rc
= gaudi2_config_etr(hdev
, ctx
, params
);
2560 case HL_DEBUG_OP_FUNNEL
:
2561 rc
= gaudi2_config_funnel(hdev
, params
);
2563 case HL_DEBUG_OP_BMON
:
2564 rc
= gaudi2_config_bmon(hdev
, params
);
2566 case HL_DEBUG_OP_SPMU
:
2567 rc
= gaudi2_config_spmu(hdev
, params
);
2569 case HL_DEBUG_OP_TIMESTAMP
:
2570 /* Do nothing as this opcode is deprecated */
2573 dev_err(hdev
->dev
, "Unknown coresight id %d\n", params
->op
);
2580 void gaudi2_halt_coresight(struct hl_device
*hdev
, struct hl_ctx
*ctx
)
2582 struct hl_debug_params params
= {};
2585 /* in pldm attempting to access stubbed etfs can cause problems */
2587 for (i
= GAUDI2_ETF_FIRST
; i
<= GAUDI2_ETF_LAST
; i
++) {
2589 rc
= gaudi2_config_etf(hdev
, ¶ms
);
2591 dev_err(hdev
->dev
, "halt ETF failed, %d/%d\n", rc
, i
);
2594 rc
= gaudi2_config_etr(hdev
, ctx
, ¶ms
);
2596 dev_err(hdev
->dev
, "halt ETR failed, %d\n", rc
);
2600 static int gaudi2_coresight_set_disabled_components(struct hl_device
*hdev
, u32 unit_count
,
2602 const struct component_config_offsets
*binning_table
)
2604 u32 component_idx
= 0;
2608 /* in case no unit - no need to do work */
2612 full_mask
= GENMASK(unit_count
- 1, 0);
2614 /* set the disable bits on disabled mask */
2615 disabled_mask
= (~enabled_mask
) & full_mask
;
2617 while (disabled_mask
) {
2618 u32 component_mask
= 1 << component_idx
;
2620 if (component_idx
>= unit_count
) {
2621 dev_err(hdev
->dev
, "index is out of range index(%u) >= units_count(%u)\n",
2622 component_idx
, unit_count
);
2627 * in case mask is set, driver need to set to 0x0
2628 * all offsets for the following structures in the appropriate indices:
2629 * debug_funnel_regs - offsets for all cs_dbg FUNNELs
2630 * debug_etf_regs - offsets for all cs_dbg ETFs
2631 * debug_stm_regs - offsets for all cs_dbg STMs
2632 * debug_spmu_regs - offsets for all cs_dbg SPMUs
2633 * debug_bmon_regs - offsets for all cs_dbg BMONs
2634 * when value is set to COMPONENT_ID_INVALID -
2635 * it means there is no such register for current component.
2638 if (disabled_mask
& component_mask
) {
2640 const struct component_config_offsets
*binned_component
=
2641 &(binning_table
[component_idx
]);
2643 if (binned_component
->funnel_id
!= COMPONENT_ID_INVALID
)
2644 debug_funnel_regs
[binned_component
->funnel_id
] = 0x0;
2646 if (binned_component
->etf_id
!= COMPONENT_ID_INVALID
)
2647 debug_etf_regs
[binned_component
->etf_id
] = 0x0;
2649 if (binned_component
->stm_id
!= COMPONENT_ID_INVALID
)
2650 debug_stm_regs
[binned_component
->stm_id
] = 0x0;
2652 if (binned_component
->spmu_id
!= COMPONENT_ID_INVALID
)
2653 debug_spmu_regs
[binned_component
->spmu_id
] = 0x0;
2655 for (bmon_idx
= 0; bmon_idx
< binned_component
->bmon_count
; bmon_idx
++)
2656 debug_bmon_regs
[binned_component
->bmon_ids
[bmon_idx
]] = 0x0;
2661 disabled_mask
&= ~component_mask
;
2670 int gaudi2_coresight_init(struct hl_device
*hdev
)
2672 struct asic_fixed_properties
*prop
= &hdev
->asic_prop
;
2676 * Mask out all the disabled binned offsets.
2677 * so when user request to configure a binned or masked out component,
2678 * driver will ignore programming it ( happens when offset value is set to 0x0 )
2679 * this is being set in gaudi2_coresight_set_disabled_components
2682 /* Set TPC disable components */
2683 ret
= gaudi2_coresight_set_disabled_components(hdev
, TPC_ID_SIZE
, prop
->tpc_enabled_mask
,
2684 tpc_binning_cfg_table
);
2686 dev_err(hdev
->dev
, "Failed to set disabled cs_dbg units for tpc coresight\n");
2690 /* Set decoder disable components */
2691 ret
= gaudi2_coresight_set_disabled_components(hdev
, DEC_ID_SIZE
,
2692 prop
->decoder_enabled_mask
, decoder_binning_cfg_table
);
2694 dev_err(hdev
->dev
, "Failed to set disabled cs_dbg units for decoder coresight\n");
2698 /* Set HBM (MC0 and MC1) disable components */
2699 ret
= gaudi2_coresight_set_disabled_components(hdev
, HBM_ID_SIZE
, prop
->dram_enabled_mask
,
2700 hbm_mc0_binning_cfg_table
);
2702 dev_err(hdev
->dev
, "Failed to set disabled cs_dbg units for hbm mc0 coresight\n");
2706 ret
= gaudi2_coresight_set_disabled_components(hdev
, HBM_ID_SIZE
, prop
->dram_enabled_mask
,
2707 hbm_mc1_binning_cfg_table
);
2709 dev_err(hdev
->dev
, "Failed to set disabled cs_dbg units for hbm mc1 coresight\n");
2713 /* Set HIF_HMMU disable components */
2714 ret
= gaudi2_coresight_set_disabled_components(hdev
, HMMU_ID_SIZE
,
2715 prop
->hmmu_hif_enabled_mask
, hmmu_binning_cfg_table
);
2717 dev_err(hdev
->dev
, "Failed to set disabled cs_dbg units for hmmu coresight\n");
2721 /* Set XBAR_EDGE disable components */
2722 ret
= gaudi2_coresight_set_disabled_components(hdev
, XBAR_EDGE_ID_SIZE
,
2723 prop
->xbar_edge_enabled_mask
, xbar_edge_binning_cfg_table
);
2725 dev_err(hdev
->dev
, "Failed to set disabled cs_dbg units for xbar_edge coresight\n");
2729 /* Set EDMA disable components */
2730 ret
= gaudi2_coresight_set_disabled_components(hdev
, EDMA_ID_SIZE
, prop
->edma_enabled_mask
,
2731 edma_binning_cfg_table
);
2733 dev_err(hdev
->dev
, "Failed to set disabled cs_dbg units for edma coresight\n");