blob: e3a664e62577725179e62d550d70e07cb4ea2040 [file] [log] [blame]
Oleg Perelet39fead22018-01-08 14:46:17 -08001/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -07002 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 */
13
14#ifndef _A6XX_REG_H
15#define _A6XX_REG_H
16
17/* A6XX interrupt bits */
18#define A6XX_INT_RBBM_GPU_IDLE 0
19#define A6XX_INT_CP_AHB_ERROR 1
20#define A6XX_INT_ATB_ASYNCFIFO_OVERFLOW 6
21#define A6XX_INT_RBBM_GPC_ERROR 7
22#define A6XX_INT_CP_SW 8
23#define A6XX_INT_CP_HW_ERROR 9
24#define A6XX_INT_CP_CCU_FLUSH_DEPTH_TS 10
25#define A6XX_INT_CP_CCU_FLUSH_COLOR_TS 11
26#define A6XX_INT_CP_CCU_RESOLVE_TS 12
27#define A6XX_INT_CP_IB2 13
28#define A6XX_INT_CP_IB1 14
29#define A6XX_INT_CP_RB 15
30#define A6XX_INT_CP_RB_DONE_TS 17
31#define A6XX_INT_CP_WT_DONE_TS 18
32#define A6XX_INT_CP_CACHE_FLUSH_TS 20
33#define A6XX_INT_RBBM_ATB_BUS_OVERFLOW 22
34#define A6XX_INT_RBBM_HANG_DETECT 23
35#define A6XX_INT_UCHE_OOB_ACCESS 24
36#define A6XX_INT_UCHE_TRAP_INTR 25
37#define A6XX_INT_DEBBUS_INTR_0 26
38#define A6XX_INT_DEBBUS_INTR_1 27
39#define A6XX_INT_ISDB_CPU_IRQ 30
40#define A6XX_INT_ISDB_UNDER_DEBUG 31
41
42/* CP Interrupt bits */
43#define A6XX_CP_OPCODE_ERROR 0
44#define A6XX_CP_UCODE_ERROR 1
45#define A6XX_CP_HW_FAULT_ERROR 2
46#define A6XX_CP_REGISTER_PROTECTION_ERROR 4
47#define A6XX_CP_AHB_ERROR 5
48#define A6XX_CP_VSD_PARITY_ERROR 6
49#define A6XX_CP_ILLEGAL_INSTR_ERROR 7
50
51/* CP registers */
52#define A6XX_CP_RB_BASE 0x800
53#define A6XX_CP_RB_BASE_HI 0x801
54#define A6XX_CP_RB_CNTL 0x802
55#define A6XX_CP_RB_RPTR_ADDR_LO 0x804
56#define A6XX_CP_RB_RPTR_ADDR_HI 0x805
57#define A6XX_CP_RB_RPTR 0x806
58#define A6XX_CP_RB_WPTR 0x807
59#define A6XX_CP_SQE_CNTL 0x808
60#define A6XX_CP_HW_FAULT 0x821
61#define A6XX_CP_INTERRUPT_STATUS 0x823
62#define A6XX_CP_PROTECT_STATUS 0X824
63#define A6XX_CP_SQE_INSTR_BASE_LO 0x830
64#define A6XX_CP_SQE_INSTR_BASE_HI 0x831
65#define A6XX_CP_MISC_CNTL 0x840
66#define A6XX_CP_ROQ_THRESHOLDS_1 0x8C1
67#define A6XX_CP_ROQ_THRESHOLDS_2 0x8C2
68#define A6XX_CP_MEM_POOL_SIZE 0x8C3
69#define A6XX_CP_CHICKEN_DBG 0x841
70#define A6XX_CP_ADDR_MODE_CNTL 0x842
Tarun Karra4ea68122017-11-02 18:10:31 -070071#define A6XX_CP_DBG_ECO_CNTL 0x843
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -070072#define A6XX_CP_PROTECT_CNTL 0x84F
73#define A6XX_CP_PROTECT_REG 0x850
Harshdeep Dhatt0cdc8992017-05-31 15:44:05 -060074#define A6XX_CP_CONTEXT_SWITCH_CNTL 0x8A0
75#define A6XX_CP_CONTEXT_SWITCH_SMMU_INFO_LO 0x8A1
76#define A6XX_CP_CONTEXT_SWITCH_SMMU_INFO_HI 0x8A2
77#define A6XX_CP_CONTEXT_SWITCH_PRIV_NON_SECURE_RESTORE_ADDR_LO 0x8A3
78#define A6XX_CP_CONTEXT_SWITCH_PRIV_NON_SECURE_RESTORE_ADDR_HI 0x8A4
79#define A6XX_CP_CONTEXT_SWITCH_PRIV_SECURE_RESTORE_ADDR_LO 0x8A5
80#define A6XX_CP_CONTEXT_SWITCH_PRIV_SECURE_RESTORE_ADDR_HI 0x8A6
81#define A6XX_CP_CONTEXT_SWITCH_NON_PRIV_RESTORE_ADDR_LO 0x8A7
82#define A6XX_CP_CONTEXT_SWITCH_NON_PRIV_RESTORE_ADDR_HI 0x8A8
Harshdeep Dhatt003f6cf2017-12-14 11:00:22 -070083#define A6XX_CP_CONTEXT_SWITCH_LEVEL_STATUS 0x8AB
Lynus Vaz107d2892017-03-01 13:48:06 +053084#define A6XX_CP_PERFCTR_CP_SEL_0 0x8D0
85#define A6XX_CP_PERFCTR_CP_SEL_1 0x8D1
86#define A6XX_CP_PERFCTR_CP_SEL_2 0x8D2
87#define A6XX_CP_PERFCTR_CP_SEL_3 0x8D3
88#define A6XX_CP_PERFCTR_CP_SEL_4 0x8D4
89#define A6XX_CP_PERFCTR_CP_SEL_5 0x8D5
90#define A6XX_CP_PERFCTR_CP_SEL_6 0x8D6
91#define A6XX_CP_PERFCTR_CP_SEL_7 0x8D7
92#define A6XX_CP_PERFCTR_CP_SEL_8 0x8D8
93#define A6XX_CP_PERFCTR_CP_SEL_9 0x8D9
94#define A6XX_CP_PERFCTR_CP_SEL_10 0x8DA
95#define A6XX_CP_PERFCTR_CP_SEL_11 0x8DB
96#define A6XX_CP_PERFCTR_CP_SEL_12 0x8DC
97#define A6XX_CP_PERFCTR_CP_SEL_13 0x8DD
Shrenuj Bansal41665402016-12-16 15:25:54 -080098#define A6XX_CP_CRASH_SCRIPT_BASE_LO 0x900
99#define A6XX_CP_CRASH_SCRIPT_BASE_HI 0x901
100#define A6XX_CP_CRASH_DUMP_CNTL 0x902
101#define A6XX_CP_CRASH_DUMP_STATUS 0x903
Shrenuj Bansala602c022017-03-08 10:40:34 -0800102#define A6XX_CP_SQE_STAT_ADDR 0x908
103#define A6XX_CP_SQE_STAT_DATA 0x909
Shrenuj Bansal41665402016-12-16 15:25:54 -0800104#define A6XX_CP_DRAW_STATE_ADDR 0x90A
105#define A6XX_CP_DRAW_STATE_DATA 0x90B
106#define A6XX_CP_ROQ_DBG_ADDR 0x90C
107#define A6XX_CP_ROQ_DBG_DATA 0x90D
Lynus Vaza5922742017-03-14 18:50:54 +0530108#define A6XX_CP_MEM_POOL_DBG_ADDR 0x90E
109#define A6XX_CP_MEM_POOL_DBG_DATA 0x90F
Shrenuj Bansal41665402016-12-16 15:25:54 -0800110#define A6XX_CP_SQE_UCODE_DBG_ADDR 0x910
111#define A6XX_CP_SQE_UCODE_DBG_DATA 0x911
112#define A6XX_CP_IB1_BASE 0x928
113#define A6XX_CP_IB1_BASE_HI 0x929
114#define A6XX_CP_IB1_REM_SIZE 0x92A
115#define A6XX_CP_IB2_BASE 0x92B
116#define A6XX_CP_IB2_BASE_HI 0x92C
117#define A6XX_CP_IB2_REM_SIZE 0x92D
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700118#define A6XX_CP_ALWAYS_ON_COUNTER_LO 0x980
119#define A6XX_CP_ALWAYS_ON_COUNTER_HI 0x981
120#define A6XX_CP_AHB_CNTL 0x98D
Shrenuj Bansal41665402016-12-16 15:25:54 -0800121#define A6XX_CP_APERTURE_CNTL_HOST 0xA00
Harshdeep Dhatta0cf2412017-06-22 11:53:31 -0600122#define A6XX_CP_APERTURE_CNTL_CD 0xA03
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700123#define A6XX_VSC_ADDR_MODE_CNTL 0xC01
124
125/* RBBM registers */
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700126#define A6XX_RBBM_INT_0_STATUS 0x201
127#define A6XX_RBBM_STATUS 0x210
128#define A6XX_RBBM_STATUS3 0x213
Shrenuj Bansal49d0e9f2017-05-08 16:10:24 -0700129#define A6XX_RBBM_VBIF_GX_RESET_STATUS 0x215
Lynus Vaz107d2892017-03-01 13:48:06 +0530130#define A6XX_RBBM_PERFCTR_CP_0_LO 0x400
131#define A6XX_RBBM_PERFCTR_CP_0_HI 0x401
132#define A6XX_RBBM_PERFCTR_CP_1_LO 0x402
133#define A6XX_RBBM_PERFCTR_CP_1_HI 0x403
134#define A6XX_RBBM_PERFCTR_CP_2_LO 0x404
135#define A6XX_RBBM_PERFCTR_CP_2_HI 0x405
136#define A6XX_RBBM_PERFCTR_CP_3_LO 0x406
137#define A6XX_RBBM_PERFCTR_CP_3_HI 0x407
138#define A6XX_RBBM_PERFCTR_CP_4_LO 0x408
139#define A6XX_RBBM_PERFCTR_CP_4_HI 0x409
140#define A6XX_RBBM_PERFCTR_CP_5_LO 0x40a
141#define A6XX_RBBM_PERFCTR_CP_5_HI 0x40b
142#define A6XX_RBBM_PERFCTR_CP_6_LO 0x40c
143#define A6XX_RBBM_PERFCTR_CP_6_HI 0x40d
144#define A6XX_RBBM_PERFCTR_CP_7_LO 0x40e
145#define A6XX_RBBM_PERFCTR_CP_7_HI 0x40f
146#define A6XX_RBBM_PERFCTR_CP_8_LO 0x410
147#define A6XX_RBBM_PERFCTR_CP_8_HI 0x411
148#define A6XX_RBBM_PERFCTR_CP_9_LO 0x412
149#define A6XX_RBBM_PERFCTR_CP_9_HI 0x413
150#define A6XX_RBBM_PERFCTR_CP_10_LO 0x414
151#define A6XX_RBBM_PERFCTR_CP_10_HI 0x415
152#define A6XX_RBBM_PERFCTR_CP_11_LO 0x416
153#define A6XX_RBBM_PERFCTR_CP_11_HI 0x417
154#define A6XX_RBBM_PERFCTR_CP_12_LO 0x418
155#define A6XX_RBBM_PERFCTR_CP_12_HI 0x419
156#define A6XX_RBBM_PERFCTR_CP_13_LO 0x41a
157#define A6XX_RBBM_PERFCTR_CP_13_HI 0x41b
158#define A6XX_RBBM_PERFCTR_RBBM_0_LO 0x41c
159#define A6XX_RBBM_PERFCTR_RBBM_0_HI 0x41d
160#define A6XX_RBBM_PERFCTR_RBBM_1_LO 0x41e
161#define A6XX_RBBM_PERFCTR_RBBM_1_HI 0x41f
162#define A6XX_RBBM_PERFCTR_RBBM_2_LO 0x420
163#define A6XX_RBBM_PERFCTR_RBBM_2_HI 0x421
164#define A6XX_RBBM_PERFCTR_RBBM_3_LO 0x422
165#define A6XX_RBBM_PERFCTR_RBBM_3_HI 0x423
166#define A6XX_RBBM_PERFCTR_PC_0_LO 0x424
167#define A6XX_RBBM_PERFCTR_PC_0_HI 0x425
168#define A6XX_RBBM_PERFCTR_PC_1_LO 0x426
169#define A6XX_RBBM_PERFCTR_PC_1_HI 0x427
170#define A6XX_RBBM_PERFCTR_PC_2_LO 0x428
171#define A6XX_RBBM_PERFCTR_PC_2_HI 0x429
172#define A6XX_RBBM_PERFCTR_PC_3_LO 0x42a
173#define A6XX_RBBM_PERFCTR_PC_3_HI 0x42b
174#define A6XX_RBBM_PERFCTR_PC_4_LO 0x42c
175#define A6XX_RBBM_PERFCTR_PC_4_HI 0x42d
176#define A6XX_RBBM_PERFCTR_PC_5_LO 0x42e
177#define A6XX_RBBM_PERFCTR_PC_5_HI 0x42f
178#define A6XX_RBBM_PERFCTR_PC_6_LO 0x430
179#define A6XX_RBBM_PERFCTR_PC_6_HI 0x431
180#define A6XX_RBBM_PERFCTR_PC_7_LO 0x432
181#define A6XX_RBBM_PERFCTR_PC_7_HI 0x433
182#define A6XX_RBBM_PERFCTR_VFD_0_LO 0x434
183#define A6XX_RBBM_PERFCTR_VFD_0_HI 0x435
184#define A6XX_RBBM_PERFCTR_VFD_1_LO 0x436
185#define A6XX_RBBM_PERFCTR_VFD_1_HI 0x437
186#define A6XX_RBBM_PERFCTR_VFD_2_LO 0x438
187#define A6XX_RBBM_PERFCTR_VFD_2_HI 0x439
188#define A6XX_RBBM_PERFCTR_VFD_3_LO 0x43a
189#define A6XX_RBBM_PERFCTR_VFD_3_HI 0x43b
190#define A6XX_RBBM_PERFCTR_VFD_4_LO 0x43c
191#define A6XX_RBBM_PERFCTR_VFD_4_HI 0x43d
192#define A6XX_RBBM_PERFCTR_VFD_5_LO 0x43e
193#define A6XX_RBBM_PERFCTR_VFD_5_HI 0x43f
194#define A6XX_RBBM_PERFCTR_VFD_6_LO 0x440
195#define A6XX_RBBM_PERFCTR_VFD_6_HI 0x441
196#define A6XX_RBBM_PERFCTR_VFD_7_LO 0x442
197#define A6XX_RBBM_PERFCTR_VFD_7_HI 0x443
198#define A6XX_RBBM_PERFCTR_HLSQ_0_LO 0x444
199#define A6XX_RBBM_PERFCTR_HLSQ_0_HI 0x445
200#define A6XX_RBBM_PERFCTR_HLSQ_1_LO 0x446
201#define A6XX_RBBM_PERFCTR_HLSQ_1_HI 0x447
202#define A6XX_RBBM_PERFCTR_HLSQ_2_LO 0x448
203#define A6XX_RBBM_PERFCTR_HLSQ_2_HI 0x449
204#define A6XX_RBBM_PERFCTR_HLSQ_3_LO 0x44a
205#define A6XX_RBBM_PERFCTR_HLSQ_3_HI 0x44b
206#define A6XX_RBBM_PERFCTR_HLSQ_4_LO 0x44c
207#define A6XX_RBBM_PERFCTR_HLSQ_4_HI 0x44d
208#define A6XX_RBBM_PERFCTR_HLSQ_5_LO 0x44e
209#define A6XX_RBBM_PERFCTR_HLSQ_5_HI 0x44f
210#define A6XX_RBBM_PERFCTR_VPC_0_LO 0x450
211#define A6XX_RBBM_PERFCTR_VPC_0_HI 0x451
212#define A6XX_RBBM_PERFCTR_VPC_1_LO 0x452
213#define A6XX_RBBM_PERFCTR_VPC_1_HI 0x453
214#define A6XX_RBBM_PERFCTR_VPC_2_LO 0x454
215#define A6XX_RBBM_PERFCTR_VPC_2_HI 0x455
216#define A6XX_RBBM_PERFCTR_VPC_3_LO 0x456
217#define A6XX_RBBM_PERFCTR_VPC_3_HI 0x457
218#define A6XX_RBBM_PERFCTR_VPC_4_LO 0x458
219#define A6XX_RBBM_PERFCTR_VPC_4_HI 0x459
220#define A6XX_RBBM_PERFCTR_VPC_5_LO 0x45a
221#define A6XX_RBBM_PERFCTR_VPC_5_HI 0x45b
222#define A6XX_RBBM_PERFCTR_CCU_0_LO 0x45c
223#define A6XX_RBBM_PERFCTR_CCU_0_HI 0x45d
224#define A6XX_RBBM_PERFCTR_CCU_1_LO 0x45e
225#define A6XX_RBBM_PERFCTR_CCU_1_HI 0x45f
226#define A6XX_RBBM_PERFCTR_CCU_2_LO 0x460
227#define A6XX_RBBM_PERFCTR_CCU_2_HI 0x461
228#define A6XX_RBBM_PERFCTR_CCU_3_LO 0x462
229#define A6XX_RBBM_PERFCTR_CCU_3_HI 0x463
230#define A6XX_RBBM_PERFCTR_CCU_4_LO 0x464
231#define A6XX_RBBM_PERFCTR_CCU_4_HI 0x465
232#define A6XX_RBBM_PERFCTR_TSE_0_LO 0x466
233#define A6XX_RBBM_PERFCTR_TSE_0_HI 0x467
234#define A6XX_RBBM_PERFCTR_TSE_1_LO 0x468
235#define A6XX_RBBM_PERFCTR_TSE_1_HI 0x469
236#define A6XX_RBBM_PERFCTR_TSE_2_LO 0x46a
237#define A6XX_RBBM_PERFCTR_CCU_4_HI 0x465
238#define A6XX_RBBM_PERFCTR_TSE_0_LO 0x466
239#define A6XX_RBBM_PERFCTR_TSE_0_HI 0x467
240#define A6XX_RBBM_PERFCTR_TSE_1_LO 0x468
241#define A6XX_RBBM_PERFCTR_TSE_1_HI 0x469
242#define A6XX_RBBM_PERFCTR_TSE_2_LO 0x46a
243#define A6XX_RBBM_PERFCTR_TSE_2_HI 0x46b
244#define A6XX_RBBM_PERFCTR_TSE_3_LO 0x46c
245#define A6XX_RBBM_PERFCTR_TSE_3_HI 0x46d
246#define A6XX_RBBM_PERFCTR_RAS_0_LO 0x46e
247#define A6XX_RBBM_PERFCTR_RAS_0_HI 0x46f
248#define A6XX_RBBM_PERFCTR_RAS_1_LO 0x470
249#define A6XX_RBBM_PERFCTR_RAS_1_HI 0x471
250#define A6XX_RBBM_PERFCTR_RAS_2_LO 0x472
251#define A6XX_RBBM_PERFCTR_RAS_2_HI 0x473
252#define A6XX_RBBM_PERFCTR_RAS_3_LO 0x474
253#define A6XX_RBBM_PERFCTR_RAS_3_HI 0x475
254#define A6XX_RBBM_PERFCTR_UCHE_0_LO 0x476
255#define A6XX_RBBM_PERFCTR_UCHE_0_HI 0x477
256#define A6XX_RBBM_PERFCTR_UCHE_1_LO 0x478
257#define A6XX_RBBM_PERFCTR_UCHE_1_HI 0x479
258#define A6XX_RBBM_PERFCTR_UCHE_2_LO 0x47a
259#define A6XX_RBBM_PERFCTR_UCHE_2_HI 0x47b
260#define A6XX_RBBM_PERFCTR_UCHE_3_LO 0x47c
261#define A6XX_RBBM_PERFCTR_UCHE_3_HI 0x47d
262#define A6XX_RBBM_PERFCTR_UCHE_4_LO 0x47e
263#define A6XX_RBBM_PERFCTR_UCHE_4_HI 0x47f
264#define A6XX_RBBM_PERFCTR_UCHE_5_LO 0x480
265#define A6XX_RBBM_PERFCTR_UCHE_5_HI 0x481
266#define A6XX_RBBM_PERFCTR_UCHE_6_LO 0x482
267#define A6XX_RBBM_PERFCTR_UCHE_6_HI 0x483
268#define A6XX_RBBM_PERFCTR_UCHE_7_LO 0x484
269#define A6XX_RBBM_PERFCTR_UCHE_7_HI 0x485
270#define A6XX_RBBM_PERFCTR_UCHE_8_LO 0x486
271#define A6XX_RBBM_PERFCTR_UCHE_8_HI 0x487
272#define A6XX_RBBM_PERFCTR_UCHE_9_LO 0x488
273#define A6XX_RBBM_PERFCTR_UCHE_9_HI 0x489
274#define A6XX_RBBM_PERFCTR_UCHE_10_LO 0x48a
275#define A6XX_RBBM_PERFCTR_UCHE_10_HI 0x48b
276#define A6XX_RBBM_PERFCTR_UCHE_11_LO 0x48c
277#define A6XX_RBBM_PERFCTR_UCHE_11_HI 0x48d
278#define A6XX_RBBM_PERFCTR_TP_0_LO 0x48e
279#define A6XX_RBBM_PERFCTR_TP_0_HI 0x48f
280#define A6XX_RBBM_PERFCTR_TP_1_LO 0x490
281#define A6XX_RBBM_PERFCTR_TP_1_HI 0x491
282#define A6XX_RBBM_PERFCTR_TP_2_LO 0x492
283#define A6XX_RBBM_PERFCTR_TP_2_HI 0x493
284#define A6XX_RBBM_PERFCTR_TP_3_LO 0x494
285#define A6XX_RBBM_PERFCTR_TP_3_HI 0x495
286#define A6XX_RBBM_PERFCTR_TP_4_LO 0x496
287#define A6XX_RBBM_PERFCTR_TP_4_HI 0x497
288#define A6XX_RBBM_PERFCTR_TP_5_LO 0x498
289#define A6XX_RBBM_PERFCTR_TP_5_HI 0x499
290#define A6XX_RBBM_PERFCTR_TP_6_LO 0x49a
291#define A6XX_RBBM_PERFCTR_TP_6_HI 0x49b
292#define A6XX_RBBM_PERFCTR_TP_7_LO 0x49c
293#define A6XX_RBBM_PERFCTR_TP_7_HI 0x49d
294#define A6XX_RBBM_PERFCTR_TP_8_LO 0x49e
295#define A6XX_RBBM_PERFCTR_TP_8_HI 0x49f
296#define A6XX_RBBM_PERFCTR_TP_9_LO 0x4a0
297#define A6XX_RBBM_PERFCTR_TP_9_HI 0x4a1
298#define A6XX_RBBM_PERFCTR_TP_10_LO 0x4a2
299#define A6XX_RBBM_PERFCTR_TP_10_HI 0x4a3
300#define A6XX_RBBM_PERFCTR_TP_11_LO 0x4a4
301#define A6XX_RBBM_PERFCTR_TP_11_HI 0x4a5
302#define A6XX_RBBM_PERFCTR_SP_0_LO 0x4a6
303#define A6XX_RBBM_PERFCTR_SP_0_HI 0x4a7
304#define A6XX_RBBM_PERFCTR_SP_1_LO 0x4a8
305#define A6XX_RBBM_PERFCTR_SP_1_HI 0x4a9
306#define A6XX_RBBM_PERFCTR_SP_2_LO 0x4aa
307#define A6XX_RBBM_PERFCTR_SP_2_HI 0x4ab
308#define A6XX_RBBM_PERFCTR_SP_3_LO 0x4ac
309#define A6XX_RBBM_PERFCTR_SP_3_HI 0x4ad
310#define A6XX_RBBM_PERFCTR_SP_4_LO 0x4ae
311#define A6XX_RBBM_PERFCTR_SP_4_HI 0x4af
312#define A6XX_RBBM_PERFCTR_SP_5_LO 0x4b0
313#define A6XX_RBBM_PERFCTR_SP_5_HI 0x4b1
314#define A6XX_RBBM_PERFCTR_SP_6_LO 0x4b2
315#define A6XX_RBBM_PERFCTR_SP_6_HI 0x4b3
316#define A6XX_RBBM_PERFCTR_SP_7_LO 0x4b4
317#define A6XX_RBBM_PERFCTR_SP_7_HI 0x4b5
318#define A6XX_RBBM_PERFCTR_SP_8_LO 0x4b6
319#define A6XX_RBBM_PERFCTR_SP_8_HI 0x4b7
320#define A6XX_RBBM_PERFCTR_SP_9_LO 0x4b8
321#define A6XX_RBBM_PERFCTR_SP_9_HI 0x4b9
322#define A6XX_RBBM_PERFCTR_SP_10_LO 0x4ba
323#define A6XX_RBBM_PERFCTR_SP_10_HI 0x4bb
324#define A6XX_RBBM_PERFCTR_SP_11_LO 0x4bc
325#define A6XX_RBBM_PERFCTR_SP_11_HI 0x4bd
326#define A6XX_RBBM_PERFCTR_SP_12_LO 0x4be
327#define A6XX_RBBM_PERFCTR_SP_12_HI 0x4bf
328#define A6XX_RBBM_PERFCTR_SP_13_LO 0x4c0
329#define A6XX_RBBM_PERFCTR_SP_13_HI 0x4c1
330#define A6XX_RBBM_PERFCTR_SP_14_LO 0x4c2
331#define A6XX_RBBM_PERFCTR_SP_14_HI 0x4c3
332#define A6XX_RBBM_PERFCTR_SP_15_LO 0x4c4
333#define A6XX_RBBM_PERFCTR_SP_15_HI 0x4c5
334#define A6XX_RBBM_PERFCTR_SP_16_LO 0x4c6
335#define A6XX_RBBM_PERFCTR_SP_16_HI 0x4c7
336#define A6XX_RBBM_PERFCTR_SP_17_LO 0x4c8
337#define A6XX_RBBM_PERFCTR_SP_17_HI 0x4c9
338#define A6XX_RBBM_PERFCTR_SP_18_LO 0x4ca
339#define A6XX_RBBM_PERFCTR_SP_18_HI 0x4cb
340#define A6XX_RBBM_PERFCTR_SP_19_LO 0x4cc
341#define A6XX_RBBM_PERFCTR_SP_19_HI 0x4cd
342#define A6XX_RBBM_PERFCTR_SP_20_LO 0x4ce
343#define A6XX_RBBM_PERFCTR_SP_20_HI 0x4cf
344#define A6XX_RBBM_PERFCTR_SP_21_LO 0x4d0
345#define A6XX_RBBM_PERFCTR_SP_21_HI 0x4d1
346#define A6XX_RBBM_PERFCTR_SP_22_LO 0x4d2
347#define A6XX_RBBM_PERFCTR_SP_22_HI 0x4d3
348#define A6XX_RBBM_PERFCTR_SP_23_LO 0x4d4
349#define A6XX_RBBM_PERFCTR_SP_23_HI 0x4d5
350#define A6XX_RBBM_PERFCTR_RB_0_LO 0x4d6
351#define A6XX_RBBM_PERFCTR_RB_0_HI 0x4d7
352#define A6XX_RBBM_PERFCTR_RB_1_LO 0x4d8
353#define A6XX_RBBM_PERFCTR_RB_1_HI 0x4d9
354#define A6XX_RBBM_PERFCTR_RB_2_LO 0x4da
355#define A6XX_RBBM_PERFCTR_RB_2_HI 0x4db
356#define A6XX_RBBM_PERFCTR_RB_3_LO 0x4dc
357#define A6XX_RBBM_PERFCTR_RB_3_HI 0x4dd
358#define A6XX_RBBM_PERFCTR_RB_4_LO 0x4de
359#define A6XX_RBBM_PERFCTR_RB_4_HI 0x4df
360#define A6XX_RBBM_PERFCTR_RB_5_LO 0x4e0
361#define A6XX_RBBM_PERFCTR_RB_5_HI 0x4e1
362#define A6XX_RBBM_PERFCTR_RB_6_LO 0x4e2
363#define A6XX_RBBM_PERFCTR_RB_6_HI 0x4e3
364#define A6XX_RBBM_PERFCTR_RB_7_LO 0x4e4
365#define A6XX_RBBM_PERFCTR_RB_7_HI 0x4e5
366#define A6XX_RBBM_PERFCTR_VSC_0_LO 0x4e6
367#define A6XX_RBBM_PERFCTR_VSC_0_HI 0x4e7
368#define A6XX_RBBM_PERFCTR_VSC_1_LO 0x4e8
369#define A6XX_RBBM_PERFCTR_VSC_1_HI 0x4e9
370#define A6XX_RBBM_PERFCTR_LRZ_0_LO 0x4ea
371#define A6XX_RBBM_PERFCTR_LRZ_0_HI 0x4eb
372#define A6XX_RBBM_PERFCTR_LRZ_1_LO 0x4ec
373#define A6XX_RBBM_PERFCTR_LRZ_1_HI 0x4ed
374#define A6XX_RBBM_PERFCTR_LRZ_2_LO 0x4ee
375#define A6XX_RBBM_PERFCTR_LRZ_2_HI 0x4ef
376#define A6XX_RBBM_PERFCTR_LRZ_3_LO 0x4f0
377#define A6XX_RBBM_PERFCTR_LRZ_3_HI 0x4f1
378#define A6XX_RBBM_PERFCTR_CMP_0_LO 0x4f2
379#define A6XX_RBBM_PERFCTR_CMP_0_HI 0x4f3
380#define A6XX_RBBM_PERFCTR_CMP_1_LO 0x4f4
381#define A6XX_RBBM_PERFCTR_CMP_1_HI 0x4f5
382#define A6XX_RBBM_PERFCTR_CMP_2_LO 0x4f6
383#define A6XX_RBBM_PERFCTR_CMP_2_HI 0x4f7
384#define A6XX_RBBM_PERFCTR_CMP_3_LO 0x4f8
385#define A6XX_RBBM_PERFCTR_CMP_3_HI 0x4f9
386#define A6XX_RBBM_PERFCTR_CNTL 0x500
387#define A6XX_RBBM_PERFCTR_LOAD_CMD0 0x501
388#define A6XX_RBBM_PERFCTR_LOAD_CMD1 0x502
389#define A6XX_RBBM_PERFCTR_LOAD_CMD2 0x503
390#define A6XX_RBBM_PERFCTR_LOAD_CMD3 0x504
391#define A6XX_RBBM_PERFCTR_LOAD_VALUE_LO 0x505
392#define A6XX_RBBM_PERFCTR_LOAD_VALUE_HI 0x506
393#define A6XX_RBBM_PERFCTR_RBBM_SEL_0 0x507
394#define A6XX_RBBM_PERFCTR_RBBM_SEL_1 0x508
395#define A6XX_RBBM_PERFCTR_RBBM_SEL_2 0x509
396#define A6XX_RBBM_PERFCTR_RBBM_SEL_3 0x50A
Harshdeep Dhatt75dbd412017-05-16 17:12:27 -0600397#define A6XX_RBBM_PERFCTR_GPU_BUSY_MASKED 0x50B
Lynus Vaz107d2892017-03-01 13:48:06 +0530398
Oleg Pereletcb9b6212017-03-16 15:38:43 -0700399#define A6XX_RBBM_ISDB_CNT 0x533
400
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700401#define A6XX_RBBM_SECVID_TRUST_CNTL 0xF400
Carter Cooper4a313ae2017-02-23 11:11:56 -0700402#define A6XX_RBBM_SECVID_TSB_TRUSTED_BASE_LO 0xF800
403#define A6XX_RBBM_SECVID_TSB_TRUSTED_BASE_HI 0xF801
404#define A6XX_RBBM_SECVID_TSB_TRUSTED_SIZE 0xF802
405#define A6XX_RBBM_SECVID_TSB_CNTL 0xF803
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700406#define A6XX_RBBM_SECVID_TSB_ADDR_MODE_CNTL 0xF810
407
Oleg Pereletcb9b6212017-03-16 15:38:43 -0700408#define A6XX_RBBM_VBIF_CLIENT_QOS_CNTL 0x00010
Rajesh Kemisettid1ca9542017-10-18 15:35:41 +0530409#define A6XX_RBBM_GPR0_CNTL 0x00018
Oleg Pereletcb9b6212017-03-16 15:38:43 -0700410#define A6XX_RBBM_INTERFACE_HANG_INT_CNTL 0x0001f
411#define A6XX_RBBM_INT_CLEAR_CMD 0x00037
412#define A6XX_RBBM_INT_0_MASK 0x00038
413#define A6XX_RBBM_SP_HYST_CNT 0x00042
414#define A6XX_RBBM_SW_RESET_CMD 0x00043
415#define A6XX_RBBM_RAC_THRESHOLD_CNT 0x00044
416#define A6XX_RBBM_BLOCK_SW_RESET_CMD 0x00045
417#define A6XX_RBBM_BLOCK_SW_RESET_CMD2 0x00046
418#define A6XX_RBBM_CLOCK_CNTL 0x000ae
419#define A6XX_RBBM_CLOCK_CNTL_SP0 0x000b0
420#define A6XX_RBBM_CLOCK_CNTL_SP1 0x000b1
421#define A6XX_RBBM_CLOCK_CNTL_SP2 0x000b2
422#define A6XX_RBBM_CLOCK_CNTL_SP3 0x000b3
423#define A6XX_RBBM_CLOCK_CNTL2_SP0 0x000b4
424#define A6XX_RBBM_CLOCK_CNTL2_SP1 0x000b5
425#define A6XX_RBBM_CLOCK_CNTL2_SP2 0x000b6
426#define A6XX_RBBM_CLOCK_CNTL2_SP3 0x000b7
427#define A6XX_RBBM_CLOCK_DELAY_SP0 0x000b8
428#define A6XX_RBBM_CLOCK_DELAY_SP1 0x000b9
429#define A6XX_RBBM_CLOCK_DELAY_SP2 0x000ba
430#define A6XX_RBBM_CLOCK_DELAY_SP3 0x000bb
431#define A6XX_RBBM_CLOCK_HYST_SP0 0x000bc
432#define A6XX_RBBM_CLOCK_HYST_SP1 0x000bd
433#define A6XX_RBBM_CLOCK_HYST_SP2 0x000be
434#define A6XX_RBBM_CLOCK_HYST_SP3 0x000bf
435#define A6XX_RBBM_CLOCK_CNTL_TP0 0x000c0
436#define A6XX_RBBM_CLOCK_CNTL_TP1 0x000c1
437#define A6XX_RBBM_CLOCK_CNTL_TP2 0x000c2
438#define A6XX_RBBM_CLOCK_CNTL_TP3 0x000c3
439#define A6XX_RBBM_CLOCK_CNTL2_TP0 0x000c4
440#define A6XX_RBBM_CLOCK_CNTL2_TP1 0x000c5
441#define A6XX_RBBM_CLOCK_CNTL2_TP2 0x000c6
442#define A6XX_RBBM_CLOCK_CNTL2_TP3 0x000c7
443#define A6XX_RBBM_CLOCK_CNTL3_TP0 0x000c8
444#define A6XX_RBBM_CLOCK_CNTL3_TP1 0x000c9
445#define A6XX_RBBM_CLOCK_CNTL3_TP2 0x000ca
446#define A6XX_RBBM_CLOCK_CNTL3_TP3 0x000cb
447#define A6XX_RBBM_CLOCK_CNTL4_TP0 0x000cc
448#define A6XX_RBBM_CLOCK_CNTL4_TP1 0x000cd
449#define A6XX_RBBM_CLOCK_CNTL4_TP2 0x000ce
450#define A6XX_RBBM_CLOCK_CNTL4_TP3 0x000cf
451#define A6XX_RBBM_CLOCK_DELAY_TP0 0x000d0
452#define A6XX_RBBM_CLOCK_DELAY_TP1 0x000d1
453#define A6XX_RBBM_CLOCK_DELAY_TP2 0x000d2
454#define A6XX_RBBM_CLOCK_DELAY_TP3 0x000d3
455#define A6XX_RBBM_CLOCK_DELAY2_TP0 0x000d4
456#define A6XX_RBBM_CLOCK_DELAY2_TP1 0x000d5
457#define A6XX_RBBM_CLOCK_DELAY2_TP2 0x000d6
458#define A6XX_RBBM_CLOCK_DELAY2_TP3 0x000d7
459#define A6XX_RBBM_CLOCK_DELAY3_TP0 0x000d8
460#define A6XX_RBBM_CLOCK_DELAY3_TP1 0x000d9
461#define A6XX_RBBM_CLOCK_DELAY3_TP2 0x000da
462#define A6XX_RBBM_CLOCK_DELAY3_TP3 0x000db
463#define A6XX_RBBM_CLOCK_DELAY4_TP0 0x000dc
464#define A6XX_RBBM_CLOCK_DELAY4_TP1 0x000dd
465#define A6XX_RBBM_CLOCK_DELAY4_TP2 0x000de
466#define A6XX_RBBM_CLOCK_DELAY4_TP3 0x000df
467#define A6XX_RBBM_CLOCK_HYST_TP0 0x000e0
468#define A6XX_RBBM_CLOCK_HYST_TP1 0x000e1
469#define A6XX_RBBM_CLOCK_HYST_TP2 0x000e2
470#define A6XX_RBBM_CLOCK_HYST_TP3 0x000e3
471#define A6XX_RBBM_CLOCK_HYST2_TP0 0x000e4
472#define A6XX_RBBM_CLOCK_HYST2_TP1 0x000e5
473#define A6XX_RBBM_CLOCK_HYST2_TP2 0x000e6
474#define A6XX_RBBM_CLOCK_HYST2_TP3 0x000e7
475#define A6XX_RBBM_CLOCK_HYST3_TP0 0x000e8
476#define A6XX_RBBM_CLOCK_HYST3_TP1 0x000e9
477#define A6XX_RBBM_CLOCK_HYST3_TP2 0x000ea
478#define A6XX_RBBM_CLOCK_HYST3_TP3 0x000eb
479#define A6XX_RBBM_CLOCK_HYST4_TP0 0x000ec
480#define A6XX_RBBM_CLOCK_HYST4_TP1 0x000ed
481#define A6XX_RBBM_CLOCK_HYST4_TP2 0x000ee
482#define A6XX_RBBM_CLOCK_HYST4_TP3 0x000ef
483#define A6XX_RBBM_CLOCK_CNTL_RB0 0x000f0
484#define A6XX_RBBM_CLOCK_CNTL_RB1 0x000f1
485#define A6XX_RBBM_CLOCK_CNTL_RB2 0x000f2
486#define A6XX_RBBM_CLOCK_CNTL_RB3 0x000f3
487#define A6XX_RBBM_CLOCK_CNTL2_RB0 0x000f4
488#define A6XX_RBBM_CLOCK_CNTL2_RB1 0x000f5
489#define A6XX_RBBM_CLOCK_CNTL2_RB2 0x000f6
490#define A6XX_RBBM_CLOCK_CNTL2_RB3 0x000f7
491#define A6XX_RBBM_CLOCK_CNTL_CCU0 0x000f8
492#define A6XX_RBBM_CLOCK_CNTL_CCU1 0x000f9
493#define A6XX_RBBM_CLOCK_CNTL_CCU2 0x000fa
494#define A6XX_RBBM_CLOCK_CNTL_CCU3 0x000fb
495#define A6XX_RBBM_CLOCK_HYST_RB_CCU0 0x00100
496#define A6XX_RBBM_CLOCK_HYST_RB_CCU1 0x00101
497#define A6XX_RBBM_CLOCK_HYST_RB_CCU2 0x00102
498#define A6XX_RBBM_CLOCK_HYST_RB_CCU3 0x00103
499#define A6XX_RBBM_CLOCK_CNTL_RAC 0x00104
500#define A6XX_RBBM_CLOCK_CNTL2_RAC 0x00105
501#define A6XX_RBBM_CLOCK_DELAY_RAC 0x00106
502#define A6XX_RBBM_CLOCK_HYST_RAC 0x00107
503#define A6XX_RBBM_CLOCK_CNTL_TSE_RAS_RBBM 0x00108
504#define A6XX_RBBM_CLOCK_DELAY_TSE_RAS_RBBM 0x00109
505#define A6XX_RBBM_CLOCK_HYST_TSE_RAS_RBBM 0x0010a
506#define A6XX_RBBM_CLOCK_CNTL_UCHE 0x0010b
507#define A6XX_RBBM_CLOCK_CNTL2_UCHE 0x0010c
508#define A6XX_RBBM_CLOCK_CNTL3_UCHE 0x0010d
509#define A6XX_RBBM_CLOCK_CNTL4_UCHE 0x0010e
510#define A6XX_RBBM_CLOCK_DELAY_UCHE 0x0010f
511#define A6XX_RBBM_CLOCK_HYST_UCHE 0x00110
512#define A6XX_RBBM_CLOCK_MODE_VFD 0x00111
513#define A6XX_RBBM_CLOCK_DELAY_VFD 0x00112
514#define A6XX_RBBM_CLOCK_HYST_VFD 0x00113
515#define A6XX_RBBM_CLOCK_MODE_GPC 0x00114
516#define A6XX_RBBM_CLOCK_DELAY_GPC 0x00115
517#define A6XX_RBBM_CLOCK_HYST_GPC 0x00116
518#define A6XX_RBBM_CLOCK_DELAY_HLSQ_2 0x00117
519#define A6XX_RBBM_CLOCK_CNTL_GMU_GX 0x00118
520#define A6XX_RBBM_CLOCK_DELAY_GMU_GX 0x00119
521#define A6XX_RBBM_CLOCK_HYST_GMU_GX 0x0011a
522#define A6XX_RBBM_CLOCK_MODE_HLSQ 0x0011b
523#define A6XX_RBBM_CLOCK_DELAY_HLSQ 0x0011c
524
Lynus Vaz20c81272017-02-10 16:22:12 +0530525/* DBGC_CFG registers */
526#define A6XX_DBGC_CFG_DBGBUS_SEL_A 0x600
527#define A6XX_DBGC_CFG_DBGBUS_SEL_B 0x601
528#define A6XX_DBGC_CFG_DBGBUS_SEL_C 0x602
529#define A6XX_DBGC_CFG_DBGBUS_SEL_D 0x603
530#define A6XX_DBGC_CFG_DBGBUS_SEL_PING_INDEX_SHIFT 0x0
531#define A6XX_DBGC_CFG_DBGBUS_SEL_PING_BLK_SEL_SHIFT 0x8
532#define A6XX_DBGC_CFG_DBGBUS_CNTLT 0x604
533#define A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN_SHIFT 0x0
534#define A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU_SHIFT 0xC
535#define A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT_SHIFT 0x1C
536#define A6XX_DBGC_CFG_DBGBUS_CNTLM 0x605
537#define A6XX_DBGC_CFG_DBGBUS_CTLTM_ENABLE_SHIFT 0x18
Lokesh Batraa8300e02017-05-25 11:17:40 -0700538#define A6XX_DBGC_CFG_DBGBUS_OPL 0x606
539#define A6XX_DBGC_CFG_DBGBUS_OPE 0x607
Lynus Vaz20c81272017-02-10 16:22:12 +0530540#define A6XX_DBGC_CFG_DBGBUS_IVTL_0 0x608
541#define A6XX_DBGC_CFG_DBGBUS_IVTL_1 0x609
542#define A6XX_DBGC_CFG_DBGBUS_IVTL_2 0x60a
543#define A6XX_DBGC_CFG_DBGBUS_IVTL_3 0x60b
544#define A6XX_DBGC_CFG_DBGBUS_MASKL_0 0x60c
545#define A6XX_DBGC_CFG_DBGBUS_MASKL_1 0x60d
546#define A6XX_DBGC_CFG_DBGBUS_MASKL_2 0x60e
547#define A6XX_DBGC_CFG_DBGBUS_MASKL_3 0x60f
548#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0 0x610
549#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1 0x611
550#define A6XX_DBGC_CFG_DBGBUS_BYTEL0_SHIFT 0x0
551#define A6XX_DBGC_CFG_DBGBUS_BYTEL1_SHIFT 0x4
552#define A6XX_DBGC_CFG_DBGBUS_BYTEL2_SHIFT 0x8
553#define A6XX_DBGC_CFG_DBGBUS_BYTEL3_SHIFT 0xC
554#define A6XX_DBGC_CFG_DBGBUS_BYTEL4_SHIFT 0x10
555#define A6XX_DBGC_CFG_DBGBUS_BYTEL5_SHIFT 0x14
556#define A6XX_DBGC_CFG_DBGBUS_BYTEL6_SHIFT 0x18
557#define A6XX_DBGC_CFG_DBGBUS_BYTEL7_SHIFT 0x1C
558#define A6XX_DBGC_CFG_DBGBUS_BYTEL8_SHIFT 0x0
559#define A6XX_DBGC_CFG_DBGBUS_BYTEL9_SHIFT 0x4
560#define A6XX_DBGC_CFG_DBGBUS_BYTEL10_SHIFT 0x8
561#define A6XX_DBGC_CFG_DBGBUS_BYTEL11_SHIFT 0xC
562#define A6XX_DBGC_CFG_DBGBUS_BYTEL12_SHIFT 0x10
563#define A6XX_DBGC_CFG_DBGBUS_BYTEL13_SHIFT 0x14
564#define A6XX_DBGC_CFG_DBGBUS_BYTEL14_SHIFT 0x18
565#define A6XX_DBGC_CFG_DBGBUS_BYTEL15_SHIFT 0x1C
Lokesh Batraa8300e02017-05-25 11:17:40 -0700566#define A6XX_DBGC_CFG_DBGBUS_IVTE_0 0x612
567#define A6XX_DBGC_CFG_DBGBUS_IVTE_1 0x613
568#define A6XX_DBGC_CFG_DBGBUS_IVTE_2 0x614
569#define A6XX_DBGC_CFG_DBGBUS_IVTE_3 0x615
570#define A6XX_DBGC_CFG_DBGBUS_MASKE_0 0x616
571#define A6XX_DBGC_CFG_DBGBUS_MASKE_1 0x617
572#define A6XX_DBGC_CFG_DBGBUS_MASKE_2 0x618
573#define A6XX_DBGC_CFG_DBGBUS_MASKE_3 0x619
574#define A6XX_DBGC_CFG_DBGBUS_NIBBLEE 0x61a
575#define A6XX_DBGC_CFG_DBGBUS_PTRC0 0x61b
576#define A6XX_DBGC_CFG_DBGBUS_PTRC1 0x61c
577#define A6XX_DBGC_CFG_DBGBUS_LOADREG 0x61d
578#define A6XX_DBGC_CFG_DBGBUS_IDX 0x61e
579#define A6XX_DBGC_CFG_DBGBUS_CLRC 0x61f
580#define A6XX_DBGC_CFG_DBGBUS_LOADIVT 0x620
581#define A6XX_DBGC_VBIF_DBG_CNTL 0x621
582#define A6XX_DBGC_DBG_LO_HI_GPIO 0x622
583#define A6XX_DBGC_EXT_TRACE_BUS_CNTL 0x623
584#define A6XX_DBGC_READ_AHB_THROUGH_DBG 0x624
Lynus Vaz20c81272017-02-10 16:22:12 +0530585#define A6XX_DBGC_CFG_DBGBUS_TRACE_BUF1 0x62f
586#define A6XX_DBGC_CFG_DBGBUS_TRACE_BUF2 0x630
Lokesh Batraa8300e02017-05-25 11:17:40 -0700587#define A6XX_DBGC_EVT_CFG 0x640
588#define A6XX_DBGC_EVT_INTF_SEL_0 0x641
589#define A6XX_DBGC_EVT_INTF_SEL_1 0x642
590#define A6XX_DBGC_PERF_ATB_CFG 0x643
591#define A6XX_DBGC_PERF_ATB_COUNTER_SEL_0 0x644
592#define A6XX_DBGC_PERF_ATB_COUNTER_SEL_1 0x645
593#define A6XX_DBGC_PERF_ATB_COUNTER_SEL_2 0x646
594#define A6XX_DBGC_PERF_ATB_COUNTER_SEL_3 0x647
595#define A6XX_DBGC_PERF_ATB_TRIG_INTF_SEL_0 0x648
596#define A6XX_DBGC_PERF_ATB_TRIG_INTF_SEL_1 0x649
597#define A6XX_DBGC_PERF_ATB_DRAIN_CMD 0x64a
598#define A6XX_DBGC_ECO_CNTL 0x650
599#define A6XX_DBGC_AHB_DBG_CNTL 0x651
Lynus Vaz20c81272017-02-10 16:22:12 +0530600
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700601/* VSC registers */
Lynus Vaz107d2892017-03-01 13:48:06 +0530602#define A6XX_VSC_PERFCTR_VSC_SEL_0 0xCD8
603#define A6XX_VSC_PERFCTR_VSC_SEL_1 0xCD9
604
605/* GRAS registers */
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700606#define A6XX_GRAS_ADDR_MODE_CNTL 0x8601
Lynus Vaz107d2892017-03-01 13:48:06 +0530607#define A6XX_GRAS_PERFCTR_TSE_SEL_0 0x8610
608#define A6XX_GRAS_PERFCTR_TSE_SEL_1 0x8611
609#define A6XX_GRAS_PERFCTR_TSE_SEL_2 0x8612
610#define A6XX_GRAS_PERFCTR_TSE_SEL_3 0x8613
611#define A6XX_GRAS_PERFCTR_RAS_SEL_0 0x8614
612#define A6XX_GRAS_PERFCTR_RAS_SEL_1 0x8615
613#define A6XX_GRAS_PERFCTR_RAS_SEL_2 0x8616
614#define A6XX_GRAS_PERFCTR_RAS_SEL_3 0x8617
615#define A6XX_GRAS_PERFCTR_LRZ_SEL_0 0x8618
616#define A6XX_GRAS_PERFCTR_LRZ_SEL_1 0x8619
617#define A6XX_GRAS_PERFCTR_LRZ_SEL_2 0x861A
618#define A6XX_GRAS_PERFCTR_LRZ_SEL_3 0x861B
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700619
620/* RB registers */
621#define A6XX_RB_ADDR_MODE_CNTL 0x8E05
622#define A6XX_RB_NC_MODE_CNTL 0x8E08
Lynus Vaz107d2892017-03-01 13:48:06 +0530623#define A6XX_RB_PERFCTR_RB_SEL_0 0x8E10
624#define A6XX_RB_PERFCTR_RB_SEL_1 0x8E11
625#define A6XX_RB_PERFCTR_RB_SEL_2 0x8E12
626#define A6XX_RB_PERFCTR_RB_SEL_3 0x8E13
627#define A6XX_RB_PERFCTR_RB_SEL_4 0x8E14
628#define A6XX_RB_PERFCTR_RB_SEL_5 0x8E15
629#define A6XX_RB_PERFCTR_RB_SEL_6 0x8E16
630#define A6XX_RB_PERFCTR_RB_SEL_7 0x8E17
631#define A6XX_RB_PERFCTR_CCU_SEL_0 0x8E18
632#define A6XX_RB_PERFCTR_CCU_SEL_1 0x8E19
633#define A6XX_RB_PERFCTR_CCU_SEL_2 0x8E1A
634#define A6XX_RB_PERFCTR_CCU_SEL_3 0x8E1B
635#define A6XX_RB_PERFCTR_CCU_SEL_4 0x8E1C
636#define A6XX_RB_PERFCTR_CMP_SEL_0 0x8E2C
637#define A6XX_RB_PERFCTR_CMP_SEL_1 0x8E2D
638#define A6XX_RB_PERFCTR_CMP_SEL_2 0x8E2E
639#define A6XX_RB_PERFCTR_CMP_SEL_3 0x8E2F
Harshdeep Dhatta0cf2412017-06-22 11:53:31 -0600640#define A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_HOST 0x8E3B
641#define A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD 0x8E3D
Harshdeep Dhatt0cdc8992017-05-31 15:44:05 -0600642#define A6XX_RB_CONTEXT_SWITCH_GMEM_SAVE_RESTORE 0x8E50
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700643
644/* PC registers */
645#define A6XX_PC_DBG_ECO_CNTL 0x9E00
646#define A6XX_PC_ADDR_MODE_CNTL 0x9E01
Lynus Vaz107d2892017-03-01 13:48:06 +0530647#define A6XX_PC_PERFCTR_PC_SEL_0 0x9E34
648#define A6XX_PC_PERFCTR_PC_SEL_1 0x9E35
649#define A6XX_PC_PERFCTR_PC_SEL_2 0x9E36
650#define A6XX_PC_PERFCTR_PC_SEL_3 0x9E37
651#define A6XX_PC_PERFCTR_PC_SEL_4 0x9E38
652#define A6XX_PC_PERFCTR_PC_SEL_5 0x9E39
653#define A6XX_PC_PERFCTR_PC_SEL_6 0x9E3A
654#define A6XX_PC_PERFCTR_PC_SEL_7 0x9E3B
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700655
656/* HLSQ registers */
657#define A6XX_HLSQ_ADDR_MODE_CNTL 0xBE05
Lynus Vaz107d2892017-03-01 13:48:06 +0530658#define A6XX_HLSQ_PERFCTR_HLSQ_SEL_0 0xBE10
659#define A6XX_HLSQ_PERFCTR_HLSQ_SEL_1 0xBE11
660#define A6XX_HLSQ_PERFCTR_HLSQ_SEL_2 0xBE12
661#define A6XX_HLSQ_PERFCTR_HLSQ_SEL_3 0xBE13
662#define A6XX_HLSQ_PERFCTR_HLSQ_SEL_4 0xBE14
663#define A6XX_HLSQ_PERFCTR_HLSQ_SEL_5 0xBE15
Lynus Vaz461e2382017-01-16 19:35:41 +0530664#define A6XX_HLSQ_DBG_AHB_READ_APERTURE 0xC800
665#define A6XX_HLSQ_DBG_READ_SEL 0xD000
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700666
667/* VFD registers */
668#define A6XX_VFD_ADDR_MODE_CNTL 0xA601
Lynus Vaz107d2892017-03-01 13:48:06 +0530669#define A6XX_VFD_PERFCTR_VFD_SEL_0 0xA610
670#define A6XX_VFD_PERFCTR_VFD_SEL_1 0xA611
671#define A6XX_VFD_PERFCTR_VFD_SEL_2 0xA612
672#define A6XX_VFD_PERFCTR_VFD_SEL_3 0xA613
673#define A6XX_VFD_PERFCTR_VFD_SEL_4 0xA614
674#define A6XX_VFD_PERFCTR_VFD_SEL_5 0xA615
675#define A6XX_VFD_PERFCTR_VFD_SEL_6 0xA616
676#define A6XX_VFD_PERFCTR_VFD_SEL_7 0xA617
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700677
678/* VPC registers */
679#define A6XX_VPC_ADDR_MODE_CNTL 0x9601
Lynus Vaz107d2892017-03-01 13:48:06 +0530680#define A6XX_VPC_PERFCTR_VPC_SEL_0 0x9604
681#define A6XX_VPC_PERFCTR_VPC_SEL_1 0x9605
682#define A6XX_VPC_PERFCTR_VPC_SEL_2 0x9606
683#define A6XX_VPC_PERFCTR_VPC_SEL_3 0x9607
684#define A6XX_VPC_PERFCTR_VPC_SEL_4 0x9608
685#define A6XX_VPC_PERFCTR_VPC_SEL_5 0x9609
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700686
687/* UCHE registers */
688#define A6XX_UCHE_ADDR_MODE_CNTL 0xE00
689#define A6XX_UCHE_MODE_CNTL 0xE01
690#define A6XX_UCHE_WRITE_RANGE_MAX_LO 0xE05
691#define A6XX_UCHE_WRITE_RANGE_MAX_HI 0xE06
692#define A6XX_UCHE_WRITE_THRU_BASE_LO 0xE07
693#define A6XX_UCHE_WRITE_THRU_BASE_HI 0xE08
694#define A6XX_UCHE_TRAP_BASE_LO 0xE09
695#define A6XX_UCHE_TRAP_BASE_HI 0xE0A
696#define A6XX_UCHE_GMEM_RANGE_MIN_LO 0xE0B
697#define A6XX_UCHE_GMEM_RANGE_MIN_HI 0xE0C
698#define A6XX_UCHE_GMEM_RANGE_MAX_LO 0xE0D
699#define A6XX_UCHE_GMEM_RANGE_MAX_HI 0xE0E
700#define A6XX_UCHE_CACHE_WAYS 0xE17
701#define A6XX_UCHE_FILTER_CNTL 0xE18
Lynus Vaz1fde74d2017-03-20 18:02:47 +0530702#define A6XX_UCHE_CLIENT_PF 0xE19
703#define A6XX_UCHE_CLIENT_PF_CLIENT_ID_MASK 0x7
Lynus Vaz107d2892017-03-01 13:48:06 +0530704#define A6XX_UCHE_PERFCTR_UCHE_SEL_0 0xE1C
705#define A6XX_UCHE_PERFCTR_UCHE_SEL_1 0xE1D
706#define A6XX_UCHE_PERFCTR_UCHE_SEL_2 0xE1E
707#define A6XX_UCHE_PERFCTR_UCHE_SEL_3 0xE1F
708#define A6XX_UCHE_PERFCTR_UCHE_SEL_4 0xE20
709#define A6XX_UCHE_PERFCTR_UCHE_SEL_5 0xE21
710#define A6XX_UCHE_PERFCTR_UCHE_SEL_6 0xE22
711#define A6XX_UCHE_PERFCTR_UCHE_SEL_7 0xE23
712#define A6XX_UCHE_PERFCTR_UCHE_SEL_8 0xE24
713#define A6XX_UCHE_PERFCTR_UCHE_SEL_9 0xE25
714#define A6XX_UCHE_PERFCTR_UCHE_SEL_10 0xE26
715#define A6XX_UCHE_PERFCTR_UCHE_SEL_11 0xE27
Rajesh Kemisetti1d4a6972017-11-16 17:56:52 +0530716#define A6XX_UCHE_GBIF_GX_CONFIG 0xE3A
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700717
718/* SP registers */
719#define A6XX_SP_ADDR_MODE_CNTL 0xAE01
720#define A6XX_SP_NC_MODE_CNTL 0xAE02
Lynus Vaz107d2892017-03-01 13:48:06 +0530721#define A6XX_SP_PERFCTR_SP_SEL_0 0xAE10
722#define A6XX_SP_PERFCTR_SP_SEL_1 0xAE11
723#define A6XX_SP_PERFCTR_SP_SEL_2 0xAE12
724#define A6XX_SP_PERFCTR_SP_SEL_3 0xAE13
725#define A6XX_SP_PERFCTR_SP_SEL_4 0xAE14
726#define A6XX_SP_PERFCTR_SP_SEL_5 0xAE15
727#define A6XX_SP_PERFCTR_SP_SEL_6 0xAE16
728#define A6XX_SP_PERFCTR_SP_SEL_7 0xAE17
729#define A6XX_SP_PERFCTR_SP_SEL_8 0xAE18
730#define A6XX_SP_PERFCTR_SP_SEL_9 0xAE19
731#define A6XX_SP_PERFCTR_SP_SEL_10 0xAE1A
732#define A6XX_SP_PERFCTR_SP_SEL_11 0xAE1B
733#define A6XX_SP_PERFCTR_SP_SEL_12 0xAE1C
734#define A6XX_SP_PERFCTR_SP_SEL_13 0xAE1D
735#define A6XX_SP_PERFCTR_SP_SEL_14 0xAE1E
736#define A6XX_SP_PERFCTR_SP_SEL_15 0xAE1F
737#define A6XX_SP_PERFCTR_SP_SEL_16 0xAE20
738#define A6XX_SP_PERFCTR_SP_SEL_17 0xAE21
739#define A6XX_SP_PERFCTR_SP_SEL_18 0xAE22
740#define A6XX_SP_PERFCTR_SP_SEL_19 0xAE23
741#define A6XX_SP_PERFCTR_SP_SEL_20 0xAE24
742#define A6XX_SP_PERFCTR_SP_SEL_21 0xAE25
743#define A6XX_SP_PERFCTR_SP_SEL_22 0xAE26
744#define A6XX_SP_PERFCTR_SP_SEL_23 0xAE27
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700745
746/* TP registers */
747#define A6XX_TPL1_ADDR_MODE_CNTL 0xB601
748#define A6XX_TPL1_NC_MODE_CNTL 0xB604
Lynus Vaz107d2892017-03-01 13:48:06 +0530749#define A6XX_TPL1_PERFCTR_TP_SEL_0 0xB610
750#define A6XX_TPL1_PERFCTR_TP_SEL_1 0xB611
751#define A6XX_TPL1_PERFCTR_TP_SEL_2 0xB612
752#define A6XX_TPL1_PERFCTR_TP_SEL_3 0xB613
753#define A6XX_TPL1_PERFCTR_TP_SEL_4 0xB614
754#define A6XX_TPL1_PERFCTR_TP_SEL_5 0xB615
755#define A6XX_TPL1_PERFCTR_TP_SEL_6 0xB616
756#define A6XX_TPL1_PERFCTR_TP_SEL_7 0xB617
757#define A6XX_TPL1_PERFCTR_TP_SEL_8 0xB618
758#define A6XX_TPL1_PERFCTR_TP_SEL_9 0xB619
759#define A6XX_TPL1_PERFCTR_TP_SEL_10 0xB61A
760#define A6XX_TPL1_PERFCTR_TP_SEL_11 0xB61B
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700761
762/* VBIF registers */
763#define A6XX_VBIF_VERSION 0x3000
Lynus Vazdaac540732017-07-27 14:23:35 +0530764#define A6XX_VBIF_CLKON 0x3001
765#define A6XX_VBIF_CLKON_FORCE_ON_TESTBUS_MASK 0x1
766#define A6XX_VBIF_CLKON_FORCE_ON_TESTBUS_SHIFT 0x1
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700767#define A6XX_VBIF_GATE_OFF_WRREQ_EN 0x302A
768#define A6XX_VBIF_XIN_HALT_CTRL0 0x3080
Carter Cooperafc85912017-03-20 09:39:18 -0600769#define A6XX_VBIF_XIN_HALT_CTRL0_MASK 0xF
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700770#define A6XX_VBIF_XIN_HALT_CTRL1 0x3081
Lynus Vazdaac540732017-07-27 14:23:35 +0530771#define A6XX_VBIF_TEST_BUS_OUT_CTRL 0x3084
772#define A6XX_VBIF_TEST_BUS_OUT_CTRL_EN_MASK 0x1
773#define A6XX_VBIF_TEST_BUS_OUT_CTRL_EN_SHIFT 0x0
774#define A6XX_VBIF_TEST_BUS1_CTRL0 0x3085
775#define A6XX_VBIF_TEST_BUS1_CTRL1 0x3086
776#define A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL_MASK 0xF
777#define A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL_SHIFT 0x0
778#define A6XX_VBIF_TEST_BUS2_CTRL0 0x3087
779#define A6XX_VBIF_TEST_BUS2_CTRL1 0x3088
780#define A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL_MASK 0x1FF
781#define A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL_SHIFT 0x0
782#define A6XX_VBIF_TEST_BUS_OUT 0x308C
Lynus Vaz107d2892017-03-01 13:48:06 +0530783#define A6XX_VBIF_PERF_CNT_SEL0 0x30d0
784#define A6XX_VBIF_PERF_CNT_SEL1 0x30d1
785#define A6XX_VBIF_PERF_CNT_SEL2 0x30d2
786#define A6XX_VBIF_PERF_CNT_SEL3 0x30d3
787#define A6XX_VBIF_PERF_CNT_LOW0 0x30d8
788#define A6XX_VBIF_PERF_CNT_LOW1 0x30d9
789#define A6XX_VBIF_PERF_CNT_LOW2 0x30da
790#define A6XX_VBIF_PERF_CNT_LOW3 0x30db
791#define A6XX_VBIF_PERF_CNT_HIGH0 0x30e0
792#define A6XX_VBIF_PERF_CNT_HIGH1 0x30e1
793#define A6XX_VBIF_PERF_CNT_HIGH2 0x30e2
794#define A6XX_VBIF_PERF_CNT_HIGH3 0x30e3
795#define A6XX_VBIF_PERF_PWR_CNT_EN0 0x3100
796#define A6XX_VBIF_PERF_PWR_CNT_EN1 0x3101
797#define A6XX_VBIF_PERF_PWR_CNT_EN2 0x3102
798#define A6XX_VBIF_PERF_PWR_CNT_LOW0 0x3110
799#define A6XX_VBIF_PERF_PWR_CNT_LOW1 0x3111
800#define A6XX_VBIF_PERF_PWR_CNT_LOW2 0x3112
801#define A6XX_VBIF_PERF_PWR_CNT_HIGH0 0x3118
802#define A6XX_VBIF_PERF_PWR_CNT_HIGH1 0x3119
803#define A6XX_VBIF_PERF_PWR_CNT_HIGH2 0x311a
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700804
Deepak Kumar84b9e032017-11-08 13:08:50 +0530805/* GBIF countables */
806#define GBIF_AXI0_READ_DATA_TOTAL_BEATS 34
807#define GBIF_AXI1_READ_DATA_TOTAL_BEATS 35
808#define GBIF_AXI0_WRITE_DATA_TOTAL_BEATS 46
809#define GBIF_AXI1_WRITE_DATA_TOTAL_BEATS 47
810
Rajesh Kemisetti77b82ed2017-09-24 20:42:41 +0530811/* GBIF registers */
812#define A6XX_GBIF_HALT 0x3c45
813#define A6XX_GBIF_HALT_ACK 0x3c46
Rajesh Kemisettid1ca9542017-10-18 15:35:41 +0530814#define A6XX_GBIF_HALT_MASK 0x2
Rajesh Kemisetti77b82ed2017-09-24 20:42:41 +0530815
816#define A6XX_GBIF_PERF_PWR_CNT_EN 0x3cc0
817#define A6XX_GBIF_PERF_CNT_SEL 0x3cc2
818#define A6XX_GBIF_PERF_CNT_LOW0 0x3cc4
819#define A6XX_GBIF_PERF_CNT_LOW1 0x3cc5
820#define A6XX_GBIF_PERF_CNT_LOW2 0x3cc6
821#define A6XX_GBIF_PERF_CNT_LOW3 0x3cc7
822#define A6XX_GBIF_PERF_CNT_HIGH0 0x3cc8
823#define A6XX_GBIF_PERF_CNT_HIGH1 0x3cc9
824#define A6XX_GBIF_PERF_CNT_HIGH2 0x3cca
825#define A6XX_GBIF_PERF_CNT_HIGH3 0x3ccb
826#define A6XX_GBIF_PWR_CNT_LOW0 0x3ccc
827#define A6XX_GBIF_PWR_CNT_LOW1 0x3ccd
828#define A6XX_GBIF_PWR_CNT_LOW2 0x3cce
829#define A6XX_GBIF_PWR_CNT_HIGH0 0x3ccf
830#define A6XX_GBIF_PWR_CNT_HIGH1 0x3cd0
831#define A6XX_GBIF_PWR_CNT_HIGH2 0x3cd1
832
833
Lynus Vazff24c972017-03-07 19:27:46 +0530834/* CX_DBGC_CFG registers */
835#define A6XX_CX_DBGC_CFG_DBGBUS_SEL_A 0x18400
836#define A6XX_CX_DBGC_CFG_DBGBUS_SEL_B 0x18401
837#define A6XX_CX_DBGC_CFG_DBGBUS_SEL_C 0x18402
838#define A6XX_CX_DBGC_CFG_DBGBUS_SEL_D 0x18403
Lokesh Batraa8300e02017-05-25 11:17:40 -0700839#define A6XX_CX_DBGC_CFG_DBGBUS_SEL_PING_INDEX_SHIFT 0x0
840#define A6XX_CX_DBGC_CFG_DBGBUS_SEL_PING_BLK_SEL_SHIFT 0x8
Lynus Vazff24c972017-03-07 19:27:46 +0530841#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT 0x18404
842#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN_SHIFT 0x0
843#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU_SHIFT 0xC
844#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT_SHIFT 0x1C
845#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLM 0x18405
846#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE_SHIFT 0x18
Lokesh Batraa8300e02017-05-25 11:17:40 -0700847#define A6XX_CX_DBGC_CFG_DBGBUS_OPL 0x18406
848#define A6XX_CX_DBGC_CFG_DBGBUS_OPE 0x18407
Lynus Vazff24c972017-03-07 19:27:46 +0530849#define A6XX_CX_DBGC_CFG_DBGBUS_IVTL_0 0x18408
850#define A6XX_CX_DBGC_CFG_DBGBUS_IVTL_1 0x18409
851#define A6XX_CX_DBGC_CFG_DBGBUS_IVTL_2 0x1840A
852#define A6XX_CX_DBGC_CFG_DBGBUS_IVTL_3 0x1840B
853#define A6XX_CX_DBGC_CFG_DBGBUS_MASKL_0 0x1840C
854#define A6XX_CX_DBGC_CFG_DBGBUS_MASKL_1 0x1840D
855#define A6XX_CX_DBGC_CFG_DBGBUS_MASKL_2 0x1840E
856#define A6XX_CX_DBGC_CFG_DBGBUS_MASKL_3 0x1840F
857#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0 0x18410
858#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1 0x18411
859#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL0_SHIFT 0x0
860#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL1_SHIFT 0x4
861#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL2_SHIFT 0x8
862#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL3_SHIFT 0xC
863#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL4_SHIFT 0x10
864#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL5_SHIFT 0x14
865#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL6_SHIFT 0x18
866#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL7_SHIFT 0x1C
867#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL8_SHIFT 0x0
868#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL9_SHIFT 0x4
869#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL10_SHIFT 0x8
870#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL11_SHIFT 0xC
871#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL12_SHIFT 0x10
872#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL13_SHIFT 0x14
873#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL14_SHIFT 0x18
874#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL15_SHIFT 0x1C
Lokesh Batraa8300e02017-05-25 11:17:40 -0700875#define A6XX_CX_DBGC_CFG_DBGBUS_IVTE_0 0x18412
876#define A6XX_CX_DBGC_CFG_DBGBUS_IVTE_1 0x18413
877#define A6XX_CX_DBGC_CFG_DBGBUS_IVTE_2 0x18414
878#define A6XX_CX_DBGC_CFG_DBGBUS_IVTE_3 0x18415
879#define A6XX_CX_DBGC_CFG_DBGBUS_MASKE_0 0x18416
880#define A6XX_CX_DBGC_CFG_DBGBUS_MASKE_1 0x18417
881#define A6XX_CX_DBGC_CFG_DBGBUS_MASKE_2 0x18418
882#define A6XX_CX_DBGC_CFG_DBGBUS_MASKE_3 0x18419
883#define A6XX_CX_DBGC_CFG_DBGBUS_NIBBLEE 0x1841A
884#define A6XX_CX_DBGC_CFG_DBGBUS_PTRC0 0x1841B
885#define A6XX_CX_DBGC_CFG_DBGBUS_PTRC1 0x1841C
886#define A6XX_CX_DBGC_CFG_DBGBUS_LOADREG 0x1841D
887#define A6XX_CX_DBGC_CFG_DBGBUS_IDX 0x1841E
888#define A6XX_CX_DBGC_CFG_DBGBUS_CLRC 0x1841F
889#define A6XX_CX_DBGC_CFG_DBGBUS_LOADIVT 0x18420
890#define A6XX_CX_DBGC_VBIF_DBG_CNTL 0x18421
891#define A6XX_CX_DBGC_DBG_LO_HI_GPIO 0x18422
892#define A6XX_CX_DBGC_EXT_TRACE_BUS_CNTL 0x18423
893#define A6XX_CX_DBGC_READ_AHB_THROUGH_DBG 0x18424
Lynus Vazff24c972017-03-07 19:27:46 +0530894#define A6XX_CX_DBGC_CFG_DBGBUS_TRACE_BUF1 0x1842F
895#define A6XX_CX_DBGC_CFG_DBGBUS_TRACE_BUF2 0x18430
Lokesh Batraa8300e02017-05-25 11:17:40 -0700896#define A6XX_CX_DBGC_EVT_CFG 0x18440
897#define A6XX_CX_DBGC_EVT_INTF_SEL_0 0x18441
898#define A6XX_CX_DBGC_EVT_INTF_SEL_1 0x18442
899#define A6XX_CX_DBGC_PERF_ATB_CFG 0x18443
900#define A6XX_CX_DBGC_PERF_ATB_COUNTER_SEL_0 0x18444
901#define A6XX_CX_DBGC_PERF_ATB_COUNTER_SEL_1 0x18445
902#define A6XX_CX_DBGC_PERF_ATB_COUNTER_SEL_2 0x18446
903#define A6XX_CX_DBGC_PERF_ATB_COUNTER_SEL_3 0x18447
904#define A6XX_CX_DBGC_PERF_ATB_TRIG_INTF_SEL_0 0x18448
905#define A6XX_CX_DBGC_PERF_ATB_TRIG_INTF_SEL_1 0x18449
906#define A6XX_CX_DBGC_PERF_ATB_DRAIN_CMD 0x1844A
907#define A6XX_CX_DBGC_ECO_CNTL 0x18450
908#define A6XX_CX_DBGC_AHB_DBG_CNTL 0x18451
Lynus Vazff24c972017-03-07 19:27:46 +0530909
Kyle Pieferb1027b02017-02-10 13:58:58 -0800910/* GMU control registers */
Oleg Pereletcb9b6212017-03-16 15:38:43 -0700911#define A6XX_GPU_GMU_GX_SPTPRAC_CLOCK_CONTROL 0x1A880
Kyle Pieferb1027b02017-02-10 13:58:58 -0800912#define A6XX_GMU_GX_SPTPRAC_POWER_CONTROL 0x1A881
913#define A6XX_GMU_CM3_ITCM_START 0x1B400
914#define A6XX_GMU_CM3_DTCM_START 0x1C400
Shrenuj Bansald0fe7462017-05-08 16:11:19 -0700915#define A6XX_GMU_NMI_CONTROL_STATUS 0x1CBF0
Kyle Pieferb1027b02017-02-10 13:58:58 -0800916#define A6XX_GMU_BOOT_SLUMBER_OPTION 0x1CBF8
917#define A6XX_GMU_GX_VOTE_IDX 0x1CBF9
918#define A6XX_GMU_MX_VOTE_IDX 0x1CBFA
919#define A6XX_GMU_DCVS_ACK_OPTION 0x1CBFC
920#define A6XX_GMU_DCVS_PERF_SETTING 0x1CBFD
921#define A6XX_GMU_DCVS_BW_SETTING 0x1CBFE
922#define A6XX_GMU_DCVS_RETURN 0x1CBFF
George Shen1f312ab2017-08-01 10:53:50 -0700923#define A6XX_GMU_SYS_BUS_CONFIG 0x1F40F
Kyle Pieferb1027b02017-02-10 13:58:58 -0800924#define A6XX_GMU_CM3_SYSRESET 0x1F800
925#define A6XX_GMU_CM3_BOOT_CONFIG 0x1F801
Oleg Perelet5d2d28f2018-03-06 17:03:20 -0800926#define A6XX_GMU_CX_GMU_WFI_CONFIG 0x1F802
Kyle Piefer5c9478c2017-04-20 15:12:05 -0700927#define A6XX_GMU_CM3_FW_BUSY 0x1F81A
Kyle Pieferb1027b02017-02-10 13:58:58 -0800928#define A6XX_GMU_CM3_FW_INIT_RESULT 0x1F81C
Shrenuj Bansald0fe7462017-05-08 16:11:19 -0700929#define A6XX_GMU_CM3_CFG 0x1F82D
Lynus Vaz856ca602017-05-24 16:56:36 +0530930#define A6XX_GMU_CX_GMU_POWER_COUNTER_ENABLE 0x1F840
931#define A6XX_GMU_CX_GMU_POWER_COUNTER_SELECT_0 0x1F841
Lynus Vaz4fc97e22017-06-01 20:03:35 +0530932#define A6XX_GMU_CX_GMU_POWER_COUNTER_SELECT_1 0x1F842
Lynus Vaz856ca602017-05-24 16:56:36 +0530933#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_L 0x1F844
934#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_H 0x1F845
Lynus Vaz4fc97e22017-06-01 20:03:35 +0530935#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_1_L 0x1F846
936#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_1_H 0x1F847
937#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_2_L 0x1F848
938#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_2_H 0x1F849
939#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_3_L 0x1F84A
940#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_3_H 0x1F84B
941#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_4_L 0x1F84C
942#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_4_H 0x1F84D
943#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_5_L 0x1F84E
944#define A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_5_H 0x1F84F
Oleg Perelet39fead22018-01-08 14:46:17 -0800945#define A6XX_GMU_CX_GMU_ALWAYS_ON_COUNTER_L 0x1F888
946#define A6XX_GMU_CX_GMU_ALWAYS_ON_COUNTER_H 0x1F889
Kyle Pieferb1027b02017-02-10 13:58:58 -0800947#define A6XX_GMU_PWR_COL_INTER_FRAME_CTRL 0x1F8C0
948#define A6XX_GMU_PWR_COL_INTER_FRAME_HYST 0x1F8C1
949#define A6XX_GMU_PWR_COL_SPTPRAC_HYST 0x1F8C2
950#define A6XX_GMU_SPTPRAC_PWR_CLK_STATUS 0x1F8D0
951#define A6XX_GMU_GPU_NAP_CTRL 0x1F8E4
952#define A6XX_GMU_RPMH_CTRL 0x1F8E8
953#define A6XX_GMU_RPMH_HYST_CTRL 0x1F8E9
George Shenf2d4e052017-05-11 16:28:23 -0700954#define A6XX_GPU_GMU_CX_GMU_RPMH_POWER_STATE 0x1F8EC
Kyle Piefer3a5ac092017-04-06 16:05:30 -0700955#define A6XX_GMU_BOOT_KMD_LM_HANDSHAKE 0x1F9F0
Kyle Piefere923b7a2017-03-28 17:31:48 -0700956#define A6XX_GMU_LLM_GLM_SLEEP_CTRL 0x1F957
957#define A6XX_GMU_LLM_GLM_SLEEP_STATUS 0x1F958
Kyle Pieferb1027b02017-02-10 13:58:58 -0800958
959/* HFI registers*/
960#define A6XX_GMU_ALWAYS_ON_COUNTER_L 0x1F888
961#define A6XX_GMU_ALWAYS_ON_COUNTER_H 0x1F889
962#define A6XX_GMU_GMU_PWR_COL_KEEPALIVE 0x1F8C3
963#define A6XX_GMU_HFI_CTRL_STATUS 0x1F980
964#define A6XX_GMU_HFI_VERSION_INFO 0x1F981
965#define A6XX_GMU_HFI_SFR_ADDR 0x1F982
966#define A6XX_GMU_HFI_MMAP_ADDR 0x1F983
967#define A6XX_GMU_HFI_QTBL_INFO 0x1F984
968#define A6XX_GMU_HFI_QTBL_ADDR 0x1F985
969#define A6XX_GMU_HFI_CTRL_INIT 0x1F986
970#define A6XX_GMU_GMU2HOST_INTR_SET 0x1F990
971#define A6XX_GMU_GMU2HOST_INTR_CLR 0x1F991
972#define A6XX_GMU_GMU2HOST_INTR_INFO 0x1F992
973#define A6XX_GMU_GMU2HOST_INTR_MASK 0x1F993
974#define A6XX_GMU_HOST2GMU_INTR_SET 0x1F994
975#define A6XX_GMU_HOST2GMU_INTR_CLR 0x1F995
976#define A6XX_GMU_HOST2GMU_INTR_RAW_INFO 0x1F996
977#define A6XX_GMU_HOST2GMU_INTR_EN_0 0x1F997
978#define A6XX_GMU_HOST2GMU_INTR_EN_1 0x1F998
979#define A6XX_GMU_HOST2GMU_INTR_EN_2 0x1F999
980#define A6XX_GMU_HOST2GMU_INTR_EN_3 0x1F99A
981#define A6XX_GMU_HOST2GMU_INTR_INFO_0 0x1F99B
982#define A6XX_GMU_HOST2GMU_INTR_INFO_1 0x1F99C
983#define A6XX_GMU_HOST2GMU_INTR_INFO_2 0x1F99D
984#define A6XX_GMU_HOST2GMU_INTR_INFO_3 0x1F99E
Oleg Pereletc2ab7f72017-06-22 16:45:57 -0700985#define A6XX_GMU_GENERAL_1 0x1F9C6
Kyle Pieferb1027b02017-02-10 13:58:58 -0800986#define A6XX_GMU_GENERAL_7 0x1F9CC
987
Kyle Piefere923b7a2017-03-28 17:31:48 -0700988/* ISENSE registers */
989#define A6XX_GMU_ISENSE_CTRL 0x1F95D
Oleg Pereletc2ab7f72017-06-22 16:45:57 -0700990#define A6XX_GPU_GMU_CX_GMU_ISENSE_CTRL 0x1f95d
Harshdeep Dhatt167ef882017-09-13 14:49:45 -0600991#define A6XX_GPU_CS_ENABLE_REG 0x23120
Oleg Pereletc2ab7f72017-06-22 16:45:57 -0700992
993/* LM registers */
994#define A6XX_GPU_GMU_CX_GMU_PWR_THRESHOLD 0x1F94D
995
Kyle Piefere923b7a2017-03-28 17:31:48 -0700996
Kyle Pieferb1027b02017-02-10 13:58:58 -0800997#define A6XX_GMU_AO_INTERRUPT_EN 0x23B03
Kyle Piefere7b06b42017-04-06 13:53:01 -0700998#define A6XX_GMU_AO_HOST_INTERRUPT_CLR 0x23B04
999#define A6XX_GMU_AO_HOST_INTERRUPT_STATUS 0x23B05
1000#define A6XX_GMU_AO_HOST_INTERRUPT_MASK 0x23B06
Oleg Pereletcb9b6212017-03-16 15:38:43 -07001001#define A6XX_GPU_GMU_AO_GMU_CGC_MODE_CNTL 0x23B09
1002#define A6XX_GPU_GMU_AO_GMU_CGC_DELAY_CNTL 0x23B0A
1003#define A6XX_GPU_GMU_AO_GMU_CGC_HYST_CNTL 0x23B0B
Oleg Perelet62d5cec2017-03-27 16:14:52 -07001004#define A6XX_GPU_GMU_AO_GPU_CX_BUSY_STATUS 0x23B0C
Kyle Piefer247e35c2017-06-08 11:13:11 -07001005#define A6XX_GPU_GMU_AO_GPU_CX_BUSY_STATUS2 0x23B0D
Lynus Vaz856ca602017-05-24 16:56:36 +05301006#define A6XX_GPU_GMU_AO_GPU_CX_BUSY_MASK 0x23B0E
Shrenuj Bansald197bf62017-04-07 11:00:09 -07001007#define A6XX_GMU_AO_AHB_FENCE_CTRL 0x23B10
Kyle Pieferb1027b02017-02-10 13:58:58 -08001008#define A6XX_GMU_AHB_FENCE_STATUS 0x23B13
1009#define A6XX_GMU_RBBM_INT_UNMASKED_STATUS 0x23B15
1010#define A6XX_GMU_AO_SPARE_CNTL 0x23B16
1011
1012/* GMU RSC control registers */
Kyle Piefer3e1f6bc2017-08-10 11:16:19 -07001013#define A6XX_GPU_RSCC_RSC_STATUS0_DRV0 0x23404
Kyle Pieferb1027b02017-02-10 13:58:58 -08001014#define A6XX_GMU_RSCC_CONTROL_REQ 0x23B07
1015#define A6XX_GMU_RSCC_CONTROL_ACK 0x23B08
1016
1017/* FENCE control registers */
1018#define A6XX_GMU_AHB_FENCE_RANGE_0 0x23B11
1019#define A6XX_GMU_AHB_FENCE_RANGE_1 0x23B12
1020
Kyle Pieferfa50d3e2017-05-24 12:35:24 -07001021/* GPUCC registers */
1022#define A6XX_GPU_CC_GX_GDSCR 0x24403
George Shen6927d8f2017-07-19 11:38:10 -07001023#define A6XX_GPU_CC_GX_DOMAIN_MISC 0x24542
Kyle Pieferfa50d3e2017-05-24 12:35:24 -07001024
Kyle Pieferb1027b02017-02-10 13:58:58 -08001025/* GPU RSC sequencer registers */
1026#define A6XX_RSCC_PDC_SEQ_START_ADDR 0x23408
1027#define A6XX_RSCC_PDC_MATCH_VALUE_LO 0x23409
1028#define A6XX_RSCC_PDC_MATCH_VALUE_HI 0x2340A
1029#define A6XX_RSCC_PDC_SLAVE_ID_DRV0 0x2340B
1030#define A6XX_RSCC_HIDDEN_TCS_CMD0_ADDR 0x2340D
1031#define A6XX_RSCC_HIDDEN_TCS_CMD0_DATA 0x2340E
1032#define A6XX_RSCC_TIMESTAMP_UNIT0_TIMESTAMP_L_DRV0 0x23482
1033#define A6XX_RSCC_TIMESTAMP_UNIT0_TIMESTAMP_H_DRV0 0x23483
1034#define A6XX_RSCC_TIMESTAMP_UNIT1_EN_DRV0 0x23489
1035#define A6XX_RSCC_TIMESTAMP_UNIT1_OUTPUT_DRV0 0x2348C
1036#define A6XX_RSCC_OVERRIDE_START_ADDR 0x23500
1037#define A6XX_RSCC_SEQ_BUSY_DRV0 0x23501
1038#define A6XX_RSCC_SEQ_MEM_0_DRV0 0x23580
Kyle Piefere923b7a2017-03-28 17:31:48 -07001039#define A6XX_RSCC_TCS0_DRV0_STATUS 0x23746
1040#define A6XX_RSCC_TCS1_DRV0_STATUS 0x238AE
1041#define A6XX_RSCC_TCS2_DRV0_STATUS 0x23A16
1042#define A6XX_RSCC_TCS3_DRV0_STATUS 0x23B7E
Kyle Pieferb1027b02017-02-10 13:58:58 -08001043
1044/* GPU PDC sequencer registers in AOSS.RPMh domain */
1045#define PDC_GPU_ENABLE_PDC 0x21140
1046#define PDC_GPU_SEQ_START_ADDR 0x21148
1047#define PDC_GPU_TCS0_CONTROL 0x21540
1048#define PDC_GPU_TCS0_CMD_ENABLE_BANK 0x21541
1049#define PDC_GPU_TCS0_CMD_WAIT_FOR_CMPL_BANK 0x21542
1050#define PDC_GPU_TCS0_CMD0_MSGID 0x21543
1051#define PDC_GPU_TCS0_CMD0_ADDR 0x21544
1052#define PDC_GPU_TCS0_CMD0_DATA 0x21545
1053#define PDC_GPU_TCS1_CONTROL 0x21572
1054#define PDC_GPU_TCS1_CMD_ENABLE_BANK 0x21573
1055#define PDC_GPU_TCS1_CMD_WAIT_FOR_CMPL_BANK 0x21574
1056#define PDC_GPU_TCS1_CMD0_MSGID 0x21575
1057#define PDC_GPU_TCS1_CMD0_ADDR 0x21576
1058#define PDC_GPU_TCS1_CMD0_DATA 0x21577
Kyle Piefer87149182017-10-05 15:01:33 -07001059#define PDC_GPU_TCS2_CONTROL 0x215A4
1060#define PDC_GPU_TCS2_CMD_ENABLE_BANK 0x215A5
1061#define PDC_GPU_TCS2_CMD_WAIT_FOR_CMPL_BANK 0x215A6
1062#define PDC_GPU_TCS2_CMD0_MSGID 0x215A7
1063#define PDC_GPU_TCS2_CMD0_ADDR 0x215A8
1064#define PDC_GPU_TCS2_CMD0_DATA 0x215A9
1065#define PDC_GPU_TCS3_CONTROL 0x215D6
1066#define PDC_GPU_TCS3_CMD_ENABLE_BANK 0x215D7
1067#define PDC_GPU_TCS3_CMD_WAIT_FOR_CMPL_BANK 0x215D8
1068#define PDC_GPU_TCS3_CMD0_MSGID 0x215D9
1069#define PDC_GPU_TCS3_CMD0_ADDR 0x215DA
1070#define PDC_GPU_TCS3_CMD0_DATA 0x215DB
Kyle Pieferb1027b02017-02-10 13:58:58 -08001071#define PDC_GPU_SEQ_MEM_0 0xA0000
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -07001072
Lynus Vaz0925b4a2018-10-03 12:55:21 +05301073/* GPU CX_MISC registers */
1074#define A6XX_GPU_CX_MISC_SYSTEM_CACHE_CNTL_0 0x1
1075#define A6XX_GPU_CX_MISC_SYSTEM_CACHE_CNTL_1 0x2
1076#define A6XX_LLC_NUM_GPU_SCIDS 5
1077#define A6XX_GPU_LLC_SCID_NUM_BITS 5
1078#define A6XX_GPU_LLC_SCID_MASK \
1079 ((1 << (A6XX_LLC_NUM_GPU_SCIDS * A6XX_GPU_LLC_SCID_NUM_BITS)) - 1)
1080#define A6XX_GPUHTW_LLC_SCID_SHIFT 25
1081#define A6XX_GPUHTW_LLC_SCID_MASK \
1082 (((1 << A6XX_GPU_LLC_SCID_NUM_BITS) - 1) << A6XX_GPUHTW_LLC_SCID_SHIFT)
1083
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -07001084#endif /* _A6XX_REG_H */
1085