1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
|
/* SPDX-License-Identifier: MIT */
/* Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. */
#ifndef __NVRM_ENGINE_H__
#define __NVRM_ENGINE_H__
#include <nvrm/nvtypes.h>
/* Excerpt of RM headers from https://github.com/NVIDIA/open-gpu-kernel-modules/tree/570.144 */
#define MC_ENGINE_IDX_NULL 0 // This must be 0
#define MC_ENGINE_IDX_TMR 1
#define MC_ENGINE_IDX_DISP 2
#define MC_ENGINE_IDX_FB 3
#define MC_ENGINE_IDX_FIFO 4
#define MC_ENGINE_IDX_VIDEO 5
#define MC_ENGINE_IDX_MD 6
#define MC_ENGINE_IDX_BUS 7
#define MC_ENGINE_IDX_PMGR 8
#define MC_ENGINE_IDX_VP2 9
#define MC_ENGINE_IDX_CIPHER 10
#define MC_ENGINE_IDX_BIF 11
#define MC_ENGINE_IDX_PPP 12
#define MC_ENGINE_IDX_PRIVRING 13
#define MC_ENGINE_IDX_PMU 14
#define MC_ENGINE_IDX_CE0 15
#define MC_ENGINE_IDX_CE1 16
#define MC_ENGINE_IDX_CE2 17
#define MC_ENGINE_IDX_CE3 18
#define MC_ENGINE_IDX_CE4 19
#define MC_ENGINE_IDX_CE5 20
#define MC_ENGINE_IDX_CE6 21
#define MC_ENGINE_IDX_CE7 22
#define MC_ENGINE_IDX_CE8 23
#define MC_ENGINE_IDX_CE9 24
#define MC_ENGINE_IDX_CE10 25
#define MC_ENGINE_IDX_CE11 26
#define MC_ENGINE_IDX_CE12 27
#define MC_ENGINE_IDX_CE13 28
#define MC_ENGINE_IDX_CE14 29
#define MC_ENGINE_IDX_CE15 30
#define MC_ENGINE_IDX_CE16 31
#define MC_ENGINE_IDX_CE17 32
#define MC_ENGINE_IDX_CE18 33
#define MC_ENGINE_IDX_CE19 34
#define MC_ENGINE_IDX_CE_MAX MC_ENGINE_IDX_CE19
#define MC_ENGINE_IDX_VIC 35
#define MC_ENGINE_IDX_ISOHUB 36
#define MC_ENGINE_IDX_VGPU 37
#define MC_ENGINE_IDX_NVENC 38
#define MC_ENGINE_IDX_NVENC1 39
#define MC_ENGINE_IDX_NVENC2 40
#define MC_ENGINE_IDX_NVENC3 41
#define MC_ENGINE_IDX_C2C 42
#define MC_ENGINE_IDX_LTC 43
#define MC_ENGINE_IDX_FBHUB 44
#define MC_ENGINE_IDX_HDACODEC 45
#define MC_ENGINE_IDX_GMMU 46
#define MC_ENGINE_IDX_SEC2 47
#define MC_ENGINE_IDX_FSP 48
#define MC_ENGINE_IDX_NVLINK 49
#define MC_ENGINE_IDX_GSP 50
#define MC_ENGINE_IDX_NVJPG 51
#define MC_ENGINE_IDX_NVJPEG MC_ENGINE_IDX_NVJPG
#define MC_ENGINE_IDX_NVJPEG0 MC_ENGINE_IDX_NVJPEG
#define MC_ENGINE_IDX_NVJPEG1 52
#define MC_ENGINE_IDX_NVJPEG2 53
#define MC_ENGINE_IDX_NVJPEG3 54
#define MC_ENGINE_IDX_NVJPEG4 55
#define MC_ENGINE_IDX_NVJPEG5 56
#define MC_ENGINE_IDX_NVJPEG6 57
#define MC_ENGINE_IDX_NVJPEG7 58
#define MC_ENGINE_IDX_REPLAYABLE_FAULT 59
#define MC_ENGINE_IDX_ACCESS_CNTR 60
#define MC_ENGINE_IDX_NON_REPLAYABLE_FAULT 61
#define MC_ENGINE_IDX_REPLAYABLE_FAULT_ERROR 62
#define MC_ENGINE_IDX_NON_REPLAYABLE_FAULT_ERROR 63
#define MC_ENGINE_IDX_INFO_FAULT 64
#define MC_ENGINE_IDX_BSP 65
#define MC_ENGINE_IDX_NVDEC MC_ENGINE_IDX_BSP
#define MC_ENGINE_IDX_NVDEC0 MC_ENGINE_IDX_NVDEC
#define MC_ENGINE_IDX_NVDEC1 66
#define MC_ENGINE_IDX_NVDEC2 67
#define MC_ENGINE_IDX_NVDEC3 68
#define MC_ENGINE_IDX_NVDEC4 69
#define MC_ENGINE_IDX_NVDEC5 70
#define MC_ENGINE_IDX_NVDEC6 71
#define MC_ENGINE_IDX_NVDEC7 72
#define MC_ENGINE_IDX_CPU_DOORBELL 73
#define MC_ENGINE_IDX_PRIV_DOORBELL 74
#define MC_ENGINE_IDX_MMU_ECC_ERROR 75
#define MC_ENGINE_IDX_BLG 76
#define MC_ENGINE_IDX_PERFMON 77
#define MC_ENGINE_IDX_BUF_RESET 78
#define MC_ENGINE_IDX_XBAR 79
#define MC_ENGINE_IDX_ZPW 80
#define MC_ENGINE_IDX_OFA0 81
#define MC_ENGINE_IDX_OFA1 82
#define MC_ENGINE_IDX_TEGRA 83
#define MC_ENGINE_IDX_GR 84
#define MC_ENGINE_IDX_GR0 MC_ENGINE_IDX_GR
#define MC_ENGINE_IDX_GR1 85
#define MC_ENGINE_IDX_GR2 86
#define MC_ENGINE_IDX_GR3 87
#define MC_ENGINE_IDX_GR4 88
#define MC_ENGINE_IDX_GR5 89
#define MC_ENGINE_IDX_GR6 90
#define MC_ENGINE_IDX_GR7 91
#define MC_ENGINE_IDX_ESCHED 92
#define MC_ENGINE_IDX_ESCHED__SIZE 64
#define MC_ENGINE_IDX_GR_FECS_LOG 156
#define MC_ENGINE_IDX_GR0_FECS_LOG MC_ENGINE_IDX_GR_FECS_LOG
#define MC_ENGINE_IDX_GR1_FECS_LOG 157
#define MC_ENGINE_IDX_GR2_FECS_LOG 158
#define MC_ENGINE_IDX_GR3_FECS_LOG 159
#define MC_ENGINE_IDX_GR4_FECS_LOG 160
#define MC_ENGINE_IDX_GR5_FECS_LOG 161
#define MC_ENGINE_IDX_GR6_FECS_LOG 162
#define MC_ENGINE_IDX_GR7_FECS_LOG 163
#define MC_ENGINE_IDX_TMR_SWRL 164
#define MC_ENGINE_IDX_DISP_GSP 165
#define MC_ENGINE_IDX_REPLAYABLE_FAULT_CPU 166
#define MC_ENGINE_IDX_NON_REPLAYABLE_FAULT_CPU 167
#define MC_ENGINE_IDX_PXUC 168
#define MC_ENGINE_IDX_SYSLTC 169
#define MC_ENGINE_IDX_LRCC 170
#define MC_ENGINE_IDX_GSPLITE 171
#define MC_ENGINE_IDX_GSPLITE0 MC_ENGINE_IDX_GSPLITE
#define MC_ENGINE_IDX_GSPLITE1 172
#define MC_ENGINE_IDX_GSPLITE2 173
#define MC_ENGINE_IDX_GSPLITE3 174
#define MC_ENGINE_IDX_GSPLITE_MAX MC_ENGINE_IDX_GSPLITE3
#define MC_ENGINE_IDX_DPAUX 175
#define MC_ENGINE_IDX_DISP_LOW 176
#define MC_ENGINE_IDX_MAX 177
typedef enum
{
RM_ENGINE_TYPE_NULL = (0x00000000),
RM_ENGINE_TYPE_GR0 = (0x00000001),
RM_ENGINE_TYPE_GR1 = (0x00000002),
RM_ENGINE_TYPE_GR2 = (0x00000003),
RM_ENGINE_TYPE_GR3 = (0x00000004),
RM_ENGINE_TYPE_GR4 = (0x00000005),
RM_ENGINE_TYPE_GR5 = (0x00000006),
RM_ENGINE_TYPE_GR6 = (0x00000007),
RM_ENGINE_TYPE_GR7 = (0x00000008),
RM_ENGINE_TYPE_COPY0 = (0x00000009),
RM_ENGINE_TYPE_COPY1 = (0x0000000a),
RM_ENGINE_TYPE_COPY2 = (0x0000000b),
RM_ENGINE_TYPE_COPY3 = (0x0000000c),
RM_ENGINE_TYPE_COPY4 = (0x0000000d),
RM_ENGINE_TYPE_COPY5 = (0x0000000e),
RM_ENGINE_TYPE_COPY6 = (0x0000000f),
RM_ENGINE_TYPE_COPY7 = (0x00000010),
RM_ENGINE_TYPE_COPY8 = (0x00000011),
RM_ENGINE_TYPE_COPY9 = (0x00000012),
RM_ENGINE_TYPE_COPY10 = (0x00000013),
RM_ENGINE_TYPE_COPY11 = (0x00000014),
RM_ENGINE_TYPE_COPY12 = (0x00000015),
RM_ENGINE_TYPE_COPY13 = (0x00000016),
RM_ENGINE_TYPE_COPY14 = (0x00000017),
RM_ENGINE_TYPE_COPY15 = (0x00000018),
RM_ENGINE_TYPE_COPY16 = (0x00000019),
RM_ENGINE_TYPE_COPY17 = (0x0000001a),
RM_ENGINE_TYPE_COPY18 = (0x0000001b),
RM_ENGINE_TYPE_COPY19 = (0x0000001c),
RM_ENGINE_TYPE_NVDEC0 = (0x0000001d),
RM_ENGINE_TYPE_NVDEC1 = (0x0000001e),
RM_ENGINE_TYPE_NVDEC2 = (0x0000001f),
RM_ENGINE_TYPE_NVDEC3 = (0x00000020),
RM_ENGINE_TYPE_NVDEC4 = (0x00000021),
RM_ENGINE_TYPE_NVDEC5 = (0x00000022),
RM_ENGINE_TYPE_NVDEC6 = (0x00000023),
RM_ENGINE_TYPE_NVDEC7 = (0x00000024),
RM_ENGINE_TYPE_NVENC0 = (0x00000025),
RM_ENGINE_TYPE_NVENC1 = (0x00000026),
RM_ENGINE_TYPE_NVENC2 = (0x00000027),
// Bug 4175886 - Use this new value for all chips once GB20X is released
RM_ENGINE_TYPE_NVENC3 = (0x00000028),
RM_ENGINE_TYPE_VP = (0x00000029),
RM_ENGINE_TYPE_ME = (0x0000002a),
RM_ENGINE_TYPE_PPP = (0x0000002b),
RM_ENGINE_TYPE_MPEG = (0x0000002c),
RM_ENGINE_TYPE_SW = (0x0000002d),
RM_ENGINE_TYPE_TSEC = (0x0000002e),
RM_ENGINE_TYPE_VIC = (0x0000002f),
RM_ENGINE_TYPE_MP = (0x00000030),
RM_ENGINE_TYPE_SEC2 = (0x00000031),
RM_ENGINE_TYPE_HOST = (0x00000032),
RM_ENGINE_TYPE_DPU = (0x00000033),
RM_ENGINE_TYPE_PMU = (0x00000034),
RM_ENGINE_TYPE_FBFLCN = (0x00000035),
RM_ENGINE_TYPE_NVJPEG0 = (0x00000036),
RM_ENGINE_TYPE_NVJPEG1 = (0x00000037),
RM_ENGINE_TYPE_NVJPEG2 = (0x00000038),
RM_ENGINE_TYPE_NVJPEG3 = (0x00000039),
RM_ENGINE_TYPE_NVJPEG4 = (0x0000003a),
RM_ENGINE_TYPE_NVJPEG5 = (0x0000003b),
RM_ENGINE_TYPE_NVJPEG6 = (0x0000003c),
RM_ENGINE_TYPE_NVJPEG7 = (0x0000003d),
RM_ENGINE_TYPE_OFA0 = (0x0000003e),
RM_ENGINE_TYPE_OFA1 = (0x0000003f),
RM_ENGINE_TYPE_RESERVED40 = (0x00000040),
RM_ENGINE_TYPE_RESERVED41 = (0x00000041),
RM_ENGINE_TYPE_RESERVED42 = (0x00000042),
RM_ENGINE_TYPE_RESERVED43 = (0x00000043),
RM_ENGINE_TYPE_RESERVED44 = (0x00000044),
RM_ENGINE_TYPE_RESERVED45 = (0x00000045),
RM_ENGINE_TYPE_RESERVED46 = (0x00000046),
RM_ENGINE_TYPE_RESERVED47 = (0x00000047),
RM_ENGINE_TYPE_RESERVED48 = (0x00000048),
RM_ENGINE_TYPE_RESERVED49 = (0x00000049),
RM_ENGINE_TYPE_RESERVED4a = (0x0000004a),
RM_ENGINE_TYPE_RESERVED4b = (0x0000004b),
RM_ENGINE_TYPE_RESERVED4c = (0x0000004c),
RM_ENGINE_TYPE_RESERVED4d = (0x0000004d),
RM_ENGINE_TYPE_RESERVED4e = (0x0000004e),
RM_ENGINE_TYPE_RESERVED4f = (0x0000004f),
RM_ENGINE_TYPE_RESERVED50 = (0x00000050),
RM_ENGINE_TYPE_RESERVED51 = (0x00000051),
RM_ENGINE_TYPE_RESERVED52 = (0x00000052),
RM_ENGINE_TYPE_RESERVED53 = (0x00000053),
RM_ENGINE_TYPE_LAST = (0x00000054),
} RM_ENGINE_TYPE;
#define NV2080_ENGINE_TYPE_NULL (0x00000000)
#define NV2080_ENGINE_TYPE_GRAPHICS (0x00000001)
#define NV2080_ENGINE_TYPE_GR0 NV2080_ENGINE_TYPE_GRAPHICS
#define NV2080_ENGINE_TYPE_GR1 (0x00000002)
#define NV2080_ENGINE_TYPE_GR2 (0x00000003)
#define NV2080_ENGINE_TYPE_GR3 (0x00000004)
#define NV2080_ENGINE_TYPE_GR4 (0x00000005)
#define NV2080_ENGINE_TYPE_GR5 (0x00000006)
#define NV2080_ENGINE_TYPE_GR6 (0x00000007)
#define NV2080_ENGINE_TYPE_GR7 (0x00000008)
#define NV2080_ENGINE_TYPE_COPY0 (0x00000009)
#define NV2080_ENGINE_TYPE_COPY1 (0x0000000a)
#define NV2080_ENGINE_TYPE_COPY2 (0x0000000b)
#define NV2080_ENGINE_TYPE_COPY3 (0x0000000c)
#define NV2080_ENGINE_TYPE_COPY4 (0x0000000d)
#define NV2080_ENGINE_TYPE_COPY5 (0x0000000e)
#define NV2080_ENGINE_TYPE_COPY6 (0x0000000f)
#define NV2080_ENGINE_TYPE_COPY7 (0x00000010)
#define NV2080_ENGINE_TYPE_COPY8 (0x00000011)
#define NV2080_ENGINE_TYPE_COPY9 (0x00000012)
#define NV2080_ENGINE_TYPE_BSP (0x00000013)
#define NV2080_ENGINE_TYPE_NVDEC0 NV2080_ENGINE_TYPE_BSP
#define NV2080_ENGINE_TYPE_NVDEC1 (0x00000014)
#define NV2080_ENGINE_TYPE_NVDEC2 (0x00000015)
#define NV2080_ENGINE_TYPE_NVDEC3 (0x00000016)
#define NV2080_ENGINE_TYPE_NVDEC4 (0x00000017)
#define NV2080_ENGINE_TYPE_NVDEC5 (0x00000018)
#define NV2080_ENGINE_TYPE_NVDEC6 (0x00000019)
#define NV2080_ENGINE_TYPE_NVDEC7 (0x0000001a)
#define NV2080_ENGINE_TYPE_MSENC (0x0000001b)
#define NV2080_ENGINE_TYPE_NVENC0 NV2080_ENGINE_TYPE_MSENC /* Mutually exclusive alias */
#define NV2080_ENGINE_TYPE_NVENC1 (0x0000001c)
#define NV2080_ENGINE_TYPE_NVENC2 (0x0000001d)
#define NV2080_ENGINE_TYPE_VP (0x0000001e)
#define NV2080_ENGINE_TYPE_ME (0x0000001f)
#define NV2080_ENGINE_TYPE_PPP (0x00000020)
#define NV2080_ENGINE_TYPE_MPEG (0x00000021)
#define NV2080_ENGINE_TYPE_SW (0x00000022)
#define NV2080_ENGINE_TYPE_CIPHER (0x00000023)
#define NV2080_ENGINE_TYPE_TSEC NV2080_ENGINE_TYPE_CIPHER
#define NV2080_ENGINE_TYPE_VIC (0x00000024)
#define NV2080_ENGINE_TYPE_MP (0x00000025)
#define NV2080_ENGINE_TYPE_SEC2 (0x00000026)
#define NV2080_ENGINE_TYPE_HOST (0x00000027)
#define NV2080_ENGINE_TYPE_DPU (0x00000028)
#define NV2080_ENGINE_TYPE_PMU (0x00000029)
#define NV2080_ENGINE_TYPE_FBFLCN (0x0000002a)
#define NV2080_ENGINE_TYPE_NVJPG (0x0000002b)
#define NV2080_ENGINE_TYPE_NVJPEG0 NV2080_ENGINE_TYPE_NVJPG
#define NV2080_ENGINE_TYPE_NVJPEG1 (0x0000002c)
#define NV2080_ENGINE_TYPE_NVJPEG2 (0x0000002d)
#define NV2080_ENGINE_TYPE_NVJPEG3 (0x0000002e)
#define NV2080_ENGINE_TYPE_NVJPEG4 (0x0000002f)
#define NV2080_ENGINE_TYPE_NVJPEG5 (0x00000030)
#define NV2080_ENGINE_TYPE_NVJPEG6 (0x00000031)
#define NV2080_ENGINE_TYPE_NVJPEG7 (0x00000032)
#define NV2080_ENGINE_TYPE_OFA (0x00000033)
#define NV2080_ENGINE_TYPE_OFA0 NV2080_ENGINE_TYPE_OFA
#define NV2080_ENGINE_TYPE_COPY10 (0x00000034)
#define NV2080_ENGINE_TYPE_COPY11 (0x00000035)
#define NV2080_ENGINE_TYPE_COPY12 (0x00000036)
#define NV2080_ENGINE_TYPE_COPY13 (0x00000037)
#define NV2080_ENGINE_TYPE_COPY14 (0x00000038)
#define NV2080_ENGINE_TYPE_COPY15 (0x00000039)
#define NV2080_ENGINE_TYPE_COPY16 (0x0000003a)
#define NV2080_ENGINE_TYPE_COPY17 (0x0000003b)
#define NV2080_ENGINE_TYPE_COPY18 (0x0000003c)
#define NV2080_ENGINE_TYPE_COPY19 (0x0000003d)
#define NV2080_ENGINE_TYPE_OFA1 (0x0000003e)
#define NV2080_ENGINE_TYPE_NVENC3 (0x0000003f)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY0 (0x00000040)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY1 (0x00000041)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY2 (0x00000042)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY3 (0x00000043)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY4 (0x00000044)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY5 (0x00000045)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY6 (0x00000046)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY7 (0x00000047)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY8 (0x00000048)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY9 (0x00000049)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY10 (0x0000004a)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY11 (0x0000004b)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY12 (0x0000004c)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY13 (0x0000004d)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY14 (0x0000004e)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY15 (0x0000004f)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY16 (0x00000050)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY17 (0x00000051)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY18 (0x00000052)
#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY19 (0x00000053)
#define NV2080_ENGINE_TYPE_LAST (0x00000054)
#endif
|