summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/nvrm/engine.h
blob: 7997050a4f291b09856f4ba925d817632a282844 (plain)
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