tinygrad 0.8.0__py3-none-any.whl → 0.9.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. tinygrad/__init__.py +6 -6
  2. tinygrad/codegen/kernel.py +230 -190
  3. tinygrad/codegen/linearizer.py +278 -384
  4. tinygrad/codegen/uops.py +415 -0
  5. tinygrad/device.py +132 -275
  6. tinygrad/dtype.py +53 -37
  7. tinygrad/engine/__init__.py +0 -0
  8. tinygrad/engine/graph.py +100 -0
  9. tinygrad/engine/jit.py +195 -0
  10. tinygrad/engine/realize.py +191 -0
  11. tinygrad/engine/schedule.py +362 -0
  12. tinygrad/engine/search.py +196 -0
  13. tinygrad/{mlops.py → function.py} +28 -14
  14. tinygrad/helpers.py +72 -43
  15. tinygrad/lazy.py +141 -240
  16. tinygrad/multi.py +169 -0
  17. tinygrad/nn/__init__.py +179 -8
  18. tinygrad/nn/datasets.py +7 -0
  19. tinygrad/nn/optim.py +106 -28
  20. tinygrad/nn/state.py +86 -17
  21. tinygrad/ops.py +70 -44
  22. tinygrad/renderer/__init__.py +61 -0
  23. tinygrad/renderer/assembly.py +276 -0
  24. tinygrad/renderer/cstyle.py +299 -206
  25. tinygrad/renderer/llvmir.py +118 -123
  26. tinygrad/runtime/autogen/amd_gpu.py +1900 -0
  27. tinygrad/runtime/autogen/comgr.py +865 -0
  28. tinygrad/runtime/autogen/cuda.py +5923 -0
  29. tinygrad/runtime/autogen/hip.py +5909 -0
  30. tinygrad/runtime/autogen/hsa.py +5761 -0
  31. tinygrad/runtime/autogen/kfd.py +812 -0
  32. tinygrad/runtime/autogen/nv_gpu.py +33328 -0
  33. tinygrad/runtime/autogen/opencl.py +1795 -0
  34. tinygrad/runtime/driver/hip_comgr.py +47 -0
  35. tinygrad/runtime/driver/hsa.py +143 -0
  36. tinygrad/runtime/graph/clang.py +38 -0
  37. tinygrad/runtime/graph/cuda.py +59 -54
  38. tinygrad/runtime/graph/hcq.py +143 -0
  39. tinygrad/runtime/graph/hsa.py +171 -0
  40. tinygrad/runtime/graph/metal.py +37 -41
  41. tinygrad/runtime/ops_amd.py +564 -0
  42. tinygrad/runtime/ops_clang.py +16 -14
  43. tinygrad/runtime/ops_cuda.py +130 -38
  44. tinygrad/runtime/ops_disk.py +45 -42
  45. tinygrad/runtime/ops_gpu.py +52 -50
  46. tinygrad/runtime/ops_hsa.py +278 -0
  47. tinygrad/runtime/ops_llvm.py +36 -56
  48. tinygrad/runtime/ops_metal.py +42 -24
  49. tinygrad/runtime/ops_npy.py +9 -0
  50. tinygrad/runtime/ops_nv.py +630 -0
  51. tinygrad/runtime/ops_python.py +204 -0
  52. tinygrad/shape/shapetracker.py +41 -105
  53. tinygrad/shape/symbolic.py +98 -95
  54. tinygrad/shape/view.py +137 -35
  55. tinygrad/tensor.py +2367 -442
  56. {tinygrad-0.8.0.dist-info → tinygrad-0.9.0.dist-info}/LICENSE +1 -1
  57. {tinygrad-0.8.0.dist-info → tinygrad-0.9.0.dist-info}/METADATA +19 -9
  58. tinygrad-0.9.0.dist-info/RECORD +60 -0
  59. {tinygrad-0.8.0.dist-info → tinygrad-0.9.0.dist-info}/WHEEL +1 -1
  60. tinygrad/features/image.py +0 -93
  61. tinygrad/features/multi.py +0 -103
  62. tinygrad/features/search.py +0 -160
  63. tinygrad/graph.py +0 -106
  64. tinygrad/jit.py +0 -152
  65. tinygrad/realize.py +0 -50
  66. tinygrad/runtime/graph/hip.py +0 -24
  67. tinygrad/runtime/ops_cpu.py +0 -45
  68. tinygrad/runtime/ops_hip.py +0 -97
  69. tinygrad/runtime/ops_torch.py +0 -49
  70. tinygrad-0.8.0.dist-info/RECORD +0 -41
  71. {tinygrad-0.8.0.dist-info → tinygrad-0.9.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1900 @@
1
+ # mypy: ignore-errors
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # TARGET arch is: ['-I/opt/rocm/include', '-x', 'c++']
5
+ # WORD_SIZE is: 8
6
+ # POINTER_SIZE is: 8
7
+ # LONGDOUBLE_SIZE is: 16
8
+ #
9
+ import ctypes
10
+
11
+
12
+ class AsDictMixin:
13
+ @classmethod
14
+ def as_dict(cls, self):
15
+ result = {}
16
+ if not isinstance(self, AsDictMixin):
17
+ # not a structure, assume it's already a python object
18
+ return self
19
+ if not hasattr(cls, "_fields_"):
20
+ return result
21
+ # sys.version_info >= (3, 5)
22
+ # for (field, *_) in cls._fields_: # noqa
23
+ for field_tuple in cls._fields_: # noqa
24
+ field = field_tuple[0]
25
+ if field.startswith('PADDING_'):
26
+ continue
27
+ value = getattr(self, field)
28
+ type_ = type(value)
29
+ if hasattr(value, "_length_") and hasattr(value, "_type_"):
30
+ # array
31
+ if not hasattr(type_, "as_dict"):
32
+ value = [v for v in value]
33
+ else:
34
+ type_ = type_._type_
35
+ value = [type_.as_dict(v) for v in value]
36
+ elif hasattr(value, "contents") and hasattr(value, "_type_"):
37
+ # pointer
38
+ try:
39
+ if not hasattr(type_, "as_dict"):
40
+ value = value.contents
41
+ else:
42
+ type_ = type_._type_
43
+ value = type_.as_dict(value.contents)
44
+ except ValueError:
45
+ # nullptr
46
+ value = None
47
+ elif isinstance(value, AsDictMixin):
48
+ # other structure
49
+ value = type_.as_dict(value)
50
+ result[field] = value
51
+ return result
52
+
53
+
54
+ class Structure(ctypes.Structure, AsDictMixin):
55
+
56
+ def __init__(self, *args, **kwds):
57
+ # We don't want to use positional arguments fill PADDING_* fields
58
+
59
+ args = dict(zip(self.__class__._field_names_(), args))
60
+ args.update(kwds)
61
+ super(Structure, self).__init__(**args)
62
+
63
+ @classmethod
64
+ def _field_names_(cls):
65
+ if hasattr(cls, '_fields_'):
66
+ return (f[0] for f in cls._fields_ if not f[0].startswith('PADDING'))
67
+ else:
68
+ return ()
69
+
70
+ @classmethod
71
+ def get_type(cls, field):
72
+ for f in cls._fields_:
73
+ if f[0] == field:
74
+ return f[1]
75
+ return None
76
+
77
+ @classmethod
78
+ def bind(cls, bound_fields):
79
+ fields = {}
80
+ for name, type_ in cls._fields_:
81
+ if hasattr(type_, "restype"):
82
+ if name in bound_fields:
83
+ if bound_fields[name] is None:
84
+ fields[name] = type_()
85
+ else:
86
+ # use a closure to capture the callback from the loop scope
87
+ fields[name] = (
88
+ type_((lambda callback: lambda *args: callback(*args))(
89
+ bound_fields[name]))
90
+ )
91
+ del bound_fields[name]
92
+ else:
93
+ # default callback implementation (does nothing)
94
+ try:
95
+ default_ = type_(0).restype().value
96
+ except TypeError:
97
+ default_ = None
98
+ fields[name] = type_((
99
+ lambda default_: lambda *args: default_)(default_))
100
+ else:
101
+ # not a callback function, use default initialization
102
+ if name in bound_fields:
103
+ fields[name] = bound_fields[name]
104
+ del bound_fields[name]
105
+ else:
106
+ fields[name] = type_()
107
+ if len(bound_fields) != 0:
108
+ raise ValueError(
109
+ "Cannot bind the following unknown callback(s) {}.{}".format(
110
+ cls.__name__, bound_fields.keys()
111
+ ))
112
+ return cls(**fields)
113
+
114
+
115
+ class Union(ctypes.Union, AsDictMixin):
116
+ pass
117
+
118
+
119
+
120
+
121
+
122
+ SDMA_OP_COPY = 1 # Variable ctypes.c_uint32
123
+ SDMA_OP_FENCE = 5 # Variable ctypes.c_uint32
124
+ SDMA_OP_TRAP = 6 # Variable ctypes.c_uint32
125
+ SDMA_OP_POLL_REGMEM = 8 # Variable ctypes.c_uint32
126
+ SDMA_OP_ATOMIC = 10 # Variable ctypes.c_uint32
127
+ SDMA_OP_CONST_FILL = 11 # Variable ctypes.c_uint32
128
+ SDMA_OP_TIMESTAMP = 13 # Variable ctypes.c_uint32
129
+ SDMA_OP_GCR = 17 # Variable ctypes.c_uint32
130
+ SDMA_SUBOP_COPY_LINEAR = 0 # Variable ctypes.c_uint32
131
+ SDMA_SUBOP_COPY_LINEAR_RECT = 4 # Variable ctypes.c_uint32
132
+ SDMA_SUBOP_TIMESTAMP_GET_GLOBAL = 2 # Variable ctypes.c_uint32
133
+ SDMA_SUBOP_USER_GCR = 1 # Variable ctypes.c_uint32
134
+ SDMA_ATOMIC_ADD64 = 47 # Variable ctypes.c_uint32
135
+ class struct_SDMA_PKT_COPY_LINEAR_TAG(Structure):
136
+ pass
137
+
138
+ class union_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION(Union):
139
+ pass
140
+
141
+ class struct_SDMA_PKT_COPY_LINEAR_TAG_0_0(Structure):
142
+ pass
143
+
144
+ struct_SDMA_PKT_COPY_LINEAR_TAG_0_0._pack_ = 1 # source:False
145
+ struct_SDMA_PKT_COPY_LINEAR_TAG_0_0._fields_ = [
146
+ ('op', ctypes.c_uint32, 8),
147
+ ('sub_op', ctypes.c_uint32, 8),
148
+ ('extra_info', ctypes.c_uint32, 16),
149
+ ]
150
+
151
+ union_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION._pack_ = 1 # source:False
152
+ union_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION._anonymous_ = ('_0',)
153
+ union_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION._fields_ = [
154
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_TAG_0_0),
155
+ ('DW_0_DATA', ctypes.c_uint32),
156
+ ]
157
+
158
+ class union_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION(Union):
159
+ pass
160
+
161
+ class struct_SDMA_PKT_COPY_LINEAR_TAG_1_0(Structure):
162
+ pass
163
+
164
+ struct_SDMA_PKT_COPY_LINEAR_TAG_1_0._pack_ = 1 # source:False
165
+ struct_SDMA_PKT_COPY_LINEAR_TAG_1_0._fields_ = [
166
+ ('count', ctypes.c_uint32, 22),
167
+ ('reserved_0', ctypes.c_uint32, 10),
168
+ ]
169
+
170
+ union_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION._pack_ = 1 # source:False
171
+ union_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION._anonymous_ = ('_0',)
172
+ union_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION._fields_ = [
173
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_TAG_1_0),
174
+ ('DW_1_DATA', ctypes.c_uint32),
175
+ ]
176
+
177
+ class union_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION(Union):
178
+ pass
179
+
180
+ class struct_SDMA_PKT_COPY_LINEAR_TAG_2_0(Structure):
181
+ pass
182
+
183
+ struct_SDMA_PKT_COPY_LINEAR_TAG_2_0._pack_ = 1 # source:False
184
+ struct_SDMA_PKT_COPY_LINEAR_TAG_2_0._fields_ = [
185
+ ('reserved_0', ctypes.c_uint32, 16),
186
+ ('dst_swap', ctypes.c_uint32, 2),
187
+ ('reserved_1', ctypes.c_uint32, 6),
188
+ ('src_swap', ctypes.c_uint32, 2),
189
+ ('reserved_2', ctypes.c_uint32, 6),
190
+ ]
191
+
192
+ union_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION._pack_ = 1 # source:False
193
+ union_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION._anonymous_ = ('_0',)
194
+ union_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION._fields_ = [
195
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_TAG_2_0),
196
+ ('DW_2_DATA', ctypes.c_uint32),
197
+ ]
198
+
199
+ class union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION(Union):
200
+ pass
201
+
202
+ class struct_SDMA_PKT_COPY_LINEAR_TAG_3_0(Structure):
203
+ pass
204
+
205
+ struct_SDMA_PKT_COPY_LINEAR_TAG_3_0._pack_ = 1 # source:False
206
+ struct_SDMA_PKT_COPY_LINEAR_TAG_3_0._fields_ = [
207
+ ('src_addr_31_0', ctypes.c_uint32, 32),
208
+ ]
209
+
210
+ union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION._pack_ = 1 # source:False
211
+ union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION._anonymous_ = ('_0',)
212
+ union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION._fields_ = [
213
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_TAG_3_0),
214
+ ('DW_3_DATA', ctypes.c_uint32),
215
+ ]
216
+
217
+ class union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION(Union):
218
+ pass
219
+
220
+ class struct_SDMA_PKT_COPY_LINEAR_TAG_4_0(Structure):
221
+ pass
222
+
223
+ struct_SDMA_PKT_COPY_LINEAR_TAG_4_0._pack_ = 1 # source:False
224
+ struct_SDMA_PKT_COPY_LINEAR_TAG_4_0._fields_ = [
225
+ ('src_addr_63_32', ctypes.c_uint32, 32),
226
+ ]
227
+
228
+ union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION._pack_ = 1 # source:False
229
+ union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION._anonymous_ = ('_0',)
230
+ union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION._fields_ = [
231
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_TAG_4_0),
232
+ ('DW_4_DATA', ctypes.c_uint32),
233
+ ]
234
+
235
+ class union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION(Union):
236
+ pass
237
+
238
+ class struct_SDMA_PKT_COPY_LINEAR_TAG_5_0(Structure):
239
+ pass
240
+
241
+ struct_SDMA_PKT_COPY_LINEAR_TAG_5_0._pack_ = 1 # source:False
242
+ struct_SDMA_PKT_COPY_LINEAR_TAG_5_0._fields_ = [
243
+ ('dst_addr_31_0', ctypes.c_uint32, 32),
244
+ ]
245
+
246
+ union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION._pack_ = 1 # source:False
247
+ union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION._anonymous_ = ('_0',)
248
+ union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION._fields_ = [
249
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_TAG_5_0),
250
+ ('DW_5_DATA', ctypes.c_uint32),
251
+ ]
252
+
253
+ class union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION(Union):
254
+ pass
255
+
256
+ class struct_SDMA_PKT_COPY_LINEAR_TAG_6_0(Structure):
257
+ pass
258
+
259
+ struct_SDMA_PKT_COPY_LINEAR_TAG_6_0._pack_ = 1 # source:False
260
+ struct_SDMA_PKT_COPY_LINEAR_TAG_6_0._fields_ = [
261
+ ('dst_addr_63_32', ctypes.c_uint32, 32),
262
+ ]
263
+
264
+ union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION._pack_ = 1 # source:False
265
+ union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION._anonymous_ = ('_0',)
266
+ union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION._fields_ = [
267
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_TAG_6_0),
268
+ ('DW_6_DATA', ctypes.c_uint32),
269
+ ]
270
+
271
+ struct_SDMA_PKT_COPY_LINEAR_TAG._pack_ = 1 # source:False
272
+ struct_SDMA_PKT_COPY_LINEAR_TAG._fields_ = [
273
+ ('HEADER_UNION', union_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION),
274
+ ('COUNT_UNION', union_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION),
275
+ ('PARAMETER_UNION', union_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION),
276
+ ('SRC_ADDR_LO_UNION', union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION),
277
+ ('SRC_ADDR_HI_UNION', union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION),
278
+ ('DST_ADDR_LO_UNION', union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION),
279
+ ('DST_ADDR_HI_UNION', union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION),
280
+ ]
281
+
282
+ SDMA_PKT_COPY_LINEAR = struct_SDMA_PKT_COPY_LINEAR_TAG
283
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG(Structure):
284
+ pass
285
+
286
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION(Union):
287
+ pass
288
+
289
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_0_0(Structure):
290
+ pass
291
+
292
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_0_0._pack_ = 1 # source:False
293
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_0_0._fields_ = [
294
+ ('op', ctypes.c_uint32, 8),
295
+ ('sub_op', ctypes.c_uint32, 8),
296
+ ('reserved', ctypes.c_uint32, 13),
297
+ ('element', ctypes.c_uint32, 3),
298
+ ]
299
+
300
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION._pack_ = 1 # source:False
301
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION._anonymous_ = ('_0',)
302
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION._fields_ = [
303
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_0_0),
304
+ ('DW_0_DATA', ctypes.c_uint32),
305
+ ]
306
+
307
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION(Union):
308
+ pass
309
+
310
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_1_0(Structure):
311
+ pass
312
+
313
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_1_0._pack_ = 1 # source:False
314
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_1_0._fields_ = [
315
+ ('src_addr_31_0', ctypes.c_uint32, 32),
316
+ ]
317
+
318
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION._pack_ = 1 # source:False
319
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION._anonymous_ = ('_0',)
320
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION._fields_ = [
321
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_1_0),
322
+ ('DW_1_DATA', ctypes.c_uint32),
323
+ ]
324
+
325
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION(Union):
326
+ pass
327
+
328
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_2_0(Structure):
329
+ pass
330
+
331
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_2_0._pack_ = 1 # source:False
332
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_2_0._fields_ = [
333
+ ('src_addr_63_32', ctypes.c_uint32, 32),
334
+ ]
335
+
336
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION._pack_ = 1 # source:False
337
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION._anonymous_ = ('_0',)
338
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION._fields_ = [
339
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_2_0),
340
+ ('DW_2_DATA', ctypes.c_uint32),
341
+ ]
342
+
343
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION(Union):
344
+ pass
345
+
346
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_3_0(Structure):
347
+ pass
348
+
349
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_3_0._pack_ = 1 # source:False
350
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_3_0._fields_ = [
351
+ ('src_offset_x', ctypes.c_uint32, 14),
352
+ ('reserved_1', ctypes.c_uint32, 2),
353
+ ('src_offset_y', ctypes.c_uint32, 14),
354
+ ('reserved_2', ctypes.c_uint32, 2),
355
+ ]
356
+
357
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION._pack_ = 1 # source:False
358
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION._anonymous_ = ('_0',)
359
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION._fields_ = [
360
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_3_0),
361
+ ('DW_3_DATA', ctypes.c_uint32),
362
+ ]
363
+
364
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION(Union):
365
+ pass
366
+
367
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_4_0(Structure):
368
+ pass
369
+
370
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_4_0._pack_ = 1 # source:False
371
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_4_0._fields_ = [
372
+ ('src_offset_z', ctypes.c_uint32, 11),
373
+ ('reserved_1', ctypes.c_uint32, 2),
374
+ ('src_pitch', ctypes.c_uint32, 19),
375
+ ]
376
+
377
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION._pack_ = 1 # source:False
378
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION._anonymous_ = ('_0',)
379
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION._fields_ = [
380
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_4_0),
381
+ ('DW_4_DATA', ctypes.c_uint32),
382
+ ]
383
+
384
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION(Union):
385
+ pass
386
+
387
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_5_0(Structure):
388
+ pass
389
+
390
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_5_0._pack_ = 1 # source:False
391
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_5_0._fields_ = [
392
+ ('src_slice_pitch', ctypes.c_uint32, 28),
393
+ ('reserved_1', ctypes.c_uint32, 4),
394
+ ]
395
+
396
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION._pack_ = 1 # source:False
397
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION._anonymous_ = ('_0',)
398
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION._fields_ = [
399
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_5_0),
400
+ ('DW_5_DATA', ctypes.c_uint32),
401
+ ]
402
+
403
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION(Union):
404
+ pass
405
+
406
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_6_0(Structure):
407
+ pass
408
+
409
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_6_0._pack_ = 1 # source:False
410
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_6_0._fields_ = [
411
+ ('dst_addr_31_0', ctypes.c_uint32, 32),
412
+ ]
413
+
414
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION._pack_ = 1 # source:False
415
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION._anonymous_ = ('_0',)
416
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION._fields_ = [
417
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_6_0),
418
+ ('DW_6_DATA', ctypes.c_uint32),
419
+ ]
420
+
421
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION(Union):
422
+ pass
423
+
424
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_7_0(Structure):
425
+ pass
426
+
427
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_7_0._pack_ = 1 # source:False
428
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_7_0._fields_ = [
429
+ ('dst_addr_63_32', ctypes.c_uint32, 32),
430
+ ]
431
+
432
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION._pack_ = 1 # source:False
433
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION._anonymous_ = ('_0',)
434
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION._fields_ = [
435
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_7_0),
436
+ ('DW_7_DATA', ctypes.c_uint32),
437
+ ]
438
+
439
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION(Union):
440
+ pass
441
+
442
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_8_0(Structure):
443
+ pass
444
+
445
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_8_0._pack_ = 1 # source:False
446
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_8_0._fields_ = [
447
+ ('dst_offset_x', ctypes.c_uint32, 14),
448
+ ('reserved_1', ctypes.c_uint32, 2),
449
+ ('dst_offset_y', ctypes.c_uint32, 14),
450
+ ('reserved_2', ctypes.c_uint32, 2),
451
+ ]
452
+
453
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION._pack_ = 1 # source:False
454
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION._anonymous_ = ('_0',)
455
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION._fields_ = [
456
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_8_0),
457
+ ('DW_8_DATA', ctypes.c_uint32),
458
+ ]
459
+
460
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION(Union):
461
+ pass
462
+
463
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_9_0(Structure):
464
+ pass
465
+
466
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_9_0._pack_ = 1 # source:False
467
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_9_0._fields_ = [
468
+ ('dst_offset_z', ctypes.c_uint32, 11),
469
+ ('reserved_1', ctypes.c_uint32, 2),
470
+ ('dst_pitch', ctypes.c_uint32, 19),
471
+ ]
472
+
473
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION._pack_ = 1 # source:False
474
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION._anonymous_ = ('_0',)
475
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION._fields_ = [
476
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_9_0),
477
+ ('DW_9_DATA', ctypes.c_uint32),
478
+ ]
479
+
480
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION(Union):
481
+ pass
482
+
483
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_10_0(Structure):
484
+ pass
485
+
486
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_10_0._pack_ = 1 # source:False
487
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_10_0._fields_ = [
488
+ ('dst_slice_pitch', ctypes.c_uint32, 28),
489
+ ('reserved_1', ctypes.c_uint32, 4),
490
+ ]
491
+
492
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION._pack_ = 1 # source:False
493
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION._anonymous_ = ('_0',)
494
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION._fields_ = [
495
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_10_0),
496
+ ('DW_10_DATA', ctypes.c_uint32),
497
+ ]
498
+
499
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION(Union):
500
+ pass
501
+
502
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_11_0(Structure):
503
+ pass
504
+
505
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_11_0._pack_ = 1 # source:False
506
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_11_0._fields_ = [
507
+ ('rect_x', ctypes.c_uint32, 14),
508
+ ('reserved_1', ctypes.c_uint32, 2),
509
+ ('rect_y', ctypes.c_uint32, 14),
510
+ ('reserved_2', ctypes.c_uint32, 2),
511
+ ]
512
+
513
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION._pack_ = 1 # source:False
514
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION._anonymous_ = ('_0',)
515
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION._fields_ = [
516
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_11_0),
517
+ ('DW_11_DATA', ctypes.c_uint32),
518
+ ]
519
+
520
+ class union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION(Union):
521
+ pass
522
+
523
+ class struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_12_0(Structure):
524
+ pass
525
+
526
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_12_0._pack_ = 1 # source:False
527
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_12_0._fields_ = [
528
+ ('rect_z', ctypes.c_uint32, 11),
529
+ ('reserved_1', ctypes.c_uint32, 5),
530
+ ('dst_swap', ctypes.c_uint32, 2),
531
+ ('reserved_2', ctypes.c_uint32, 6),
532
+ ('src_swap', ctypes.c_uint32, 2),
533
+ ('reserved_3', ctypes.c_uint32, 6),
534
+ ]
535
+
536
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION._pack_ = 1 # source:False
537
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION._anonymous_ = ('_0',)
538
+ union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION._fields_ = [
539
+ ('_0', struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_12_0),
540
+ ('DW_12_DATA', ctypes.c_uint32),
541
+ ]
542
+
543
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG._pack_ = 1 # source:False
544
+ struct_SDMA_PKT_COPY_LINEAR_RECT_TAG._fields_ = [
545
+ ('HEADER_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION),
546
+ ('SRC_ADDR_LO_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION),
547
+ ('SRC_ADDR_HI_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION),
548
+ ('SRC_PARAMETER_1_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION),
549
+ ('SRC_PARAMETER_2_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION),
550
+ ('SRC_PARAMETER_3_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION),
551
+ ('DST_ADDR_LO_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION),
552
+ ('DST_ADDR_HI_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION),
553
+ ('DST_PARAMETER_1_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION),
554
+ ('DST_PARAMETER_2_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION),
555
+ ('DST_PARAMETER_3_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION),
556
+ ('RECT_PARAMETER_1_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION),
557
+ ('RECT_PARAMETER_2_UNION', union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION),
558
+ ]
559
+
560
+ SDMA_PKT_COPY_LINEAR_RECT = struct_SDMA_PKT_COPY_LINEAR_RECT_TAG
561
+ class struct_SDMA_PKT_CONSTANT_FILL_TAG(Structure):
562
+ pass
563
+
564
+ class union_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION(Union):
565
+ pass
566
+
567
+ class struct_SDMA_PKT_CONSTANT_FILL_TAG_0_0(Structure):
568
+ pass
569
+
570
+ struct_SDMA_PKT_CONSTANT_FILL_TAG_0_0._pack_ = 1 # source:False
571
+ struct_SDMA_PKT_CONSTANT_FILL_TAG_0_0._fields_ = [
572
+ ('op', ctypes.c_uint32, 8),
573
+ ('sub_op', ctypes.c_uint32, 8),
574
+ ('sw', ctypes.c_uint32, 2),
575
+ ('reserved_0', ctypes.c_uint32, 12),
576
+ ('fillsize', ctypes.c_uint32, 2),
577
+ ]
578
+
579
+ union_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION._pack_ = 1 # source:False
580
+ union_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION._anonymous_ = ('_0',)
581
+ union_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION._fields_ = [
582
+ ('_0', struct_SDMA_PKT_CONSTANT_FILL_TAG_0_0),
583
+ ('DW_0_DATA', ctypes.c_uint32),
584
+ ]
585
+
586
+ class union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION(Union):
587
+ pass
588
+
589
+ class struct_SDMA_PKT_CONSTANT_FILL_TAG_1_0(Structure):
590
+ pass
591
+
592
+ struct_SDMA_PKT_CONSTANT_FILL_TAG_1_0._pack_ = 1 # source:False
593
+ struct_SDMA_PKT_CONSTANT_FILL_TAG_1_0._fields_ = [
594
+ ('dst_addr_31_0', ctypes.c_uint32, 32),
595
+ ]
596
+
597
+ union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION._pack_ = 1 # source:False
598
+ union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION._anonymous_ = ('_0',)
599
+ union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION._fields_ = [
600
+ ('_0', struct_SDMA_PKT_CONSTANT_FILL_TAG_1_0),
601
+ ('DW_1_DATA', ctypes.c_uint32),
602
+ ]
603
+
604
+ class union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION(Union):
605
+ pass
606
+
607
+ class struct_SDMA_PKT_CONSTANT_FILL_TAG_2_0(Structure):
608
+ pass
609
+
610
+ struct_SDMA_PKT_CONSTANT_FILL_TAG_2_0._pack_ = 1 # source:False
611
+ struct_SDMA_PKT_CONSTANT_FILL_TAG_2_0._fields_ = [
612
+ ('dst_addr_63_32', ctypes.c_uint32, 32),
613
+ ]
614
+
615
+ union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION._pack_ = 1 # source:False
616
+ union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION._anonymous_ = ('_0',)
617
+ union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION._fields_ = [
618
+ ('_0', struct_SDMA_PKT_CONSTANT_FILL_TAG_2_0),
619
+ ('DW_2_DATA', ctypes.c_uint32),
620
+ ]
621
+
622
+ class union_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION(Union):
623
+ pass
624
+
625
+ class struct_SDMA_PKT_CONSTANT_FILL_TAG_3_0(Structure):
626
+ pass
627
+
628
+ struct_SDMA_PKT_CONSTANT_FILL_TAG_3_0._pack_ = 1 # source:False
629
+ struct_SDMA_PKT_CONSTANT_FILL_TAG_3_0._fields_ = [
630
+ ('src_data_31_0', ctypes.c_uint32, 32),
631
+ ]
632
+
633
+ union_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION._pack_ = 1 # source:False
634
+ union_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION._anonymous_ = ('_0',)
635
+ union_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION._fields_ = [
636
+ ('_0', struct_SDMA_PKT_CONSTANT_FILL_TAG_3_0),
637
+ ('DW_3_DATA', ctypes.c_uint32),
638
+ ]
639
+
640
+ class union_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION(Union):
641
+ pass
642
+
643
+ class struct_SDMA_PKT_CONSTANT_FILL_TAG_4_0(Structure):
644
+ pass
645
+
646
+ struct_SDMA_PKT_CONSTANT_FILL_TAG_4_0._pack_ = 1 # source:False
647
+ struct_SDMA_PKT_CONSTANT_FILL_TAG_4_0._fields_ = [
648
+ ('count', ctypes.c_uint32, 22),
649
+ ('reserved_0', ctypes.c_uint32, 10),
650
+ ]
651
+
652
+ union_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION._pack_ = 1 # source:False
653
+ union_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION._anonymous_ = ('_0',)
654
+ union_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION._fields_ = [
655
+ ('_0', struct_SDMA_PKT_CONSTANT_FILL_TAG_4_0),
656
+ ('DW_4_DATA', ctypes.c_uint32),
657
+ ]
658
+
659
+ struct_SDMA_PKT_CONSTANT_FILL_TAG._pack_ = 1 # source:False
660
+ struct_SDMA_PKT_CONSTANT_FILL_TAG._fields_ = [
661
+ ('HEADER_UNION', union_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION),
662
+ ('DST_ADDR_LO_UNION', union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION),
663
+ ('DST_ADDR_HI_UNION', union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION),
664
+ ('DATA_UNION', union_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION),
665
+ ('COUNT_UNION', union_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION),
666
+ ]
667
+
668
+ SDMA_PKT_CONSTANT_FILL = struct_SDMA_PKT_CONSTANT_FILL_TAG
669
+ class struct_SDMA_PKT_FENCE_TAG(Structure):
670
+ pass
671
+
672
+ class union_SDMA_PKT_FENCE_TAG_HEADER_UNION(Union):
673
+ pass
674
+
675
+ class struct_SDMA_PKT_FENCE_TAG_0_0(Structure):
676
+ pass
677
+
678
+ struct_SDMA_PKT_FENCE_TAG_0_0._pack_ = 1 # source:False
679
+ struct_SDMA_PKT_FENCE_TAG_0_0._fields_ = [
680
+ ('op', ctypes.c_uint32, 8),
681
+ ('sub_op', ctypes.c_uint32, 8),
682
+ ('mtype', ctypes.c_uint32, 3),
683
+ ('gcc', ctypes.c_uint32, 1),
684
+ ('sys', ctypes.c_uint32, 1),
685
+ ('pad1', ctypes.c_uint32, 1),
686
+ ('snp', ctypes.c_uint32, 1),
687
+ ('gpa', ctypes.c_uint32, 1),
688
+ ('l2_policy', ctypes.c_uint32, 2),
689
+ ('reserved_0', ctypes.c_uint32, 6),
690
+ ]
691
+
692
+ union_SDMA_PKT_FENCE_TAG_HEADER_UNION._pack_ = 1 # source:False
693
+ union_SDMA_PKT_FENCE_TAG_HEADER_UNION._anonymous_ = ('_0',)
694
+ union_SDMA_PKT_FENCE_TAG_HEADER_UNION._fields_ = [
695
+ ('_0', struct_SDMA_PKT_FENCE_TAG_0_0),
696
+ ('DW_0_DATA', ctypes.c_uint32),
697
+ ]
698
+
699
+ class union_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION(Union):
700
+ pass
701
+
702
+ class struct_SDMA_PKT_FENCE_TAG_1_0(Structure):
703
+ pass
704
+
705
+ struct_SDMA_PKT_FENCE_TAG_1_0._pack_ = 1 # source:False
706
+ struct_SDMA_PKT_FENCE_TAG_1_0._fields_ = [
707
+ ('addr_31_0', ctypes.c_uint32, 32),
708
+ ]
709
+
710
+ union_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION._pack_ = 1 # source:False
711
+ union_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION._anonymous_ = ('_0',)
712
+ union_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION._fields_ = [
713
+ ('_0', struct_SDMA_PKT_FENCE_TAG_1_0),
714
+ ('DW_1_DATA', ctypes.c_uint32),
715
+ ]
716
+
717
+ class union_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION(Union):
718
+ pass
719
+
720
+ class struct_SDMA_PKT_FENCE_TAG_2_0(Structure):
721
+ pass
722
+
723
+ struct_SDMA_PKT_FENCE_TAG_2_0._pack_ = 1 # source:False
724
+ struct_SDMA_PKT_FENCE_TAG_2_0._fields_ = [
725
+ ('addr_63_32', ctypes.c_uint32, 32),
726
+ ]
727
+
728
+ union_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION._pack_ = 1 # source:False
729
+ union_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION._anonymous_ = ('_0',)
730
+ union_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION._fields_ = [
731
+ ('_0', struct_SDMA_PKT_FENCE_TAG_2_0),
732
+ ('DW_2_DATA', ctypes.c_uint32),
733
+ ]
734
+
735
+ class union_SDMA_PKT_FENCE_TAG_DATA_UNION(Union):
736
+ pass
737
+
738
+ class struct_SDMA_PKT_FENCE_TAG_3_0(Structure):
739
+ pass
740
+
741
+ struct_SDMA_PKT_FENCE_TAG_3_0._pack_ = 1 # source:False
742
+ struct_SDMA_PKT_FENCE_TAG_3_0._fields_ = [
743
+ ('data', ctypes.c_uint32, 32),
744
+ ]
745
+
746
+ union_SDMA_PKT_FENCE_TAG_DATA_UNION._pack_ = 1 # source:False
747
+ union_SDMA_PKT_FENCE_TAG_DATA_UNION._anonymous_ = ('_0',)
748
+ union_SDMA_PKT_FENCE_TAG_DATA_UNION._fields_ = [
749
+ ('_0', struct_SDMA_PKT_FENCE_TAG_3_0),
750
+ ('DW_3_DATA', ctypes.c_uint32),
751
+ ]
752
+
753
+ struct_SDMA_PKT_FENCE_TAG._pack_ = 1 # source:False
754
+ struct_SDMA_PKT_FENCE_TAG._fields_ = [
755
+ ('HEADER_UNION', union_SDMA_PKT_FENCE_TAG_HEADER_UNION),
756
+ ('ADDR_LO_UNION', union_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION),
757
+ ('ADDR_HI_UNION', union_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION),
758
+ ('DATA_UNION', union_SDMA_PKT_FENCE_TAG_DATA_UNION),
759
+ ]
760
+
761
+ SDMA_PKT_FENCE = struct_SDMA_PKT_FENCE_TAG
762
+ class struct_SDMA_PKT_POLL_REGMEM_TAG(Structure):
763
+ pass
764
+
765
+ class union_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION(Union):
766
+ pass
767
+
768
+ class struct_SDMA_PKT_POLL_REGMEM_TAG_0_0(Structure):
769
+ pass
770
+
771
+ struct_SDMA_PKT_POLL_REGMEM_TAG_0_0._pack_ = 1 # source:False
772
+ struct_SDMA_PKT_POLL_REGMEM_TAG_0_0._fields_ = [
773
+ ('op', ctypes.c_uint32, 8),
774
+ ('sub_op', ctypes.c_uint32, 8),
775
+ ('reserved_0', ctypes.c_uint32, 10),
776
+ ('hdp_flush', ctypes.c_uint32, 1),
777
+ ('reserved_1', ctypes.c_uint32, 1),
778
+ ('func', ctypes.c_uint32, 3),
779
+ ('mem_poll', ctypes.c_uint32, 1),
780
+ ]
781
+
782
+ union_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION._pack_ = 1 # source:False
783
+ union_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION._anonymous_ = ('_0',)
784
+ union_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION._fields_ = [
785
+ ('_0', struct_SDMA_PKT_POLL_REGMEM_TAG_0_0),
786
+ ('DW_0_DATA', ctypes.c_uint32),
787
+ ]
788
+
789
+ class union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION(Union):
790
+ pass
791
+
792
+ class struct_SDMA_PKT_POLL_REGMEM_TAG_1_0(Structure):
793
+ pass
794
+
795
+ struct_SDMA_PKT_POLL_REGMEM_TAG_1_0._pack_ = 1 # source:False
796
+ struct_SDMA_PKT_POLL_REGMEM_TAG_1_0._fields_ = [
797
+ ('addr_31_0', ctypes.c_uint32, 32),
798
+ ]
799
+
800
+ union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION._pack_ = 1 # source:False
801
+ union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION._anonymous_ = ('_0',)
802
+ union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION._fields_ = [
803
+ ('_0', struct_SDMA_PKT_POLL_REGMEM_TAG_1_0),
804
+ ('DW_1_DATA', ctypes.c_uint32),
805
+ ]
806
+
807
+ class union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION(Union):
808
+ pass
809
+
810
+ class struct_SDMA_PKT_POLL_REGMEM_TAG_2_0(Structure):
811
+ pass
812
+
813
+ struct_SDMA_PKT_POLL_REGMEM_TAG_2_0._pack_ = 1 # source:False
814
+ struct_SDMA_PKT_POLL_REGMEM_TAG_2_0._fields_ = [
815
+ ('addr_63_32', ctypes.c_uint32, 32),
816
+ ]
817
+
818
+ union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION._pack_ = 1 # source:False
819
+ union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION._anonymous_ = ('_0',)
820
+ union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION._fields_ = [
821
+ ('_0', struct_SDMA_PKT_POLL_REGMEM_TAG_2_0),
822
+ ('DW_2_DATA', ctypes.c_uint32),
823
+ ]
824
+
825
+ class union_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION(Union):
826
+ pass
827
+
828
+ class struct_SDMA_PKT_POLL_REGMEM_TAG_3_0(Structure):
829
+ pass
830
+
831
+ struct_SDMA_PKT_POLL_REGMEM_TAG_3_0._pack_ = 1 # source:False
832
+ struct_SDMA_PKT_POLL_REGMEM_TAG_3_0._fields_ = [
833
+ ('value', ctypes.c_uint32, 32),
834
+ ]
835
+
836
+ union_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION._pack_ = 1 # source:False
837
+ union_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION._anonymous_ = ('_0',)
838
+ union_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION._fields_ = [
839
+ ('_0', struct_SDMA_PKT_POLL_REGMEM_TAG_3_0),
840
+ ('DW_3_DATA', ctypes.c_uint32),
841
+ ]
842
+
843
+ class union_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION(Union):
844
+ pass
845
+
846
+ class struct_SDMA_PKT_POLL_REGMEM_TAG_4_0(Structure):
847
+ pass
848
+
849
+ struct_SDMA_PKT_POLL_REGMEM_TAG_4_0._pack_ = 1 # source:False
850
+ struct_SDMA_PKT_POLL_REGMEM_TAG_4_0._fields_ = [
851
+ ('mask', ctypes.c_uint32, 32),
852
+ ]
853
+
854
+ union_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION._pack_ = 1 # source:False
855
+ union_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION._anonymous_ = ('_0',)
856
+ union_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION._fields_ = [
857
+ ('_0', struct_SDMA_PKT_POLL_REGMEM_TAG_4_0),
858
+ ('DW_4_DATA', ctypes.c_uint32),
859
+ ]
860
+
861
+ class union_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION(Union):
862
+ pass
863
+
864
+ class struct_SDMA_PKT_POLL_REGMEM_TAG_5_0(Structure):
865
+ pass
866
+
867
+ struct_SDMA_PKT_POLL_REGMEM_TAG_5_0._pack_ = 1 # source:False
868
+ struct_SDMA_PKT_POLL_REGMEM_TAG_5_0._fields_ = [
869
+ ('interval', ctypes.c_uint32, 16),
870
+ ('retry_count', ctypes.c_uint32, 12),
871
+ ('reserved_0', ctypes.c_uint32, 4),
872
+ ]
873
+
874
+ union_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION._pack_ = 1 # source:False
875
+ union_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION._anonymous_ = ('_0',)
876
+ union_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION._fields_ = [
877
+ ('_0', struct_SDMA_PKT_POLL_REGMEM_TAG_5_0),
878
+ ('DW_5_DATA', ctypes.c_uint32),
879
+ ]
880
+
881
+ struct_SDMA_PKT_POLL_REGMEM_TAG._pack_ = 1 # source:False
882
+ struct_SDMA_PKT_POLL_REGMEM_TAG._fields_ = [
883
+ ('HEADER_UNION', union_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION),
884
+ ('ADDR_LO_UNION', union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION),
885
+ ('ADDR_HI_UNION', union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION),
886
+ ('VALUE_UNION', union_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION),
887
+ ('MASK_UNION', union_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION),
888
+ ('DW5_UNION', union_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION),
889
+ ]
890
+
891
+ SDMA_PKT_POLL_REGMEM = struct_SDMA_PKT_POLL_REGMEM_TAG
892
+ class struct_SDMA_PKT_ATOMIC_TAG(Structure):
893
+ pass
894
+
895
+ class union_SDMA_PKT_ATOMIC_TAG_HEADER_UNION(Union):
896
+ pass
897
+
898
+ class struct_SDMA_PKT_ATOMIC_TAG_0_0(Structure):
899
+ pass
900
+
901
+ struct_SDMA_PKT_ATOMIC_TAG_0_0._pack_ = 1 # source:False
902
+ struct_SDMA_PKT_ATOMIC_TAG_0_0._fields_ = [
903
+ ('op', ctypes.c_uint32, 8),
904
+ ('sub_op', ctypes.c_uint32, 8),
905
+ ('l', ctypes.c_uint32, 1),
906
+ ('reserved_0', ctypes.c_uint32, 8),
907
+ ('operation', ctypes.c_uint32, 7),
908
+ ]
909
+
910
+ union_SDMA_PKT_ATOMIC_TAG_HEADER_UNION._pack_ = 1 # source:False
911
+ union_SDMA_PKT_ATOMIC_TAG_HEADER_UNION._anonymous_ = ('_0',)
912
+ union_SDMA_PKT_ATOMIC_TAG_HEADER_UNION._fields_ = [
913
+ ('_0', struct_SDMA_PKT_ATOMIC_TAG_0_0),
914
+ ('DW_0_DATA', ctypes.c_uint32),
915
+ ]
916
+
917
+ class union_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION(Union):
918
+ pass
919
+
920
+ class struct_SDMA_PKT_ATOMIC_TAG_1_0(Structure):
921
+ pass
922
+
923
+ struct_SDMA_PKT_ATOMIC_TAG_1_0._pack_ = 1 # source:False
924
+ struct_SDMA_PKT_ATOMIC_TAG_1_0._fields_ = [
925
+ ('addr_31_0', ctypes.c_uint32, 32),
926
+ ]
927
+
928
+ union_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION._pack_ = 1 # source:False
929
+ union_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION._anonymous_ = ('_0',)
930
+ union_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION._fields_ = [
931
+ ('_0', struct_SDMA_PKT_ATOMIC_TAG_1_0),
932
+ ('DW_1_DATA', ctypes.c_uint32),
933
+ ]
934
+
935
+ class union_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION(Union):
936
+ pass
937
+
938
+ class struct_SDMA_PKT_ATOMIC_TAG_2_0(Structure):
939
+ pass
940
+
941
+ struct_SDMA_PKT_ATOMIC_TAG_2_0._pack_ = 1 # source:False
942
+ struct_SDMA_PKT_ATOMIC_TAG_2_0._fields_ = [
943
+ ('addr_63_32', ctypes.c_uint32, 32),
944
+ ]
945
+
946
+ union_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION._pack_ = 1 # source:False
947
+ union_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION._anonymous_ = ('_0',)
948
+ union_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION._fields_ = [
949
+ ('_0', struct_SDMA_PKT_ATOMIC_TAG_2_0),
950
+ ('DW_2_DATA', ctypes.c_uint32),
951
+ ]
952
+
953
+ class union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION(Union):
954
+ pass
955
+
956
+ class struct_SDMA_PKT_ATOMIC_TAG_3_0(Structure):
957
+ pass
958
+
959
+ struct_SDMA_PKT_ATOMIC_TAG_3_0._pack_ = 1 # source:False
960
+ struct_SDMA_PKT_ATOMIC_TAG_3_0._fields_ = [
961
+ ('src_data_31_0', ctypes.c_uint32, 32),
962
+ ]
963
+
964
+ union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION._pack_ = 1 # source:False
965
+ union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION._anonymous_ = ('_0',)
966
+ union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION._fields_ = [
967
+ ('_0', struct_SDMA_PKT_ATOMIC_TAG_3_0),
968
+ ('DW_3_DATA', ctypes.c_uint32),
969
+ ]
970
+
971
+ class union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION(Union):
972
+ pass
973
+
974
+ class struct_SDMA_PKT_ATOMIC_TAG_4_0(Structure):
975
+ pass
976
+
977
+ struct_SDMA_PKT_ATOMIC_TAG_4_0._pack_ = 1 # source:False
978
+ struct_SDMA_PKT_ATOMIC_TAG_4_0._fields_ = [
979
+ ('src_data_63_32', ctypes.c_uint32, 32),
980
+ ]
981
+
982
+ union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION._pack_ = 1 # source:False
983
+ union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION._anonymous_ = ('_0',)
984
+ union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION._fields_ = [
985
+ ('_0', struct_SDMA_PKT_ATOMIC_TAG_4_0),
986
+ ('DW_4_DATA', ctypes.c_uint32),
987
+ ]
988
+
989
+ class union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION(Union):
990
+ pass
991
+
992
+ class struct_SDMA_PKT_ATOMIC_TAG_5_0(Structure):
993
+ pass
994
+
995
+ struct_SDMA_PKT_ATOMIC_TAG_5_0._pack_ = 1 # source:False
996
+ struct_SDMA_PKT_ATOMIC_TAG_5_0._fields_ = [
997
+ ('cmp_data_31_0', ctypes.c_uint32, 32),
998
+ ]
999
+
1000
+ union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION._pack_ = 1 # source:False
1001
+ union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION._anonymous_ = ('_0',)
1002
+ union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION._fields_ = [
1003
+ ('_0', struct_SDMA_PKT_ATOMIC_TAG_5_0),
1004
+ ('DW_5_DATA', ctypes.c_uint32),
1005
+ ]
1006
+
1007
+ class union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION(Union):
1008
+ pass
1009
+
1010
+ class struct_SDMA_PKT_ATOMIC_TAG_6_0(Structure):
1011
+ pass
1012
+
1013
+ struct_SDMA_PKT_ATOMIC_TAG_6_0._pack_ = 1 # source:False
1014
+ struct_SDMA_PKT_ATOMIC_TAG_6_0._fields_ = [
1015
+ ('cmp_data_63_32', ctypes.c_uint32, 32),
1016
+ ]
1017
+
1018
+ union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION._pack_ = 1 # source:False
1019
+ union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION._anonymous_ = ('_0',)
1020
+ union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION._fields_ = [
1021
+ ('_0', struct_SDMA_PKT_ATOMIC_TAG_6_0),
1022
+ ('DW_6_DATA', ctypes.c_uint32),
1023
+ ]
1024
+
1025
+ class union_SDMA_PKT_ATOMIC_TAG_LOOP_UNION(Union):
1026
+ pass
1027
+
1028
+ class struct_SDMA_PKT_ATOMIC_TAG_7_0(Structure):
1029
+ pass
1030
+
1031
+ struct_SDMA_PKT_ATOMIC_TAG_7_0._pack_ = 1 # source:False
1032
+ struct_SDMA_PKT_ATOMIC_TAG_7_0._fields_ = [
1033
+ ('loop_interval', ctypes.c_uint32, 13),
1034
+ ('reserved_0', ctypes.c_uint32, 19),
1035
+ ]
1036
+
1037
+ union_SDMA_PKT_ATOMIC_TAG_LOOP_UNION._pack_ = 1 # source:False
1038
+ union_SDMA_PKT_ATOMIC_TAG_LOOP_UNION._anonymous_ = ('_0',)
1039
+ union_SDMA_PKT_ATOMIC_TAG_LOOP_UNION._fields_ = [
1040
+ ('_0', struct_SDMA_PKT_ATOMIC_TAG_7_0),
1041
+ ('DW_7_DATA', ctypes.c_uint32),
1042
+ ]
1043
+
1044
+ struct_SDMA_PKT_ATOMIC_TAG._pack_ = 1 # source:False
1045
+ struct_SDMA_PKT_ATOMIC_TAG._fields_ = [
1046
+ ('HEADER_UNION', union_SDMA_PKT_ATOMIC_TAG_HEADER_UNION),
1047
+ ('ADDR_LO_UNION', union_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION),
1048
+ ('ADDR_HI_UNION', union_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION),
1049
+ ('SRC_DATA_LO_UNION', union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION),
1050
+ ('SRC_DATA_HI_UNION', union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION),
1051
+ ('CMP_DATA_LO_UNION', union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION),
1052
+ ('CMP_DATA_HI_UNION', union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION),
1053
+ ('LOOP_UNION', union_SDMA_PKT_ATOMIC_TAG_LOOP_UNION),
1054
+ ]
1055
+
1056
+ SDMA_PKT_ATOMIC = struct_SDMA_PKT_ATOMIC_TAG
1057
+ class struct_SDMA_PKT_TIMESTAMP_TAG(Structure):
1058
+ pass
1059
+
1060
+ class union_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION(Union):
1061
+ pass
1062
+
1063
+ class struct_SDMA_PKT_TIMESTAMP_TAG_0_0(Structure):
1064
+ pass
1065
+
1066
+ struct_SDMA_PKT_TIMESTAMP_TAG_0_0._pack_ = 1 # source:False
1067
+ struct_SDMA_PKT_TIMESTAMP_TAG_0_0._fields_ = [
1068
+ ('op', ctypes.c_uint32, 8),
1069
+ ('sub_op', ctypes.c_uint32, 8),
1070
+ ('reserved_0', ctypes.c_uint32, 16),
1071
+ ]
1072
+
1073
+ union_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION._pack_ = 1 # source:False
1074
+ union_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION._anonymous_ = ('_0',)
1075
+ union_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION._fields_ = [
1076
+ ('_0', struct_SDMA_PKT_TIMESTAMP_TAG_0_0),
1077
+ ('DW_0_DATA', ctypes.c_uint32),
1078
+ ]
1079
+
1080
+ class union_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION(Union):
1081
+ pass
1082
+
1083
+ class struct_SDMA_PKT_TIMESTAMP_TAG_1_0(Structure):
1084
+ pass
1085
+
1086
+ struct_SDMA_PKT_TIMESTAMP_TAG_1_0._pack_ = 1 # source:False
1087
+ struct_SDMA_PKT_TIMESTAMP_TAG_1_0._fields_ = [
1088
+ ('addr_31_0', ctypes.c_uint32, 32),
1089
+ ]
1090
+
1091
+ union_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION._pack_ = 1 # source:False
1092
+ union_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION._anonymous_ = ('_0',)
1093
+ union_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION._fields_ = [
1094
+ ('_0', struct_SDMA_PKT_TIMESTAMP_TAG_1_0),
1095
+ ('DW_1_DATA', ctypes.c_uint32),
1096
+ ]
1097
+
1098
+ class union_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION(Union):
1099
+ pass
1100
+
1101
+ class struct_SDMA_PKT_TIMESTAMP_TAG_2_0(Structure):
1102
+ pass
1103
+
1104
+ struct_SDMA_PKT_TIMESTAMP_TAG_2_0._pack_ = 1 # source:False
1105
+ struct_SDMA_PKT_TIMESTAMP_TAG_2_0._fields_ = [
1106
+ ('addr_63_32', ctypes.c_uint32, 32),
1107
+ ]
1108
+
1109
+ union_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION._pack_ = 1 # source:False
1110
+ union_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION._anonymous_ = ('_0',)
1111
+ union_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION._fields_ = [
1112
+ ('_0', struct_SDMA_PKT_TIMESTAMP_TAG_2_0),
1113
+ ('DW_2_DATA', ctypes.c_uint32),
1114
+ ]
1115
+
1116
+ struct_SDMA_PKT_TIMESTAMP_TAG._pack_ = 1 # source:False
1117
+ struct_SDMA_PKT_TIMESTAMP_TAG._fields_ = [
1118
+ ('HEADER_UNION', union_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION),
1119
+ ('ADDR_LO_UNION', union_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION),
1120
+ ('ADDR_HI_UNION', union_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION),
1121
+ ]
1122
+
1123
+ SDMA_PKT_TIMESTAMP = struct_SDMA_PKT_TIMESTAMP_TAG
1124
+ class struct_SDMA_PKT_TRAP_TAG(Structure):
1125
+ pass
1126
+
1127
+ class union_SDMA_PKT_TRAP_TAG_HEADER_UNION(Union):
1128
+ pass
1129
+
1130
+ class struct_SDMA_PKT_TRAP_TAG_0_0(Structure):
1131
+ pass
1132
+
1133
+ struct_SDMA_PKT_TRAP_TAG_0_0._pack_ = 1 # source:False
1134
+ struct_SDMA_PKT_TRAP_TAG_0_0._fields_ = [
1135
+ ('op', ctypes.c_uint32, 8),
1136
+ ('sub_op', ctypes.c_uint32, 8),
1137
+ ('reserved_0', ctypes.c_uint32, 16),
1138
+ ]
1139
+
1140
+ union_SDMA_PKT_TRAP_TAG_HEADER_UNION._pack_ = 1 # source:False
1141
+ union_SDMA_PKT_TRAP_TAG_HEADER_UNION._anonymous_ = ('_0',)
1142
+ union_SDMA_PKT_TRAP_TAG_HEADER_UNION._fields_ = [
1143
+ ('_0', struct_SDMA_PKT_TRAP_TAG_0_0),
1144
+ ('DW_0_DATA', ctypes.c_uint32),
1145
+ ]
1146
+
1147
+ class union_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION(Union):
1148
+ pass
1149
+
1150
+ class struct_SDMA_PKT_TRAP_TAG_1_0(Structure):
1151
+ pass
1152
+
1153
+ struct_SDMA_PKT_TRAP_TAG_1_0._pack_ = 1 # source:False
1154
+ struct_SDMA_PKT_TRAP_TAG_1_0._fields_ = [
1155
+ ('int_ctx', ctypes.c_uint32, 28),
1156
+ ('reserved_1', ctypes.c_uint32, 4),
1157
+ ]
1158
+
1159
+ union_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION._pack_ = 1 # source:False
1160
+ union_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION._anonymous_ = ('_0',)
1161
+ union_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION._fields_ = [
1162
+ ('_0', struct_SDMA_PKT_TRAP_TAG_1_0),
1163
+ ('DW_1_DATA', ctypes.c_uint32),
1164
+ ]
1165
+
1166
+ struct_SDMA_PKT_TRAP_TAG._pack_ = 1 # source:False
1167
+ struct_SDMA_PKT_TRAP_TAG._fields_ = [
1168
+ ('HEADER_UNION', union_SDMA_PKT_TRAP_TAG_HEADER_UNION),
1169
+ ('INT_CONTEXT_UNION', union_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION),
1170
+ ]
1171
+
1172
+ SDMA_PKT_TRAP = struct_SDMA_PKT_TRAP_TAG
1173
+ class struct_SDMA_PKT_HDP_FLUSH_TAG(Structure):
1174
+ pass
1175
+
1176
+ struct_SDMA_PKT_HDP_FLUSH_TAG._pack_ = 1 # source:False
1177
+ struct_SDMA_PKT_HDP_FLUSH_TAG._fields_ = [
1178
+ ('DW_0_DATA', ctypes.c_uint32),
1179
+ ('DW_1_DATA', ctypes.c_uint32),
1180
+ ('DW_2_DATA', ctypes.c_uint32),
1181
+ ('DW_3_DATA', ctypes.c_uint32),
1182
+ ('DW_4_DATA', ctypes.c_uint32),
1183
+ ('DW_5_DATA', ctypes.c_uint32),
1184
+ ]
1185
+
1186
+ SDMA_PKT_HDP_FLUSH = struct_SDMA_PKT_HDP_FLUSH_TAG
1187
+ hdp_flush_cmd = struct_SDMA_PKT_HDP_FLUSH_TAG # Variable struct_SDMA_PKT_HDP_FLUSH_TAG
1188
+ class struct_SDMA_PKT_GCR_TAG(Structure):
1189
+ pass
1190
+
1191
+ class union_SDMA_PKT_GCR_TAG_HEADER_UNION(Union):
1192
+ pass
1193
+
1194
+ class struct_SDMA_PKT_GCR_TAG_0_0(Structure):
1195
+ pass
1196
+
1197
+ struct_SDMA_PKT_GCR_TAG_0_0._pack_ = 1 # source:False
1198
+ struct_SDMA_PKT_GCR_TAG_0_0._fields_ = [
1199
+ ('op', ctypes.c_uint32, 8),
1200
+ ('sub_op', ctypes.c_uint32, 8),
1201
+ ('_2', ctypes.c_uint32, 16),
1202
+ ]
1203
+
1204
+ union_SDMA_PKT_GCR_TAG_HEADER_UNION._pack_ = 1 # source:False
1205
+ union_SDMA_PKT_GCR_TAG_HEADER_UNION._anonymous_ = ('_0',)
1206
+ union_SDMA_PKT_GCR_TAG_HEADER_UNION._fields_ = [
1207
+ ('_0', struct_SDMA_PKT_GCR_TAG_0_0),
1208
+ ('DW_0_DATA', ctypes.c_uint32),
1209
+ ]
1210
+
1211
+ class union_SDMA_PKT_GCR_TAG_WORD1_UNION(Union):
1212
+ pass
1213
+
1214
+ class struct_SDMA_PKT_GCR_TAG_1_0(Structure):
1215
+ pass
1216
+
1217
+ struct_SDMA_PKT_GCR_TAG_1_0._pack_ = 1 # source:False
1218
+ struct_SDMA_PKT_GCR_TAG_1_0._fields_ = [
1219
+ ('_0', ctypes.c_uint32, 7),
1220
+ ('BaseVA_LO', ctypes.c_uint32, 25),
1221
+ ]
1222
+
1223
+ union_SDMA_PKT_GCR_TAG_WORD1_UNION._pack_ = 1 # source:False
1224
+ union_SDMA_PKT_GCR_TAG_WORD1_UNION._anonymous_ = ('_0',)
1225
+ union_SDMA_PKT_GCR_TAG_WORD1_UNION._fields_ = [
1226
+ ('_0', struct_SDMA_PKT_GCR_TAG_1_0),
1227
+ ('DW_1_DATA', ctypes.c_uint32),
1228
+ ]
1229
+
1230
+ class union_SDMA_PKT_GCR_TAG_WORD2_UNION(Union):
1231
+ pass
1232
+
1233
+ class struct_SDMA_PKT_GCR_TAG_2_0(Structure):
1234
+ pass
1235
+
1236
+ struct_SDMA_PKT_GCR_TAG_2_0._pack_ = 1 # source:False
1237
+ struct_SDMA_PKT_GCR_TAG_2_0._fields_ = [
1238
+ ('BaseVA_HI', ctypes.c_uint32, 16),
1239
+ ('GCR_CONTROL_GLI_INV', ctypes.c_uint32, 2),
1240
+ ('GCR_CONTROL_GL1_RANGE', ctypes.c_uint32, 2),
1241
+ ('GCR_CONTROL_GLM_WB', ctypes.c_uint32, 1),
1242
+ ('GCR_CONTROL_GLM_INV', ctypes.c_uint32, 1),
1243
+ ('GCR_CONTROL_GLK_WB', ctypes.c_uint32, 1),
1244
+ ('GCR_CONTROL_GLK_INV', ctypes.c_uint32, 1),
1245
+ ('GCR_CONTROL_GLV_INV', ctypes.c_uint32, 1),
1246
+ ('GCR_CONTROL_GL1_INV', ctypes.c_uint32, 1),
1247
+ ('GCR_CONTROL_GL2_US', ctypes.c_uint32, 1),
1248
+ ('GCR_CONTROL_GL2_RANGE', ctypes.c_uint32, 2),
1249
+ ('GCR_CONTROL_GL2_DISCARD', ctypes.c_uint32, 1),
1250
+ ('GCR_CONTROL_GL2_INV', ctypes.c_uint32, 1),
1251
+ ('GCR_CONTROL_GL2_WB', ctypes.c_uint32, 1),
1252
+ ]
1253
+
1254
+ union_SDMA_PKT_GCR_TAG_WORD2_UNION._pack_ = 1 # source:False
1255
+ union_SDMA_PKT_GCR_TAG_WORD2_UNION._anonymous_ = ('_0',)
1256
+ union_SDMA_PKT_GCR_TAG_WORD2_UNION._fields_ = [
1257
+ ('_0', struct_SDMA_PKT_GCR_TAG_2_0),
1258
+ ('DW_2_DATA', ctypes.c_uint32),
1259
+ ]
1260
+
1261
+ class union_SDMA_PKT_GCR_TAG_WORD3_UNION(Union):
1262
+ pass
1263
+
1264
+ class struct_SDMA_PKT_GCR_TAG_3_0(Structure):
1265
+ pass
1266
+
1267
+ struct_SDMA_PKT_GCR_TAG_3_0._pack_ = 1 # source:False
1268
+ struct_SDMA_PKT_GCR_TAG_3_0._fields_ = [
1269
+ ('GCR_CONTROL_RANGE_IS_PA', ctypes.c_uint32, 1),
1270
+ ('GCR_CONTROL_SEQ', ctypes.c_uint32, 2),
1271
+ ('_2', ctypes.c_uint32, 4),
1272
+ ('LimitVA_LO', ctypes.c_uint32, 25),
1273
+ ]
1274
+
1275
+ union_SDMA_PKT_GCR_TAG_WORD3_UNION._pack_ = 1 # source:False
1276
+ union_SDMA_PKT_GCR_TAG_WORD3_UNION._anonymous_ = ('_0',)
1277
+ union_SDMA_PKT_GCR_TAG_WORD3_UNION._fields_ = [
1278
+ ('_0', struct_SDMA_PKT_GCR_TAG_3_0),
1279
+ ('DW_3_DATA', ctypes.c_uint32),
1280
+ ]
1281
+
1282
+ class union_SDMA_PKT_GCR_TAG_WORD4_UNION(Union):
1283
+ pass
1284
+
1285
+ class struct_SDMA_PKT_GCR_TAG_4_0(Structure):
1286
+ pass
1287
+
1288
+ struct_SDMA_PKT_GCR_TAG_4_0._pack_ = 1 # source:False
1289
+ struct_SDMA_PKT_GCR_TAG_4_0._fields_ = [
1290
+ ('LimitVA_HI', ctypes.c_uint32, 16),
1291
+ ('_1', ctypes.c_uint32, 8),
1292
+ ('VMID', ctypes.c_uint32, 4),
1293
+ ('_3', ctypes.c_uint32, 4),
1294
+ ]
1295
+
1296
+ union_SDMA_PKT_GCR_TAG_WORD4_UNION._pack_ = 1 # source:False
1297
+ union_SDMA_PKT_GCR_TAG_WORD4_UNION._anonymous_ = ('_0',)
1298
+ union_SDMA_PKT_GCR_TAG_WORD4_UNION._fields_ = [
1299
+ ('_0', struct_SDMA_PKT_GCR_TAG_4_0),
1300
+ ('DW_4_DATA', ctypes.c_uint32),
1301
+ ]
1302
+
1303
+ struct_SDMA_PKT_GCR_TAG._pack_ = 1 # source:False
1304
+ struct_SDMA_PKT_GCR_TAG._fields_ = [
1305
+ ('HEADER_UNION', union_SDMA_PKT_GCR_TAG_HEADER_UNION),
1306
+ ('WORD1_UNION', union_SDMA_PKT_GCR_TAG_WORD1_UNION),
1307
+ ('WORD2_UNION', union_SDMA_PKT_GCR_TAG_WORD2_UNION),
1308
+ ('WORD3_UNION', union_SDMA_PKT_GCR_TAG_WORD3_UNION),
1309
+ ('WORD4_UNION', union_SDMA_PKT_GCR_TAG_WORD4_UNION),
1310
+ ]
1311
+
1312
+ SDMA_PKT_GCR = struct_SDMA_PKT_GCR_TAG
1313
+ __all__ = \
1314
+ ['SDMA_ATOMIC_ADD64', 'SDMA_OP_ATOMIC', 'SDMA_OP_CONST_FILL',
1315
+ 'SDMA_OP_COPY', 'SDMA_OP_FENCE', 'SDMA_OP_GCR',
1316
+ 'SDMA_OP_POLL_REGMEM', 'SDMA_OP_TIMESTAMP', 'SDMA_OP_TRAP',
1317
+ 'SDMA_PKT_ATOMIC', 'SDMA_PKT_CONSTANT_FILL',
1318
+ 'SDMA_PKT_COPY_LINEAR', 'SDMA_PKT_COPY_LINEAR_RECT',
1319
+ 'SDMA_PKT_FENCE', 'SDMA_PKT_GCR', 'SDMA_PKT_HDP_FLUSH',
1320
+ 'SDMA_PKT_POLL_REGMEM', 'SDMA_PKT_TIMESTAMP', 'SDMA_PKT_TRAP',
1321
+ 'SDMA_SUBOP_COPY_LINEAR', 'SDMA_SUBOP_COPY_LINEAR_RECT',
1322
+ 'SDMA_SUBOP_TIMESTAMP_GET_GLOBAL', 'SDMA_SUBOP_USER_GCR',
1323
+ 'hdp_flush_cmd', 'struct_SDMA_PKT_ATOMIC_TAG',
1324
+ 'struct_SDMA_PKT_ATOMIC_TAG_0_0',
1325
+ 'struct_SDMA_PKT_ATOMIC_TAG_1_0',
1326
+ 'struct_SDMA_PKT_ATOMIC_TAG_2_0',
1327
+ 'struct_SDMA_PKT_ATOMIC_TAG_3_0',
1328
+ 'struct_SDMA_PKT_ATOMIC_TAG_4_0',
1329
+ 'struct_SDMA_PKT_ATOMIC_TAG_5_0',
1330
+ 'struct_SDMA_PKT_ATOMIC_TAG_6_0',
1331
+ 'struct_SDMA_PKT_ATOMIC_TAG_7_0',
1332
+ 'struct_SDMA_PKT_CONSTANT_FILL_TAG',
1333
+ 'struct_SDMA_PKT_CONSTANT_FILL_TAG_0_0',
1334
+ 'struct_SDMA_PKT_CONSTANT_FILL_TAG_1_0',
1335
+ 'struct_SDMA_PKT_CONSTANT_FILL_TAG_2_0',
1336
+ 'struct_SDMA_PKT_CONSTANT_FILL_TAG_3_0',
1337
+ 'struct_SDMA_PKT_CONSTANT_FILL_TAG_4_0',
1338
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG',
1339
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_0_0',
1340
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_10_0',
1341
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_11_0',
1342
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_12_0',
1343
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_1_0',
1344
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_2_0',
1345
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_3_0',
1346
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_4_0',
1347
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_5_0',
1348
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_6_0',
1349
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_7_0',
1350
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_8_0',
1351
+ 'struct_SDMA_PKT_COPY_LINEAR_RECT_TAG_9_0',
1352
+ 'struct_SDMA_PKT_COPY_LINEAR_TAG',
1353
+ 'struct_SDMA_PKT_COPY_LINEAR_TAG_0_0',
1354
+ 'struct_SDMA_PKT_COPY_LINEAR_TAG_1_0',
1355
+ 'struct_SDMA_PKT_COPY_LINEAR_TAG_2_0',
1356
+ 'struct_SDMA_PKT_COPY_LINEAR_TAG_3_0',
1357
+ 'struct_SDMA_PKT_COPY_LINEAR_TAG_4_0',
1358
+ 'struct_SDMA_PKT_COPY_LINEAR_TAG_5_0',
1359
+ 'struct_SDMA_PKT_COPY_LINEAR_TAG_6_0',
1360
+ 'struct_SDMA_PKT_FENCE_TAG', 'struct_SDMA_PKT_FENCE_TAG_0_0',
1361
+ 'struct_SDMA_PKT_FENCE_TAG_1_0', 'struct_SDMA_PKT_FENCE_TAG_2_0',
1362
+ 'struct_SDMA_PKT_FENCE_TAG_3_0', 'struct_SDMA_PKT_GCR_TAG',
1363
+ 'struct_SDMA_PKT_GCR_TAG_0_0', 'struct_SDMA_PKT_GCR_TAG_1_0',
1364
+ 'struct_SDMA_PKT_GCR_TAG_2_0', 'struct_SDMA_PKT_GCR_TAG_3_0',
1365
+ 'struct_SDMA_PKT_GCR_TAG_4_0', 'struct_SDMA_PKT_HDP_FLUSH_TAG',
1366
+ 'struct_SDMA_PKT_POLL_REGMEM_TAG',
1367
+ 'struct_SDMA_PKT_POLL_REGMEM_TAG_0_0',
1368
+ 'struct_SDMA_PKT_POLL_REGMEM_TAG_1_0',
1369
+ 'struct_SDMA_PKT_POLL_REGMEM_TAG_2_0',
1370
+ 'struct_SDMA_PKT_POLL_REGMEM_TAG_3_0',
1371
+ 'struct_SDMA_PKT_POLL_REGMEM_TAG_4_0',
1372
+ 'struct_SDMA_PKT_POLL_REGMEM_TAG_5_0',
1373
+ 'struct_SDMA_PKT_TIMESTAMP_TAG',
1374
+ 'struct_SDMA_PKT_TIMESTAMP_TAG_0_0',
1375
+ 'struct_SDMA_PKT_TIMESTAMP_TAG_1_0',
1376
+ 'struct_SDMA_PKT_TIMESTAMP_TAG_2_0', 'struct_SDMA_PKT_TRAP_TAG',
1377
+ 'struct_SDMA_PKT_TRAP_TAG_0_0', 'struct_SDMA_PKT_TRAP_TAG_1_0',
1378
+ 'union_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION',
1379
+ 'union_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION',
1380
+ 'union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION',
1381
+ 'union_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION',
1382
+ 'union_SDMA_PKT_ATOMIC_TAG_HEADER_UNION',
1383
+ 'union_SDMA_PKT_ATOMIC_TAG_LOOP_UNION',
1384
+ 'union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION',
1385
+ 'union_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION',
1386
+ 'union_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION',
1387
+ 'union_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION',
1388
+ 'union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION',
1389
+ 'union_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION',
1390
+ 'union_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION',
1391
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION',
1392
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION',
1393
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION',
1394
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION',
1395
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION',
1396
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION',
1397
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION',
1398
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION',
1399
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION',
1400
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION',
1401
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION',
1402
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION',
1403
+ 'union_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION',
1404
+ 'union_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION',
1405
+ 'union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION',
1406
+ 'union_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION',
1407
+ 'union_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION',
1408
+ 'union_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION',
1409
+ 'union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION',
1410
+ 'union_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION',
1411
+ 'union_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION',
1412
+ 'union_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION',
1413
+ 'union_SDMA_PKT_FENCE_TAG_DATA_UNION',
1414
+ 'union_SDMA_PKT_FENCE_TAG_HEADER_UNION',
1415
+ 'union_SDMA_PKT_GCR_TAG_HEADER_UNION',
1416
+ 'union_SDMA_PKT_GCR_TAG_WORD1_UNION',
1417
+ 'union_SDMA_PKT_GCR_TAG_WORD2_UNION',
1418
+ 'union_SDMA_PKT_GCR_TAG_WORD3_UNION',
1419
+ 'union_SDMA_PKT_GCR_TAG_WORD4_UNION',
1420
+ 'union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION',
1421
+ 'union_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION',
1422
+ 'union_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION',
1423
+ 'union_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION',
1424
+ 'union_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION',
1425
+ 'union_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION',
1426
+ 'union_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION',
1427
+ 'union_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION',
1428
+ 'union_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION',
1429
+ 'union_SDMA_PKT_TRAP_TAG_HEADER_UNION',
1430
+ 'union_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION']
1431
+ #/*
1432
+ # * Copyright 2019 Advanced Micro Devices, Inc.
1433
+ # *
1434
+ # * Permission is hereby granted, free of charge, to any person obtaining a
1435
+ # * copy of this software and associated documentation files (the "Software"),
1436
+ # * to deal in the Software without restriction, including without limitation
1437
+ # * the rights to use, copy, modify, merge, publish, distribute, sublicense,
1438
+ # * and/or sell copies of the Software, and to permit persons to whom the
1439
+ # * Software is furnished to do so, subject to the following conditions:
1440
+ # *
1441
+ # * The above copyright notice and this permission notice shall be included in
1442
+ # * all copies or substantial portions of the Software.
1443
+ # *
1444
+ # * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1445
+ # * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1446
+ # * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
1447
+ # * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
1448
+ # * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
1449
+ # * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
1450
+ # * OTHER DEALINGS IN THE SOFTWARE.
1451
+ # *
1452
+ # */
1453
+
1454
+ #ifndef NVD_H
1455
+ #define NVD_H
1456
+
1457
+ #/**
1458
+ # * Navi's PM4 definitions
1459
+ # */
1460
+ PACKET_TYPE0 = 0
1461
+ PACKET_TYPE1 = 1
1462
+ PACKET_TYPE2 = 2
1463
+ PACKET_TYPE3 = 3
1464
+
1465
+ def CP_PACKET_GET_TYPE(h): return (((h) >> 30) & 3)
1466
+ def CP_PACKET_GET_COUNT(h): return (((h) >> 16) & 0x3FFF)
1467
+ def CP_PACKET0_GET_REG(h): return ((h) & 0xFFFF)
1468
+ def CP_PACKET3_GET_OPCODE(h): return (((h) >> 8) & 0xFF)
1469
+ def PACKET0(reg, n): return ((PACKET_TYPE0 << 30) | \
1470
+ ((reg) & 0xFFFF) | \
1471
+ ((n) & 0x3FFF) << 16)
1472
+ CP_PACKET2 = 0x80000000
1473
+ PACKET2_PAD_SHIFT = 0
1474
+ PACKET2_PAD_MASK = (0x3fffffff << 0)
1475
+
1476
+ def PACKET2(v): return (CP_PACKET2 | REG_SET(PACKET2_PAD, (v)))
1477
+
1478
+ def PACKET3(op, n): return ((PACKET_TYPE3 << 30) | \
1479
+ (((op) & 0xFF) << 8) | \
1480
+ ((n) & 0x3FFF) << 16)
1481
+
1482
+ def PACKET3_COMPUTE(op, n): return (PACKET3(op, n) | 1 << 1)
1483
+
1484
+ #/* Packet 3 types */
1485
+ PACKET3_NOP = 0x10
1486
+ PACKET3_SET_BASE = 0x11
1487
+ def PACKET3_BASE_INDEX(x): return ((x) << 0)
1488
+ CE_PARTITION_BASE = 3
1489
+ PACKET3_CLEAR_STATE = 0x12
1490
+ PACKET3_INDEX_BUFFER_SIZE = 0x13
1491
+ PACKET3_DISPATCH_DIRECT = 0x15
1492
+ PACKET3_DISPATCH_INDIRECT = 0x16
1493
+ PACKET3_INDIRECT_BUFFER_END = 0x17
1494
+ PACKET3_INDIRECT_BUFFER_CNST_END = 0x19
1495
+ PACKET3_ATOMIC_GDS = 0x1D
1496
+ PACKET3_ATOMIC_MEM = 0x1E
1497
+ PACKET3_OCCLUSION_QUERY = 0x1F
1498
+ PACKET3_SET_PREDICATION = 0x20
1499
+ PACKET3_REG_RMW = 0x21
1500
+ PACKET3_COND_EXEC = 0x22
1501
+ PACKET3_PRED_EXEC = 0x23
1502
+ PACKET3_DRAW_INDIRECT = 0x24
1503
+ PACKET3_DRAW_INDEX_INDIRECT = 0x25
1504
+ PACKET3_INDEX_BASE = 0x26
1505
+ PACKET3_DRAW_INDEX_2 = 0x27
1506
+ PACKET3_CONTEXT_CONTROL = 0x28
1507
+ PACKET3_INDEX_TYPE = 0x2A
1508
+ PACKET3_DRAW_INDIRECT_MULTI = 0x2C
1509
+ PACKET3_DRAW_INDEX_AUTO = 0x2D
1510
+ PACKET3_NUM_INSTANCES = 0x2F
1511
+ PACKET3_DRAW_INDEX_MULTI_AUTO = 0x30
1512
+ PACKET3_INDIRECT_BUFFER_PRIV = 0x32
1513
+ PACKET3_INDIRECT_BUFFER_CNST = 0x33
1514
+ PACKET3_COND_INDIRECT_BUFFER_CNST = 0x33
1515
+ PACKET3_STRMOUT_BUFFER_UPDATE = 0x34
1516
+ PACKET3_DRAW_INDEX_OFFSET_2 = 0x35
1517
+ PACKET3_DRAW_PREAMBLE = 0x36
1518
+ PACKET3_WRITE_DATA = 0x37
1519
+ def WRITE_DATA_DST_SEL(x): return ((x) << 8)
1520
+ #/* 0 - register
1521
+ # * 1 - memory (sync - via GRBM)
1522
+ # * 2 - gl2
1523
+ # * 3 - gds
1524
+ # * 4 - reserved
1525
+ # * 5 - memory (async - direct)
1526
+ # */
1527
+ WR_ONE_ADDR = (1 << 16)
1528
+ WR_CONFIRM = (1 << 20)
1529
+ def WRITE_DATA_CACHE_POLICY(x): return ((x) << 25)
1530
+ #/* 0 - LRU
1531
+ # * 1 - Stream
1532
+ # */
1533
+ def WRITE_DATA_ENGINE_SEL(x): return ((x) << 30)
1534
+ #/* 0 - me
1535
+ # * 1 - pfp
1536
+ # * 2 - ce
1537
+ # */
1538
+ PACKET3_DRAW_INDEX_INDIRECT_MULTI = 0x38
1539
+ PACKET3_MEM_SEMAPHORE = 0x39
1540
+ PACKET3_SEM_USE_MAILBOX = (0x1 << 16)
1541
+ PACKET3_SEM_SEL_SIGNAL_TYPE = (0x1 << 20) #/* 0 = increment, 1 = write 1 */
1542
+ PACKET3_SEM_SEL_SIGNAL = (0x6 << 29)
1543
+ PACKET3_SEM_SEL_WAIT = (0x7 << 29)
1544
+ PACKET3_DRAW_INDEX_MULTI_INST = 0x3A
1545
+ PACKET3_COPY_DW = 0x3B
1546
+ PACKET3_WAIT_REG_MEM = 0x3C
1547
+ def WAIT_REG_MEM_FUNCTION(x): return ((x) << 0)
1548
+ #/* 0 - always
1549
+ # * 1 - <
1550
+ # * 2 - <=
1551
+ # * 3 - ==
1552
+ # * 4 - !=
1553
+ # * 5 - >=
1554
+ # * 6 - >
1555
+ # */
1556
+ def WAIT_REG_MEM_MEM_SPACE(x): return ((x) << 4)
1557
+ #/* 0 - reg
1558
+ # * 1 - mem
1559
+ # */
1560
+ def WAIT_REG_MEM_OPERATION(x): return ((x) << 6)
1561
+ #/* 0 - wait_reg_mem
1562
+ # * 1 - wr_wait_wr_reg
1563
+ # */
1564
+ def WAIT_REG_MEM_ENGINE(x): return ((x) << 8)
1565
+ #/* 0 - me
1566
+ # * 1 - pfp
1567
+ # */
1568
+ PACKET3_INDIRECT_BUFFER = 0x3F
1569
+ INDIRECT_BUFFER_VALID = (1 << 23)
1570
+ def INDIRECT_BUFFER_CACHE_POLICY(x): return ((x) << 28)
1571
+ #/* 0 - LRU
1572
+ # * 1 - Stream
1573
+ # * 2 - Bypass
1574
+ # */
1575
+ def INDIRECT_BUFFER_PRE_ENB(x): return ((x) << 21)
1576
+ def INDIRECT_BUFFER_PRE_RESUME(x): return ((x) << 30)
1577
+ PACKET3_COND_INDIRECT_BUFFER = 0x3F
1578
+ PACKET3_COPY_DATA = 0x40
1579
+ PACKET3_CP_DMA = 0x41
1580
+ PACKET3_PFP_SYNC_ME = 0x42
1581
+ PACKET3_SURFACE_SYNC = 0x43
1582
+ PACKET3_ME_INITIALIZE = 0x44
1583
+ PACKET3_COND_WRITE = 0x45
1584
+ PACKET3_EVENT_WRITE = 0x46
1585
+ def EVENT_TYPE(x): return ((x) << 0)
1586
+ def EVENT_INDEX(x): return ((x) << 8)
1587
+ #/* 0 - any non-TS event
1588
+ # * 1 - ZPASS_DONE, PIXEL_PIPE_STAT_*
1589
+ # * 2 - SAMPLE_PIPELINESTAT
1590
+ # * 3 - SAMPLE_STREAMOUTSTAT*
1591
+ # * 4 - *S_PARTIAL_FLUSH
1592
+ # */
1593
+ PACKET3_EVENT_WRITE_EOP = 0x47
1594
+ PACKET3_EVENT_WRITE_EOS = 0x48
1595
+ PACKET3_RELEASE_MEM = 0x49
1596
+ def PACKET3_RELEASE_MEM_EVENT_TYPE(x): return ((x) << 0)
1597
+ def PACKET3_RELEASE_MEM_EVENT_INDEX(x): return ((x) << 8)
1598
+ PACKET3_RELEASE_MEM_GCR_GLM_WB = (1 << 12)
1599
+ PACKET3_RELEASE_MEM_GCR_GLM_INV = (1 << 13)
1600
+ PACKET3_RELEASE_MEM_GCR_GLV_INV = (1 << 14)
1601
+ PACKET3_RELEASE_MEM_GCR_GL1_INV = (1 << 15)
1602
+ PACKET3_RELEASE_MEM_GCR_GL2_US = (1 << 16)
1603
+ PACKET3_RELEASE_MEM_GCR_GL2_RANGE = (1 << 17)
1604
+ PACKET3_RELEASE_MEM_GCR_GL2_DISCARD = (1 << 19)
1605
+ PACKET3_RELEASE_MEM_GCR_GL2_INV = (1 << 20)
1606
+ PACKET3_RELEASE_MEM_GCR_GL2_WB = (1 << 21)
1607
+ PACKET3_RELEASE_MEM_GCR_SEQ = (1 << 22)
1608
+ def PACKET3_RELEASE_MEM_CACHE_POLICY(x): return ((x) << 25)
1609
+ #/* 0 - cache_policy__me_release_mem__lru
1610
+ # * 1 - cache_policy__me_release_mem__stream
1611
+ # * 2 - cache_policy__me_release_mem__noa
1612
+ # * 3 - cache_policy__me_release_mem__bypass
1613
+ # */
1614
+ PACKET3_RELEASE_MEM_EXECUTE = (1 << 28)
1615
+
1616
+ def PACKET3_RELEASE_MEM_DATA_SEL(x): return ((x) << 29)
1617
+ #/* 0 - discard
1618
+ # * 1 - send low 32bit data
1619
+ # * 2 - send 64bit data
1620
+ # * 3 - send 64bit GPU counter value
1621
+ # * 4 - send 64bit sys counter value
1622
+ # */
1623
+ def PACKET3_RELEASE_MEM_INT_SEL(x): return ((x) << 24)
1624
+ #/* 0 - none
1625
+ # * 1 - interrupt only (DATA_SEL = 0)
1626
+ # * 2 - interrupt when data write is confirmed
1627
+ # */
1628
+ def PACKET3_RELEASE_MEM_DST_SEL(x): return ((x) << 16)
1629
+ #/* 0 - MC
1630
+ # * 1 - TC/L2
1631
+ # */
1632
+
1633
+
1634
+
1635
+ PACKET3_PREAMBLE_CNTL = 0x4A
1636
+ PACKET3_PREAMBLE_BEGIN_CLEAR_STATE = (2 << 28)
1637
+ PACKET3_PREAMBLE_END_CLEAR_STATE = (3 << 28)
1638
+ PACKET3_DMA_DATA = 0x50
1639
+ #/* 1. header
1640
+ # * 2. CONTROL
1641
+ # * 3. SRC_ADDR_LO or DATA [31:0]
1642
+ # * 4. SRC_ADDR_HI [31:0]
1643
+ # * 5. DST_ADDR_LO [31:0]
1644
+ # * 6. DST_ADDR_HI [7:0]
1645
+ # * 7. COMMAND [31:26] | BYTE_COUNT [25:0]
1646
+ # */
1647
+ #/* CONTROL */
1648
+ def PACKET3_DMA_DATA_ENGINE(x): return ((x) << 0)
1649
+ #/* 0 - ME
1650
+ # * 1 - PFP
1651
+ # */
1652
+ def PACKET3_DMA_DATA_SRC_CACHE_POLICY(x): return ((x) << 13)
1653
+ #/* 0 - LRU
1654
+ # * 1 - Stream
1655
+ # */
1656
+ def PACKET3_DMA_DATA_DST_SEL(x): return ((x) << 20)
1657
+ #/* 0 - DST_ADDR using DAS
1658
+ # * 1 - GDS
1659
+ # * 3 - DST_ADDR using L2
1660
+ # */
1661
+ def PACKET3_DMA_DATA_DST_CACHE_POLICY(x): return ((x) << 25)
1662
+ #/* 0 - LRU
1663
+ # * 1 - Stream
1664
+ # */
1665
+ def PACKET3_DMA_DATA_SRC_SEL(x): return ((x) << 29)
1666
+ #/* 0 - SRC_ADDR using SAS
1667
+ # * 1 - GDS
1668
+ # * 2 - DATA
1669
+ # * 3 - SRC_ADDR using L2
1670
+ # */
1671
+ PACKET3_DMA_DATA_CP_SYNC = (1 << 31)
1672
+ #/* COMMAND */
1673
+ PACKET3_DMA_DATA_CMD_SAS = (1 << 26)
1674
+ #/* 0 - memory
1675
+ # * 1 - register
1676
+ # */
1677
+ PACKET3_DMA_DATA_CMD_DAS = (1 << 27)
1678
+ #/* 0 - memory
1679
+ # * 1 - register
1680
+ # */
1681
+ PACKET3_DMA_DATA_CMD_SAIC = (1 << 28)
1682
+ PACKET3_DMA_DATA_CMD_DAIC = (1 << 29)
1683
+ PACKET3_DMA_DATA_CMD_RAW_WAIT = (1 << 30)
1684
+ PACKET3_CONTEXT_REG_RMW = 0x51
1685
+ PACKET3_GFX_CNTX_UPDATE = 0x52
1686
+ PACKET3_BLK_CNTX_UPDATE = 0x53
1687
+ PACKET3_INCR_UPDT_STATE = 0x55
1688
+ PACKET3_ACQUIRE_MEM = 0x58
1689
+ #/* 1. HEADER
1690
+ # * 2. COHER_CNTL [30:0]
1691
+ # * 2.1 ENGINE_SEL [31:31]
1692
+ # * 2. COHER_SIZE [31:0]
1693
+ # * 3. COHER_SIZE_HI [7:0]
1694
+ # * 4. COHER_BASE_LO [31:0]
1695
+ # * 5. COHER_BASE_HI [23:0]
1696
+ # * 7. POLL_INTERVAL [15:0]
1697
+ # * 8. GCR_CNTL [18:0]
1698
+ # */
1699
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GLI_INV(x): return ((x) << 0)
1700
+ #/*
1701
+ # * 0:NOP
1702
+ # * 1:ALL
1703
+ # * 2:RANGE
1704
+ # * 3:FIRST_LAST
1705
+ # */
1706
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GL1_RANGE(x): return ((x) << 2)
1707
+ #/*
1708
+ # * 0:ALL
1709
+ # * 1:reserved
1710
+ # * 2:RANGE
1711
+ # * 3:FIRST_LAST
1712
+ # */
1713
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GLM_WB(x): return ((x) << 4)
1714
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GLM_INV(x): return ((x) << 5)
1715
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GLK_WB(x): return ((x) << 6)
1716
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GLK_INV(x): return ((x) << 7)
1717
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GLV_INV(x): return ((x) << 8)
1718
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GL1_INV(x): return ((x) << 9)
1719
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GL2_US(x): return ((x) << 10)
1720
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GL2_RANGE(x): return ((x) << 11)
1721
+ #/*
1722
+ # * 0:ALL
1723
+ # * 1:VOL
1724
+ # * 2:RANGE
1725
+ # * 3:FIRST_LAST
1726
+ # */
1727
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GL2_DISCARD(x): return ((x) << 13)
1728
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GL2_INV(x): return ((x) << 14)
1729
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_GL2_WB(x): return ((x) << 15)
1730
+ def PACKET3_ACQUIRE_MEM_GCR_CNTL_SEQ(x): return ((x) << 16)
1731
+ #/*
1732
+ # * 0: PARALLEL
1733
+ # * 1: FORWARD
1734
+ # * 2: REVERSE
1735
+ # */
1736
+ PACKET3_ACQUIRE_MEM_GCR_RANGE_IS_PA = (1 << 18)
1737
+ PACKET3_REWIND = 0x59
1738
+ PACKET3_INTERRUPT = 0x5A
1739
+ PACKET3_GEN_PDEPTE = 0x5B
1740
+ PACKET3_INDIRECT_BUFFER_PASID = 0x5C
1741
+ PACKET3_PRIME_UTCL2 = 0x5D
1742
+ PACKET3_LOAD_UCONFIG_REG = 0x5E
1743
+ PACKET3_LOAD_SH_REG = 0x5F
1744
+ PACKET3_LOAD_CONFIG_REG = 0x60
1745
+ PACKET3_LOAD_CONTEXT_REG = 0x61
1746
+ PACKET3_LOAD_COMPUTE_STATE = 0x62
1747
+ PACKET3_LOAD_SH_REG_INDEX = 0x63
1748
+ PACKET3_SET_CONFIG_REG = 0x68
1749
+ PACKET3_SET_CONFIG_REG_START = 0x00002000
1750
+ PACKET3_SET_CONFIG_REG_END = 0x00002c00
1751
+ PACKET3_SET_CONTEXT_REG = 0x69
1752
+ PACKET3_SET_CONTEXT_REG_START = 0x0000a000
1753
+ PACKET3_SET_CONTEXT_REG_END = 0x0000a400
1754
+ PACKET3_SET_CONTEXT_REG_INDEX = 0x6A
1755
+ PACKET3_SET_VGPR_REG_DI_MULTI = 0x71
1756
+ PACKET3_SET_SH_REG_DI = 0x72
1757
+ PACKET3_SET_CONTEXT_REG_INDIRECT = 0x73
1758
+ PACKET3_SET_SH_REG_DI_MULTI = 0x74
1759
+ PACKET3_GFX_PIPE_LOCK = 0x75
1760
+ PACKET3_SET_SH_REG = 0x76
1761
+ PACKET3_SET_SH_REG_START = 0x00002c00
1762
+ PACKET3_SET_SH_REG_END = 0x00003000
1763
+ PACKET3_SET_SH_REG_OFFSET = 0x77
1764
+ PACKET3_SET_QUEUE_REG = 0x78
1765
+ PACKET3_SET_UCONFIG_REG = 0x79
1766
+ PACKET3_SET_UCONFIG_REG_START = 0x0000c000
1767
+ PACKET3_SET_UCONFIG_REG_END = 0x0000c400
1768
+ PACKET3_SET_UCONFIG_REG_INDEX = 0x7A
1769
+ PACKET3_FORWARD_HEADER = 0x7C
1770
+ PACKET3_SCRATCH_RAM_WRITE = 0x7D
1771
+ PACKET3_SCRATCH_RAM_READ = 0x7E
1772
+ PACKET3_LOAD_CONST_RAM = 0x80
1773
+ PACKET3_WRITE_CONST_RAM = 0x81
1774
+ PACKET3_DUMP_CONST_RAM = 0x83
1775
+ PACKET3_INCREMENT_CE_COUNTER = 0x84
1776
+ PACKET3_INCREMENT_DE_COUNTER = 0x85
1777
+ PACKET3_WAIT_ON_CE_COUNTER = 0x86
1778
+ PACKET3_WAIT_ON_DE_COUNTER_DIFF = 0x88
1779
+ PACKET3_SWITCH_BUFFER = 0x8B
1780
+ PACKET3_DISPATCH_DRAW_PREAMBLE = 0x8C
1781
+ PACKET3_DISPATCH_DRAW_PREAMBLE_ACE = 0x8C
1782
+ PACKET3_DISPATCH_DRAW = 0x8D
1783
+ PACKET3_DISPATCH_DRAW_ACE = 0x8D
1784
+ PACKET3_GET_LOD_STATS = 0x8E
1785
+ PACKET3_DRAW_MULTI_PREAMBLE = 0x8F
1786
+ PACKET3_FRAME_CONTROL = 0x90
1787
+ FRAME_TMZ = (1 << 0)
1788
+ def FRAME_CMD(x): return ((x) << 28)
1789
+ #/*
1790
+ # * x=0: tmz_begin
1791
+ # * x=1: tmz_end
1792
+ # */
1793
+ PACKET3_INDEX_ATTRIBUTES_INDIRECT = 0x91
1794
+ PACKET3_WAIT_REG_MEM64 = 0x93
1795
+ PACKET3_COND_PREEMPT = 0x94
1796
+ PACKET3_HDP_FLUSH = 0x95
1797
+ PACKET3_COPY_DATA_RB = 0x96
1798
+ PACKET3_INVALIDATE_TLBS = 0x98
1799
+ def PACKET3_INVALIDATE_TLBS_DST_SEL(x): return ((x) << 0)
1800
+ def PACKET3_INVALIDATE_TLBS_ALL_HUB(x): return ((x) << 4)
1801
+ def PACKET3_INVALIDATE_TLBS_PASID(x): return ((x) << 5)
1802
+ PACKET3_AQL_PACKET = 0x99
1803
+ PACKET3_DMA_DATA_FILL_MULTI = 0x9A
1804
+ PACKET3_SET_SH_REG_INDEX = 0x9B
1805
+ PACKET3_DRAW_INDIRECT_COUNT_MULTI = 0x9C
1806
+ PACKET3_DRAW_INDEX_INDIRECT_COUNT_MULTI = 0x9D
1807
+ PACKET3_DUMP_CONST_RAM_OFFSET = 0x9E
1808
+ PACKET3_LOAD_CONTEXT_REG_INDEX = 0x9F
1809
+ PACKET3_SET_RESOURCES = 0xA0
1810
+ #/* 1. header
1811
+ # * 2. CONTROL
1812
+ # * 3. QUEUE_MASK_LO [31:0]
1813
+ # * 4. QUEUE_MASK_HI [31:0]
1814
+ # * 5. GWS_MASK_LO [31:0]
1815
+ # * 6. GWS_MASK_HI [31:0]
1816
+ # * 7. OAC_MASK [15:0]
1817
+ # * 8. GDS_HEAP_SIZE [16:11] | GDS_HEAP_BASE [5:0]
1818
+ # */
1819
+ def PACKET3_SET_RESOURCES_VMID_MASK(x): return ((x) << 0)
1820
+ def PACKET3_SET_RESOURCES_UNMAP_LATENTY(x): return ((x) << 16)
1821
+ def PACKET3_SET_RESOURCES_QUEUE_TYPE(x): return ((x) << 29)
1822
+ PACKET3_MAP_PROCESS = 0xA1
1823
+ PACKET3_MAP_QUEUES = 0xA2
1824
+ #/* 1. header
1825
+ # * 2. CONTROL
1826
+ # * 3. CONTROL2
1827
+ # * 4. MQD_ADDR_LO [31:0]
1828
+ # * 5. MQD_ADDR_HI [31:0]
1829
+ # * 6. WPTR_ADDR_LO [31:0]
1830
+ # * 7. WPTR_ADDR_HI [31:0]
1831
+ # */
1832
+ #/* CONTROL */
1833
+ def PACKET3_MAP_QUEUES_QUEUE_SEL(x): return ((x) << 4)
1834
+ def PACKET3_MAP_QUEUES_VMID(x): return ((x) << 8)
1835
+ def PACKET3_MAP_QUEUES_QUEUE(x): return ((x) << 13)
1836
+ def PACKET3_MAP_QUEUES_PIPE(x): return ((x) << 16)
1837
+ def PACKET3_MAP_QUEUES_ME(x): return ((x) << 18)
1838
+ def PACKET3_MAP_QUEUES_QUEUE_TYPE(x): return ((x) << 21)
1839
+ def PACKET3_MAP_QUEUES_ALLOC_FORMAT(x): return ((x) << 24)
1840
+ def PACKET3_MAP_QUEUES_ENGINE_SEL(x): return ((x) << 26)
1841
+ def PACKET3_MAP_QUEUES_NUM_QUEUES(x): return ((x) << 29)
1842
+ #/* CONTROL2 */
1843
+ def PACKET3_MAP_QUEUES_CHECK_DISABLE(x): return ((x) << 1)
1844
+ def PACKET3_MAP_QUEUES_DOORBELL_OFFSET(x): return ((x) << 2)
1845
+ PACKET3_UNMAP_QUEUES = 0xA3
1846
+ #/* 1. header
1847
+ # * 2. CONTROL
1848
+ # * 3. CONTROL2
1849
+ # * 4. CONTROL3
1850
+ # * 5. CONTROL4
1851
+ # * 6. CONTROL5
1852
+ # */
1853
+ #/* CONTROL */
1854
+ def PACKET3_UNMAP_QUEUES_ACTION(x): return ((x) << 0)
1855
+ #/* 0 - PREEMPT_QUEUES
1856
+ # * 1 - RESET_QUEUES
1857
+ # * 2 - DISABLE_PROCESS_QUEUES
1858
+ # * 3 - PREEMPT_QUEUES_NO_UNMAP
1859
+ # */
1860
+ def PACKET3_UNMAP_QUEUES_QUEUE_SEL(x): return ((x) << 4)
1861
+ def PACKET3_UNMAP_QUEUES_ENGINE_SEL(x): return ((x) << 26)
1862
+ def PACKET3_UNMAP_QUEUES_NUM_QUEUES(x): return ((x) << 29)
1863
+ #/* CONTROL2a */
1864
+ def PACKET3_UNMAP_QUEUES_PASID(x): return ((x) << 0)
1865
+ #/* CONTROL2b */
1866
+ def PACKET3_UNMAP_QUEUES_DOORBELL_OFFSET0(x): return ((x) << 2)
1867
+ #/* CONTROL3a */
1868
+ def PACKET3_UNMAP_QUEUES_DOORBELL_OFFSET1(x): return ((x) << 2)
1869
+ #/* CONTROL3b */
1870
+ def PACKET3_UNMAP_QUEUES_RB_WPTR(x): return ((x) << 0)
1871
+ #/* CONTROL4 */
1872
+ def PACKET3_UNMAP_QUEUES_DOORBELL_OFFSET2(x): return ((x) << 2)
1873
+ #/* CONTROL5 */
1874
+ def PACKET3_UNMAP_QUEUES_DOORBELL_OFFSET3(x): return ((x) << 2)
1875
+ PACKET3_QUERY_STATUS = 0xA4
1876
+ #/* 1. header
1877
+ # * 2. CONTROL
1878
+ # * 3. CONTROL2
1879
+ # * 4. ADDR_LO [31:0]
1880
+ # * 5. ADDR_HI [31:0]
1881
+ # * 6. DATA_LO [31:0]
1882
+ # * 7. DATA_HI [31:0]
1883
+ # */
1884
+ #/* CONTROL */
1885
+ def PACKET3_QUERY_STATUS_CONTEXT_ID(x): return ((x) << 0)
1886
+ def PACKET3_QUERY_STATUS_INTERRUPT_SEL(x): return ((x) << 28)
1887
+ def PACKET3_QUERY_STATUS_COMMAND(x): return ((x) << 30)
1888
+ #/* CONTROL2a */
1889
+ def PACKET3_QUERY_STATUS_PASID(x): return ((x) << 0)
1890
+ #/* CONTROL2b */
1891
+ def PACKET3_QUERY_STATUS_DOORBELL_OFFSET(x): return ((x) << 2)
1892
+ def PACKET3_QUERY_STATUS_ENG_SEL(x): return ((x) << 25)
1893
+ PACKET3_RUN_LIST = 0xA5
1894
+ PACKET3_MAP_PROCESS_VM = 0xA6
1895
+ #/* GFX11 */
1896
+ PACKET3_SET_Q_PREEMPTION_MODE = 0xF0
1897
+ def PACKET3_SET_Q_PREEMPTION_MODE_IB_VMID(x): return ((x) << 0)
1898
+ PACKET3_SET_Q_PREEMPTION_MODE_INIT_SHADOW_MEM = (1 << 0)
1899
+
1900
+ #endif