1#ifndef CMDSTREAM_XML
2#define CMDSTREAM_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:
7http://0x04.net/cgit/index.cgi/rules-ng-ng
8git clone git://0x04.net/rules-ng-ng
9
10The 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
15Copyright (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
21Permission is hereby granted, free of charge, to any person obtaining a
22copy of this software and associated documentation files (the "Software"),
23to deal in the Software without restriction, including without limitation
24the rights to use, copy, modify, merge, publish, distribute, sub license,
25and/or sell copies of the Software, and to permit persons to whom the
26Software is furnished to do so, subject to the following conditions:
27
28The above copyright notice and this permission notice (including the
29next paragraph) shall be included in all copies or substantial portions
30of the Software.
31
32THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
33IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
34FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
35THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
36LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
38DEALINGS 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

source code of linux/drivers/gpu/drm/etnaviv/cmdstream.xml.h