blob: be9f3acebcc5726f620248a8e7772fadffe108e3 [file] [log] [blame]
Tarun Karra6e750d72013-01-04 10:28:40 -08001/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
Jordan Crouseb4d31bd2012-02-01 22:11:12 -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 _A300_REG_H
15#define _A300_REG_H
16
17/* Interrupt bit positions within RBBM_INT_0 */
18
19#define A3XX_INT_RBBM_GPU_IDLE 0
20#define A3XX_INT_RBBM_AHB_ERROR 1
21#define A3XX_INT_RBBM_REG_TIMEOUT 2
22#define A3XX_INT_RBBM_ME_MS_TIMEOUT 3
23#define A3XX_INT_RBBM_PFP_MS_TIMEOUT 4
24#define A3XX_INT_RBBM_ATB_BUS_OVERFLOW 5
25#define A3XX_INT_VFD_ERROR 6
26#define A3XX_INT_CP_SW_INT 7
27#define A3XX_INT_CP_T0_PACKET_IN_IB 8
28#define A3XX_INT_CP_OPCODE_ERROR 9
29#define A3XX_INT_CP_RESERVED_BIT_ERROR 10
30#define A3XX_INT_CP_HW_FAULT 11
Carter Cooper1bb92922012-04-13 09:24:03 -060031#define A3XX_INT_CP_DMA 12
Jordan Crouseb4d31bd2012-02-01 22:11:12 -070032#define A3XX_INT_CP_IB2_INT 13
33#define A3XX_INT_CP_IB1_INT 14
34#define A3XX_INT_CP_RB_INT 15
35#define A3XX_INT_CP_REG_PROTECT_FAULT 16
36#define A3XX_INT_CP_RB_DONE_TS 17
37#define A3XX_INT_CP_VS_DONE_TS 18
38#define A3XX_INT_CP_PS_DONE_TS 19
39#define A3XX_INT_CACHE_FLUSH_TS 20
40#define A3XX_INT_CP_AHB_ERROR_HALT 21
41#define A3XX_INT_MISC_HANG_DETECT 24
42#define A3XX_INT_UCHE_OOB_ACCESS 25
43
44/* Register definitions */
45
46#define A3XX_RBBM_HW_VERSION 0x000
47#define A3XX_RBBM_HW_RELEASE 0x001
48#define A3XX_RBBM_HW_CONFIGURATION 0x002
Jordan Crousefb3012f2012-06-22 13:11:05 -060049#define A3XX_RBBM_CLOCK_CTL 0x010
Jordan Crousea1d43ff2012-04-09 09:37:50 -060050#define A3XX_RBBM_SP_HYST_CNT 0x012
Jordan Crouseb4d31bd2012-02-01 22:11:12 -070051#define A3XX_RBBM_SW_RESET_CMD 0x018
52#define A3XX_RBBM_AHB_CTL0 0x020
53#define A3XX_RBBM_AHB_CTL1 0x021
54#define A3XX_RBBM_AHB_CMD 0x022
55#define A3XX_RBBM_AHB_ERROR_STATUS 0x027
56#define A3XX_RBBM_GPR0_CTL 0x02E
57/* This the same register as on A2XX, just in a different place */
58#define A3XX_RBBM_STATUS 0x030
Jordan Crousea1d43ff2012-04-09 09:37:50 -060059#define A3XX_RBBM_WAIT_IDLE_CLOCKS_CTL 0x33
Jordan Crouseb4d31bd2012-02-01 22:11:12 -070060#define A3XX_RBBM_INTERFACE_HANG_INT_CTL 0x50
61#define A3XX_RBBM_INTERFACE_HANG_MASK_CTL0 0x51
62#define A3XX_RBBM_INTERFACE_HANG_MASK_CTL1 0x54
63#define A3XX_RBBM_INTERFACE_HANG_MASK_CTL2 0x57
64#define A3XX_RBBM_INTERFACE_HANG_MASK_CTL3 0x5A
65#define A3XX_RBBM_INT_CLEAR_CMD 0x061
66#define A3XX_RBBM_INT_0_MASK 0x063
67#define A3XX_RBBM_INT_0_STATUS 0x064
Jordan Crouseb5c80482012-10-03 09:38:41 -060068#define A3XX_RBBM_PERFCTR_CTL 0x80
Jordan Crouseb4d31bd2012-02-01 22:11:12 -070069#define A3XX_RBBM_GPU_BUSY_MASKED 0x88
Tarun Karra6e750d72013-01-04 10:28:40 -080070#define A3XX_RBBM_PERFCTR_SP_5_LO 0xDC
71#define A3XX_RBBM_PERFCTR_SP_5_HI 0xDD
72#define A3XX_RBBM_PERFCTR_SP_6_LO 0xDE
73#define A3XX_RBBM_PERFCTR_SP_6_HI 0xDF
Jordan Crouseb5c80482012-10-03 09:38:41 -060074#define A3XX_RBBM_PERFCTR_SP_7_LO 0xE0
75#define A3XX_RBBM_PERFCTR_SP_7_HI 0xE1
Jordan Crouseb4d31bd2012-02-01 22:11:12 -070076#define A3XX_RBBM_RBBM_CTL 0x100
77#define A3XX_RBBM_RBBM_CTL 0x100
78#define A3XX_RBBM_PERFCTR_PWR_1_LO 0x0EC
79#define A3XX_RBBM_PERFCTR_PWR_1_HI 0x0ED
Jordan Crouse0c2761a2012-02-01 22:11:12 -070080#define A3XX_RBBM_DEBUG_BUS_CTL 0x111
81#define A3XX_RBBM_DEBUG_BUS_DATA_STATUS 0x112
Jordan Crouseb5c80482012-10-03 09:38:41 -060082
Jordan Crouseb4d31bd2012-02-01 22:11:12 -070083/* Following two are same as on A2XX, just in a different place */
84#define A3XX_CP_PFP_UCODE_ADDR 0x1C9
85#define A3XX_CP_PFP_UCODE_DATA 0x1CA
Jordan Crouse0c2761a2012-02-01 22:11:12 -070086#define A3XX_CP_ROQ_ADDR 0x1CC
87#define A3XX_CP_ROQ_DATA 0x1CD
Jordan Crouse82568932012-08-14 12:40:07 -060088#define A3XX_CP_MERCIU_ADDR 0x1D1
89#define A3XX_CP_MERCIU_DATA 0x1D2
90#define A3XX_CP_MERCIU_DATA2 0x1D3
Jordan Crouse0c2761a2012-02-01 22:11:12 -070091#define A3XX_CP_MEQ_ADDR 0x1DA
92#define A3XX_CP_MEQ_DATA 0x1DB
Jordan Crouseb4d31bd2012-02-01 22:11:12 -070093#define A3XX_CP_HW_FAULT 0x45C
94#define A3XX_CP_AHB_FAULT 0x54D
95#define A3XX_CP_PROTECT_CTRL 0x45E
96#define A3XX_CP_PROTECT_STATUS 0x45F
97#define A3XX_CP_PROTECT_REG_0 0x460
98#define A3XX_CP_PROTECT_REG_1 0x461
99#define A3XX_CP_PROTECT_REG_2 0x462
100#define A3XX_CP_PROTECT_REG_3 0x463
101#define A3XX_CP_PROTECT_REG_4 0x464
102#define A3XX_CP_PROTECT_REG_5 0x465
103#define A3XX_CP_PROTECT_REG_6 0x466
104#define A3XX_CP_PROTECT_REG_7 0x467
105#define A3XX_CP_PROTECT_REG_8 0x468
106#define A3XX_CP_PROTECT_REG_9 0x469
107#define A3XX_CP_PROTECT_REG_A 0x46A
108#define A3XX_CP_PROTECT_REG_B 0x46B
109#define A3XX_CP_PROTECT_REG_C 0x46C
110#define A3XX_CP_PROTECT_REG_D 0x46D
111#define A3XX_CP_PROTECT_REG_E 0x46E
112#define A3XX_CP_PROTECT_REG_F 0x46F
113#define A3XX_CP_SCRATCH_REG2 0x57A
114#define A3XX_CP_SCRATCH_REG3 0x57B
115#define A3XX_VSC_BIN_SIZE 0xC01
116#define A3XX_VSC_SIZE_ADDRESS 0xC02
117#define A3XX_VSC_PIPE_CONFIG_0 0xC06
118#define A3XX_VSC_PIPE_DATA_ADDRESS_0 0xC07
119#define A3XX_VSC_PIPE_DATA_LENGTH_0 0xC08
120#define A3XX_VSC_PIPE_CONFIG_1 0xC09
121#define A3XX_VSC_PIPE_DATA_ADDRESS_1 0xC0A
122#define A3XX_VSC_PIPE_DATA_LENGTH_1 0xC0B
123#define A3XX_VSC_PIPE_CONFIG_2 0xC0C
124#define A3XX_VSC_PIPE_DATA_ADDRESS_2 0xC0D
125#define A3XX_VSC_PIPE_DATA_LENGTH_2 0xC0E
126#define A3XX_VSC_PIPE_CONFIG_3 0xC0F
127#define A3XX_VSC_PIPE_DATA_ADDRESS_3 0xC10
128#define A3XX_VSC_PIPE_DATA_LENGTH_3 0xC11
129#define A3XX_VSC_PIPE_CONFIG_4 0xC12
130#define A3XX_VSC_PIPE_DATA_ADDRESS_4 0xC13
131#define A3XX_VSC_PIPE_DATA_LENGTH_4 0xC14
132#define A3XX_VSC_PIPE_CONFIG_5 0xC15
133#define A3XX_VSC_PIPE_DATA_ADDRESS_5 0xC16
134#define A3XX_VSC_PIPE_DATA_LENGTH_5 0xC17
135#define A3XX_VSC_PIPE_CONFIG_6 0xC18
136#define A3XX_VSC_PIPE_DATA_ADDRESS_6 0xC19
137#define A3XX_VSC_PIPE_DATA_LENGTH_6 0xC1A
138#define A3XX_VSC_PIPE_CONFIG_7 0xC1B
139#define A3XX_VSC_PIPE_DATA_ADDRESS_7 0xC1C
140#define A3XX_VSC_PIPE_DATA_LENGTH_7 0xC1D
141#define A3XX_GRAS_CL_USER_PLANE_X0 0xCA0
142#define A3XX_GRAS_CL_USER_PLANE_Y0 0xCA1
143#define A3XX_GRAS_CL_USER_PLANE_Z0 0xCA2
144#define A3XX_GRAS_CL_USER_PLANE_W0 0xCA3
145#define A3XX_GRAS_CL_USER_PLANE_X1 0xCA4
146#define A3XX_GRAS_CL_USER_PLANE_Y1 0xCA5
147#define A3XX_GRAS_CL_USER_PLANE_Z1 0xCA6
148#define A3XX_GRAS_CL_USER_PLANE_W1 0xCA7
149#define A3XX_GRAS_CL_USER_PLANE_X2 0xCA8
150#define A3XX_GRAS_CL_USER_PLANE_Y2 0xCA9
151#define A3XX_GRAS_CL_USER_PLANE_Z2 0xCAA
152#define A3XX_GRAS_CL_USER_PLANE_W2 0xCAB
153#define A3XX_GRAS_CL_USER_PLANE_X3 0xCAC
154#define A3XX_GRAS_CL_USER_PLANE_Y3 0xCAD
155#define A3XX_GRAS_CL_USER_PLANE_Z3 0xCAE
156#define A3XX_GRAS_CL_USER_PLANE_W3 0xCAF
157#define A3XX_GRAS_CL_USER_PLANE_X4 0xCB0
158#define A3XX_GRAS_CL_USER_PLANE_Y4 0xCB1
159#define A3XX_GRAS_CL_USER_PLANE_Z4 0xCB2
160#define A3XX_GRAS_CL_USER_PLANE_W4 0xCB3
161#define A3XX_GRAS_CL_USER_PLANE_X5 0xCB4
162#define A3XX_GRAS_CL_USER_PLANE_Y5 0xCB5
163#define A3XX_GRAS_CL_USER_PLANE_Z5 0xCB6
164#define A3XX_GRAS_CL_USER_PLANE_W5 0xCB7
liu zhong5af32d92012-08-29 14:36:36 -0600165#define A3XX_RB_GMEM_BASE_ADDR 0xCC0
Rajeev Kulkarni06a2c722012-07-06 16:47:16 -0700166#define A3XX_VFD_PERFCOUNTER0_SELECT 0xE44
Jordan Crouse0c2761a2012-02-01 22:11:12 -0700167#define A3XX_VPC_VPC_DEBUG_RAM_SEL 0xE61
168#define A3XX_VPC_VPC_DEBUG_RAM_READ 0xE62
Kevin Matlage17fbff72012-08-29 16:50:45 -0600169#define A3XX_UCHE_CACHE_MODE_CONTROL_REG 0xE82
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700170#define A3XX_UCHE_CACHE_INVALIDATE0_REG 0xEA0
Tarun Karra6e750d72013-01-04 10:28:40 -0800171#define A3XX_SP_PERFCOUNTER5_SELECT 0xEC9
172#define A3XX_SP_PERFCOUNTER6_SELECT 0xECA
Jordan Crouseb5c80482012-10-03 09:38:41 -0600173#define A3XX_SP_PERFCOUNTER7_SELECT 0xECB
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700174#define A3XX_GRAS_CL_CLIP_CNTL 0x2040
175#define A3XX_GRAS_CL_GB_CLIP_ADJ 0x2044
176#define A3XX_GRAS_CL_VPORT_XOFFSET 0x2048
177#define A3XX_GRAS_CL_VPORT_ZOFFSET 0x204C
178#define A3XX_GRAS_CL_VPORT_ZSCALE 0x204D
179#define A3XX_GRAS_SU_POINT_MINMAX 0x2068
180#define A3XX_GRAS_SU_POINT_SIZE 0x2069
181#define A3XX_GRAS_SU_POLY_OFFSET_SCALE 0x206C
182#define A3XX_GRAS_SU_POLY_OFFSET_OFFSET 0x206D
183#define A3XX_GRAS_SU_MODE_CONTROL 0x2070
184#define A3XX_GRAS_SC_CONTROL 0x2072
185#define A3XX_GRAS_SC_SCREEN_SCISSOR_TL 0x2074
186#define A3XX_GRAS_SC_SCREEN_SCISSOR_BR 0x2075
187#define A3XX_GRAS_SC_WINDOW_SCISSOR_TL 0x2079
188#define A3XX_GRAS_SC_WINDOW_SCISSOR_BR 0x207A
189#define A3XX_RB_MODE_CONTROL 0x20C0
190#define A3XX_RB_RENDER_CONTROL 0x20C1
191#define A3XX_RB_MSAA_CONTROL 0x20C2
192#define A3XX_RB_MRT_CONTROL0 0x20C4
193#define A3XX_RB_MRT_BUF_INFO0 0x20C5
194#define A3XX_RB_MRT_BLEND_CONTROL0 0x20C7
195#define A3XX_RB_MRT_BLEND_CONTROL1 0x20CB
196#define A3XX_RB_MRT_BLEND_CONTROL2 0x20CF
197#define A3XX_RB_MRT_BLEND_CONTROL3 0x20D3
198#define A3XX_RB_BLEND_RED 0x20E4
199#define A3XX_RB_COPY_CONTROL 0x20EC
200#define A3XX_RB_COPY_DEST_INFO 0x20EF
201#define A3XX_RB_DEPTH_CONTROL 0x2100
202#define A3XX_RB_STENCIL_CONTROL 0x2104
203#define A3XX_PC_VSTREAM_CONTROL 0x21E4
204#define A3XX_PC_VERTEX_REUSE_BLOCK_CNTL 0x21EA
205#define A3XX_PC_PRIM_VTX_CNTL 0x21EC
206#define A3XX_PC_RESTART_INDEX 0x21ED
207#define A3XX_HLSQ_CONTROL_0_REG 0x2200
208#define A3XX_HLSQ_VS_CONTROL_REG 0x2204
209#define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG 0x2207
210#define A3XX_HLSQ_CL_NDRANGE_0_REG 0x220A
211#define A3XX_HLSQ_CL_NDRANGE_2_REG 0x220C
212#define A3XX_HLSQ_CL_CONTROL_0_REG 0x2211
213#define A3XX_HLSQ_CL_CONTROL_1_REG 0x2212
214#define A3XX_HLSQ_CL_KERNEL_CONST_REG 0x2214
215#define A3XX_HLSQ_CL_KERNEL_GROUP_X_REG 0x2215
216#define A3XX_HLSQ_CL_KERNEL_GROUP_Z_REG 0x2217
217#define A3XX_HLSQ_CL_WG_OFFSET_REG 0x221A
218#define A3XX_VFD_CONTROL_0 0x2240
219#define A3XX_VFD_INDEX_MIN 0x2242
Jordan Crousee0879b12012-03-16 14:53:43 -0600220#define A3XX_VFD_INDEX_MAX 0x2243
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700221#define A3XX_VFD_FETCH_INSTR_0_0 0x2246
222#define A3XX_VFD_FETCH_INSTR_0_4 0x224E
Jordan Crousee0879b12012-03-16 14:53:43 -0600223#define A3XX_VFD_FETCH_INSTR_1_F 0x2265
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700224#define A3XX_VFD_DECODE_INSTR_0 0x2266
225#define A3XX_VFD_VS_THREADING_THRESHOLD 0x227E
226#define A3XX_VPC_ATTR 0x2280
227#define A3XX_VPC_VARY_CYLWRAP_ENABLE_1 0x228B
228#define A3XX_SP_SP_CTRL_REG 0x22C0
229#define A3XX_SP_VS_CTRL_REG0 0x22C4
230#define A3XX_SP_VS_CTRL_REG1 0x22C5
231#define A3XX_SP_VS_PARAM_REG 0x22C6
232#define A3XX_SP_VS_OUT_REG_7 0x22CE
233#define A3XX_SP_VS_VPC_DST_REG_0 0x22D0
234#define A3XX_SP_VS_OBJ_OFFSET_REG 0x22D4
Jordan Crousee0879b12012-03-16 14:53:43 -0600235#define A3XX_SP_VS_PVT_MEM_ADDR_REG 0x22D7
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700236#define A3XX_SP_VS_PVT_MEM_SIZE_REG 0x22D8
237#define A3XX_SP_VS_LENGTH_REG 0x22DF
238#define A3XX_SP_FS_CTRL_REG0 0x22E0
239#define A3XX_SP_FS_CTRL_REG1 0x22E1
240#define A3XX_SP_FS_OBJ_OFFSET_REG 0x22E2
Jordan Crousee0879b12012-03-16 14:53:43 -0600241#define A3XX_SP_FS_PVT_MEM_ADDR_REG 0x22E5
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700242#define A3XX_SP_FS_PVT_MEM_SIZE_REG 0x22E6
243#define A3XX_SP_FS_FLAT_SHAD_MODE_REG_0 0x22E8
244#define A3XX_SP_FS_FLAT_SHAD_MODE_REG_1 0x22E9
245#define A3XX_SP_FS_OUTPUT_REG 0x22EC
246#define A3XX_SP_FS_MRT_REG_0 0x22F0
247#define A3XX_SP_FS_IMAGE_OUTPUT_REG_0 0x22F4
248#define A3XX_SP_FS_IMAGE_OUTPUT_REG_3 0x22F7
249#define A3XX_SP_FS_LENGTH_REG 0x22FF
250#define A3XX_TPL1_TP_VS_TEX_OFFSET 0x2340
251#define A3XX_TPL1_TP_FS_TEX_OFFSET 0x2342
252#define A3XX_TPL1_TP_FS_BORDER_COLOR_BASE_ADDR 0x2343
Lokesh Batra64031372012-08-22 19:45:07 -0700253#define A3XX_VBIF_CLKON 0x3001
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700254#define A3XX_VBIF_FIXED_SORT_EN 0x300C
255#define A3XX_VBIF_FIXED_SORT_SEL0 0x300D
256#define A3XX_VBIF_FIXED_SORT_SEL1 0x300E
Jordan Crouse563cf0f2012-02-21 08:54:53 -0700257#define A3XX_VBIF_ABIT_SORT 0x301C
258#define A3XX_VBIF_ABIT_SORT_CONF 0x301D
259#define A3XX_VBIF_GATE_OFF_WRREQ_EN 0x302A
260#define A3XX_VBIF_IN_RD_LIM_CONF0 0x302C
261#define A3XX_VBIF_IN_RD_LIM_CONF1 0x302D
262#define A3XX_VBIF_IN_WR_LIM_CONF0 0x3030
263#define A3XX_VBIF_IN_WR_LIM_CONF1 0x3031
264#define A3XX_VBIF_OUT_RD_LIM_CONF0 0x3034
265#define A3XX_VBIF_OUT_WR_LIM_CONF0 0x3035
266#define A3XX_VBIF_DDR_OUT_MAX_BURST 0x3036
267#define A3XX_VBIF_ARB_CTL 0x303C
liu zhongfd42e622012-05-01 19:18:30 -0700268#define A3XX_VBIF_ROUND_ROBIN_QOS_ARB 0x3049
269#define A3XX_VBIF_OUT_AXI_AMEMTYPE_CONF0 0x3058
Jordan Crouse563cf0f2012-02-21 08:54:53 -0700270#define A3XX_VBIF_OUT_AXI_AOOO_EN 0x305E
271#define A3XX_VBIF_OUT_AXI_AOOO 0x305F
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700272
273/* Bit flags for RBBM_CTL */
274#define RBBM_RBBM_CTL_RESET_PWR_CTR1 (1 << 1)
Jordan Crouse77e66072012-04-02 16:06:01 -0600275#define RBBM_RBBM_CTL_ENABLE_PWR_CTR1 (1 << 17)
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700276
277/* Various flags used by the context switch code */
278
279#define SP_MULTI 0
280#define SP_BUFFER_MODE 1
281#define SP_TWO_VTX_QUADS 0
282#define SP_PIXEL_BASED 0
283#define SP_R8G8B8A8_UNORM 8
284#define SP_FOUR_PIX_QUADS 1
285
286#define HLSQ_DIRECT 0
287#define HLSQ_BLOCK_ID_SP_VS 4
288#define HLSQ_SP_VS_INSTR 0
289#define HLSQ_SP_FS_INSTR 0
290#define HLSQ_BLOCK_ID_SP_FS 6
291#define HLSQ_TWO_PIX_QUADS 0
292#define HLSQ_TWO_VTX_QUADS 0
293#define HLSQ_BLOCK_ID_TP_TEX 2
294#define HLSQ_TP_TEX_SAMPLERS 0
295#define HLSQ_TP_TEX_MEMOBJ 1
296#define HLSQ_BLOCK_ID_TP_MIPMAP 3
297#define HLSQ_TP_MIPMAP_BASE 1
298#define HLSQ_FOUR_PIX_QUADS 1
299
300#define RB_FACTOR_ONE 1
301#define RB_BLEND_OP_ADD 0
302#define RB_FACTOR_ZERO 0
303#define RB_DITHER_DISABLE 0
304#define RB_DITHER_ALWAYS 1
305#define RB_FRAG_NEVER 0
306#define RB_ENDIAN_NONE 0
307#define RB_R8G8B8A8_UNORM 8
308#define RB_RESOLVE_PASS 2
309#define RB_CLEAR_MODE_RESOLVE 1
310#define RB_TILINGMODE_LINEAR 0
311#define RB_REF_NEVER 0
Rajeev Kulkarnic46499f2012-07-10 16:02:46 -0700312#define RB_FRAG_LESS 1
313#define RB_REF_ALWAYS 7
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700314#define RB_STENCIL_KEEP 0
315#define RB_RENDERING_PASS 0
316#define RB_TILINGMODE_32X32 2
317
318#define PC_DRAW_TRIANGLES 2
319#define PC_DI_PT_RECTLIST 8
320#define PC_DI_SRC_SEL_AUTO_INDEX 2
321#define PC_DI_INDEX_SIZE_16_BIT 0
322#define PC_DI_IGNORE_VISIBILITY 0
323#define PC_DI_PT_TRILIST 4
324#define PC_DI_SRC_SEL_IMMEDIATE 1
325#define PC_DI_INDEX_SIZE_32_BIT 1
326
327#define UCHE_ENTIRE_CACHE 1
328#define UCHE_OP_INVALIDATE 1
329
330/*
331 * The following are bit field shifts within some of the registers defined
332 * above. These are used in the context switch code in conjunction with the
333 * _SET macro
334 */
335
336#define GRAS_CL_CLIP_CNTL_CLIP_DISABLE 16
337#define GRAS_CL_CLIP_CNTL_IJ_PERSP_CENTER 12
338#define GRAS_CL_CLIP_CNTL_PERSP_DIVISION_DISABLE 21
339#define GRAS_CL_CLIP_CNTL_VP_CLIP_CODE_IGNORE 19
340#define GRAS_CL_CLIP_CNTL_VP_XFORM_DISABLE 20
341#define GRAS_CL_CLIP_CNTL_ZFAR_CLIP_DISABLE 17
342#define GRAS_CL_VPORT_XSCALE_VPORT_XSCALE 0
343#define GRAS_CL_VPORT_YSCALE_VPORT_YSCALE 0
344#define GRAS_CL_VPORT_ZSCALE_VPORT_ZSCALE 0
345#define GRAS_SC_CONTROL_RASTER_MODE 12
346#define GRAS_SC_CONTROL_RENDER_MODE 4
347#define GRAS_SC_SCREEN_SCISSOR_BR_BR_X 0
348#define GRAS_SC_SCREEN_SCISSOR_BR_BR_Y 16
349#define GRAS_SC_WINDOW_SCISSOR_BR_BR_X 0
350#define GRAS_SC_WINDOW_SCISSOR_BR_BR_Y 16
Rajeev Kulkarnic46499f2012-07-10 16:02:46 -0700351#define GRAS_SU_CTRLMODE_LINEHALFWIDTH 03
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700352#define HLSQ_CONSTFSPRESERVEDRANGEREG_ENDENTRY 16
353#define HLSQ_CONSTFSPRESERVEDRANGEREG_STARTENTRY 0
354#define HLSQ_CTRL0REG_CHUNKDISABLE 26
355#define HLSQ_CTRL0REG_CONSTSWITCHMODE 27
356#define HLSQ_CTRL0REG_FSSUPERTHREADENABLE 6
357#define HLSQ_CTRL0REG_FSTHREADSIZE 4
358#define HLSQ_CTRL0REG_LAZYUPDATEDISABLE 28
359#define HLSQ_CTRL0REG_RESERVED2 10
360#define HLSQ_CTRL0REG_SPCONSTFULLUPDATE 29
361#define HLSQ_CTRL0REG_SPSHADERRESTART 9
362#define HLSQ_CTRL0REG_TPFULLUPDATE 30
363#define HLSQ_CTRL1REG_RESERVED1 9
364#define HLSQ_CTRL1REG_VSSUPERTHREADENABLE 8
365#define HLSQ_CTRL1REG_VSTHREADSIZE 6
366#define HLSQ_CTRL2REG_PRIMALLOCTHRESHOLD 26
367#define HLSQ_FSCTRLREG_FSCONSTLENGTH 0
368#define HLSQ_FSCTRLREG_FSCONSTSTARTOFFSET 12
369#define HLSQ_FSCTRLREG_FSINSTRLENGTH 24
370#define HLSQ_VSCTRLREG_VSINSTRLENGTH 24
371#define PC_PRIM_VTX_CONTROL_POLYMODE_BACK_PTYPE 8
372#define PC_PRIM_VTX_CONTROL_POLYMODE_FRONT_PTYPE 5
373#define PC_PRIM_VTX_CONTROL_PROVOKING_VTX_LAST 25
374#define PC_PRIM_VTX_CONTROL_STRIDE_IN_VPC 0
375#define PC_DRAW_INITIATOR_PRIM_TYPE 0
376#define PC_DRAW_INITIATOR_SOURCE_SELECT 6
377#define PC_DRAW_INITIATOR_VISIBILITY_CULLING_MODE 9
378#define PC_DRAW_INITIATOR_INDEX_SIZE 0x0B
379#define PC_DRAW_INITIATOR_SMALL_INDEX 0x0D
380#define PC_DRAW_INITIATOR_PRE_DRAW_INITIATOR_ENABLE 0x0E
381#define RB_COPYCONTROL_COPY_GMEM_BASE 14
382#define RB_COPYCONTROL_RESOLVE_CLEAR_MODE 4
383#define RB_COPYDESTBASE_COPY_DEST_BASE 4
384#define RB_COPYDESTINFO_COPY_COMPONENT_ENABLE 14
385#define RB_COPYDESTINFO_COPY_DEST_ENDIAN 18
386#define RB_COPYDESTINFO_COPY_DEST_FORMAT 2
387#define RB_COPYDESTINFO_COPY_DEST_TILE 0
388#define RB_COPYDESTPITCH_COPY_DEST_PITCH 0
389#define RB_DEPTHCONTROL_Z_TEST_FUNC 4
390#define RB_MODECONTROL_RENDER_MODE 8
391#define RB_MODECONTROL_MARB_CACHE_SPLIT_MODE 15
392#define RB_MODECONTROL_PACKER_TIMER_ENABLE 16
393#define RB_MRTBLENDCONTROL_ALPHA_BLEND_OPCODE 21
394#define RB_MRTBLENDCONTROL_ALPHA_DEST_FACTOR 24
395#define RB_MRTBLENDCONTROL_ALPHA_SRC_FACTOR 16
396#define RB_MRTBLENDCONTROL_CLAMP_ENABLE 29
397#define RB_MRTBLENDCONTROL_RGB_BLEND_OPCODE 5
398#define RB_MRTBLENDCONTROL_RGB_DEST_FACTOR 8
399#define RB_MRTBLENDCONTROL_RGB_SRC_FACTOR 0
400#define RB_MRTBUFBASE_COLOR_BUF_BASE 4
401#define RB_MRTBUFINFO_COLOR_BUF_PITCH 17
402#define RB_MRTBUFINFO_COLOR_FORMAT 0
403#define RB_MRTBUFINFO_COLOR_TILE_MODE 6
404#define RB_MRTCONTROL_COMPONENT_ENABLE 24
405#define RB_MRTCONTROL_DITHER_MODE 12
406#define RB_MRTCONTROL_READ_DEST_ENABLE 3
407#define RB_MRTCONTROL_ROP_CODE 8
408#define RB_MSAACONTROL_MSAA_DISABLE 10
409#define RB_MSAACONTROL_SAMPLE_MASK 16
410#define RB_RENDERCONTROL_ALPHA_TEST_FUNC 24
411#define RB_RENDERCONTROL_BIN_WIDTH 4
412#define RB_RENDERCONTROL_DISABLE_COLOR_PIPE 12
413#define RB_STENCILCONTROL_STENCIL_FAIL 11
414#define RB_STENCILCONTROL_STENCIL_FAIL_BF 23
415#define RB_STENCILCONTROL_STENCIL_FUNC 8
416#define RB_STENCILCONTROL_STENCIL_FUNC_BF 20
417#define RB_STENCILCONTROL_STENCIL_ZFAIL 17
418#define RB_STENCILCONTROL_STENCIL_ZFAIL_BF 29
419#define RB_STENCILCONTROL_STENCIL_ZPASS 14
420#define RB_STENCILCONTROL_STENCIL_ZPASS_BF 26
421#define SP_FSCTRLREG0_FSFULLREGFOOTPRINT 10
Rajeev Kulkarni06a2c722012-07-06 16:47:16 -0700422#define SP_FSCTRLREG0_FSHALFREGFOOTPRINT 4
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700423#define SP_FSCTRLREG0_FSICACHEINVALID 2
424#define SP_FSCTRLREG0_FSINOUTREGOVERLAP 18
425#define SP_FSCTRLREG0_FSINSTRBUFFERMODE 1
426#define SP_FSCTRLREG0_FSLENGTH 24
427#define SP_FSCTRLREG0_FSSUPERTHREADMODE 21
428#define SP_FSCTRLREG0_FSTHREADMODE 0
429#define SP_FSCTRLREG0_FSTHREADSIZE 20
430#define SP_FSCTRLREG0_PIXLODENABLE 22
431#define SP_FSCTRLREG1_FSCONSTLENGTH 0
432#define SP_FSCTRLREG1_FSINITIALOUTSTANDING 20
433#define SP_FSCTRLREG1_HALFPRECVAROFFSET 24
434#define SP_FSMRTREG_REGID 0
Rajeev Kulkarni06a2c722012-07-06 16:47:16 -0700435#define SP_FSMRTREG_PRECISION 8
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700436#define SP_FSOUTREG_PAD0 2
437#define SP_IMAGEOUTPUTREG_MRTFORMAT 0
Rajeev Kulkarni06a2c722012-07-06 16:47:16 -0700438#define SP_IMAGEOUTPUTREG_DEPTHOUTMODE 3
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700439#define SP_IMAGEOUTPUTREG_PAD0 6
440#define SP_OBJOFFSETREG_CONSTOBJECTSTARTOFFSET 16
441#define SP_OBJOFFSETREG_SHADEROBJOFFSETINIC 25
442#define SP_SHADERLENGTH_LEN 0
443#define SP_SPCTRLREG_CONSTMODE 18
Rajeev Kulkarni06a2c722012-07-06 16:47:16 -0700444#define SP_SPCTRLREG_LOMODE 22
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700445#define SP_SPCTRLREG_SLEEPMODE 20
446#define SP_VSCTRLREG0_VSFULLREGFOOTPRINT 10
447#define SP_VSCTRLREG0_VSICACHEINVALID 2
448#define SP_VSCTRLREG0_VSINSTRBUFFERMODE 1
449#define SP_VSCTRLREG0_VSLENGTH 24
450#define SP_VSCTRLREG0_VSSUPERTHREADMODE 21
451#define SP_VSCTRLREG0_VSTHREADMODE 0
452#define SP_VSCTRLREG0_VSTHREADSIZE 20
453#define SP_VSCTRLREG1_VSINITIALOUTSTANDING 24
454#define SP_VSOUTREG_COMPMASK0 9
455#define SP_VSPARAMREG_POSREGID 0
456#define SP_VSPARAMREG_PSIZEREGID 8
457#define SP_VSPARAMREG_TOTALVSOUTVAR 20
458#define SP_VSVPCDSTREG_OUTLOC0 0
459#define TPL1_TPTEXOFFSETREG_BASETABLEPTR 16
460#define TPL1_TPTEXOFFSETREG_MEMOBJOFFSET 8
461#define TPL1_TPTEXOFFSETREG_SAMPLEROFFSET 0
462#define UCHE_INVALIDATE1REG_OPCODE 0x1C
463#define UCHE_INVALIDATE1REG_ALLORPORTION 0x1F
464#define VFD_BASEADDR_BASEADDR 0
465#define VFD_CTRLREG0_PACKETSIZE 18
466#define VFD_CTRLREG0_STRMDECINSTRCNT 22
467#define VFD_CTRLREG0_STRMFETCHINSTRCNT 27
468#define VFD_CTRLREG0_TOTALATTRTOVS 0
469#define VFD_CTRLREG1_MAXSTORAGE 0
470#define VFD_CTRLREG1_REGID4INST 24
471#define VFD_CTRLREG1_REGID4VTX 16
472#define VFD_DECODEINSTRUCTIONS_CONSTFILL 4
473#define VFD_DECODEINSTRUCTIONS_FORMAT 6
474#define VFD_DECODEINSTRUCTIONS_LASTCOMPVALID 29
475#define VFD_DECODEINSTRUCTIONS_REGID 12
476#define VFD_DECODEINSTRUCTIONS_SHIFTCNT 24
477#define VFD_DECODEINSTRUCTIONS_SWITCHNEXT 30
478#define VFD_DECODEINSTRUCTIONS_WRITEMASK 0
479#define VFD_FETCHINSTRUCTIONS_BUFSTRIDE 7
480#define VFD_FETCHINSTRUCTIONS_FETCHSIZE 0
481#define VFD_FETCHINSTRUCTIONS_INDEXDECODE 18
482#define VFD_FETCHINSTRUCTIONS_STEPRATE 24
483#define VFD_FETCHINSTRUCTIONS_SWITCHNEXT 17
484#define VFD_THREADINGTHRESHOLD_REGID_VTXCNT 8
Rajeev Kulkarni06a2c722012-07-06 16:47:16 -0700485#define VFD_THREADINGTHRESHOLD_REGID_THRESHOLD 0
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700486#define VFD_THREADINGTHRESHOLD_RESERVED6 4
487#define VPC_VPCATTR_LMSIZE 28
488#define VPC_VPCATTR_THRHDASSIGN 12
489#define VPC_VPCATTR_TOTALATTR 0
490#define VPC_VPCPACK_NUMFPNONPOSVAR 8
491#define VPC_VPCPACK_NUMNONPOSVSVAR 16
492#define VPC_VPCVARPSREPLMODE_COMPONENT08 0
493#define VPC_VPCVARPSREPLMODE_COMPONENT09 2
494#define VPC_VPCVARPSREPLMODE_COMPONENT0A 4
495#define VPC_VPCVARPSREPLMODE_COMPONENT0B 6
496#define VPC_VPCVARPSREPLMODE_COMPONENT0C 8
497#define VPC_VPCVARPSREPLMODE_COMPONENT0D 10
498#define VPC_VPCVARPSREPLMODE_COMPONENT0E 12
499#define VPC_VPCVARPSREPLMODE_COMPONENT0F 14
500#define VPC_VPCVARPSREPLMODE_COMPONENT10 16
501#define VPC_VPCVARPSREPLMODE_COMPONENT11 18
502#define VPC_VPCVARPSREPLMODE_COMPONENT12 20
503#define VPC_VPCVARPSREPLMODE_COMPONENT13 22
504#define VPC_VPCVARPSREPLMODE_COMPONENT14 24
505#define VPC_VPCVARPSREPLMODE_COMPONENT15 26
506#define VPC_VPCVARPSREPLMODE_COMPONENT16 28
507#define VPC_VPCVARPSREPLMODE_COMPONENT17 30
508
Jordan Crouse0c2761a2012-02-01 22:11:12 -0700509/* RBBM Debug bus block IDs */
510#define RBBM_BLOCK_ID_NONE 0x0
511#define RBBM_BLOCK_ID_CP 0x1
512#define RBBM_BLOCK_ID_RBBM 0x2
513#define RBBM_BLOCK_ID_VBIF 0x3
514#define RBBM_BLOCK_ID_HLSQ 0x4
515#define RBBM_BLOCK_ID_UCHE 0x5
516#define RBBM_BLOCK_ID_PC 0x8
517#define RBBM_BLOCK_ID_VFD 0x9
518#define RBBM_BLOCK_ID_VPC 0xa
519#define RBBM_BLOCK_ID_TSE 0xb
520#define RBBM_BLOCK_ID_RAS 0xc
521#define RBBM_BLOCK_ID_VSC 0xd
522#define RBBM_BLOCK_ID_SP_0 0x10
523#define RBBM_BLOCK_ID_SP_1 0x11
524#define RBBM_BLOCK_ID_SP_2 0x12
525#define RBBM_BLOCK_ID_SP_3 0x13
526#define RBBM_BLOCK_ID_TPL1_0 0x18
527#define RBBM_BLOCK_ID_TPL1_1 0x19
528#define RBBM_BLOCK_ID_TPL1_2 0x1a
529#define RBBM_BLOCK_ID_TPL1_3 0x1b
530#define RBBM_BLOCK_ID_RB_0 0x20
531#define RBBM_BLOCK_ID_RB_1 0x21
532#define RBBM_BLOCK_ID_RB_2 0x22
533#define RBBM_BLOCK_ID_RB_3 0x23
534#define RBBM_BLOCK_ID_MARB_0 0x28
535#define RBBM_BLOCK_ID_MARB_1 0x29
536#define RBBM_BLOCK_ID_MARB_2 0x2a
537#define RBBM_BLOCK_ID_MARB_3 0x2b
538
Jordan Crousefb3012f2012-06-22 13:11:05 -0600539/* RBBM_CLOCK_CTL default value */
Rajeev Kulkarni7f177962012-06-22 12:09:44 -0700540#define A3XX_RBBM_CLOCK_CTL_DEFAULT 0xBFFFFFFF
Jordan Crousefb3012f2012-06-22 13:11:05 -0600541
Jordan Crouseb5c80482012-10-03 09:38:41 -0600542/* COUNTABLE FOR SP PERFCOUNTER */
543#define SP_FS_FULL_ALU_INSTRUCTIONS 0x0E
Tarun Karra6e750d72013-01-04 10:28:40 -0800544#define SP_ALU_ACTIVE_CYCLES 0x1D
545#define SP0_ICL1_MISSES 0x1A
546#define SP_FS_CFLOW_INSTRUCTIONS 0x0C
Jordan Crouseb5c80482012-10-03 09:38:41 -0600547
Jordan Crouseb4d31bd2012-02-01 22:11:12 -0700548#endif