xref: /linux/drivers/gpu/drm/etnaviv/cmdstream.xml.h (revision da1d9caf95def6f0320819cf941c9fd1069ba9e1)
1 #ifndef CMDSTREAM_XML
2 #define CMDSTREAM_XML
3 
4 /* Autogenerated file, DO NOT EDIT manually!
5 
6 This file was generated by the rules-ng-ng headergen tool in this git repository:
7 http://0x04.net/cgit/index.cgi/rules-ng-ng
8 git clone git://0x04.net/rules-ng-ng
9 
10 The rules-ng-ng source files this header was generated from are:
11 - cmdstream.xml (  14094 bytes, from 2016-11-11 06:55:14)
12 - copyright.xml (   1597 bytes, from 2016-10-29 07:29:22)
13 - common.xml    (  23344 bytes, from 2016-11-10 15:14:07)
14 
15 Copyright (C) 2012-2016 by the following authors:
16 - Wladimir J. van der Laan <laanwj@gmail.com>
17 - Christian Gmeiner <christian.gmeiner@gmail.com>
18 - Lucas Stach <l.stach@pengutronix.de>
19 - Russell King <rmk@arm.linux.org.uk>
20 
21 Permission is hereby granted, free of charge, to any person obtaining a
22 copy of this software and associated documentation files (the "Software"),
23 to deal in the Software without restriction, including without limitation
24 the rights to use, copy, modify, merge, publish, distribute, sub license,
25 and/or sell copies of the Software, and to permit persons to whom the
26 Software is furnished to do so, subject to the following conditions:
27 
28 The above copyright notice and this permission notice (including the
29 next paragraph) shall be included in all copies or substantial portions
30 of the Software.
31 
32 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
33 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
34 FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
35 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
36 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
38 DEALINGS IN THE SOFTWARE.
39 */
40 
41 
42 #define FE_OPCODE_LOAD_STATE					0x00000001
43 #define FE_OPCODE_END						0x00000002
44 #define FE_OPCODE_NOP						0x00000003
45 #define FE_OPCODE_DRAW_2D					0x00000004
46 #define FE_OPCODE_DRAW_PRIMITIVES				0x00000005
47 #define FE_OPCODE_DRAW_INDEXED_PRIMITIVES			0x00000006
48 #define FE_OPCODE_WAIT						0x00000007
49 #define FE_OPCODE_LINK						0x00000008
50 #define FE_OPCODE_STALL						0x00000009
51 #define FE_OPCODE_CALL						0x0000000a
52 #define FE_OPCODE_RETURN					0x0000000b
53 #define FE_OPCODE_DRAW_INSTANCED				0x0000000c
54 #define FE_OPCODE_CHIP_SELECT					0x0000000d
55 #define PRIMITIVE_TYPE_POINTS					0x00000001
56 #define PRIMITIVE_TYPE_LINES					0x00000002
57 #define PRIMITIVE_TYPE_LINE_STRIP				0x00000003
58 #define PRIMITIVE_TYPE_TRIANGLES				0x00000004
59 #define PRIMITIVE_TYPE_TRIANGLE_STRIP				0x00000005
60 #define PRIMITIVE_TYPE_TRIANGLE_FAN				0x00000006
61 #define PRIMITIVE_TYPE_LINE_LOOP				0x00000007
62 #define PRIMITIVE_TYPE_QUADS					0x00000008
63 #define VIV_FE_LOAD_STATE					0x00000000
64 
65 #define VIV_FE_LOAD_STATE_HEADER				0x00000000
66 #define VIV_FE_LOAD_STATE_HEADER_OP__MASK			0xf8000000
67 #define VIV_FE_LOAD_STATE_HEADER_OP__SHIFT			27
68 #define VIV_FE_LOAD_STATE_HEADER_OP_LOAD_STATE			0x08000000
69 #define VIV_FE_LOAD_STATE_HEADER_FIXP				0x04000000
70 #define VIV_FE_LOAD_STATE_HEADER_COUNT__MASK			0x03ff0000
71 #define VIV_FE_LOAD_STATE_HEADER_COUNT__SHIFT			16
72 #define VIV_FE_LOAD_STATE_HEADER_COUNT(x)			(((x) << VIV_FE_LOAD_STATE_HEADER_COUNT__SHIFT) & VIV_FE_LOAD_STATE_HEADER_COUNT__MASK)
73 #define VIV_FE_LOAD_STATE_HEADER_OFFSET__MASK			0x0000ffff
74 #define VIV_FE_LOAD_STATE_HEADER_OFFSET__SHIFT			0
75 #define VIV_FE_LOAD_STATE_HEADER_OFFSET(x)			(((x) << VIV_FE_LOAD_STATE_HEADER_OFFSET__SHIFT) & VIV_FE_LOAD_STATE_HEADER_OFFSET__MASK)
76 #define VIV_FE_LOAD_STATE_HEADER_OFFSET__SHR			2
77 
78 #define VIV_FE_END						0x00000000
79 
80 #define VIV_FE_END_HEADER					0x00000000
81 #define VIV_FE_END_HEADER_EVENT_ID__MASK			0x0000001f
82 #define VIV_FE_END_HEADER_EVENT_ID__SHIFT			0
83 #define VIV_FE_END_HEADER_EVENT_ID(x)				(((x) << VIV_FE_END_HEADER_EVENT_ID__SHIFT) & VIV_FE_END_HEADER_EVENT_ID__MASK)
84 #define VIV_FE_END_HEADER_EVENT_ENABLE				0x00000100
85 #define VIV_FE_END_HEADER_OP__MASK				0xf8000000
86 #define VIV_FE_END_HEADER_OP__SHIFT				27
87 #define VIV_FE_END_HEADER_OP_END				0x10000000
88 
89 #define VIV_FE_NOP						0x00000000
90 
91 #define VIV_FE_NOP_HEADER					0x00000000
92 #define VIV_FE_NOP_HEADER_OP__MASK				0xf8000000
93 #define VIV_FE_NOP_HEADER_OP__SHIFT				27
94 #define VIV_FE_NOP_HEADER_OP_NOP				0x18000000
95 
96 #define VIV_FE_DRAW_2D						0x00000000
97 
98 #define VIV_FE_DRAW_2D_HEADER					0x00000000
99 #define VIV_FE_DRAW_2D_HEADER_COUNT__MASK			0x0000ff00
100 #define VIV_FE_DRAW_2D_HEADER_COUNT__SHIFT			8
101 #define VIV_FE_DRAW_2D_HEADER_COUNT(x)				(((x) << VIV_FE_DRAW_2D_HEADER_COUNT__SHIFT) & VIV_FE_DRAW_2D_HEADER_COUNT__MASK)
102 #define VIV_FE_DRAW_2D_HEADER_DATA_COUNT__MASK			0x07ff0000
103 #define VIV_FE_DRAW_2D_HEADER_DATA_COUNT__SHIFT			16
104 #define VIV_FE_DRAW_2D_HEADER_DATA_COUNT(x)			(((x) << VIV_FE_DRAW_2D_HEADER_DATA_COUNT__SHIFT) & VIV_FE_DRAW_2D_HEADER_DATA_COUNT__MASK)
105 #define VIV_FE_DRAW_2D_HEADER_OP__MASK				0xf8000000
106 #define VIV_FE_DRAW_2D_HEADER_OP__SHIFT				27
107 #define VIV_FE_DRAW_2D_HEADER_OP_DRAW_2D			0x20000000
108 
109 #define VIV_FE_DRAW_2D_TOP_LEFT					0x00000008
110 #define VIV_FE_DRAW_2D_TOP_LEFT_X__MASK				0x0000ffff
111 #define VIV_FE_DRAW_2D_TOP_LEFT_X__SHIFT			0
112 #define VIV_FE_DRAW_2D_TOP_LEFT_X(x)				(((x) << VIV_FE_DRAW_2D_TOP_LEFT_X__SHIFT) & VIV_FE_DRAW_2D_TOP_LEFT_X__MASK)
113 #define VIV_FE_DRAW_2D_TOP_LEFT_Y__MASK				0xffff0000
114 #define VIV_FE_DRAW_2D_TOP_LEFT_Y__SHIFT			16
115 #define VIV_FE_DRAW_2D_TOP_LEFT_Y(x)				(((x) << VIV_FE_DRAW_2D_TOP_LEFT_Y__SHIFT) & VIV_FE_DRAW_2D_TOP_LEFT_Y__MASK)
116 
117 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT				0x0000000c
118 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__MASK			0x0000ffff
119 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__SHIFT			0
120 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_X(x)			(((x) << VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__SHIFT) & VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__MASK)
121 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__MASK			0xffff0000
122 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__SHIFT			16
123 #define VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y(x)			(((x) << VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__SHIFT) & VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__MASK)
124 
125 #define VIV_FE_DRAW_PRIMITIVES					0x00000000
126 
127 #define VIV_FE_DRAW_PRIMITIVES_HEADER				0x00000000
128 #define VIV_FE_DRAW_PRIMITIVES_HEADER_OP__MASK			0xf8000000
129 #define VIV_FE_DRAW_PRIMITIVES_HEADER_OP__SHIFT			27
130 #define VIV_FE_DRAW_PRIMITIVES_HEADER_OP_DRAW_PRIMITIVES	0x28000000
131 
132 #define VIV_FE_DRAW_PRIMITIVES_COMMAND				0x00000004
133 #define VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__MASK		0x000000ff
134 #define VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__SHIFT		0
135 #define VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE(x)			(((x) << VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__SHIFT) & VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__MASK)
136 
137 #define VIV_FE_DRAW_PRIMITIVES_START				0x00000008
138 
139 #define VIV_FE_DRAW_PRIMITIVES_COUNT				0x0000000c
140 
141 #define VIV_FE_DRAW_INDEXED_PRIMITIVES				0x00000000
142 
143 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER			0x00000000
144 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER_OP__MASK		0xf8000000
145 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER_OP__SHIFT		27
146 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER_OP_DRAW_INDEXED_PRIMITIVES	0x30000000
147 
148 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND			0x00000004
149 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__MASK	0x000000ff
150 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__SHIFT	0
151 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE(x)		(((x) << VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__SHIFT) & VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__MASK)
152 
153 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_START			0x00000008
154 
155 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_COUNT			0x0000000c
156 
157 #define VIV_FE_DRAW_INDEXED_PRIMITIVES_OFFSET			0x00000010
158 
159 #define VIV_FE_WAIT						0x00000000
160 
161 #define VIV_FE_WAIT_HEADER					0x00000000
162 #define VIV_FE_WAIT_HEADER_DELAY__MASK				0x0000ffff
163 #define VIV_FE_WAIT_HEADER_DELAY__SHIFT				0
164 #define VIV_FE_WAIT_HEADER_DELAY(x)				(((x) << VIV_FE_WAIT_HEADER_DELAY__SHIFT) & VIV_FE_WAIT_HEADER_DELAY__MASK)
165 #define VIV_FE_WAIT_HEADER_OP__MASK				0xf8000000
166 #define VIV_FE_WAIT_HEADER_OP__SHIFT				27
167 #define VIV_FE_WAIT_HEADER_OP_WAIT				0x38000000
168 
169 #define VIV_FE_LINK						0x00000000
170 
171 #define VIV_FE_LINK_HEADER					0x00000000
172 #define VIV_FE_LINK_HEADER_PREFETCH__MASK			0x0000ffff
173 #define VIV_FE_LINK_HEADER_PREFETCH__SHIFT			0
174 #define VIV_FE_LINK_HEADER_PREFETCH(x)				(((x) << VIV_FE_LINK_HEADER_PREFETCH__SHIFT) & VIV_FE_LINK_HEADER_PREFETCH__MASK)
175 #define VIV_FE_LINK_HEADER_OP__MASK				0xf8000000
176 #define VIV_FE_LINK_HEADER_OP__SHIFT				27
177 #define VIV_FE_LINK_HEADER_OP_LINK				0x40000000
178 
179 #define VIV_FE_LINK_ADDRESS					0x00000004
180 
181 #define VIV_FE_STALL						0x00000000
182 
183 #define VIV_FE_STALL_HEADER					0x00000000
184 #define VIV_FE_STALL_HEADER_OP__MASK				0xf8000000
185 #define VIV_FE_STALL_HEADER_OP__SHIFT				27
186 #define VIV_FE_STALL_HEADER_OP_STALL				0x48000000
187 
188 #define VIV_FE_STALL_TOKEN					0x00000004
189 #define VIV_FE_STALL_TOKEN_FROM__MASK				0x0000001f
190 #define VIV_FE_STALL_TOKEN_FROM__SHIFT				0
191 #define VIV_FE_STALL_TOKEN_FROM(x)				(((x) << VIV_FE_STALL_TOKEN_FROM__SHIFT) & VIV_FE_STALL_TOKEN_FROM__MASK)
192 #define VIV_FE_STALL_TOKEN_TO__MASK				0x00001f00
193 #define VIV_FE_STALL_TOKEN_TO__SHIFT				8
194 #define VIV_FE_STALL_TOKEN_TO(x)				(((x) << VIV_FE_STALL_TOKEN_TO__SHIFT) & VIV_FE_STALL_TOKEN_TO__MASK)
195 
196 #define VIV_FE_CALL						0x00000000
197 
198 #define VIV_FE_CALL_HEADER					0x00000000
199 #define VIV_FE_CALL_HEADER_PREFETCH__MASK			0x0000ffff
200 #define VIV_FE_CALL_HEADER_PREFETCH__SHIFT			0
201 #define VIV_FE_CALL_HEADER_PREFETCH(x)				(((x) << VIV_FE_CALL_HEADER_PREFETCH__SHIFT) & VIV_FE_CALL_HEADER_PREFETCH__MASK)
202 #define VIV_FE_CALL_HEADER_OP__MASK				0xf8000000
203 #define VIV_FE_CALL_HEADER_OP__SHIFT				27
204 #define VIV_FE_CALL_HEADER_OP_CALL				0x50000000
205 
206 #define VIV_FE_CALL_ADDRESS					0x00000004
207 
208 #define VIV_FE_CALL_RETURN_PREFETCH				0x00000008
209 
210 #define VIV_FE_CALL_RETURN_ADDRESS				0x0000000c
211 
212 #define VIV_FE_RETURN						0x00000000
213 
214 #define VIV_FE_RETURN_HEADER					0x00000000
215 #define VIV_FE_RETURN_HEADER_OP__MASK				0xf8000000
216 #define VIV_FE_RETURN_HEADER_OP__SHIFT				27
217 #define VIV_FE_RETURN_HEADER_OP_RETURN				0x58000000
218 
219 #define VIV_FE_CHIP_SELECT					0x00000000
220 
221 #define VIV_FE_CHIP_SELECT_HEADER				0x00000000
222 #define VIV_FE_CHIP_SELECT_HEADER_OP__MASK			0xf8000000
223 #define VIV_FE_CHIP_SELECT_HEADER_OP__SHIFT			27
224 #define VIV_FE_CHIP_SELECT_HEADER_OP_CHIP_SELECT		0x68000000
225 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP15			0x00008000
226 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP14			0x00004000
227 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP13			0x00002000
228 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP12			0x00001000
229 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP11			0x00000800
230 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP10			0x00000400
231 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP9			0x00000200
232 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP8			0x00000100
233 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP7			0x00000080
234 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP6			0x00000040
235 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP5			0x00000020
236 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP4			0x00000010
237 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP3			0x00000008
238 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP2			0x00000004
239 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP1			0x00000002
240 #define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP0			0x00000001
241 
242 #define VIV_FE_DRAW_INSTANCED					0x00000000
243 
244 #define VIV_FE_DRAW_INSTANCED_HEADER				0x00000000
245 #define VIV_FE_DRAW_INSTANCED_HEADER_OP__MASK			0xf8000000
246 #define VIV_FE_DRAW_INSTANCED_HEADER_OP__SHIFT			27
247 #define VIV_FE_DRAW_INSTANCED_HEADER_OP_DRAW_INSTANCED		0x60000000
248 #define VIV_FE_DRAW_INSTANCED_HEADER_INDEXED			0x00100000
249 #define VIV_FE_DRAW_INSTANCED_HEADER_TYPE__MASK			0x000f0000
250 #define VIV_FE_DRAW_INSTANCED_HEADER_TYPE__SHIFT		16
251 #define VIV_FE_DRAW_INSTANCED_HEADER_TYPE(x)			(((x) << VIV_FE_DRAW_INSTANCED_HEADER_TYPE__SHIFT) & VIV_FE_DRAW_INSTANCED_HEADER_TYPE__MASK)
252 #define VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__MASK	0x0000ffff
253 #define VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__SHIFT	0
254 #define VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO(x)	(((x) << VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__SHIFT) & VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__MASK)
255 
256 #define VIV_FE_DRAW_INSTANCED_COUNT				0x00000004
257 #define VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__MASK	0xff000000
258 #define VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__SHIFT	24
259 #define VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI(x)	(((x) << VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__SHIFT) & VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__MASK)
260 #define VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__MASK		0x00ffffff
261 #define VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__SHIFT		0
262 #define VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT(x)		(((x) << VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__SHIFT) & VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__MASK)
263 
264 #define VIV_FE_DRAW_INSTANCED_START				0x00000008
265 #define VIV_FE_DRAW_INSTANCED_START_INDEX__MASK			0xffffffff
266 #define VIV_FE_DRAW_INSTANCED_START_INDEX__SHIFT		0
267 #define VIV_FE_DRAW_INSTANCED_START_INDEX(x)			(((x) << VIV_FE_DRAW_INSTANCED_START_INDEX__SHIFT) & VIV_FE_DRAW_INSTANCED_START_INDEX__MASK)
268 
269 
270 #endif /* CMDSTREAM_XML */
271