1
2
3
4#ifndef _A6XX_CRASH_DUMP_H_
5#define _A6XX_CRASH_DUMP_H_
6
7#include "a6xx.xml.h"
8
9#define A6XX_NUM_CONTEXTS 2
10#define A6XX_NUM_SHADER_BANKS 3
11
12static const u32 a6xx_gras_cluster[] = {
13 0x8000, 0x8006, 0x8010, 0x8092, 0x8094, 0x809d, 0x80a0, 0x80a6,
14 0x80af, 0x80f1, 0x8100, 0x8107, 0x8109, 0x8109, 0x8110, 0x8110,
15 0x8400, 0x840b,
16};
17
18static const u32 a6xx_ps_cluster_rac[] = {
19 0x8800, 0x8806, 0x8809, 0x8811, 0x8818, 0x881e, 0x8820, 0x8865,
20 0x8870, 0x8879, 0x8880, 0x8889, 0x8890, 0x8891, 0x8898, 0x8898,
21 0x88c0, 0x88c1, 0x88d0, 0x88e3, 0x8900, 0x890c, 0x890f, 0x891a,
22 0x8c00, 0x8c01, 0x8c08, 0x8c10, 0x8c17, 0x8c1f, 0x8c26, 0x8c33,
23};
24
25static const u32 a6xx_ps_cluster_rbp[] = {
26 0x88f0, 0x88f3, 0x890d, 0x890e, 0x8927, 0x8928, 0x8bf0, 0x8bf1,
27 0x8c02, 0x8c07, 0x8c11, 0x8c16, 0x8c20, 0x8c25,
28};
29
30static const u32 a6xx_ps_cluster[] = {
31 0x9200, 0x9216, 0x9218, 0x9236, 0x9300, 0x9306,
32};
33
34static const u32 a6xx_fe_cluster[] = {
35 0x9300, 0x9306, 0x9800, 0x9806, 0x9b00, 0x9b07, 0xa000, 0xa009,
36 0xa00e, 0xa0ef, 0xa0f8, 0xa0f8,
37};
38
39static const u32 a6xx_pc_vs_cluster[] = {
40 0x9100, 0x9108, 0x9300, 0x9306, 0x9980, 0x9981, 0x9b00, 0x9b07,
41};
42
43#define CLUSTER_FE 0
44#define CLUSTER_SP_VS 1
45#define CLUSTER_PC_VS 2
46#define CLUSTER_GRAS 3
47#define CLUSTER_SP_PS 4
48#define CLUSTER_PS 5
49
50#define CLUSTER(_id, _reg, _sel_reg, _sel_val) \
51 { .id = _id, .name = #_id,\
52 .registers = _reg, \
53 .count = ARRAY_SIZE(_reg), \
54 .sel_reg = _sel_reg, .sel_val = _sel_val }
55
56static const struct a6xx_cluster {
57 u32 id;
58 const char *name;
59 const u32 *registers;
60 size_t count;
61 u32 sel_reg;
62 u32 sel_val;
63} a6xx_clusters[] = {
64 CLUSTER(CLUSTER_GRAS, a6xx_gras_cluster, 0, 0),
65 CLUSTER(CLUSTER_PS, a6xx_ps_cluster_rac, REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD, 0x0),
66 CLUSTER(CLUSTER_PS, a6xx_ps_cluster_rbp, REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD, 0x9),
67 CLUSTER(CLUSTER_PS, a6xx_ps_cluster, 0, 0),
68 CLUSTER(CLUSTER_FE, a6xx_fe_cluster, 0, 0),
69 CLUSTER(CLUSTER_PC_VS, a6xx_pc_vs_cluster, 0, 0),
70};
71
72static const u32 a6xx_sp_vs_hlsq_cluster[] = {
73 0xb800, 0xb803, 0xb820, 0xb822,
74};
75
76static const u32 a6xx_sp_vs_sp_cluster[] = {
77 0xa800, 0xa824, 0xa830, 0xa83c, 0xa840, 0xa864, 0xa870, 0xa895,
78 0xa8a0, 0xa8af, 0xa8c0, 0xa8c3,
79};
80
81static const u32 a6xx_hlsq_duplicate_cluster[] = {
82 0xbb10, 0xbb11, 0xbb20, 0xbb29,
83};
84
85static const u32 a6xx_hlsq_2d_duplicate_cluster[] = {
86 0xbd80, 0xbd80,
87};
88
89static const u32 a6xx_sp_duplicate_cluster[] = {
90 0xab00, 0xab00, 0xab04, 0xab05, 0xab10, 0xab1b, 0xab20, 0xab20,
91};
92
93static const u32 a6xx_tp_duplicate_cluster[] = {
94 0xb300, 0xb307, 0xb309, 0xb309, 0xb380, 0xb382,
95};
96
97static const u32 a6xx_sp_ps_hlsq_cluster[] = {
98 0xb980, 0xb980, 0xb982, 0xb987, 0xb990, 0xb99b, 0xb9a0, 0xb9a2,
99 0xb9c0, 0xb9c9,
100};
101
102static const u32 a6xx_sp_ps_hlsq_2d_cluster[] = {
103 0xbd80, 0xbd80,
104};
105
106static const u32 a6xx_sp_ps_sp_cluster[] = {
107 0xa980, 0xa9a8, 0xa9b0, 0xa9bc, 0xa9d0, 0xa9d3, 0xa9e0, 0xa9f3,
108 0xaa00, 0xaa00, 0xaa30, 0xaa31,
109};
110
111static const u32 a6xx_sp_ps_sp_2d_cluster[] = {
112 0xacc0, 0xacc0,
113};
114
115static const u32 a6xx_sp_ps_tp_cluster[] = {
116 0xb180, 0xb183, 0xb190, 0xb191,
117};
118
119static const u32 a6xx_sp_ps_tp_2d_cluster[] = {
120 0xb4c0, 0xb4d1,
121};
122
123#define CLUSTER_DBGAHB(_id, _base, _type, _reg) \
124 { .name = #_id, .statetype = _type, .base = _base, \
125 .registers = _reg, .count = ARRAY_SIZE(_reg) }
126
127static const struct a6xx_dbgahb_cluster {
128 const char *name;
129 u32 statetype;
130 u32 base;
131 const u32 *registers;
132 size_t count;
133} a6xx_dbgahb_clusters[] = {
134 CLUSTER_DBGAHB(CLUSTER_SP_VS, 0x0002e000, 0x41, a6xx_sp_vs_hlsq_cluster),
135 CLUSTER_DBGAHB(CLUSTER_SP_VS, 0x0002a000, 0x21, a6xx_sp_vs_sp_cluster),
136 CLUSTER_DBGAHB(CLUSTER_SP_VS, 0x0002e000, 0x41, a6xx_hlsq_duplicate_cluster),
137 CLUSTER_DBGAHB(CLUSTER_SP_VS, 0x0002f000, 0x45, a6xx_hlsq_2d_duplicate_cluster),
138 CLUSTER_DBGAHB(CLUSTER_SP_VS, 0x0002a000, 0x21, a6xx_sp_duplicate_cluster),
139 CLUSTER_DBGAHB(CLUSTER_SP_VS, 0x0002c000, 0x1, a6xx_tp_duplicate_cluster),
140 CLUSTER_DBGAHB(CLUSTER_SP_PS, 0x0002e000, 0x42, a6xx_sp_ps_hlsq_cluster),
141 CLUSTER_DBGAHB(CLUSTER_SP_PS, 0x0002f000, 0x46, a6xx_sp_ps_hlsq_2d_cluster),
142 CLUSTER_DBGAHB(CLUSTER_SP_PS, 0x0002a000, 0x22, a6xx_sp_ps_sp_cluster),
143 CLUSTER_DBGAHB(CLUSTER_SP_PS, 0x0002b000, 0x26, a6xx_sp_ps_sp_2d_cluster),
144 CLUSTER_DBGAHB(CLUSTER_SP_PS, 0x0002c000, 0x2, a6xx_sp_ps_tp_cluster),
145 CLUSTER_DBGAHB(CLUSTER_SP_PS, 0x0002d000, 0x6, a6xx_sp_ps_tp_2d_cluster),
146 CLUSTER_DBGAHB(CLUSTER_SP_PS, 0x0002e000, 0x42, a6xx_hlsq_duplicate_cluster),
147 CLUSTER_DBGAHB(CLUSTER_SP_PS, 0x0002a000, 0x22, a6xx_sp_duplicate_cluster),
148 CLUSTER_DBGAHB(CLUSTER_SP_PS, 0x0002c000, 0x2, a6xx_tp_duplicate_cluster),
149};
150
151static const u32 a6xx_hlsq_registers[] = {
152 0xbe00, 0xbe01, 0xbe04, 0xbe05, 0xbe08, 0xbe09, 0xbe10, 0xbe15,
153 0xbe20, 0xbe23,
154};
155
156static const u32 a6xx_sp_registers[] = {
157 0xae00, 0xae04, 0xae0c, 0xae0c, 0xae0f, 0xae2b, 0xae30, 0xae32,
158 0xae35, 0xae35, 0xae3a, 0xae3f, 0xae50, 0xae52,
159};
160
161static const u32 a6xx_tp_registers[] = {
162 0xb600, 0xb601, 0xb604, 0xb605, 0xb610, 0xb61b, 0xb620, 0xb623,
163};
164
165struct a6xx_registers {
166 const u32 *registers;
167 size_t count;
168 u32 val0;
169 u32 val1;
170};
171
172#define HLSQ_DBG_REGS(_base, _type, _array) \
173 { .val0 = _base, .val1 = _type, .registers = _array, \
174 .count = ARRAY_SIZE(_array), }
175
176static const struct a6xx_registers a6xx_hlsq_reglist[] = {
177 HLSQ_DBG_REGS(0x0002F800, 0x40, a6xx_hlsq_registers),
178 HLSQ_DBG_REGS(0x0002B800, 0x20, a6xx_sp_registers),
179 HLSQ_DBG_REGS(0x0002D800, 0x0, a6xx_tp_registers),
180};
181
182#define SHADER(_type, _size) \
183 { .type = _type, .name = #_type, .size = _size }
184
185static const struct a6xx_shader_block {
186 const char *name;
187 u32 type;
188 u32 size;
189} a6xx_shader_blocks[] = {
190 SHADER(A6XX_TP0_TMO_DATA, 0x200),
191 SHADER(A6XX_TP0_SMO_DATA, 0x80),
192 SHADER(A6XX_TP0_MIPMAP_BASE_DATA, 0x3c0),
193 SHADER(A6XX_TP1_TMO_DATA, 0x200),
194 SHADER(A6XX_TP1_SMO_DATA, 0x80),
195 SHADER(A6XX_TP1_MIPMAP_BASE_DATA, 0x3c0),
196 SHADER(A6XX_SP_INST_DATA, 0x800),
197 SHADER(A6XX_SP_LB_0_DATA, 0x800),
198 SHADER(A6XX_SP_LB_1_DATA, 0x800),
199 SHADER(A6XX_SP_LB_2_DATA, 0x800),
200 SHADER(A6XX_SP_LB_3_DATA, 0x800),
201 SHADER(A6XX_SP_LB_4_DATA, 0x800),
202 SHADER(A6XX_SP_LB_5_DATA, 0x200),
203 SHADER(A6XX_SP_CB_BINDLESS_DATA, 0x2000),
204 SHADER(A6XX_SP_CB_LEGACY_DATA, 0x280),
205 SHADER(A6XX_SP_UAV_DATA, 0x80),
206 SHADER(A6XX_SP_INST_TAG, 0x80),
207 SHADER(A6XX_SP_CB_BINDLESS_TAG, 0x80),
208 SHADER(A6XX_SP_TMO_UMO_TAG, 0x80),
209 SHADER(A6XX_SP_SMO_TAG, 0x80),
210 SHADER(A6XX_SP_STATE_DATA, 0x3f),
211 SHADER(A6XX_HLSQ_CHUNK_CVS_RAM, 0x1c0),
212 SHADER(A6XX_HLSQ_CHUNK_CPS_RAM, 0x280),
213 SHADER(A6XX_HLSQ_CHUNK_CVS_RAM_TAG, 0x40),
214 SHADER(A6XX_HLSQ_CHUNK_CPS_RAM_TAG, 0x40),
215 SHADER(A6XX_HLSQ_ICB_CVS_CB_BASE_TAG, 0x4),
216 SHADER(A6XX_HLSQ_ICB_CPS_CB_BASE_TAG, 0x4),
217 SHADER(A6XX_HLSQ_CVS_MISC_RAM, 0x1c0),
218 SHADER(A6XX_HLSQ_CPS_MISC_RAM, 0x580),
219 SHADER(A6XX_HLSQ_INST_RAM, 0x800),
220 SHADER(A6XX_HLSQ_GFX_CVS_CONST_RAM, 0x800),
221 SHADER(A6XX_HLSQ_GFX_CPS_CONST_RAM, 0x800),
222 SHADER(A6XX_HLSQ_CVS_MISC_RAM_TAG, 0x8),
223 SHADER(A6XX_HLSQ_CPS_MISC_RAM_TAG, 0x4),
224 SHADER(A6XX_HLSQ_INST_RAM_TAG, 0x80),
225 SHADER(A6XX_HLSQ_GFX_CVS_CONST_RAM_TAG, 0xc),
226 SHADER(A6XX_HLSQ_GFX_CPS_CONST_RAM_TAG, 0x10),
227 SHADER(A6XX_HLSQ_PWR_REST_RAM, 0x28),
228 SHADER(A6XX_HLSQ_PWR_REST_TAG, 0x14),
229 SHADER(A6XX_HLSQ_DATAPATH_META, 0x40),
230 SHADER(A6XX_HLSQ_FRONTEND_META, 0x40),
231 SHADER(A6XX_HLSQ_INDIRECT_META, 0x40),
232};
233
234static const u32 a6xx_rb_rac_registers[] = {
235 0x8e04, 0x8e05, 0x8e07, 0x8e08, 0x8e10, 0x8e1c, 0x8e20, 0x8e25,
236 0x8e28, 0x8e28, 0x8e2c, 0x8e2f, 0x8e50, 0x8e52,
237};
238
239static const u32 a6xx_rb_rbp_registers[] = {
240 0x8e01, 0x8e01, 0x8e0c, 0x8e0c, 0x8e3b, 0x8e3e, 0x8e40, 0x8e43,
241 0x8e53, 0x8e5f, 0x8e70, 0x8e77,
242};
243
244static const u32 a6xx_registers[] = {
245
246 0x0000, 0x0002, 0x0010, 0x0010, 0x0012, 0x0012, 0x0018, 0x001b,
247 0x001e, 0x0032, 0x0038, 0x003c, 0x0042, 0x0042, 0x0044, 0x0044,
248 0x0047, 0x0047, 0x0056, 0x0056, 0x00ad, 0x00ae, 0x00b0, 0x00fb,
249 0x0100, 0x011d, 0x0200, 0x020d, 0x0218, 0x023d, 0x0400, 0x04f9,
250 0x0500, 0x0500, 0x0505, 0x050b, 0x050e, 0x0511, 0x0533, 0x0533,
251 0x0540, 0x0555,
252
253 0x0800, 0x0808, 0x0810, 0x0813, 0x0820, 0x0821, 0x0823, 0x0824,
254 0x0826, 0x0827, 0x0830, 0x0833, 0x0840, 0x0843, 0x084f, 0x086f,
255 0x0880, 0x088a, 0x08a0, 0x08ab, 0x08c0, 0x08c4, 0x08d0, 0x08dd,
256 0x08f0, 0x08f3, 0x0900, 0x0903, 0x0908, 0x0911, 0x0928, 0x093e,
257 0x0942, 0x094d, 0x0980, 0x0984, 0x098d, 0x0996, 0x0998, 0x099e,
258 0x09a0, 0x09a6, 0x09a8, 0x09ae, 0x09b0, 0x09b1, 0x09c2, 0x09c8,
259 0x0a00, 0x0a03,
260
261 0x0c00, 0x0c04, 0x0c06, 0x0c06, 0x0c10, 0x0cd9, 0x0e00, 0x0e0e,
262
263 0x0e10, 0x0e13, 0x0e17, 0x0e19, 0x0e1c, 0x0e2b, 0x0e30, 0x0e32,
264 0x0e38, 0x0e39,
265
266 0x8600, 0x8601, 0x8610, 0x861b, 0x8620, 0x8620, 0x8628, 0x862b,
267 0x8630, 0x8637,
268
269 0x9600, 0x9604, 0x9624, 0x9637,
270
271 0x9e00, 0x9e01, 0x9e03, 0x9e0e, 0x9e11, 0x9e16, 0x9e19, 0x9e19,
272 0x9e1c, 0x9e1c, 0x9e20, 0x9e23, 0x9e30, 0x9e31, 0x9e34, 0x9e34,
273 0x9e70, 0x9e72, 0x9e78, 0x9e79, 0x9e80, 0x9fff,
274
275 0xa600, 0xa601, 0xa603, 0xa603, 0xa60a, 0xa60a, 0xa610, 0xa617,
276 0xa630, 0xa630,
277};
278
279#define REGS(_array, _sel_reg, _sel_val) \
280 { .registers = _array, .count = ARRAY_SIZE(_array), \
281 .val0 = _sel_reg, .val1 = _sel_val }
282
283static const struct a6xx_registers a6xx_reglist[] = {
284 REGS(a6xx_registers, 0, 0),
285 REGS(a6xx_rb_rac_registers, REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD, 0),
286 REGS(a6xx_rb_rbp_registers, REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD, 9),
287};
288
289static const u32 a6xx_ahb_registers[] = {
290
291 0x210, 0x213,
292
293 0x825, 0x825,
294};
295
296static const u32 a6xx_vbif_registers[] = {
297 0x3000, 0x3007, 0x300c, 0x3014, 0x3018, 0x302d, 0x3030, 0x3031,
298 0x3034, 0x3036, 0x303c, 0x303d, 0x3040, 0x3040, 0x3042, 0x3042,
299 0x3049, 0x3049, 0x3058, 0x3058, 0x305a, 0x3061, 0x3064, 0x3068,
300 0x306c, 0x306d, 0x3080, 0x3088, 0x308b, 0x308c, 0x3090, 0x3094,
301 0x3098, 0x3098, 0x309c, 0x309c, 0x30c0, 0x30c0, 0x30c8, 0x30c8,
302 0x30d0, 0x30d0, 0x30d8, 0x30d8, 0x30e0, 0x30e0, 0x3100, 0x3100,
303 0x3108, 0x3108, 0x3110, 0x3110, 0x3118, 0x3118, 0x3120, 0x3120,
304 0x3124, 0x3125, 0x3129, 0x3129, 0x3131, 0x3131, 0x3154, 0x3154,
305 0x3156, 0x3156, 0x3158, 0x3158, 0x315a, 0x315a, 0x315c, 0x315c,
306 0x315e, 0x315e, 0x3160, 0x3160, 0x3162, 0x3162, 0x340c, 0x340c,
307 0x3410, 0x3410, 0x3800, 0x3801,
308};
309
310static const u32 a6xx_gbif_registers[] = {
311 0x3C00, 0X3C0B, 0X3C40, 0X3C47, 0X3CC0, 0X3CD1, 0xE3A, 0xE3A,
312};
313
314static const struct a6xx_registers a6xx_ahb_reglist[] = {
315 REGS(a6xx_ahb_registers, 0, 0),
316};
317
318static const struct a6xx_registers a6xx_vbif_reglist =
319 REGS(a6xx_vbif_registers, 0, 0);
320
321static const struct a6xx_registers a6xx_gbif_reglist =
322 REGS(a6xx_gbif_registers, 0, 0);
323
324static const u32 a6xx_gmu_gx_registers[] = {
325
326 0x0000, 0x0000, 0x0010, 0x0013, 0x0016, 0x0016, 0x0018, 0x001b,
327 0x001e, 0x001e, 0x0020, 0x0023, 0x0026, 0x0026, 0x0028, 0x002b,
328 0x002e, 0x002e, 0x0030, 0x0033, 0x0036, 0x0036, 0x0038, 0x003b,
329 0x003e, 0x003e, 0x0040, 0x0043, 0x0046, 0x0046, 0x0080, 0x0084,
330 0x0100, 0x012b, 0x0140, 0x0140,
331};
332
333static const u32 a6xx_gmu_cx_registers[] = {
334
335 0x4c00, 0x4c07, 0x4c10, 0x4c12, 0x4d00, 0x4d00, 0x4d07, 0x4d0a,
336 0x5000, 0x5004, 0x5007, 0x5008, 0x500b, 0x500c, 0x500f, 0x501c,
337 0x5024, 0x502a, 0x502d, 0x5030, 0x5040, 0x5053, 0x5087, 0x5089,
338 0x50a0, 0x50a2, 0x50a4, 0x50af, 0x50c0, 0x50c3, 0x50d0, 0x50d0,
339 0x50e4, 0x50e4, 0x50e8, 0x50ec, 0x5100, 0x5103, 0x5140, 0x5140,
340 0x5142, 0x5144, 0x514c, 0x514d, 0x514f, 0x5151, 0x5154, 0x5154,
341 0x5157, 0x5158, 0x515d, 0x515d, 0x5162, 0x5162, 0x5164, 0x5165,
342 0x5180, 0x5186, 0x5190, 0x519e, 0x51c0, 0x51c0, 0x51c5, 0x51cc,
343 0x51e0, 0x51e2, 0x51f0, 0x51f0, 0x5200, 0x5201,
344
345 0x8c8c, 0x8c8c, 0x8d01, 0x8d02, 0x8f40, 0x8f42, 0x8f44, 0x8f47,
346 0x8f4c, 0x8f87, 0x8fec, 0x8fef, 0x8ff4, 0x902f, 0x9094, 0x9097,
347 0x909c, 0x90d7, 0x913c, 0x913f, 0x9144, 0x917f,
348
349 0x9300, 0x9316, 0x9400, 0x9400,
350
351 0x9800, 0x9812, 0x9840, 0x9852, 0x9c00, 0x9c04, 0x9c07, 0x9c0b,
352 0x9c15, 0x9c1c, 0x9c1e, 0x9c2d, 0x9c3c, 0x9c3d, 0x9c3f, 0x9c40,
353 0x9c42, 0x9c49, 0x9c58, 0x9c5a, 0x9d40, 0x9d5e, 0xa000, 0xa002,
354 0xa400, 0xa402, 0xac00, 0xac02, 0xb000, 0xb002, 0xb400, 0xb402,
355 0xb800, 0xb802,
356
357 0xbc00, 0xbc16, 0xbc20, 0xbc27,
358};
359
360static const struct a6xx_registers a6xx_gmu_reglist[] = {
361 REGS(a6xx_gmu_cx_registers, 0, 0),
362 REGS(a6xx_gmu_gx_registers, 0, 0),
363};
364
365static const struct a6xx_indexed_registers {
366 const char *name;
367 u32 addr;
368 u32 data;
369 u32 count;
370} a6xx_indexed_reglist[] = {
371 { "CP_SEQ_STAT", REG_A6XX_CP_SQE_STAT_ADDR,
372 REG_A6XX_CP_SQE_STAT_DATA, 0x33 },
373 { "CP_DRAW_STATE", REG_A6XX_CP_DRAW_STATE_ADDR,
374 REG_A6XX_CP_DRAW_STATE_DATA, 0x100 },
375 { "CP_UCODE_DBG_DATA", REG_A6XX_CP_SQE_UCODE_DBG_ADDR,
376 REG_A6XX_CP_SQE_UCODE_DBG_DATA, 0x6000 },
377 { "CP_ROQ", REG_A6XX_CP_ROQ_DBG_ADDR,
378 REG_A6XX_CP_ROQ_DBG_DATA, 0x400 },
379};
380
381static const struct a6xx_indexed_registers a6xx_cp_mempool_indexed = {
382 "CP_MEMPOOOL", REG_A6XX_CP_MEM_POOL_DBG_ADDR,
383 REG_A6XX_CP_MEM_POOL_DBG_DATA, 0x2060,
384};
385
386#define DEBUGBUS(_id, _count) { .id = _id, .name = #_id, .count = _count }
387
388static const struct a6xx_debugbus_block {
389 const char *name;
390 u32 id;
391 u32 count;
392} a6xx_debugbus_blocks[] = {
393 DEBUGBUS(A6XX_DBGBUS_CP, 0x100),
394 DEBUGBUS(A6XX_DBGBUS_RBBM, 0x100),
395 DEBUGBUS(A6XX_DBGBUS_HLSQ, 0x100),
396 DEBUGBUS(A6XX_DBGBUS_UCHE, 0x100),
397 DEBUGBUS(A6XX_DBGBUS_DPM, 0x100),
398 DEBUGBUS(A6XX_DBGBUS_TESS, 0x100),
399 DEBUGBUS(A6XX_DBGBUS_PC, 0x100),
400 DEBUGBUS(A6XX_DBGBUS_VFDP, 0x100),
401 DEBUGBUS(A6XX_DBGBUS_VPC, 0x100),
402 DEBUGBUS(A6XX_DBGBUS_TSE, 0x100),
403 DEBUGBUS(A6XX_DBGBUS_RAS, 0x100),
404 DEBUGBUS(A6XX_DBGBUS_VSC, 0x100),
405 DEBUGBUS(A6XX_DBGBUS_COM, 0x100),
406 DEBUGBUS(A6XX_DBGBUS_LRZ, 0x100),
407 DEBUGBUS(A6XX_DBGBUS_A2D, 0x100),
408 DEBUGBUS(A6XX_DBGBUS_CCUFCHE, 0x100),
409 DEBUGBUS(A6XX_DBGBUS_RBP, 0x100),
410 DEBUGBUS(A6XX_DBGBUS_DCS, 0x100),
411 DEBUGBUS(A6XX_DBGBUS_DBGC, 0x100),
412 DEBUGBUS(A6XX_DBGBUS_GMU_GX, 0x100),
413 DEBUGBUS(A6XX_DBGBUS_TPFCHE, 0x100),
414 DEBUGBUS(A6XX_DBGBUS_GPC, 0x100),
415 DEBUGBUS(A6XX_DBGBUS_LARC, 0x100),
416 DEBUGBUS(A6XX_DBGBUS_HLSQ_SPTP, 0x100),
417 DEBUGBUS(A6XX_DBGBUS_RB_0, 0x100),
418 DEBUGBUS(A6XX_DBGBUS_RB_1, 0x100),
419 DEBUGBUS(A6XX_DBGBUS_UCHE_WRAPPER, 0x100),
420 DEBUGBUS(A6XX_DBGBUS_CCU_0, 0x100),
421 DEBUGBUS(A6XX_DBGBUS_CCU_1, 0x100),
422 DEBUGBUS(A6XX_DBGBUS_VFD_0, 0x100),
423 DEBUGBUS(A6XX_DBGBUS_VFD_1, 0x100),
424 DEBUGBUS(A6XX_DBGBUS_VFD_2, 0x100),
425 DEBUGBUS(A6XX_DBGBUS_VFD_3, 0x100),
426 DEBUGBUS(A6XX_DBGBUS_SP_0, 0x100),
427 DEBUGBUS(A6XX_DBGBUS_SP_1, 0x100),
428 DEBUGBUS(A6XX_DBGBUS_TPL1_0, 0x100),
429 DEBUGBUS(A6XX_DBGBUS_TPL1_1, 0x100),
430 DEBUGBUS(A6XX_DBGBUS_TPL1_2, 0x100),
431 DEBUGBUS(A6XX_DBGBUS_TPL1_3, 0x100),
432};
433
434static const struct a6xx_debugbus_block a6xx_gbif_debugbus_block =
435 DEBUGBUS(A6XX_DBGBUS_VBIF, 0x100);
436
437static const struct a6xx_debugbus_block a6xx_cx_debugbus_blocks[] = {
438 DEBUGBUS(A6XX_DBGBUS_GMU_CX, 0x100),
439 DEBUGBUS(A6XX_DBGBUS_CX, 0x100),
440};
441
442#endif
443