File Index
Files and directories
Sign in
FILE

engine.h

File preview with syntax highlighting.

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