blob: 24d726adcb34153bc173ece670b050ab3023e414 [file] [log] [blame]
Chia-I Wu1d267e12014-08-05 12:13:22 +08001#ifndef GEN_MI_XML
2#define GEN_MI_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:
7https://github.com/olvaffe/envytools/
8git clone https://github.com/olvaffe/envytools.git
9
Chia-I Wu97aa4de2015-03-05 15:43:16 -070010Copyright (C) 2014-2015 by the following authors:
Chia-I Wu1d267e12014-08-05 12:13:22 +080011- Chia-I Wu <olvaffe@gmail.com> (olv)
12
13Permission is hereby granted, free of charge, to any person obtaining
14a copy of this software and associated documentation files (the
15"Software"), to deal in the Software without restriction, including
16without limitation the rights to use, copy, modify, merge, publish,
17distribute, sublicense, and/or sell copies of the Software, and to
18permit persons to whom the Software is furnished to do so, subject to
19the following conditions:
20
21The above copyright notice and this permission notice (including the
22next paragraph) shall be included in all copies or substantial
23portions of the Software.
24
25THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
26EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
28IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
29LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
30OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
31WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32*/
33
34
Chia-I Wu97aa4de2015-03-05 15:43:16 -070035enum gen_mi_alu_opcode {
36 GEN75_MI_ALU_NOOP = 0x0,
37 GEN75_MI_ALU_LOAD = 0x80,
38 GEN75_MI_ALU_LOADINV = 0x480,
39 GEN75_MI_ALU_LOAD0 = 0x81,
40 GEN75_MI_ALU_LOAD1 = 0x481,
41 GEN75_MI_ALU_ADD = 0x100,
42 GEN75_MI_ALU_SUB = 0x101,
43 GEN75_MI_ALU_AND = 0x102,
44 GEN75_MI_ALU_OR = 0x103,
45 GEN75_MI_ALU_XOR = 0x104,
46 GEN75_MI_ALU_STORE = 0x180,
47 GEN75_MI_ALU_STOREINV = 0x580,
48};
49
50enum gen_mi_alu_operand {
51 GEN75_MI_ALU_R0 = 0x0,
52 GEN75_MI_ALU_R1 = 0x1,
53 GEN75_MI_ALU_R2 = 0x2,
54 GEN75_MI_ALU_R3 = 0x3,
55 GEN75_MI_ALU_R4 = 0x4,
56 GEN75_MI_ALU_R5 = 0x5,
57 GEN75_MI_ALU_R6 = 0x6,
58 GEN75_MI_ALU_R7 = 0x7,
59 GEN75_MI_ALU_R8 = 0x8,
60 GEN75_MI_ALU_R9 = 0x9,
61 GEN75_MI_ALU_R10 = 0xa,
62 GEN75_MI_ALU_R11 = 0xb,
63 GEN75_MI_ALU_R12 = 0xc,
64 GEN75_MI_ALU_R13 = 0xd,
65 GEN75_MI_ALU_R14 = 0xe,
66 GEN75_MI_ALU_R15 = 0xf,
67 GEN75_MI_ALU_SRCA = 0x20,
68 GEN75_MI_ALU_SRCB = 0x21,
69 GEN75_MI_ALU_ACCU = 0x31,
70 GEN75_MI_ALU_ZF = 0x32,
71 GEN75_MI_ALU_CF = 0x33,
72};
73
Chia-I Wu1d267e12014-08-05 12:13:22 +080074#define GEN6_MI_TYPE__MASK 0xe0000000
75#define GEN6_MI_TYPE__SHIFT 29
76#define GEN6_MI_TYPE_MI (0x0 << 29)
77#define GEN6_MI_OPCODE__MASK 0x1f800000
78#define GEN6_MI_OPCODE__SHIFT 23
79#define GEN6_MI_OPCODE_MI_NOOP (0x0 << 23)
Chia-I Wue6073342014-11-30 09:43:42 +080080#define GEN75_MI_OPCODE_MI_SET_PREDICATE (0x1 << 23)
81#define GEN75_MI_OPCODE_MI_RS_CONTROL (0x6 << 23)
82#define GEN75_MI_OPCODE_MI_URB_ATOMIC_ALLOC (0x9 << 23)
Chia-I Wu1d267e12014-08-05 12:13:22 +080083#define GEN6_MI_OPCODE_MI_BATCH_BUFFER_END (0xa << 23)
Chia-I Wue6073342014-11-30 09:43:42 +080084#define GEN7_MI_OPCODE_MI_PREDICATE (0xc << 23)
85#define GEN7_MI_OPCODE_MI_URB_CLEAR (0x19 << 23)
86#define GEN75_MI_OPCODE_MI_MATH (0x1a << 23)
Chia-I Wu1d267e12014-08-05 12:13:22 +080087#define GEN6_MI_OPCODE_MI_STORE_DATA_IMM (0x20 << 23)
88#define GEN6_MI_OPCODE_MI_LOAD_REGISTER_IMM (0x22 << 23)
89#define GEN6_MI_OPCODE_MI_STORE_REGISTER_MEM (0x24 << 23)
90#define GEN6_MI_OPCODE_MI_FLUSH_DW (0x26 << 23)
91#define GEN6_MI_OPCODE_MI_REPORT_PERF_COUNT (0x28 << 23)
92#define GEN7_MI_OPCODE_MI_LOAD_REGISTER_MEM (0x29 << 23)
Chia-I Wue6073342014-11-30 09:43:42 +080093#define GEN75_MI_OPCODE_MI_LOAD_REGISTER_REG (0x2a << 23)
94#define GEN75_MI_OPCODE_MI_LOAD_URB_MEM (0x2c << 23)
95#define GEN75_MI_OPCODE_MI_STORE_URB_MEM (0x2d << 23)
Chia-I Wu1d267e12014-08-05 12:13:22 +080096#define GEN6_MI_OPCODE_MI_BATCH_BUFFER_START (0x31 << 23)
97#define GEN6_MI_LENGTH__MASK 0x0000003f
98#define GEN6_MI_LENGTH__SHIFT 0
99#define GEN6_MI_NOOP__SIZE 1
100
Chia-I Wue6073342014-11-30 09:43:42 +0800101#define GEN75_MI_SET_PREDICATE__SIZE 1
102#define GEN75_MI_SET_PREDICATE_DW0_PREDICATE__MASK 0x00000003
103#define GEN75_MI_SET_PREDICATE_DW0_PREDICATE__SHIFT 0
104#define GEN75_MI_SET_PREDICATE_DW0_PREDICATE_ALWAYS 0x0
105#define GEN75_MI_SET_PREDICATE_DW0_PREDICATE_ON_CLEAR 0x1
106#define GEN75_MI_SET_PREDICATE_DW0_PREDICATE_ON_SET 0x2
107#define GEN75_MI_SET_PREDICATE_DW0_PREDICATE_DISABLE 0x3
108
109#define GEN75_MI_RS_CONTROL__SIZE 1
110#define GEN75_MI_RS_CONTROL_DW0_ENABLE (0x1 << 0)
111
112#define GEN75_MI_URB_ATOMIC_ALLOC__SIZE 1
113#define GEN75_MI_URB_ATOMIC_ALLOC_DW0_OFFSET__MASK 0x000ff000
114#define GEN75_MI_URB_ATOMIC_ALLOC_DW0_OFFSET__SHIFT 12
115#define GEN75_MI_URB_ATOMIC_ALLOC_DW0_SIZE__MASK 0x000001ff
116#define GEN75_MI_URB_ATOMIC_ALLOC_DW0_SIZE__SHIFT 0
117
Chia-I Wu1d267e12014-08-05 12:13:22 +0800118#define GEN6_MI_BATCH_BUFFER_END__SIZE 1
119
Chia-I Wue6073342014-11-30 09:43:42 +0800120#define GEN7_MI_PREDICATE__SIZE 1
121#define GEN7_MI_PREDICATE_DW0_LOADOP__MASK 0x000000c0
122#define GEN7_MI_PREDICATE_DW0_LOADOP__SHIFT 6
123#define GEN7_MI_PREDICATE_DW0_LOADOP_KEEP (0x0 << 6)
124#define GEN7_MI_PREDICATE_DW0_LOADOP_LOAD (0x2 << 6)
125#define GEN7_MI_PREDICATE_DW0_LOADOP_LOADINV (0x3 << 6)
126#define GEN7_MI_PREDICATE_DW0_COMBINEOP__MASK 0x00000018
127#define GEN7_MI_PREDICATE_DW0_COMBINEOP__SHIFT 3
128#define GEN7_MI_PREDICATE_DW0_COMBINEOP_SET (0x0 << 3)
129#define GEN7_MI_PREDICATE_DW0_COMBINEOP_AND (0x1 << 3)
130#define GEN7_MI_PREDICATE_DW0_COMBINEOP_OR (0x2 << 3)
131#define GEN7_MI_PREDICATE_DW0_COMBINEOP_XOR (0x3 << 3)
132#define GEN7_MI_PREDICATE_DW0_COMPAREOP__MASK 0x00000003
133#define GEN7_MI_PREDICATE_DW0_COMPAREOP__SHIFT 0
134#define GEN7_MI_PREDICATE_DW0_COMPAREOP_TRUE 0x0
135#define GEN7_MI_PREDICATE_DW0_COMPAREOP_FALSE 0x1
136#define GEN7_MI_PREDICATE_DW0_COMPAREOP_SRCS_EQUAL 0x2
137#define GEN7_MI_PREDICATE_DW0_COMPAREOP_DELTAS_EQUAL 0x3
138
139#define GEN7_MI_URB_CLEAR__SIZE 2
140
141#define GEN7_MI_URB_CLEAR_DW1_LENGTH__MASK 0x3fff0000
142#define GEN7_MI_URB_CLEAR_DW1_LENGTH__SHIFT 16
143#define GEN7_MI_URB_CLEAR_DW1_OFFSET__MASK 0x00007fff
144#define GEN7_MI_URB_CLEAR_DW1_OFFSET__SHIFT 0
145
146#define GEN75_MI_MATH__SIZE 65
147
148#define GEN75_MI_MATH_DW_OP__MASK 0xfff00000
149#define GEN75_MI_MATH_DW_OP__SHIFT 20
150#define GEN75_MI_MATH_DW_SRC1__MASK 0x000ffc00
151#define GEN75_MI_MATH_DW_SRC1__SHIFT 10
152#define GEN75_MI_MATH_DW_SRC2__MASK 0x000007ff
153#define GEN75_MI_MATH_DW_SRC2__SHIFT 0
154
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700155#define GEN6_MI_STORE_DATA_IMM__SIZE 6
Chia-I Wu1d267e12014-08-05 12:13:22 +0800156#define GEN6_MI_STORE_DATA_IMM_DW0_USE_GGTT (0x1 << 22)
157
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700158
Chia-I Wu1d267e12014-08-05 12:13:22 +0800159#define GEN6_MI_STORE_DATA_IMM_DW2_ADDR__MASK 0xfffffffc
160#define GEN6_MI_STORE_DATA_IMM_DW2_ADDR__SHIFT 2
161#define GEN6_MI_STORE_DATA_IMM_DW2_ADDR__SHR 2
162
163
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700164
165
Chia-I Wu1d267e12014-08-05 12:13:22 +0800166#define GEN6_MI_LOAD_REGISTER_IMM__SIZE 3
167#define GEN6_MI_LOAD_REGISTER_IMM_DW0_WRITE_DISABLES__MASK 0x00000f00
168#define GEN6_MI_LOAD_REGISTER_IMM_DW0_WRITE_DISABLES__SHIFT 8
169
170#define GEN6_MI_LOAD_REGISTER_IMM_DW1_REG__MASK 0x007ffffc
171#define GEN6_MI_LOAD_REGISTER_IMM_DW1_REG__SHIFT 2
172#define GEN6_MI_LOAD_REGISTER_IMM_DW1_REG__SHR 2
173
174
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700175#define GEN6_MI_STORE_REGISTER_MEM__SIZE 4
Chia-I Wu1d267e12014-08-05 12:13:22 +0800176#define GEN6_MI_STORE_REGISTER_MEM_DW0_USE_GGTT (0x1 << 22)
177#define GEN75_MI_STORE_REGISTER_MEM_DW0_PREDICATE_ENABLE (0x1 << 21)
178
179#define GEN6_MI_STORE_REGISTER_MEM_DW1_REG__MASK 0x007ffffc
180#define GEN6_MI_STORE_REGISTER_MEM_DW1_REG__SHIFT 2
181#define GEN6_MI_STORE_REGISTER_MEM_DW1_REG__SHR 2
182
183#define GEN6_MI_STORE_REGISTER_MEM_DW2_ADDR__MASK 0xfffffffc
184#define GEN6_MI_STORE_REGISTER_MEM_DW2_ADDR__SHIFT 2
185#define GEN6_MI_STORE_REGISTER_MEM_DW2_ADDR__SHR 2
186
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700187
Chia-I Wu1d267e12014-08-05 12:13:22 +0800188#define GEN6_MI_FLUSH_DW__SIZE 4
189
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700190
191
192
Chia-I Wu1d267e12014-08-05 12:13:22 +0800193#define GEN6_MI_REPORT_PERF_COUNT__SIZE 3
194
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700195#define GEN6_MI_REPORT_PERF_COUNT_DW1_CORE_MODE_ENABLE (0x1 << 4)
196#define GEN6_MI_REPORT_PERF_COUNT_DW1_USE_GGTT (0x1 << 0)
Chia-I Wu1d267e12014-08-05 12:13:22 +0800197#define GEN6_MI_REPORT_PERF_COUNT_DW1_ADDR__MASK 0xffffffc0
198#define GEN6_MI_REPORT_PERF_COUNT_DW1_ADDR__SHIFT 6
199#define GEN6_MI_REPORT_PERF_COUNT_DW1_ADDR__SHR 6
Chia-I Wu1d267e12014-08-05 12:13:22 +0800200
201
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700202#define GEN7_MI_LOAD_REGISTER_MEM__SIZE 4
Chia-I Wu1d267e12014-08-05 12:13:22 +0800203#define GEN7_MI_LOAD_REGISTER_MEM_DW0_USE_GGTT (0x1 << 22)
204#define GEN7_MI_LOAD_REGISTER_MEM_DW0_ASYNC_MODE_ENABLE (0x1 << 21)
205
206#define GEN7_MI_LOAD_REGISTER_MEM_DW1_REG__MASK 0x007ffffc
207#define GEN7_MI_LOAD_REGISTER_MEM_DW1_REG__SHIFT 2
208#define GEN7_MI_LOAD_REGISTER_MEM_DW1_REG__SHR 2
209
210#define GEN7_MI_LOAD_REGISTER_MEM_DW2_ADDR__MASK 0xfffffffc
211#define GEN7_MI_LOAD_REGISTER_MEM_DW2_ADDR__SHIFT 2
212#define GEN7_MI_LOAD_REGISTER_MEM_DW2_ADDR__SHR 2
213
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700214
Chia-I Wue6073342014-11-30 09:43:42 +0800215#define GEN75_MI_LOAD_REGISTER_REG__SIZE 3
216
217#define GEN75_MI_LOAD_REGISTER_REG_DW1_SRC_REG__MASK 0x007ffffc
218#define GEN75_MI_LOAD_REGISTER_REG_DW1_SRC_REG__SHIFT 2
219#define GEN75_MI_LOAD_REGISTER_REG_DW1_SRC_REG__SHR 2
220
221#define GEN75_MI_LOAD_REGISTER_REG_DW2_DST_REG__MASK 0x007ffffc
222#define GEN75_MI_LOAD_REGISTER_REG_DW2_DST_REG__SHIFT 2
223#define GEN75_MI_LOAD_REGISTER_REG_DW2_DST_REG__SHR 2
224
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700225#define GEN75_MI_LOAD_URB_MEM__SIZE 4
Chia-I Wue6073342014-11-30 09:43:42 +0800226
227#define GEN75_MI_LOAD_URB_MEM_DW1_ADDR__MASK 0x00007ffc
228#define GEN75_MI_LOAD_URB_MEM_DW1_ADDR__SHIFT 2
229#define GEN75_MI_LOAD_URB_MEM_DW1_ADDR__SHR 2
230
231#define GEN75_MI_LOAD_URB_MEM_DW2_ADDR__MASK 0xffffffc0
232#define GEN75_MI_LOAD_URB_MEM_DW2_ADDR__SHIFT 6
233#define GEN75_MI_LOAD_URB_MEM_DW2_ADDR__SHR 6
234
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700235
236#define GEN75_MI_STORE_URB_MEM__SIZE 4
Chia-I Wue6073342014-11-30 09:43:42 +0800237
238#define GEN75_MI_STORE_URB_MEM_DW1_ADDR__MASK 0x00007ffc
239#define GEN75_MI_STORE_URB_MEM_DW1_ADDR__SHIFT 2
240#define GEN75_MI_STORE_URB_MEM_DW1_ADDR__SHR 2
241
242#define GEN75_MI_STORE_URB_MEM_DW2_ADDR__MASK 0xffffffc0
243#define GEN75_MI_STORE_URB_MEM_DW2_ADDR__SHIFT 6
244#define GEN75_MI_STORE_URB_MEM_DW2_ADDR__SHR 6
245
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700246
247#define GEN6_MI_BATCH_BUFFER_START__SIZE 3
Chia-I Wu1d267e12014-08-05 12:13:22 +0800248#define GEN75_MI_BATCH_BUFFER_START_DW0_SECOND_LEVEL (0x1 << 22)
249#define GEN75_MI_BATCH_BUFFER_START_DW0_ADD_OFFSET_ENABLE (0x1 << 16)
250#define GEN75_MI_BATCH_BUFFER_START_DW0_PREDICATION_ENABLE (0x1 << 15)
251#define GEN75_MI_BATCH_BUFFER_START_DW0_NON_PRIVILEGED (0x1 << 13)
252#define GEN6_MI_BATCH_BUFFER_START_DW0_CLEAR_COMMAND_BUFFER (0x1 << 11)
253#define GEN6_MI_BATCH_BUFFER_START_DW0_USE_PPGTT (0x1 << 8)
254
255#define GEN6_MI_BATCH_BUFFER_START_DW1_ADDR__MASK 0xfffffffc
256#define GEN6_MI_BATCH_BUFFER_START_DW1_ADDR__SHIFT 2
257#define GEN6_MI_BATCH_BUFFER_START_DW1_ADDR__SHR 2
258
259
Chia-I Wu97aa4de2015-03-05 15:43:16 -0700260
Chia-I Wu1d267e12014-08-05 12:13:22 +0800261#endif /* GEN_MI_XML */