1 // This file is automatically generated by rmconfig - DO NOT EDIT!
2 //
3 // defines to indicate enabled/disabled for all chips, features, classes, engines, and apis.
4 //
5 // Profile:  shipping-gpus-openrm
6 // Template: templates/gt_rmconfig.h
7 //
8 // Chips:    TU10X, GA100, GA102, GA103, GA104, GA106, GA107, AD102, AD103, AD104, AD106, AD107, GH10X
9 //
10 
11 #ifndef _RMCFG_H_
12 #define _RMCFG_H_
13 
14 
15 //
16 // CHIP families - enabled or disabled
17 //
18 #define RMCFG_CHIP_GF10X     0
19 #define RMCFG_CHIP_GF11X     0
20 #define RMCFG_CHIP_GF10XF    0
21 #define RMCFG_CHIP_GK10X     0
22 #define RMCFG_CHIP_GK11X     0
23 #define RMCFG_CHIP_GK20X     0
24 #define RMCFG_CHIP_GM10X     0
25 #define RMCFG_CHIP_GM20X     0
26 #define RMCFG_CHIP_GP10X     0
27 #define RMCFG_CHIP_GV10X     0
28 #define RMCFG_CHIP_GV11X     0
29 #define RMCFG_CHIP_TU10X     1
30 #define RMCFG_CHIP_GA10X     1
31 #define RMCFG_CHIP_GA10XF    0
32 #define RMCFG_CHIP_AD10X     1
33 #define RMCFG_CHIP_GH10X     1
34 #define RMCFG_CHIP_T12X      0
35 #define RMCFG_CHIP_T13X      0
36 #define RMCFG_CHIP_T21X      0
37 #define RMCFG_CHIP_T18X      0
38 #define RMCFG_CHIP_T19X      0
39 #define RMCFG_CHIP_T23XG     0
40 #define RMCFG_CHIP_T23XD     0
41 #define RMCFG_CHIP_SIMS      0
42 
43 
44 //
45 // CHIPS - enabled or disabled
46 //
47 #define RMCFG_CHIP_GM107     0
48 #define RMCFG_CHIP_GM108     0
49 
50 #define RMCFG_CHIP_GM200     0
51 #define RMCFG_CHIP_GM204     0
52 #define RMCFG_CHIP_GM206     0
53 
54 #define RMCFG_CHIP_GP100     0
55 #define RMCFG_CHIP_GP102     0
56 #define RMCFG_CHIP_GP104     0
57 #define RMCFG_CHIP_GP106     0
58 #define RMCFG_CHIP_GP107     0
59 #define RMCFG_CHIP_GP108     0
60 
61 #define RMCFG_CHIP_GV100     0
62 
63 #define RMCFG_CHIP_GV11B     0
64 
65 #define RMCFG_CHIP_TU102     1
66 #define RMCFG_CHIP_TU104     1
67 #define RMCFG_CHIP_TU106     1
68 #define RMCFG_CHIP_TU116     1
69 #define RMCFG_CHIP_TU117     1
70 
71 #define RMCFG_CHIP_GA100     1
72 #define RMCFG_CHIP_GA102     1
73 #define RMCFG_CHIP_GA103     1
74 #define RMCFG_CHIP_GA104     1
75 #define RMCFG_CHIP_GA106     1
76 #define RMCFG_CHIP_GA107     1
77 #define RMCFG_CHIP_GA10B     0
78 
79 #define RMCFG_CHIP_GA102F    0
80 
81 #define RMCFG_CHIP_AD102     1
82 #define RMCFG_CHIP_AD103     1
83 #define RMCFG_CHIP_AD104     1
84 #define RMCFG_CHIP_AD106     1
85 #define RMCFG_CHIP_AD107     1
86 
87 #define RMCFG_CHIP_GH100     1
88 
89 #define RMCFG_CHIP_T194      0
90 
91 #define RMCFG_CHIP_T234      0
92 
93 #define RMCFG_CHIP_T234D     0
94 
95 #define RMCFG_CHIP_AMODEL    0
96 
97 //
98 // Obsolete CHIPS
99 //
100 #define RMCFG_CHIP_GF100     0
101 #define RMCFG_CHIP_GF100B    0
102 #define RMCFG_CHIP_GF104     0
103 #define RMCFG_CHIP_GF104B    0
104 #define RMCFG_CHIP_GF106     0
105 #define RMCFG_CHIP_GF106B    0
106 #define RMCFG_CHIP_GF108     0
107 #define RMCFG_CHIP_GF110D    0
108 #define RMCFG_CHIP_GF110     0
109 #define RMCFG_CHIP_GF117     0
110 #define RMCFG_CHIP_GF118     0
111 #define RMCFG_CHIP_GF119     0
112 #define RMCFG_CHIP_GF110F    0
113 #define RMCFG_CHIP_GF110F2   0
114 #define RMCFG_CHIP_GF110F3   0
115 #define RMCFG_CHIP_GK104     0
116 #define RMCFG_CHIP_GK106     0
117 #define RMCFG_CHIP_GK107     0
118 #define RMCFG_CHIP_GK20A     0
119 #define RMCFG_CHIP_GK110     0
120 #define RMCFG_CHIP_GK110B    0
121 #define RMCFG_CHIP_GK110C    0
122 #define RMCFG_CHIP_GK208     0
123 #define RMCFG_CHIP_GK208S    0
124 #define RMCFG_CHIP_T001_FERMI_NOT_EXIST 0
125 #define RMCFG_CHIP_T124      0
126 #define RMCFG_CHIP_T132      0
127 #define RMCFG_CHIP_T210      0
128 #define RMCFG_CHIP_T186      0
129 #define RMCFG_CHIP_T002_TURING_NOT_EXIST 0
130 #define RMCFG_CHIP_T003_HOPPER_NOT_EXIST 0
131 #define RMCFG_CHIP_T004_ADA_NOT_EXIST 0
132 
133 
134 //
135 // CHIP aliases
136 //
137 #define RMCFG_CHIP_CLASSIC_GPUS 1
138 #define RMCFG_CHIP_dFERMI    0
139 #define RMCFG_CHIP_DFERMI    0
140 #define RMCFG_CHIP_FERMI     0
141 #define RMCFG_CHIP_FERMI_CLASSIC_GPUS 0
142 #define RMCFG_CHIP_ALL       1
143 #define RMCFG_CHIP_ALL_CLASSIC_GPUS 1
144 #define RMCFG_CHIP_ALL_CHIPS 1
145 #define RMCFG_CHIP_ALL_CHIPS_CLASSIC_GPUS 1
146 #define RMCFG_CHIP_DISPLAYLESS 1
147 #define RMCFG_CHIP_dKEPLER   0
148 #define RMCFG_CHIP_DKEPLER   0
149 #define RMCFG_CHIP_KEPLER    0
150 #define RMCFG_CHIP_KEPLER_CLASSIC_GPUS 0
151 #define RMCFG_CHIP_dMAXWELL  0
152 #define RMCFG_CHIP_DMAXWELL  0
153 #define RMCFG_CHIP_MAXWELL   0
154 #define RMCFG_CHIP_MAXWELL_CLASSIC_GPUS 0
155 #define RMCFG_CHIP_dPASCAL   0
156 #define RMCFG_CHIP_DPASCAL   0
157 #define RMCFG_CHIP_PASCAL    0
158 #define RMCFG_CHIP_PASCAL_CLASSIC_GPUS 0
159 #define RMCFG_CHIP_dVOLTA    0
160 #define RMCFG_CHIP_DVOLTA    0
161 #define RMCFG_CHIP_VOLTA     0
162 #define RMCFG_CHIP_VOLTA_CLASSIC_GPUS 0
163 #define RMCFG_CHIP_dTURING   1
164 #define RMCFG_CHIP_DTURING   1
165 #define RMCFG_CHIP_TURING    1
166 #define RMCFG_CHIP_TURING_CLASSIC_GPUS 1
167 #define RMCFG_CHIP_dAMPERE   1
168 #define RMCFG_CHIP_DAMPERE   1
169 #define RMCFG_CHIP_AMPERE    1
170 #define RMCFG_CHIP_AMPERE_CLASSIC_GPUS 1
171 #define RMCFG_CHIP_TEGRA_DGPU_AMPERE 0
172 #define RMCFG_CHIP_TEGRA_DGPU 0
173 #define RMCFG_CHIP_DFPGA     0
174 #define RMCFG_CHIP_dADA      1
175 #define RMCFG_CHIP_DADA      1
176 #define RMCFG_CHIP_ADA       1
177 #define RMCFG_CHIP_ADA_CLASSIC_GPUS 1
178 #define RMCFG_CHIP_dHOPPER   1
179 #define RMCFG_CHIP_DHOPPER   1
180 #define RMCFG_CHIP_HOPPER    1
181 #define RMCFG_CHIP_HOPPER_CLASSIC_GPUS 1
182 #define RMCFG_CHIP_TEGRA_BIG_GPUS 0
183 #define RMCFG_CHIP_FERMI_TEGRA_BIG_GPUS 0
184 #define RMCFG_CHIP_TEGRA     0
185 #define RMCFG_CHIP_TEGRA_TEGRA_BIG_GPUS 0
186 #define RMCFG_CHIP_ALL_TEGRA_BIG_GPUS 0
187 #define RMCFG_CHIP_ALL_CHIPS_TEGRA_BIG_GPUS 0
188 #define RMCFG_CHIP_tKEPLER   0
189 #define RMCFG_CHIP_TKEPLER   0
190 #define RMCFG_CHIP_KEPLER_TEGRA_BIG_GPUS 0
191 #define RMCFG_CHIP_tMAXWELL  0
192 #define RMCFG_CHIP_TMAXWELL  0
193 #define RMCFG_CHIP_MAXWELL_TEGRA_BIG_GPUS 0
194 #define RMCFG_CHIP_tPASCAL   0
195 #define RMCFG_CHIP_TPASCAL   0
196 #define RMCFG_CHIP_PASCAL_TEGRA_BIG_GPUS 0
197 #define RMCFG_CHIP_tVOLTA    0
198 #define RMCFG_CHIP_TVOLTA    0
199 #define RMCFG_CHIP_VOLTA_TEGRA_BIG_GPUS 0
200 #define RMCFG_CHIP_TURING_TEGRA_BIG_GPUS 0
201 #define RMCFG_CHIP_T23X      0
202 #define RMCFG_CHIP_T23X_TEGRA_BIG_GPUS 0
203 #define RMCFG_CHIP_tAMPERE   0
204 #define RMCFG_CHIP_TAMPERE   0
205 #define RMCFG_CHIP_AMPERE_TEGRA_BIG_GPUS 0
206 #define RMCFG_CHIP_HOPPER_TEGRA_BIG_GPUS 0
207 #define RMCFG_CHIP_ADA_TEGRA_BIG_GPUS 0
208 #define RMCFG_CHIP_TEGRA_NVDISP_GPUS 0
209 #define RMCFG_CHIP_T23X_TEGRA_NVDISP_GPUS 0
210 #define RMCFG_CHIP_TEGRA_TEGRA_NVDISP_GPUS 0
211 #define RMCFG_CHIP_ALL_TEGRA_NVDISP_GPUS 0
212 #define RMCFG_CHIP_ALL_CHIPS_TEGRA_NVDISP_GPUS 0
213 #define RMCFG_CHIP_SIMULATION_GPUS 0
214 #define RMCFG_CHIP_ALL_SIMULATION_GPUS 0
215 #define RMCFG_CHIP_ALL_CHIPS_SIMULATION_GPUS 0
216 
217 
218 //
219 // Features - enabled or disabled
220 //
221 #define RMCFG_FEATURE_PLATFORM_UNKNOWN            0  // Running on an unknown platform
222 #define RMCFG_FEATURE_PLATFORM_WINDOWS            0  // Running on Windows
223 #define RMCFG_FEATURE_PLATFORM_WINDOWS_LDDM       0  // Running on Windows LDDM
224 #define RMCFG_FEATURE_PLATFORM_WINDOWS_VISTA      0  // aka PLATFORM_WINDOWS_LDDM
225 #define RMCFG_FEATURE_PLATFORM_UNIX               1  // Running on Unix
226 #define RMCFG_FEATURE_PLATFORM_DCE                0  // Running on Display Control Engine (DCE, an ARM Cortex R5 on Tegra)
227 #define RMCFG_FEATURE_PLATFORM_SIM                0  // Running on Simulator
228 #define RMCFG_FEATURE_PLATFORM_MODS               0  // Running as part of MODS
229 #define RMCFG_FEATURE_PLATFORM_GSP                0  // Running as part of GSP Firmware
230 #define RMCFG_FEATURE_PLATFORM_MODS_WINDOWS       0  // Running as part of MODS on Windows
231 #define RMCFG_FEATURE_PLATFORM_MODS_UNIX          0  // Running as part of MODS on UNIX
232 #define RMCFG_FEATURE_ARCH_UNKNOWN                0  // unknown arch
233 #define RMCFG_FEATURE_ARCH_X86                    0  // Intel x86, 32bit
234 #define RMCFG_FEATURE_ARCH_X64                    0  // Intel 64bit
235 #define RMCFG_FEATURE_ARCH_RISCV64                0  // RISCV, 64bit
236 #define RMCFG_FEATURE_ARCH_AMD64                  1  // AMD, 64bit
237 #define RMCFG_FEATURE_ARCH_PPC                    0  // Power PC
238 #define RMCFG_FEATURE_ARCH_PPC64LE                0  // 64-bit PPC little-endian
239 #define RMCFG_FEATURE_ARCH_ARM                    0  // ARM
240 #define RMCFG_FEATURE_ARCH_ARM_V7                 0  // ARM v7
241 #define RMCFG_FEATURE_ARCH_AARCH64                0  // AArch64
242 #define RMCFG_FEATURE_RMCORE_BASE                 1  // RMCORE Base
243 #define RMCFG_FEATURE_KERNEL_RM                   1  // Kernel layer of RM
244 #define RMCFG_FEATURE_ORIN_PHYSICAL_RM            1  // Physical layer of RM, disabled only on Orin
245 #define RMCFG_FEATURE_VGPU_GSP_PLUGIN_OFFLOAD     1  // vGPU GSP plugin offload
246 #define RMCFG_FEATURE_LIBOS_3_X                   1  // Enable Libos-3.x feature
247 #define RMCFG_FEATURE_SLINEXT                     1
248 #define RMCFG_FEATURE_NOTEBOOK                    1  // Notebook support
249 #define RMCFG_FEATURE_EXTDEV                      1  // Daughter boards connected to Quadro GPUs
250 #define RMCFG_FEATURE_EXTDEV_GSYNC                1  // Quadro Sync (QSYNC) board for Quadro GPUs
251 #define RMCFG_FEATURE_EXTDEV_GSYNC_P2060          1  // Quadro Sync (QSYNC) board version 3
252 #define RMCFG_FEATURE_MXM                         0  // MXM Module Support (all versions)
253 #define RMCFG_FEATURE_NBSI                        1  // NoteBook System Information Structure
254 #define RMCFG_FEATURE_ONSEMI_NB7NQ621M            1  // ONSEMI_NB7NQ621M Redriver Support
255 #define RMCFG_FEATURE_DCB_0X                      1  // Fallback DCB routines
256 #define RMCFG_FEATURE_DCB_4X                      1  // DCB4x (used on G8x and later)
257 #define RMCFG_FEATURE_RMAPI_GRAVEYARD             1  // Use RMAPI Graveyard to translate deprecated APIs
258 #define RMCFG_FEATURE_HOTPLUG_POLLING             0  // HotPlug polling
259 #define RMCFG_FEATURE_MULTI_GPU                   1  // Multiple GPUs managed by same RM instance
260 #define RMCFG_FEATURE_RM_BASIC_LOCK_MODEL         1  // Support for Basic Lock Model in RM
261 #define RMCFG_FEATURE_VIRTUALIZATION              0  // Detection and Guest RM Implementation within a Virtualization environment
262 #define RMCFG_FEATURE_VIRTUALIZATION_LEGACY       0  // aka VIRTUALIZATION
263 #define RMCFG_FEATURE_PRESILICON                  0  // For builds that can run on simulated or emulated GPU
264 #define RMCFG_FEATURE_GSP_CLIENT_RM               1  // GSP client RM
265 #define RMCFG_FEATURE_DCE_CLIENT_RM               0  // DCE client RM
266 #define RMCFG_FEATURE_PROTOBUF                    1  // Protobuf data encoding for OCA data dumps
267 #define RMCFG_FEATURE_RELEASE_BUILD               1  // Release Build
268 #define RMCFG_FEATURE_VERIF_ONLY_CONTROLS         0  // Allow verify only control cmds to be used on verif builds (determined by this feature)
269 #define RMCFG_FEATURE_PAGE_RETIREMENT             1  // Offlining bad memory pages from the FB heap
270 #define RMCFG_FEATURE_PMA                         1  // Physical memory allocator
271 #define RMCFG_FEATURE_DEVINIT_SCRIPT              0  // VBIOS scripting engine for sharing register sequences
272 #define RMCFG_FEATURE_OLD_DAC                     1  // Legacy display support with dac code
273 #define RMCFG_FEATURE_CRC_POLLING                 1  // GPU supports CRC Polling
274 #define RMCFG_FEATURE_DSI_INFO                    0  // DSI information structures support
275 #define RMCFG_FEATURE_CLK2                        1  // Tracks Clocks 2.0 project
276 #define RMCFG_FEATURE_GPU_LOW_POWER               1  // GPU low power Feature on Kepler and later
277 #define RMCFG_FEATURE_PC_VENDOR_SPECIFIC          1  // Vendor-specific code and features for PC
278 #define RMCFG_FEATURE_PEX_RESET_RECOVERY          1  // Enables the PEX Reset Recovery feature, which uses root/bridge port SBR to reset GPU when lost
279 #define RMCFG_FEATURE_HWBC                        1  // Enables support bridge chip devices
280 #define RMCFG_FEATURE_SPARSE_TEXTURE              1  // Enables optimization and defaults for sparse texture
281 #define RMCFG_FEATURE_CFGEX_PERF_MODE             1  // legacy support for performance modes
282 #define RMCFG_FEATURE_TILED_RESOURCE_COMPR        1
283 #define RMCFG_FEATURE_SYNC_GPU_BOOST              1  // Synchronized GPU Boost
284 #define RMCFG_FEATURE_NVSR_ON_NVDISPLAY           1  // NVSR on Nvdisplay
285 #define RMCFG_FEATURE_MODS_FEATURES               0  // Flag for enabling MODS required features in RM
286 #define RMCFG_FEATURE_MANUAL_TRIGGER_BA_DMA_MODE  0  // Support for manually actuated BA DMA mode data collection.
287 #define RMCFG_FEATURE_RM_DRIVEN_BA_DMA_MODE       0  // Support for RM-driven BA DMA mode data collection.
288 #define RMCFG_FEATURE_VBLANK_CALLBACK             1  // Vblank callback functionality within RM
289 #define RMCFG_FEATURE_TEGRA_SOC_NVDISPLAY         0  // Tegra SOC NvDisplay Driver
290 #define RMCFG_FEATURE_TEGRA_SOC_NVDISPLAY_MINIMAL  0  // Enable only those parts of display code which are needed for Tegra SOC NvDisplay Driver
291 #define RMCFG_FEATURE_HEAD_REGIONAL_CRC           0  // Display Head Regional CRC support
292 #define RMCFG_FEATURE_MULTICAST_FABRIC            1  // Support for MULTICAST_FABRIC
293 #define RMCFG_FEATURE_NVLINK_ERROR_THRESHOLD      1  // Support for NVLINK_ERROR_THRESHOLD
294 
295 
296 
297 //
298 // Classes - enabled or disabled
299 //
300 #define RMCFG_CLASS_NV01_ROOT                     1
301 #define RMCFG_CLASS_NV1_ROOT                      1  // aka NV01_ROOT
302 #define RMCFG_CLASS_NV01_NULL_OBJECT              1  // aka NV01_ROOT
303 #define RMCFG_CLASS_NV1_NULL_OBJECT               1  // aka NV01_ROOT
304 #define RMCFG_CLASS_NV01_ROOT_NON_PRIV            1
305 #define RMCFG_CLASS_NV1_ROOT_NON_PRIV             1  // aka NV01_ROOT_NON_PRIV
306 #define RMCFG_CLASS_NV01_ROOT_CLIENT              1
307 #define RMCFG_CLASS_FABRIC_MANAGER_SESSION        1
308 #define RMCFG_CLASS_NV0020_GPU_MANAGEMENT         1
309 #define RMCFG_CLASS_NV01_DEVICE_0                 1
310 #define RMCFG_CLASS_NV20_SUBDEVICE_0              1
311 #define RMCFG_CLASS_NV2081_BINAPI                 1
312 #define RMCFG_CLASS_NV2082_BINAPI_PRIVILEGED      1
313 #define RMCFG_CLASS_NV20_SUBDEVICE_DIAG           1
314 #define RMCFG_CLASS_NV01_CONTEXT_DMA              1
315 #define RMCFG_CLASS_NV01_MEMORY_SYSTEM            1
316 #define RMCFG_CLASS_NV1_MEMORY_SYSTEM             1  // aka NV01_MEMORY_SYSTEM
317 #define RMCFG_CLASS_NV01_MEMORY_LOCAL_PRIVILEGED  1
318 #define RMCFG_CLASS_NV1_MEMORY_LOCAL_PRIVILEGED   1  // aka NV01_MEMORY_LOCAL_PRIVILEGED
319 #define RMCFG_CLASS_NV01_MEMORY_PRIVILEGED        1  // aka NV01_MEMORY_LOCAL_PRIVILEGED
320 #define RMCFG_CLASS_NV1_MEMORY_PRIVILEGED         1  // aka NV01_MEMORY_LOCAL_PRIVILEGED
321 #define RMCFG_CLASS_NV01_MEMORY_LOCAL_USER        1
322 #define RMCFG_CLASS_NV1_MEMORY_LOCAL_USER         1  // aka NV01_MEMORY_LOCAL_USER
323 #define RMCFG_CLASS_NV01_MEMORY_USER              1  // aka NV01_MEMORY_LOCAL_USER
324 #define RMCFG_CLASS_NV1_MEMORY_USER               1  // aka NV01_MEMORY_LOCAL_USER
325 #define RMCFG_CLASS_NV01_MEMORY_VIRTUAL           1
326 #define RMCFG_CLASS_NV01_MEMORY_SYSTEM_DYNAMIC    1  // aka NV01_MEMORY_VIRTUAL
327 #define RMCFG_CLASS_NV1_MEMORY_SYSTEM_DYNAMIC     1  // aka NV01_MEMORY_VIRTUAL
328 #define RMCFG_CLASS_NV_MEMORY_MAPPER              1
329 #define RMCFG_CLASS_NV01_MEMORY_LOCAL_PHYSICAL    1
330 #define RMCFG_CLASS_NV01_MEMORY_SYNCPOINT         0
331 #define RMCFG_CLASS_NV01_MEMORY_SYSTEM_OS_DESCRIPTOR  1
332 #define RMCFG_CLASS_NV01_MEMORY_DEVICELESS        1
333 #define RMCFG_CLASS_NV01_MEMORY_FRAMEBUFFER_CONSOLE  1
334 #define RMCFG_CLASS_NV01_MEMORY_HW_RESOURCES      1
335 #define RMCFG_CLASS_NV01_MEMORY_LIST_SYSTEM       1
336 #define RMCFG_CLASS_NV01_MEMORY_LIST_FBMEM        1
337 #define RMCFG_CLASS_NV01_MEMORY_LIST_OBJECT       1
338 #define RMCFG_CLASS_NV_IMEX_SESSION               0
339 #define RMCFG_CLASS_NV01_MEMORY_FLA               1
340 #define RMCFG_CLASS_NV_MEMORY_FABRIC_EXPORT_V2    0
341 #define RMCFG_CLASS_NV_MEMORY_FABRIC              1
342 #define RMCFG_CLASS_NV_MEMORY_FABRIC_IMPORT_V2    0
343 #define RMCFG_CLASS_NV_MEMORY_FABRIC_EXPORTED_REF  0
344 #define RMCFG_CLASS_NV_MEMORY_FABRIC_IMPORTED_REF  0
345 #define RMCFG_CLASS_FABRIC_VASPACE_A              1
346 #define RMCFG_CLASS_NV_MEMORY_MULTICAST_FABRIC    1
347 #define RMCFG_CLASS_IO_VASPACE_A                  1
348 #define RMCFG_CLASS_NV01_NULL                     1
349 #define RMCFG_CLASS_NV1_NULL                      1  // aka NV01_NULL
350 #define RMCFG_CLASS_NV01_EVENT                    1
351 #define RMCFG_CLASS_NV1_EVENT                     1  // aka NV01_EVENT
352 #define RMCFG_CLASS_NV01_EVENT_KERNEL_CALLBACK    1
353 #define RMCFG_CLASS_NV1_EVENT_KERNEL_CALLBACK     1  // aka NV01_EVENT_KERNEL_CALLBACK
354 #define RMCFG_CLASS_NV01_EVENT_OS_EVENT           1
355 #define RMCFG_CLASS_NV1_EVENT_OS_EVENT            1  // aka NV01_EVENT_OS_EVENT
356 #define RMCFG_CLASS_NV01_EVENT_WIN32_EVENT        1  // aka NV01_EVENT_OS_EVENT
357 #define RMCFG_CLASS_NV1_EVENT_WIN32_EVENT         1  // aka NV01_EVENT_OS_EVENT
358 #define RMCFG_CLASS_NV01_EVENT_KERNEL_CALLBACK_EX  1
359 #define RMCFG_CLASS_NV1_EVENT_KERNEL_CALLBACK_EX  1  // aka NV01_EVENT_KERNEL_CALLBACK_EX
360 #define RMCFG_CLASS_NV01_TIMER                    1
361 #define RMCFG_CLASS_NV1_TIMER                     1  // aka NV01_TIMER
362 #define RMCFG_CLASS_KERNEL_GRAPHICS_CONTEXT       1  // Graphics Context in Kernel side
363 #define RMCFG_CLASS_NV50_CHANNEL_GPFIFO           1
364 #define RMCFG_CLASS_GF100_CHANNEL_GPFIFO          1
365 #define RMCFG_CLASS_KEPLER_CHANNEL_GPFIFO_A       1
366 #define RMCFG_CLASS_UVM_CHANNEL_RETAINER          1
367 #define RMCFG_CLASS_KEPLER_CHANNEL_GPFIFO_B       1
368 #define RMCFG_CLASS_MAXWELL_CHANNEL_GPFIFO_A      1
369 #define RMCFG_CLASS_PASCAL_CHANNEL_GPFIFO_A       1
370 #define RMCFG_CLASS_VOLTA_CHANNEL_GPFIFO_A        1
371 #define RMCFG_CLASS_TURING_CHANNEL_GPFIFO_A       1
372 #define RMCFG_CLASS_AMPERE_CHANNEL_GPFIFO_A       1
373 #define RMCFG_CLASS_HOPPER_CHANNEL_GPFIFO_A       1
374 #define RMCFG_CLASS_NV04_SOFTWARE_TEST            1
375 #define RMCFG_CLASS_NV4_SOFTWARE_TEST             1  // aka NV04_SOFTWARE_TEST
376 #define RMCFG_CLASS_NV30_GSYNC                    1
377 #define RMCFG_CLASS_VOLTA_USERMODE_A              1
378 #define RMCFG_CLASS_TURING_USERMODE_A             1
379 #define RMCFG_CLASS_AMPERE_USERMODE_A             1
380 #define RMCFG_CLASS_HOPPER_USERMODE_A             1
381 #define RMCFG_CLASS_NVC371_DISP_SF_USER           1
382 #define RMCFG_CLASS_NVC372_DISPLAY_SW             1
383 #define RMCFG_CLASS_NVC573_DISP_CAPABILITIES      1
384 #define RMCFG_CLASS_NVC673_DISP_CAPABILITIES      1
385 #define RMCFG_CLASS_NVC773_DISP_CAPABILITIES      1
386 #define RMCFG_CLASS_NV04_DISPLAY_COMMON           1
387 #define RMCFG_CLASS_NV50_DEFERRED_API_CLASS       1
388 #define RMCFG_CLASS_MPS_COMPUTE                   1
389 #define RMCFG_CLASS_NVC570_DISPLAY                1
390 #define RMCFG_CLASS_NVC57A_CURSOR_IMM_CHANNEL_PIO  1
391 #define RMCFG_CLASS_NVC57B_WINDOW_IMM_CHANNEL_DMA  1
392 #define RMCFG_CLASS_NVC57D_CORE_CHANNEL_DMA       1
393 #define RMCFG_CLASS_NVC57E_WINDOW_CHANNEL_DMA     1
394 #define RMCFG_CLASS_NVC670_DISPLAY                1
395 #define RMCFG_CLASS_NVC671_DISP_SF_USER           1
396 #define RMCFG_CLASS_NVC67A_CURSOR_IMM_CHANNEL_PIO  1
397 #define RMCFG_CLASS_NVC67B_WINDOW_IMM_CHANNEL_DMA  1
398 #define RMCFG_CLASS_NVC67D_CORE_CHANNEL_DMA       1
399 #define RMCFG_CLASS_NVC67E_WINDOW_CHANNEL_DMA     1
400 #define RMCFG_CLASS_NVC77F_ANY_CHANNEL_DMA        1
401 #define RMCFG_CLASS_NVC770_DISPLAY                1
402 #define RMCFG_CLASS_NVC771_DISP_SF_USER           1
403 #define RMCFG_CLASS_NVC77D_CORE_CHANNEL_DMA       1
404 #define RMCFG_CLASS_NV9010_VBLANK_CALLBACK        1
405 #define RMCFG_CLASS_GF100_PROFILER                1  // Profiler Client Support
406 #define RMCFG_CLASS_MAXWELL_PROFILER              1  // Base Profiler Class
407 #define RMCFG_CLASS_MAXWELL_PROFILER_DEVICE       1  // Device level Profiler Client Support
408 #define RMCFG_CLASS_GF100_SUBDEVICE_MASTER        1
409 #define RMCFG_CLASS_GF100_ZBC_CLEAR               1
410 #define RMCFG_CLASS_GF100_DISP_SW                 1
411 #define RMCFG_CLASS_GF100_TIMED_SEMAPHORE_SW      1
412 #define RMCFG_CLASS_G84_PERFBUFFER                1
413 #define RMCFG_CLASS_NV50_MEMORY_VIRTUAL           1
414 #define RMCFG_CLASS_NV50_P2P                      1
415 #define RMCFG_CLASS_NV50_THIRD_PARTY_P2P          1
416 #define RMCFG_CLASS_FERMI_TWOD_A                  1  // FERMI Graphics 2D
417 #define RMCFG_CLASS_FERMI_VASPACE_A               1  // FERMI virtual address space
418 #define RMCFG_CLASS_GF100_HDACODEC                1
419 #define RMCFG_CLASS_NVB8B0_VIDEO_DECODER          1  // Decoder Class for Hopper
420 #define RMCFG_CLASS_NVC4B0_VIDEO_DECODER          1  // Decoder Class for Turing
421 #define RMCFG_CLASS_NVC6B0_VIDEO_DECODER          1  // Decoder Class for Ampere
422 #define RMCFG_CLASS_NVC7B0_VIDEO_DECODER          1  // Decoder Class for Ampere
423 #define RMCFG_CLASS_NVC9B0_VIDEO_DECODER          1  // Decoder Class for Ada
424 #define RMCFG_CLASS_NVC4B7_VIDEO_ENCODER          1
425 #define RMCFG_CLASS_NVB4B7_VIDEO_ENCODER          1
426 #define RMCFG_CLASS_NVC7B7_VIDEO_ENCODER          1
427 #define RMCFG_CLASS_NVC9B7_VIDEO_ENCODER          1
428 #define RMCFG_CLASS_NVB8D1_VIDEO_NVJPG            1
429 #define RMCFG_CLASS_NVC4D1_VIDEO_NVJPG            1
430 #define RMCFG_CLASS_NVC9D1_VIDEO_NVJPG            1
431 #define RMCFG_CLASS_NVB8FA_VIDEO_OFA              1
432 #define RMCFG_CLASS_NVC6FA_VIDEO_OFA              1
433 #define RMCFG_CLASS_NVC7FA_VIDEO_OFA              1
434 #define RMCFG_CLASS_NVC9FA_VIDEO_OFA              1
435 #define RMCFG_CLASS_KEPLER_INLINE_TO_MEMORY_B     1  // Kepler inline to memory
436 #define RMCFG_CLASS_FERMI_CONTEXT_SHARE_A         1  // Context Share class
437 #define RMCFG_CLASS_KEPLER_CHANNEL_GROUP_A        1  // Channel Group Class
438 #define RMCFG_CLASS_PASCAL_DMA_COPY_A             1
439 #define RMCFG_CLASS_TURING_DMA_COPY_A             1
440 #define RMCFG_CLASS_AMPERE_DMA_COPY_A             1
441 #define RMCFG_CLASS_AMPERE_DMA_COPY_B             1
442 #define RMCFG_CLASS_HOPPER_DMA_COPY_A             1
443 #define RMCFG_CLASS_MAXWELL_DMA_COPY_A            1
444 #define RMCFG_CLASS_ACCESS_COUNTER_NOTIFY_BUFFER  1  // Access Cntr Buffer for Gr
445 #define RMCFG_CLASS_MMU_FAULT_BUFFER              1  // Volta Fault Buffer for Gr
446 #define RMCFG_CLASS_MMU_VIDMEM_ACCESS_BIT_BUFFER  1  // Ampere Vidmem Access Bit Buffer
447 #define RMCFG_CLASS_TURING_A                      1  // Turing Graphics
448 #define RMCFG_CLASS_TURING_COMPUTE_A              1  // Turing Graphics Compute
449 #define RMCFG_CLASS_AMPERE_A                      1  // AmpereA (Graphics)
450 #define RMCFG_CLASS_AMPERE_COMPUTE_A              1  // AmpereComputeA (Graphics Compute)
451 #define RMCFG_CLASS_AMPERE_B                      1  // AmpereB (Graphics)
452 #define RMCFG_CLASS_AMPERE_COMPUTE_B              1  // AmpereComputeB (Graphics Compute)
453 #define RMCFG_CLASS_ADA_A                         1  // AdaA (Graphics)
454 #define RMCFG_CLASS_ADA_COMPUTE_A                 1  // AdaComputeA (Graphics Compute)
455 #define RMCFG_CLASS_AMPERE_SMC_PARTITION_REF      1  // Ampere SMC Partition Subscription
456 #define RMCFG_CLASS_AMPERE_SMC_EXEC_PARTITION_REF  1  // Ampere SMC Execution Partition Subscription
457 #define RMCFG_CLASS_AMPERE_SMC_CONFIG_SESSION     1  // Ampere SMC config session subscription
458 #define RMCFG_CLASS_NV0092_RG_LINE_CALLBACK       1  // RG line callback functions
459 #define RMCFG_CLASS_AMPERE_SMC_MONITOR_SESSION    1  // Ampere SMC monitor session subscription
460 #define RMCFG_CLASS_HOPPER_A                      1  // HopperA (Graphics)
461 #define RMCFG_CLASS_HOPPER_COMPUTE_A              1  // HopperComputeA (Graphics Compute)
462 #define RMCFG_CLASS_NV40_DEBUG_BUFFER             1
463 #define RMCFG_CLASS_RM_USER_SHARED_DATA           1
464 #define RMCFG_CLASS_GT200_DEBUGGER                1  // CUDA Debugger support
465 #define RMCFG_CLASS_NV40_I2C                      1  // I2C operations
466 #define RMCFG_CLASS_NV_E3_THREED                  0  // Tegra 3D class
467 #define RMCFG_CLASS_NVA081_VGPU_CONFIG            1  // virtual gpu configuration
468 #define RMCFG_CLASS_NVA084_KERNEL_HOST_VGPU_DEVICE  1  // Kernel component of the host virtual gpu device
469 #define RMCFG_CLASS_NV0060_SYNC_GPU_BOOST         1  // Synchronized GPU Boost Class. Defines a set of GPUs for Synchronized Boost
470 #define RMCFG_CLASS_GP100_UVM_SW                  1  // UVM SW class to support SW methods for fault cancel
471 #define RMCFG_CLASS_NV_EVENT_BUFFER               1  // Event buffer class used to share event data with UMD
472 #define RMCFG_CLASS_NV_COUNTER_COLLECTION_UNIT    1  // Counter Collection Unit Class
473 
474 
475 
476 //
477 // MODULES - enabled or disabled
478 //
479 #define RMCFG_MODULE_Object                       1  // Base class for NVOC objects
480 #define RMCFG_MODULE_OBJECT                       1  // aka Object
481 #define RMCFG_MODULE_TRACEABLE                    1  // Interface for CaptureState
482 #define RMCFG_MODULE_ENGSTATE                     1  // Base class for engines with generic constructors, StateLoad, etc.
483 #define RMCFG_MODULE_HOSTENG                      1  // Base class for host engines
484 #define RMCFG_MODULE_FLCNABLE                     0  // Base class for engines requiring falcon
485 #define RMCFG_MODULE_PMUCLIENT                    0  // Base class for implementations of behavior to interact with the PMU engine
486 #define RMCFG_MODULE_PMU_CLIENT_IMPLEMENTER       0  // Base class for engines that use PMU engine
487 #define RMCFG_MODULE_INTRABLE                     0  // Base class to generate and service top-level interrupts
488 #define RMCFG_MODULE_MUTEXABLE                    0  // Base class for engines that implements mutex
489 #define RMCFG_MODULE_GpuMutexMgr                  0  // GPU Mutex Manager
490 #define RMCFG_MODULE_GPUMUTEXMGR                  0  // aka GpuMutexMgr
491 #define RMCFG_MODULE_BIF                          0  // Bus Interface
492 #define RMCFG_MODULE_KERNEL_BIF                   1  // Bus Interface on Kernel(CPU) RM
493 #define RMCFG_MODULE_BUS                          0  // Bus
494 #define RMCFG_MODULE_KERNEL_BUS                   1  // Bus on Kernel(CPU) RM
495 #define RMCFG_MODULE_ClockManager                 0  // Clock Manager
496 #define RMCFG_MODULE_CLOCKMANAGER                 0  // aka ClockManager
497 #define RMCFG_MODULE_KERNEL_ClockManager          1  // Kernel controls for Clock Manager
498 #define RMCFG_MODULE_KERNEL_CLOCKMANAGER          1  // aka KERNEL_ClockManager
499 #define RMCFG_MODULE_DAC                          0  // DAC Resource
500 #define RMCFG_MODULE_KERNEL_DISPLAY               1  // Display module on Kernel(CPU) RM
501 #define RMCFG_MODULE_DISP                         0  // Display
502 #define RMCFG_MODULE_VIRT_MEM_ALLOCATOR           1
503 #define RMCFG_MODULE_DPAUX                        0
504 #define RMCFG_MODULE_MEMORY_SYSTEM                0  // Memory System
505 #define RMCFG_MODULE_KERNEL_MEMORY_SYSTEM         1  // Kernel Memory System
506 #define RMCFG_MODULE_MEMORY_MANAGER               1  // Memory Manager
507 #define RMCFG_MODULE_FBFLCN                       0  // FB falcon
508 #define RMCFG_MODULE_FBSR                         1  // Frame Buffer Save/Restore
509 #define RMCFG_MODULE_KERNEL_FIFO                  1  // Fifo Module on Kernel(CPU) RM
510 #define RMCFG_MODULE_FIFO                         0  // aka. HOST
511 #define RMCFG_MODULE_SCHED                        0  // Scheduler for runlist
512 #define RMCFG_MODULE_FLCN                         0  // Falcon-derived engines
513 #define RMCFG_MODULE_KERNEL_FALCON                1  // Falcon on Kernel(CPU) RM. Used for booting Falcon cores.
514 #define RMCFG_MODULE_GR                           0  // Graphic
515 #define RMCFG_MODULE_GR0                          0  // aka GR
516 #define RMCFG_MODULE_KERNEL_GRAPHICS              1  // Graphic on Kernel(CPU) RM
517 #define RMCFG_MODULE_GRMGR                        0  // Graphics manager. Used for maintaining Gr partitioning policies
518 #define RMCFG_MODULE_MIG_MANAGER                  0  // MIG manager on Physical (GSP) RM. Used for maintaining device partitioning policies
519 #define RMCFG_MODULE_KERNEL_MIG_MANAGER           1  // MIG manager on Kernel (CPU) RM. Used for maintaining device partitioning policies
520 #define RMCFG_MODULE_KERNEL_GRAPHICS_MANAGER      1  // Graphics manager on Kernel (CPU) RM. Used for maintaining Gr partitioning policies
521 #define RMCFG_MODULE_HAL                          1  // Hardware Abstraction Layer
522 #define RMCFG_MODULE_HEAD                         0  // Display component: Head
523 #define RMCFG_MODULE_SF                           0  // Display component: Serial Formatter, output protocol formatting
524 #define RMCFG_MODULE_DISPLAY_INSTANCE_MEMORY      1
525 #define RMCFG_MODULE_KERNEL_HEAD                  1
526 #define RMCFG_MODULE_INTR                         1
527 #define RMCFG_MODULE_MC                           0
528 #define RMCFG_MODULE_KERNEL_MC                    1  // Master Control-related code needed in Kernel RM
529 #define RMCFG_MODULE_PRIV_RING                    0
530 #define RMCFG_MODULE_KERNEL_PERF                  1  // Performance module on Kernel(CPU) RM
531 #define RMCFG_MODULE_PERF                         0  // Performance Monitor
532 #define RMCFG_MODULE_STEREO                       0  // Stereo Viewing
533 #define RMCFG_MODULE_TMR                          1
534 #define RMCFG_MODULE_SEQ                          0  // Sequencer for backlight and LVDS control
535 #define RMCFG_MODULE_VGA                          0  // Video Graphics Array
536 #define RMCFG_MODULE_VBIOS                        0
537 #define RMCFG_MODULE_KERNEL_RC                    1  // Robust Channels and Watchdog Kernel API
538 #define RMCFG_MODULE_RC                           0  // Robust Channels
539 #define RMCFG_MODULE_NV_DEBUG_DUMP                1  // NV Debug
540 #define RMCFG_MODULE_SWENG                        1  // Software Engine for all SW classes
541 #define RMCFG_MODULE_GPU                          1  // GPU Control Object
542 #define RMCFG_MODULE_I2C                          0  // i2c Serial Interface
543 #define RMCFG_MODULE_KERNEL_I2C                   1  // Kernel controls for I2C
544 #define RMCFG_MODULE_SPI                          0  // SPI Interface
545 #define RMCFG_MODULE_SMBPBI                       0  // SMBus Post-Box Interface
546 #define RMCFG_MODULE_GPIO                         0  // General Purpose I/O Pins
547 #define RMCFG_MODULE_KERNEL_GPIO                  1  // Kernel controls for GPIO
548 #define RMCFG_MODULE_FAN                          0  // General Purpose I/O Pins
549 #define RMCFG_MODULE_KERNEL_FAN                   1  // Kernel controls for FAN
550 #define RMCFG_MODULE_FUSE                         0
551 #define RMCFG_MODULE_VOLT                         0
552 #define RMCFG_MODULE_KERNEL_VOLT                  1  // Kernel controls for VOLT
553 #define RMCFG_MODULE_THERM                        0  // Thermal Monitoring
554 #define RMCFG_MODULE_KERNEL_THERM                 1  // Kernel controls Thermal Monitoring
555 #define RMCFG_MODULE_OR                           0  // Display component: Output Resource
556 #define RMCFG_MODULE_PIOR                         0  // Display component: Parallel Input Output Resource
557 #define RMCFG_MODULE_SOR                          0  // Display component: Serial Output Resource
558 #define RMCFG_MODULE_DSI                          0  // Display Serial Interface
559 #define RMCFG_MODULE_HDCP                         0  // High-bandwidth Digital Content Protection
560 #define RMCFG_MODULE_HDMI                         0  // High-Definition Multimedia Interface
561 #define RMCFG_MODULE_ISOHUB                       0  // Display's memory read interface
562 #define RMCFG_MODULE_BSP                          0  // Bit Stream Processor/NVDEC
563 #define RMCFG_MODULE_NVDEC                        0  // aka BSP
564 #define RMCFG_MODULE_KERNEL_NVDEC                 1
565 #define RMCFG_MODULE_CIPHER                       0
566 #define RMCFG_MODULE_CE                           0  // Copy Engine
567 #define RMCFG_MODULE_KERNEL_CE                    1  // Kernel Copy Engine
568 #define RMCFG_MODULE_PMU                          0  // PMU peregrine core
569 #define RMCFG_MODULE_KERNEL_PMU                   1  // PMU peregrine core on Kernel(CPU) RM
570 #define RMCFG_MODULE_PLATFORM_REQUEST_HANDLER     0  // Platform Request Handler on Kernel(CPU) RM
571 #define RMCFG_MODULE_MSENC                        0  // Video Encoder (MSENC) Engine
572 #define RMCFG_MODULE_KERNEL_NVENC                 1
573 #define RMCFG_MODULE_HDA                          0  // High Definition Audio (HDA) Engine
574 #define RMCFG_MODULE_HDACODEC                     0  // High Definition Audio (HDA) Codec Engine
575 #define RMCFG_MODULE_INFOROM                      0  // InfoROM Engine
576 #define RMCFG_MODULE_KERNEL_INFOROM               1  // Kernel controls for InfoROM Engine
577 #define RMCFG_MODULE_LPWR                         0  // Low Power Object. This objects manages all power saving features.
578 #define RMCFG_MODULE_KERNEL_LPWR                  1  // Low Power Object. This objects manages all power saving features.
579 #define RMCFG_MODULE_PGCTRL                       1  // Power Gating Controller (PGCTRL) Engine
580 #define RMCFG_MODULE_LPWRFSM                      0  // LPWR FSM Object Engine
581 
582 #define RMCFG_MODULE_PGISLAND                     1  // Power Gating Island (PGISLAND)
583 #define RMCFG_MODULE_AP                           1  // Adaptive Power Object (AP) Engine
584 #define RMCFG_MODULE_PSI                          1  // Phase State Indicator Engine. HW folks calls it as Power Saving Interface.
585 #define RMCFG_MODULE_CG                           1  // Clock Gating Object Engine.
586 #define RMCFG_MODULE_RPPG                         1  // RAM Periphery Power Gating Object Engine.
587 #define RMCFG_MODULE_EI                           1  // Engine Idle Framework Object Engine.
588 #define RMCFG_MODULE_DPU                          0  // Display Falcon
589 #define RMCFG_MODULE_PMGR                         0  // PCB Manager engine
590 #define RMCFG_MODULE_KERNEL_PMGR                  1  // Kernel controls for Pmgr
591 #define RMCFG_MODULE_SYS                          1  // System
592 #define RMCFG_MODULE_OS                           1  // OS Layer
593 #define RMCFG_MODULE_GPUMGR                       1  // GPU Manager object
594 #define RMCFG_MODULE_HEAP                         1  // Heap Engine Object
595 #define RMCFG_MODULE_BRIGHTC                      1  // Backlight brightness control module
596 #define RMCFG_MODULE_GSYNCMGR                     0  // GSYNC Manager
597 #define RMCFG_MODULE_OD                           0  // Display component: Output Device
598 #define RMCFG_MODULE_DFP                          0  // Display component: Display Flat Panel
599 #define RMCFG_MODULE_CRT                          0  // Display component: Cathode ray tube
600 #define RMCFG_MODULE_DisplayPort                  0  // Display component: DisplayPort
601 #define RMCFG_MODULE_DISPLAYPORT                  0  // aka DisplayPort
602 #define RMCFG_MODULE_TMDS                         0  // Display component: Transition Minimized Differential Signaling
603 #define RMCFG_MODULE_CL                           1  // Core Logic
604 #define RMCFG_MODULE_RCDB                         1  // RC Journal log DB
605 #define RMCFG_MODULE_SWINSTR                      0  // Software Instrumentation
606 #define RMCFG_MODULE_GPUACCT                      1  // GPU Accounting
607 #define RMCFG_MODULE_GRDBG                        0  // Debugger Engine Object
608 #define RMCFG_MODULE_PSR                          0  // Panel Self Refresh
609 #define RMCFG_MODULE_UVM                          1  // Unified Virtual Memory - provides interface to separate UVM and verification support
610 #define RMCFG_MODULE_VGPUMGR                      0  // Virtual GPU management
611 #define RMCFG_MODULE_KERNEL_VGPUMGR               1  // Virtual GPU management on Kernel(CPU) RM
612 #define RMCFG_MODULE_SEC2                         0  // New secure falcon
613 #define RMCFG_MODULE_KERNEL_SEC2                  1  // SEC2 on Kernel(CPU) RM. Used for booting Falcon cores.
614 #define RMCFG_MODULE_PMS                          0  // PMU ModeSet object
615 #define RMCFG_MODULE_GCX                          0  // Idle power states of GPU
616 #define RMCFG_MODULE_LSFM                         0  // Light Secure Falcon Manager object
617 #define RMCFG_MODULE_ACR                          0  // Programs MMU to protect the region
618 #define RMCFG_MODULE_REFCNT                       1  // Reference Counting
619 #define RMCFG_MODULE_GPULOG                       0  // Logger for logging GPU related data
620 #define RMCFG_MODULE_FECS                         0  // Front-end context switch
621 #define RMCFG_MODULE_HYPERVISOR                   1  // Hypervisor object to support its native API
622 #define RMCFG_MODULE_VRRMGR                       0  // VRR Management object
623 #define RMCFG_MODULE_GPCCS                        0  // GPC context switch
624 #define RMCFG_MODULE_MISSING                      0  // MISSING (placeholder) Engine
625 #define RMCFG_MODULE_VMM                          1  // virtual memory manager
626 #define RMCFG_MODULE_VASPACE                      1  // virtual address space
627 #define RMCFG_MODULE_GVASPACE                     1  // GPU virtual address space
628 #define RMCFG_MODULE_AVASPACE                     0  // AMODEL virtual address space
629 #define RMCFG_MODULE_IOVASPACE                    1  // IOMMU virtual address space
630 #define RMCFG_MODULE_FABRICVASPACE                1  // FABRIC virtual address space
631 #define RMCFG_MODULE_MMU                          1  // Memory Management Unit- HW interface
632 #define RMCFG_MODULE_GMMU                         0  // GPU Memory Management Unit
633 #define RMCFG_MODULE_KERNEL_GMMU                  1  // GPU Memory Management Unit on Kernel(CPU) RM
634 #define RMCFG_MODULE_VMMU                         0  // Virtual Memory Management Unit (for vGPU)
635 #define RMCFG_MODULE_GPUGRP                       1  // Group of GPU(s) that may or may not be in SLI
636 #define RMCFG_MODULE_KERNEL_HWPM                  1  // Hardware Performance Monitor on Kernel(CPU) RM
637 #define RMCFG_MODULE_HWPM                         0  // Hardware Performance Monitor
638 #define RMCFG_MODULE_NVLINK                       0  // NVLINK High-speed GPU interconnect
639 #define RMCFG_MODULE_KERNEL_NVLINK                1  // Nvlink on Kernel(CPU) RM
640 #define RMCFG_MODULE_KERNEL_NVLINK                1  // Nvlink on Kernel(CPU) RM
641 #define RMCFG_MODULE_IOCTRL                       0  // NVLINK Ioctrl
642 #define RMCFG_MODULE_HSHUB                        0  // High Speed Hub
643 #define RMCFG_MODULE_HSHUBMANAGER                 0  // High Speed Hub Manager
644 #define RMCFG_MODULE_KERNEL_HSHUB                 1  // High Speed Hub on Kernel(CPU) RM
645 #define RMCFG_MODULE_KERNEL_HSHUB                 1  // High Speed Hub on Kernel(CPU) RM
646 #define RMCFG_MODULE_GPUMON                       1  // GPU Monitoring
647 #define RMCFG_MODULE_GPUBOOSTMGR                  1  // Sync Gpu Boost Manager
648 #define RMCFG_MODULE_GRIDDISPLAYLESS              0  // GRID Displayless
649 #define RMCFG_MODULE_WINDOW                       0  // NvDisplay WINDOW channel
650 #define RMCFG_MODULE_RPC                          1  // RPC Engine for VGPU
651 #define RMCFG_MODULE_RPCSTRUCTURECOPY             0  // RPC structure copying for VGPU
652 #define RMCFG_MODULE_NVJPG                        0  // Video JPEG (NVJPG) Engine
653 #define RMCFG_MODULE_KERNEL_NVJPG                 1
654 #define RMCFG_MODULE_KERNEL_FSP                   1  // FSP on Kernel(CPU) RM
655 #define RMCFG_MODULE_GSP                          0  // GPU system processor
656 #define RMCFG_MODULE_KERNEL_GSP                   1  // GSP on Kernel(CPU) RM. Used for booting RM on GSP.
657 #define RMCFG_MODULE_OFA                          0  // Optical Flow Accelarator
658 #define RMCFG_MODULE_KERNEL_OFA                   1
659 #define RMCFG_MODULE_HOT_PLUG                     0  // Display component: hot plug
660 #define RMCFG_MODULE_FABRIC                       1  // NVLink Fabric
661 #define RMCFG_MODULE_GPUDB                        1  // GPU DATABASE
662 #define RMCFG_MODULE_NNE                          0  // Neural Net Engine (NNE)
663 #define RMCFG_MODULE_DCECLIENTRM                  0  // DCE Client RM
664 #define RMCFG_MODULE_DCB                          0  // Display Control Block for all display related data in VBIOS/DCB Image
665 #define RMCFG_MODULE_DISPMACRO                    0  // DispMacro RM infrastructure for IED removal from VBIOS
666 #define RMCFG_MODULE_DISP_MGR                     0  // Lid- and dock-related disp code for NOTEBOOK
667 #define RMCFG_MODULE_PLATFORM                     1  // Object for platform related features
668 #define RMCFG_MODULE_KERNEL_CCU                   1  // Counter Collection Unit Kernel(CPU) RM
669 
670 
671 
672 //
673 // API's - enabled or disabled
674 //
675 #define RMCFG_API_NV04_ALLOC                      1
676 #define RMCFG_API_NVOS21_PARAMETERS               1  // aka NV04_ALLOC
677 #define RMCFG_API_NV_ESC_RM_ALLOC                 1  // aka NV04_ALLOC
678 #define RMCFG_API_Nv04Alloc                       1  // aka NV04_ALLOC
679 #define RMCFG_API_NvRmAlloc                       1  // aka NV04_ALLOC
680 #define RMCFG_API_NV04_ALLOC_WITH_ACCESS          1
681 #define RMCFG_API_NVOS64_PARAMETERS               1  // aka NV04_ALLOC_WITH_ACCESS
682 #define RMCFG_API_NV_ESC_RM_ALLOC                 1  // aka NV04_ALLOC_WITH_ACCESS
683 #define RMCFG_API_Nv04AllocWithAccess             1  // aka NV04_ALLOC_WITH_ACCESS
684 #define RMCFG_API_NvRmAllocWithAccess             1  // aka NV04_ALLOC_WITH_ACCESS
685 #define RMCFG_API_NV01_ALLOC_MEMORY               1
686 #define RMCFG_API_NVOS02_PARAMETERS               1  // aka NV01_ALLOC_MEMORY
687 #define RMCFG_API_NV_ESC_RM_ALLOC_MEMORY          1  // aka NV01_ALLOC_MEMORY
688 #define RMCFG_API_Nv01AllocMemory                 1  // aka NV01_ALLOC_MEMORY
689 #define RMCFG_API_NvRmAllocMemory64               1  // aka NV01_ALLOC_MEMORY
690 #define RMCFG_API_NV01_ALLOC_OBJECT               1
691 #define RMCFG_API_NVOS05_PARAMETERS               1  // aka NV01_ALLOC_OBJECT
692 #define RMCFG_API_NV_ESC_RM_ALLOC_OBJECT          1  // aka NV01_ALLOC_OBJECT
693 #define RMCFG_API_Nv01AllocObject                 1  // aka NV01_ALLOC_OBJECT
694 #define RMCFG_API_NvRmAllocObject                 1  // aka NV01_ALLOC_OBJECT
695 #define RMCFG_API_NV01_FREE                       1
696 #define RMCFG_API_NVOS00_PARAMETERS               1  // aka NV01_FREE
697 #define RMCFG_API_NV_ESC_RM_FREE                  1  // aka NV01_FREE
698 #define RMCFG_API_Nv01Free                        1  // aka NV01_FREE
699 #define RMCFG_API_NvRmFree                        1  // aka NV01_FREE
700 #define RMCFG_API_NV04_VID_HEAP_CONTROL           1
701 #define RMCFG_API_NVOS32_PARAMETERS               1  // aka NV04_VID_HEAP_CONTROL
702 #define RMCFG_API_NV_ESC_RM_VID_HEAP_CONTROL      1  // aka NV04_VID_HEAP_CONTROL
703 #define RMCFG_API_Nv04VidHeapControl              1  // aka NV04_VID_HEAP_CONTROL
704 #define RMCFG_API_NvRmVidHeapControl              1  // aka NV04_VID_HEAP_CONTROL
705 #define RMCFG_API_NV01_CONFIG_GET                 0
706 #define RMCFG_API_NVOS13_PARAMETERS               0  // aka NV01_CONFIG_GET
707 #define RMCFG_API_NV_ESC_RM_CONFIG_GET            0  // aka NV01_CONFIG_GET
708 #define RMCFG_API_Nv01ConfigGet                   0  // aka NV01_CONFIG_GET
709 #define RMCFG_API_NvRmConfigGet                   0  // aka NV01_CONFIG_GET
710 #define RMCFG_API_NV01_CONFIG_SET                 0
711 #define RMCFG_API_NVOS14_PARAMETERS               0  // aka NV01_CONFIG_SET
712 #define RMCFG_API_NV_ESC_RM_CONFIG_SET            0  // aka NV01_CONFIG_SET
713 #define RMCFG_API_Nv01ConfigSet                   0  // aka NV01_CONFIG_SET
714 #define RMCFG_API_NvRmConfigSet                   0  // aka NV01_CONFIG_SET
715 #define RMCFG_API_NV04_CONFIG_GET_EX              0
716 #define RMCFG_API_NVOS_CONFIG_GET_EX_PARAMS       0  // aka NV04_CONFIG_GET_EX
717 #define RMCFG_API_NV_ESC_RM_CONFIG_GET_EX         0  // aka NV04_CONFIG_GET_EX
718 #define RMCFG_API_Nv04ConfigGetEx                 0  // aka NV04_CONFIG_GET_EX
719 #define RMCFG_API_NvRmConfigGetEx                 0  // aka NV04_CONFIG_GET_EX
720 #define RMCFG_API_NV04_CONFIG_SET_EX              0
721 #define RMCFG_API_NVOS_CONFIG_SET_EX_PARAMS       0  // aka NV04_CONFIG_SET_EX
722 #define RMCFG_API_NV_ESC_RM_CONFIG_SET_EX         0  // aka NV04_CONFIG_SET_EX
723 #define RMCFG_API_Nv04ConfigSetEx                 0  // aka NV04_CONFIG_SET_EX
724 #define RMCFG_API_NvRmConfigSetEx                 0  // aka NV04_CONFIG_SET_EX
725 #define RMCFG_API_NV04_I2C_ACCESS                 1
726 #define RMCFG_API_NVOS_I2C_ACCESS_PARAMS          1  // aka NV04_I2C_ACCESS
727 #define RMCFG_API_NV_ESC_RM_I2C_ACCESS            1  // aka NV04_I2C_ACCESS
728 #define RMCFG_API_Nv04I2CAccess                   1  // aka NV04_I2C_ACCESS
729 #define RMCFG_API_NvRmI2CAccess                   1  // aka NV04_I2C_ACCESS
730 #define RMCFG_API_NV04_IDLE_CHANNELS              1
731 #define RMCFG_API_NVOS30_PARAMETERS               1  // aka NV04_IDLE_CHANNELS
732 #define RMCFG_API_NV_ESC_RM_IDLE_CHANNELS         1  // aka NV04_IDLE_CHANNELS
733 #define RMCFG_API_Nv04IdleChannels                1  // aka NV04_IDLE_CHANNELS
734 #define RMCFG_API_NvRmIdleChannels                1  // aka NV04_IDLE_CHANNELS
735 #define RMCFG_API_NV04_MAP_MEMORY                 1
736 #define RMCFG_API_NVOS33_PARAMETERS               1  // aka NV04_MAP_MEMORY
737 #define RMCFG_API_NV_ESC_RM_MAP_MEMORY            1  // aka NV04_MAP_MEMORY
738 #define RMCFG_API_Nv04MapMemory                   1  // aka NV04_MAP_MEMORY
739 #define RMCFG_API_NvRmMapMemory                   1  // aka NV04_MAP_MEMORY
740 #define RMCFG_API_NV04_UNMAP_MEMORY               1
741 #define RMCFG_API_NVOS34_PARAMETERS               1  // aka NV04_UNMAP_MEMORY
742 #define RMCFG_API_NV_ESC_RM_UNMAP_MEMORY          1  // aka NV04_UNMAP_MEMORY
743 #define RMCFG_API_Nv04UnmapMemory                 1  // aka NV04_UNMAP_MEMORY
744 #define RMCFG_API_NvRmUnmapMemory                 1  // aka NV04_UNMAP_MEMORY
745 #define RMCFG_API_NV04_MAP_MEMORY_DMA             1
746 #define RMCFG_API_NVOS46_PARAMETERS               1  // aka NV04_MAP_MEMORY_DMA
747 #define RMCFG_API_NV_ESC_RM_MAP_MEMORY_DMA        1  // aka NV04_MAP_MEMORY_DMA
748 #define RMCFG_API_Nv04MapMemoryDma                1  // aka NV04_MAP_MEMORY_DMA
749 #define RMCFG_API_NvRmMapMemoryDma                1  // aka NV04_MAP_MEMORY_DMA
750 #define RMCFG_API_NV04_UNMAP_MEMORY_DMA           1
751 #define RMCFG_API_NVOS47_PARAMETERS               1  // aka NV04_UNMAP_MEMORY_DMA
752 #define RMCFG_API_NV_ESC_RM_UNMAP_MEMORY_DMA      1  // aka NV04_UNMAP_MEMORY_DMA
753 #define RMCFG_API_Nv04UnmapMemoryDma              1  // aka NV04_UNMAP_MEMORY_DMA
754 #define RMCFG_API_NvRmUnmapMemoryDma              1  // aka NV04_UNMAP_MEMORY_DMA
755 #define RMCFG_API_NV04_ALLOC_CONTEXT_DMA          1
756 #define RMCFG_API_NVOS39_PARAMETERS               1  // aka NV04_ALLOC_CONTEXT_DMA
757 #define RMCFG_API_NV_ESC_RM_ALLOC_CONTEXT_DMA2    1  // aka NV04_ALLOC_CONTEXT_DMA
758 #define RMCFG_API_Nv04AllocContextDma             1  // aka NV04_ALLOC_CONTEXT_DMA
759 #define RMCFG_API_NvRmAllocContextDma2            1  // aka NV04_ALLOC_CONTEXT_DMA
760 #define RMCFG_API_NV04_BIND_CONTEXT_DMA           1
761 #define RMCFG_API_NVOS49_PARAMETERS               1  // aka NV04_BIND_CONTEXT_DMA
762 #define RMCFG_API_NV_ESC_RM_BIND_CONTEXT_DMA      1  // aka NV04_BIND_CONTEXT_DMA
763 #define RMCFG_API_Nv04BindContextDma              1  // aka NV04_BIND_CONTEXT_DMA
764 #define RMCFG_API_NvRmBindContextDma              1  // aka NV04_BIND_CONTEXT_DMA
765 #define RMCFG_API_NV04_CONTROL                    1
766 #define RMCFG_API_NVOS54_PARAMETERS               1  // aka NV04_CONTROL
767 #define RMCFG_API_NV_ESC_RM_CONTROL               1  // aka NV04_CONTROL
768 #define RMCFG_API_Nv04Control                     1  // aka NV04_CONTROL
769 #define RMCFG_API_NvRmControl                     1  // aka NV04_CONTROL
770 #define RMCFG_API_NV04_DUP_OBJECT                 1
771 #define RMCFG_API_NVOS55_PARAMETERS               1  // aka NV04_DUP_OBJECT
772 #define RMCFG_API_NV_ESC_RM_DUP_OBJECT            1  // aka NV04_DUP_OBJECT
773 #define RMCFG_API_Nv04DupObject                   1  // aka NV04_DUP_OBJECT
774 #define RMCFG_API_NvRmDupObject                   1  // aka NV04_DUP_OBJECT
775 #define RMCFG_API_NV04_DUP_OBJECT2                1
776 #define RMCFG_API_NVOS55_PARAMETERS               1  // aka NV04_DUP_OBJECT2
777 #define RMCFG_API_NV_ESC_RM_DUP_OBJECT            1  // aka NV04_DUP_OBJECT2
778 #define RMCFG_API_Nv04DupObject                   1  // aka NV04_DUP_OBJECT2
779 #define RMCFG_API_NvRmDupObject2                  1  // aka NV04_DUP_OBJECT2
780 #define RMCFG_API_NV04_SHARE_OBJECT               1
781 #define RMCFG_API_NVOS57_PARAMETERS               1  // aka NV04_SHARE_OBJECT
782 #define RMCFG_API_NV_ESC_RM_SHARE                 1  // aka NV04_SHARE_OBJECT
783 #define RMCFG_API_Nv04Share                       1  // aka NV04_SHARE_OBJECT
784 #define RMCFG_API_NvRmShare                       1  // aka NV04_SHARE_OBJECT
785 #define RMCFG_API_NV04_ADD_VBLANK_CALLBACK        1
786 #define RMCFG_API_NVOS61_PARAMETERS               1  // aka NV04_ADD_VBLANK_CALLBACK
787 #define RMCFG_API_NV_ESC_RM_ADD_VBLANK_CALLBACK   1  // aka NV04_ADD_VBLANK_CALLBACK
788 #define RMCFG_API_Nv04AddVblankCallback           1  // aka NV04_ADD_VBLANK_CALLBACK
789 #define RMCFG_API_NvRmAddVblankCallback           1  // aka NV04_ADD_VBLANK_CALLBACK
790 #define RMCFG_API_NV04_ACCESS_REGISTRY            1
791 #define RMCFG_API_NvRmReadRegistryDword           1  // aka NV04_ACCESS_REGISTRY
792 #define RMCFG_API_NvRmWriteRegistryDword          1  // aka NV04_ACCESS_REGISTRY
793 #define RMCFG_API_NvRmGetNumRegistryEntries       1  // aka NV04_ACCESS_REGISTRY
794 #define RMCFG_API_NvRmDeleteRegistryEntry         1  // aka NV04_ACCESS_REGISTRY
795 #define RMCFG_API_NvRmReadRegistryEntry           1  // aka NV04_ACCESS_REGISTRY
796 #define RMCFG_API_NvRmReadRegistryBinary          1  // aka NV04_ACCESS_REGISTRY
797 #define RMCFG_API_NvRmWriteRegistryBinary         1  // aka NV04_ACCESS_REGISTRY
798 #define RMCFG_API_NVOS38_PARAMETERS               1  // aka NV04_ACCESS_REGISTRY
799 #define RMCFG_API_NV_ESC_RM_ACCESS_REGISTRY       1  // aka NV04_ACCESS_REGISTRY
800 #define RMCFG_API_NV04_GET_EVENT_DATA             1
801 #define RMCFG_API_NVOS41_PARAMETERS               1  // aka NV04_GET_EVENT_DATA
802 #define RMCFG_API_NV_ESC_RM_GET_EVENT_DATA        1  // aka NV04_GET_EVENT_DATA
803 #define RMCFG_API_NvRmGetEventData                1  // aka NV04_GET_EVENT_DATA
804 #define RMCFG_API_NV04_UPDATE_DEVICE_MAPPING_INFO  1  // Update Mapping Parameters (unix-only)
805 #define RMCFG_API_NVOS56_PARAMETERS               1  // aka NV04_UPDATE_DEVICE_MAPPING_INFO
806 #define RMCFG_API_NV_ESC_RM_UPDATE_DEVICE_MAPPING_INFO  1  // aka NV04_UPDATE_DEVICE_MAPPING_INFO
807 #define RMCFG_API_NVXX_CARD_INFO                  1
808 #define RMCFG_API_nv_ioctl_card_info_t            1  // aka NVXX_CARD_INFO
809 #define RMCFG_API_NV_ESC_CARD_INFO                1  // aka NVXX_CARD_INFO
810 #define RMCFG_API_NVXX_ENV_INFO                   1
811 #define RMCFG_API_nv_ioctl_env_info_t             1  // aka NVXX_ENV_INFO
812 #define RMCFG_API_NV_ESC_ENV_INFO                 1  // aka NVXX_ENV_INFO
813 #define RMCFG_API_NVXX_ALLOC_OS_EVENT             1
814 #define RMCFG_API_nv_ioctl_alloc_os_event_t       1  // aka NVXX_ALLOC_OS_EVENT
815 #define RMCFG_API_NV_ESC_ALLOC_OS_EVENT           1  // aka NVXX_ALLOC_OS_EVENT
816 #define RMCFG_API_NvRmAllocOsEvent                1  // aka NVXX_ALLOC_OS_EVENT
817 #define RMCFG_API_NVXX_FREE_OS_EVENT              1
818 #define RMCFG_API_nv_ioctl_free_os_event_t        1  // aka NVXX_FREE_OS_EVENT
819 #define RMCFG_API_NV_ESC_FREE_OS_EVENT            1  // aka NVXX_FREE_OS_EVENT
820 #define RMCFG_API_NvRmFreeOsEvent                 1  // aka NVXX_FREE_OS_EVENT
821 #define RMCFG_API_NVXX_STATUS_CODE                1
822 #define RMCFG_API_nv_ioctl_status_code_t          1  // aka NVXX_STATUS_CODE
823 #define RMCFG_API_NV_ESC_STATUS_CODE              1  // aka NVXX_STATUS_CODE
824 #define RMCFG_API_NVXX_CHECK_VERSION_STR          1
825 #define RMCFG_API_nv_ioctl_rm_api_version_t       1  // aka NVXX_CHECK_VERSION_STR
826 #define RMCFG_API_NV_ESC_CHECK_VERSION_STR        1  // aka NVXX_CHECK_VERSION_STR
827 #define RMCFG_API_NVXX_ATTACH_GPUS_TO_FD          1
828 #define RMCFG_API_NvU32                           1  // aka NVXX_ATTACH_GPUS_TO_FD
829 #define RMCFG_API_NV_ESC_ATTACH_GPUS_TO_FD        1  // aka NVXX_ATTACH_GPUS_TO_FD
830 
831 
832 
833 // Disable misspelling detection
834 #define __RMCFG_vet_enabled  0
835 
836 
837 
838 
839 
840 
841 
842 
843 // Make sure the specified feature is defined and not a misspelling
844 // by checking the "_def" forms above which are all set to '1' for
845 // each defined chip, feature, etc, irrespective of it's enable/disable
846 // state.
847 #define _RMCFG_vet(x)  0
848 #if __RMCFG_vet_enabled && defined(__GNUC__) // broken on MSVC
849 #  undef  _RMCFG_vet
850 #  define _RMCFG_vet(x)  ((__def_RMCFG ## x) ? 0 : (0 * (1/0)))
851 #endif
852 
853 //
854 // Compile-time constant macros to help with enabling or disabling code based
855 // on whether a feature (or chip or class or engine or ...) is enabled.
856 // May be used by both C code ('if') and C-preprocessor directives ('#if')
857 //
858 
859 #define RMCFG_CHIP_ENABLED(_chip)       (RMCFG_CHIP_##_chip        + _RMCFG_vet(_CHIP_ ## _chip))
860 #define RMCFG_FEATURE_ENABLED(_feature) (RMCFG_FEATURE_##_feature  + _RMCFG_vet(_FEATURE_ ## _feature))
861 #define RMCFG_MODULE_ENABLED(_module)   (RMCFG_MODULE_##_module    + _RMCFG_vet(_MODULE_ ## _module))
862 #define RMCFG_CLASS_ENABLED(_clss)      (RMCFG_CLASS_##_clss       + _RMCFG_vet(_CLASS_ ## _clss))
863 #define RMCFG_API_ENABLED(_api)         (RMCFG_API_##_api          + _RMCFG_vet(_API_ ## _api))
864 
865 #endif // _RMCFG_H_
866