blob: ae992c71703f1ccc5151b1cf72b904c89e1cd8ec [file] [log] [blame]
Rob Clark902e6eb2013-07-19 12:52:29 -04001#ifndef ADRENO_PM4_XML
2#define ADRENO_PM4_XML
3
4/* Autogenerated file, DO NOT EDIT manually!
5
6This file was generated by the rules-ng-ng headergen tool in this git repository:
Rob Clark22ba8b62013-10-07 12:42:27 -04007http://github.com/freedreno/envytools/
8git clone https://github.com/freedreno/envytools.git
Rob Clark902e6eb2013-07-19 12:52:29 -04009
10The rules-ng-ng source files this header was generated from are:
Rob Clarkfacb4f42013-11-30 12:45:48 -050011- /home/robclark/src/freedreno/envytools/rnndb/adreno.xml ( 364 bytes, from 2013-11-30 14:47:15)
12- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml ( 1453 bytes, from 2013-03-31 16:51:27)
13- /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml ( 32814 bytes, from 2013-11-30 15:07:33)
14- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml ( 8900 bytes, from 2013-10-22 23:57:49)
15- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml ( 10574 bytes, from 2013-11-13 05:44:45)
16- /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml ( 53644 bytes, from 2013-11-30 15:07:33)
17- /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml ( 8344 bytes, from 2013-11-30 14:49:47)
Rob Clark902e6eb2013-07-19 12:52:29 -040018
19Copyright (C) 2013 by the following authors:
20- Rob Clark <robdclark@gmail.com> (robclark)
21
22Permission is hereby granted, free of charge, to any person obtaining
23a copy of this software and associated documentation files (the
24"Software"), to deal in the Software without restriction, including
25without limitation the rights to use, copy, modify, merge, publish,
26distribute, sublicense, and/or sell copies of the Software, and to
27permit persons to whom the Software is furnished to do so, subject to
28the following conditions:
29
30The above copyright notice and this permission notice (including the
31next paragraph) shall be included in all copies or substantial
32portions of the Software.
33
34THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
36MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
37IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
38LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
39OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
40WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
41*/
42
43
44enum vgt_event_type {
45 VS_DEALLOC = 0,
46 PS_DEALLOC = 1,
47 VS_DONE_TS = 2,
48 PS_DONE_TS = 3,
49 CACHE_FLUSH_TS = 4,
50 CONTEXT_DONE = 5,
51 CACHE_FLUSH = 6,
52 HLSQ_FLUSH = 7,
53 VIZQUERY_START = 7,
54 VIZQUERY_END = 8,
55 SC_WAIT_WC = 9,
56 RST_PIX_CNT = 13,
57 RST_VTX_CNT = 14,
58 TILE_FLUSH = 15,
59 CACHE_FLUSH_AND_INV_TS_EVENT = 20,
60 ZPASS_DONE = 21,
61 CACHE_FLUSH_AND_INV_EVENT = 22,
62 PERFCOUNTER_START = 23,
63 PERFCOUNTER_STOP = 24,
64 VS_FETCH_DONE = 27,
65 FACENESS_FLUSH = 28,
66};
67
68enum pc_di_primtype {
69 DI_PT_NONE = 0,
Rob Clarkfacb4f42013-11-30 12:45:48 -050070 DI_PT_POINTLIST_A2XX = 1,
Rob Clark902e6eb2013-07-19 12:52:29 -040071 DI_PT_LINELIST = 2,
72 DI_PT_LINESTRIP = 3,
73 DI_PT_TRILIST = 4,
74 DI_PT_TRIFAN = 5,
75 DI_PT_TRISTRIP = 6,
Rob Clarkfacb4f42013-11-30 12:45:48 -050076 DI_PT_LINELOOP = 7,
Rob Clark902e6eb2013-07-19 12:52:29 -040077 DI_PT_RECTLIST = 8,
Rob Clarkfacb4f42013-11-30 12:45:48 -050078 DI_PT_POINTLIST_A3XX = 9,
Rob Clark902e6eb2013-07-19 12:52:29 -040079 DI_PT_QUADLIST = 13,
80 DI_PT_QUADSTRIP = 14,
81 DI_PT_POLYGON = 15,
82 DI_PT_2D_COPY_RECT_LIST_V0 = 16,
83 DI_PT_2D_COPY_RECT_LIST_V1 = 17,
84 DI_PT_2D_COPY_RECT_LIST_V2 = 18,
85 DI_PT_2D_COPY_RECT_LIST_V3 = 19,
86 DI_PT_2D_FILL_RECT_LIST = 20,
87 DI_PT_2D_LINE_STRIP = 21,
88 DI_PT_2D_TRI_STRIP = 22,
89};
90
91enum pc_di_src_sel {
92 DI_SRC_SEL_DMA = 0,
93 DI_SRC_SEL_IMMEDIATE = 1,
94 DI_SRC_SEL_AUTO_INDEX = 2,
95 DI_SRC_SEL_RESERVED = 3,
96};
97
98enum pc_di_index_size {
99 INDEX_SIZE_IGN = 0,
100 INDEX_SIZE_16_BIT = 0,
101 INDEX_SIZE_32_BIT = 1,
102 INDEX_SIZE_8_BIT = 2,
103 INDEX_SIZE_INVALID = 0,
104};
105
106enum pc_di_vis_cull_mode {
107 IGNORE_VISIBILITY = 0,
108};
109
110enum adreno_pm4_packet_type {
111 CP_TYPE0_PKT = 0,
112 CP_TYPE1_PKT = 0x40000000,
113 CP_TYPE2_PKT = 0x80000000,
114 CP_TYPE3_PKT = 0xc0000000,
115};
116
117enum adreno_pm4_type3_packets {
118 CP_ME_INIT = 72,
119 CP_NOP = 16,
120 CP_INDIRECT_BUFFER = 63,
121 CP_INDIRECT_BUFFER_PFD = 55,
122 CP_WAIT_FOR_IDLE = 38,
123 CP_WAIT_REG_MEM = 60,
124 CP_WAIT_REG_EQ = 82,
Rob Clarkfacb4f42013-11-30 12:45:48 -0500125 CP_WAIT_REG_GTE = 83,
Rob Clark902e6eb2013-07-19 12:52:29 -0400126 CP_WAIT_UNTIL_READ = 92,
127 CP_WAIT_IB_PFD_COMPLETE = 93,
128 CP_REG_RMW = 33,
129 CP_SET_BIN_DATA = 47,
130 CP_REG_TO_MEM = 62,
131 CP_MEM_WRITE = 61,
132 CP_MEM_WRITE_CNTR = 79,
133 CP_COND_EXEC = 68,
134 CP_COND_WRITE = 69,
135 CP_EVENT_WRITE = 70,
136 CP_EVENT_WRITE_SHD = 88,
137 CP_EVENT_WRITE_CFL = 89,
138 CP_EVENT_WRITE_ZPD = 91,
139 CP_RUN_OPENCL = 49,
140 CP_DRAW_INDX = 34,
141 CP_DRAW_INDX_2 = 54,
142 CP_DRAW_INDX_BIN = 52,
143 CP_DRAW_INDX_2_BIN = 53,
144 CP_VIZ_QUERY = 35,
145 CP_SET_STATE = 37,
146 CP_SET_CONSTANT = 45,
147 CP_IM_LOAD = 39,
148 CP_IM_LOAD_IMMEDIATE = 43,
149 CP_LOAD_CONSTANT_CONTEXT = 46,
150 CP_INVALIDATE_STATE = 59,
151 CP_SET_SHADER_BASES = 74,
152 CP_SET_BIN_MASK = 80,
153 CP_SET_BIN_SELECT = 81,
154 CP_CONTEXT_UPDATE = 94,
155 CP_INTERRUPT = 64,
156 CP_IM_STORE = 44,
Rob Clark902e6eb2013-07-19 12:52:29 -0400157 CP_SET_DRAW_INIT_FLAGS = 75,
158 CP_SET_PROTECTED_MODE = 95,
159 CP_LOAD_STATE = 48,
160 CP_COND_INDIRECT_BUFFER_PFE = 58,
161 CP_COND_INDIRECT_BUFFER_PFD = 50,
162 CP_INDIRECT_BUFFER_PFE = 63,
163 CP_SET_BIN = 76,
Rob Clarkfacb4f42013-11-30 12:45:48 -0500164 CP_TEST_TWO_MEMS = 113,
165 CP_WAIT_FOR_ME = 19,
166 IN_IB_PREFETCH_END = 23,
167 IN_SUBBLK_PREFETCH = 31,
168 IN_INSTR_PREFETCH = 32,
169 IN_INSTR_MATCH = 71,
170 IN_CONST_PREFETCH = 73,
171 IN_INCR_UPDT_STATE = 85,
172 IN_INCR_UPDT_CONST = 86,
173 IN_INCR_UPDT_INSTR = 87,
Rob Clark902e6eb2013-07-19 12:52:29 -0400174};
175
176enum adreno_state_block {
177 SB_VERT_TEX = 0,
178 SB_VERT_MIPADDR = 1,
179 SB_FRAG_TEX = 2,
180 SB_FRAG_MIPADDR = 3,
181 SB_VERT_SHADER = 4,
182 SB_FRAG_SHADER = 6,
183};
184
185enum adreno_state_type {
186 ST_SHADER = 0,
187 ST_CONSTANTS = 1,
188};
189
190enum adreno_state_src {
191 SS_DIRECT = 0,
192 SS_INDIRECT = 4,
193};
194
195#define REG_CP_LOAD_STATE_0 0x00000000
196#define CP_LOAD_STATE_0_DST_OFF__MASK 0x0000ffff
197#define CP_LOAD_STATE_0_DST_OFF__SHIFT 0
198static inline uint32_t CP_LOAD_STATE_0_DST_OFF(uint32_t val)
199{
200 return ((val) << CP_LOAD_STATE_0_DST_OFF__SHIFT) & CP_LOAD_STATE_0_DST_OFF__MASK;
201}
202#define CP_LOAD_STATE_0_STATE_SRC__MASK 0x00070000
203#define CP_LOAD_STATE_0_STATE_SRC__SHIFT 16
204static inline uint32_t CP_LOAD_STATE_0_STATE_SRC(enum adreno_state_src val)
205{
206 return ((val) << CP_LOAD_STATE_0_STATE_SRC__SHIFT) & CP_LOAD_STATE_0_STATE_SRC__MASK;
207}
208#define CP_LOAD_STATE_0_STATE_BLOCK__MASK 0x00380000
209#define CP_LOAD_STATE_0_STATE_BLOCK__SHIFT 19
210static inline uint32_t CP_LOAD_STATE_0_STATE_BLOCK(enum adreno_state_block val)
211{
212 return ((val) << CP_LOAD_STATE_0_STATE_BLOCK__SHIFT) & CP_LOAD_STATE_0_STATE_BLOCK__MASK;
213}
214#define CP_LOAD_STATE_0_NUM_UNIT__MASK 0x7fc00000
215#define CP_LOAD_STATE_0_NUM_UNIT__SHIFT 22
216static inline uint32_t CP_LOAD_STATE_0_NUM_UNIT(uint32_t val)
217{
218 return ((val) << CP_LOAD_STATE_0_NUM_UNIT__SHIFT) & CP_LOAD_STATE_0_NUM_UNIT__MASK;
219}
220
221#define REG_CP_LOAD_STATE_1 0x00000001
222#define CP_LOAD_STATE_1_STATE_TYPE__MASK 0x00000003
223#define CP_LOAD_STATE_1_STATE_TYPE__SHIFT 0
224static inline uint32_t CP_LOAD_STATE_1_STATE_TYPE(enum adreno_state_type val)
225{
226 return ((val) << CP_LOAD_STATE_1_STATE_TYPE__SHIFT) & CP_LOAD_STATE_1_STATE_TYPE__MASK;
227}
228#define CP_LOAD_STATE_1_EXT_SRC_ADDR__MASK 0xfffffffc
229#define CP_LOAD_STATE_1_EXT_SRC_ADDR__SHIFT 2
230static inline uint32_t CP_LOAD_STATE_1_EXT_SRC_ADDR(uint32_t val)
231{
232 return ((val >> 2) << CP_LOAD_STATE_1_EXT_SRC_ADDR__SHIFT) & CP_LOAD_STATE_1_EXT_SRC_ADDR__MASK;
233}
234
235#define REG_CP_SET_BIN_0 0x00000000
236
237#define REG_CP_SET_BIN_1 0x00000001
238#define CP_SET_BIN_1_X1__MASK 0x0000ffff
239#define CP_SET_BIN_1_X1__SHIFT 0
240static inline uint32_t CP_SET_BIN_1_X1(uint32_t val)
241{
242 return ((val) << CP_SET_BIN_1_X1__SHIFT) & CP_SET_BIN_1_X1__MASK;
243}
244#define CP_SET_BIN_1_Y1__MASK 0xffff0000
245#define CP_SET_BIN_1_Y1__SHIFT 16
246static inline uint32_t CP_SET_BIN_1_Y1(uint32_t val)
247{
248 return ((val) << CP_SET_BIN_1_Y1__SHIFT) & CP_SET_BIN_1_Y1__MASK;
249}
250
251#define REG_CP_SET_BIN_2 0x00000002
252#define CP_SET_BIN_2_X2__MASK 0x0000ffff
253#define CP_SET_BIN_2_X2__SHIFT 0
254static inline uint32_t CP_SET_BIN_2_X2(uint32_t val)
255{
256 return ((val) << CP_SET_BIN_2_X2__SHIFT) & CP_SET_BIN_2_X2__MASK;
257}
258#define CP_SET_BIN_2_Y2__MASK 0xffff0000
259#define CP_SET_BIN_2_Y2__SHIFT 16
260static inline uint32_t CP_SET_BIN_2_Y2(uint32_t val)
261{
262 return ((val) << CP_SET_BIN_2_Y2__SHIFT) & CP_SET_BIN_2_Y2__MASK;
263}
264
265
266#endif /* ADRENO_PM4_XML */