1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: MIT
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in
13  * all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21  * DEALINGS IN THE SOFTWARE.
22  */
23 
24 #pragma once
25 
26 #include <nvtypes.h>
27 
28 //
29 // This file was generated with FINN, an NVIDIA coding tool.
30 // Source file:      ctrl/ctrl2080/ctrl2080vgpumgrinternal.finn
31 //
32 
33 #include "ctrl/ctrl2080/ctrl2080base.h"
34 #include "ctrl/ctrla081.h"
35 
36 /*
37  * NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_BOOTLOAD_GSP_VGPU_PLUGIN_TASK
38  *
39  * This command is used to bootload GSP VGPU plugin task.
40  * Can be called only with SR-IOV and with VGPU_GSP_PLUGIN_OFFLOAD feature.
41  *
42  * dbdf                        - domain (31:16), bus (15:8), device (7:3), function (2:0)
43  * gfid                        - Gfid
44  * vgpuType                    - The Type ID for VGPU profile
45  * vmPid                       - Plugin process ID of vGPU guest instance
46  * swizzId                     - SwizzId
47  * numChannels                 - Number of channels
48  * numPluginChannels           - Number of plugin channels
49  * bDisableSmcPartitionRestore - If set to true, SMC default execution partition
50  *                               save/restore will not be done in host-RM
51  * guestFbPhysAddrList         - list of VMMU segment aligned physical address of guest FB memory
52  * guestFbLengthList           - list of guest FB memory length in bytes
53  * pluginHeapMemoryPhysAddr    - plugin heap memory offset
54  * pluginHeapMemoryLength      - plugin heap memory length in bytes
55  * migRmHeapMemoryPhysAddr     - Mig rm heap memory region's physical offset.
56  * migRmHeapMemoryLength       - Mig rm heap memory length in bytes
57  * bDeviceProfilingEnabled     - If set to true, profiling is allowed
58  */
59 #define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_BOOTLOAD_GSP_VGPU_PLUGIN_TASK (0x20804001) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_VGPU_MGR_INTERNAL_BOOTLOAD_GSP_VGPU_PLUGIN_TASK_PARAMS_MESSAGE_ID" */
60 
61 #define NV2080_CTRL_MAX_VMMU_SEGMENTS                                   384
62 
63 /* Must match NV2080_ENGINE_TYPE_LAST from cl2080.h */
64 #define NV2080_GPU_MAX_ENGINES                                          0x3f
65 
66 #define NV2080_CTRL_VGPU_MGR_INTERNAL_BOOTLOAD_GSP_VGPU_PLUGIN_TASK_PARAMS_MESSAGE_ID (0x1U)
67 
68 typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_BOOTLOAD_GSP_VGPU_PLUGIN_TASK_PARAMS {
69     NvU32  dbdf;
70     NvU32  gfid;
71     NvU32  vgpuType;
72     NvU32  vmPid;
73     NvU32  swizzId;
74     NvU32  numChannels;
75     NvU32  numPluginChannels;
76     NvU32  chidOffset[NV2080_GPU_MAX_ENGINES];
77     NvBool bDisableDefaultSmcExecPartRestore;
78     NvU32  numGuestFbSegments;
79     NV_DECLARE_ALIGNED(NvU64 guestFbPhysAddrList[NV2080_CTRL_MAX_VMMU_SEGMENTS], 8);
80     NV_DECLARE_ALIGNED(NvU64 guestFbLengthList[NV2080_CTRL_MAX_VMMU_SEGMENTS], 8);
81     NV_DECLARE_ALIGNED(NvU64 pluginHeapMemoryPhysAddr, 8);
82     NV_DECLARE_ALIGNED(NvU64 pluginHeapMemoryLength, 8);
83     NV_DECLARE_ALIGNED(NvU64 ctrlBuffOffset, 8);
84     NV_DECLARE_ALIGNED(NvU64 initTaskLogBuffOffset, 8);
85     NV_DECLARE_ALIGNED(NvU64 initTaskLogBuffSize, 8);
86     NV_DECLARE_ALIGNED(NvU64 vgpuTaskLogBuffOffset, 8);
87     NV_DECLARE_ALIGNED(NvU64 vgpuTaskLogBuffSize, 8);
88     NV_DECLARE_ALIGNED(NvU64 migRmHeapMemoryPhysAddr, 8);
89     NV_DECLARE_ALIGNED(NvU64 migRmHeapMemoryLength, 8);
90     NvBool bDeviceProfilingEnabled;
91 } NV2080_CTRL_VGPU_MGR_INTERNAL_BOOTLOAD_GSP_VGPU_PLUGIN_TASK_PARAMS;
92 
93 /*
94  * NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SHUTDOWN_GSP_VGPU_PLUGIN_TASK
95  *
96  * This command is used to shutdown GSP VGPU plugin task.
97  * Can be called only with SR-IOV and with VGPU_GSP_PLUGIN_OFFLOAD feature.
98  *
99  * gfid                        - Gfid
100  */
101 #define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SHUTDOWN_GSP_VGPU_PLUGIN_TASK (0x20804002) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_VGPU_MGR_INTERNAL_SHUTDOWN_GSP_VGPU_PLUGIN_TASK_PARAMS_MESSAGE_ID" */
102 
103 #define NV2080_CTRL_VGPU_MGR_INTERNAL_SHUTDOWN_GSP_VGPU_PLUGIN_TASK_PARAMS_MESSAGE_ID (0x2U)
104 
105 typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_SHUTDOWN_GSP_VGPU_PLUGIN_TASK_PARAMS {
106     NvU32 gfid;
107 } NV2080_CTRL_VGPU_MGR_INTERNAL_SHUTDOWN_GSP_VGPU_PLUGIN_TASK_PARAMS;
108 
109 /*
110  * NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_PGPU_ADD_VGPU_TYPE
111  *
112  * This command is used to add a new vGPU config to the pGPU in physical RM.
113  * Unlike NVA081_CTRL_CMD_VGPU_CONFIG_SET_INFO, it does no validation
114  * and is only to be used internally.
115  *
116  * discardVgpuTypes [IN]
117  *  This parameter specifies if existing vGPU configuration should be
118  *  discarded for given pGPU
119  *
120  * vgpuInfoCount [IN]
121  *   This parameter specifies the number of entries of virtual GPU type
122 *    information
123  *
124  * vgpuInfo [IN]
125  *   This parameter specifies virtual GPU type information
126  *
127  * Possible status values returned are:
128  *   NV_OK
129  *   NV_ERR_OBJECT_NOT_FOUND
130  *   NV_ERR_NOT_SUPPORTED
131  */
132 #define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_PGPU_ADD_VGPU_TYPE (0x20804003) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_VGPU_MGR_INTERNAL_PGPU_ADD_VGPU_TYPE_PARAMS_MESSAGE_ID" */
133 
134 #define NV2080_CTRL_VGPU_MGR_INTERNAL_PGPU_ADD_VGPU_TYPE_PARAMS_MESSAGE_ID (0x3U)
135 
136 typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_PGPU_ADD_VGPU_TYPE_PARAMS {
137     NvBool discardVgpuTypes;
138     NvU32  vgpuInfoCount;
139     NV_DECLARE_ALIGNED(NVA081_CTRL_VGPU_INFO vgpuInfo[NVA081_MAX_VGPU_TYPES_PER_PGPU], 8);
140 } NV2080_CTRL_VGPU_MGR_INTERNAL_PGPU_ADD_VGPU_TYPE_PARAMS;
141 
142 /*
143  * NV2080_GUEST_VM_INFO
144  *
145  * This structure represents vGPU guest's (VM's) information
146  *
147  * vmPid [OUT]
148  *  This param specifies the vGPU plugin process ID
149  * guestOs [OUT]
150  *  This param specifies the vGPU guest OS type
151  * migrationProhibited [OUT]
152  *  This flag indicates whether migration is prohibited for VM or not
153  * guestNegotiatedVgpuVersion [OUT]
154  *  This param specifies the vGPU version of guest driver after negotiation
155  * frameRateLimit [OUT]
156  *  This param specifies the current value of FRL set for guest
157  * licensed [OUT]
158  *  This param specifies whether the VM is Unlicensed/Licensed
159  * licenseState [OUT]
160  *  This param specifies the current state of the GRID license state machine
161  * licenseExpiryTimestamp [OUT]
162  *  License expiry time in seconds since UNIX epoch
163  * licenseExpiryStatus [OUT]
164  *  License expiry status
165  * guestDriverVersion [OUT]
166  *  This param specifies the driver version of the driver installed on the VM
167  * guestDriverBranch [OUT]
168  *  This param specifies the driver branch of the driver installed on the VM
169  * guestVmInfoState [OUT]
170  *  This param stores the current state of guest dependent fields
171  *
172  */
173 typedef struct NV2080_GUEST_VM_INFO {
174     NvU32               vmPid;
175     NvU32               guestOs;
176     NvU32               migrationProhibited;
177     NvU32               guestNegotiatedVgpuVersion;
178     NvU32               frameRateLimit;
179     NvBool              licensed;
180     NvU32               licenseState;
181     NvU32               licenseExpiryTimestamp;
182     NvU8                licenseExpiryStatus;
183     NvU8                guestDriverVersion[NVA081_VGPU_STRING_BUFFER_SIZE];
184     NvU8                guestDriverBranch[NVA081_VGPU_STRING_BUFFER_SIZE];
185     GUEST_VM_INFO_STATE guestVmInfoState;
186 } NV2080_GUEST_VM_INFO;
187 
188 /*
189  * NV2080_GUEST_VGPU_DEVICE
190  *
191  * This structure represents host vgpu device's (assigned to VM) information
192  *
193  * gfid [OUT]
194  *  This parameter specifies the gfid of vGPU assigned to VM.
195  * vgpuPciId [OUT]
196  *  This parameter specifies vGPU PCI ID
197  * vgpuDeviceInstanceId [OUT]
198  *  This paramter specifies the vGPU device instance per VM to be used for supporting
199  *  multiple vGPUs per VM.
200  * fbUsed [OUT]
201  *  This parameter specifies FB usage in bytes
202  * eccState [OUT]
203  *  This parameter specifies the ECC state of the virtual GPU.
204  *  One of NVA081_CTRL_ECC_STATE_xxx values.
205  * bDriverLoaded [OUT]
206  *  This parameter specifies whether driver is loaded on this particular vGPU.
207  *
208  */
209 typedef struct NV2080_HOST_VGPU_DEVICE {
210     NvU32  gfid;
211     NV_DECLARE_ALIGNED(NvU64 vgpuPciId, 8);
212     NvU32  vgpuDeviceInstanceId;
213     NV_DECLARE_ALIGNED(NvU64 fbUsed, 8);
214     NvU32  encoderCapacity;
215     NvU32  eccState;
216     NvBool bDriverLoaded;
217 } NV2080_HOST_VGPU_DEVICE;
218 
219 /*
220  * NV2080_VGPU_GUEST
221  *
222  * This structure represents a vGPU guest
223  *
224  */
225 typedef struct NV2080_VGPU_GUEST {
226     NV2080_GUEST_VM_INFO guestVmInfo;
227     NV_DECLARE_ALIGNED(NV2080_HOST_VGPU_DEVICE vgpuDevice, 8);
228 } NV2080_VGPU_GUEST;
229 
230 /*
231  * NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_ENUMERATE_VGPU_PER_PGPU
232  *
233  * This command enumerates list of vGPU guest instances per pGpu
234  *
235  * numVgpu [OUT]
236  *  This parameter specifies the number of virtual GPUs created on this physical GPU
237  *
238  * vgpuGuest [OUT]
239  *  This parameter specifies an array containing guest vgpu's information for
240  *  all vGPUs created on this physical GPU
241  *
242  * Possible status values returned are:
243  *   NV_OK
244  *   NV_ERR_OBJECT_NOT_FOUND
245  */
246 #define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_ENUMERATE_VGPU_PER_PGPU (0x20804004) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_VGPU_MGR_INTERNAL_ENUMERATE_VGPU_PER_PGPU_PARAMS_MESSAGE_ID" */
247 
248 #define NV2080_CTRL_VGPU_MGR_INTERNAL_ENUMERATE_VGPU_PER_PGPU_PARAMS_MESSAGE_ID (0x4U)
249 
250 typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_ENUMERATE_VGPU_PER_PGPU_PARAMS {
251     NvU32 numVgpu;
252     NV_DECLARE_ALIGNED(NV2080_VGPU_GUEST vgpuGuest[NVA081_MAX_VGPU_PER_PGPU], 8);
253 } NV2080_CTRL_VGPU_MGR_INTERNAL_ENUMERATE_VGPU_PER_PGPU_PARAMS;
254 
255 /*
256  * NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_CLEAR_GUEST_VM_INFO
257  *
258  * This command is used clear guest vm info. It should be used when
259  * NVA084_CTRL_CMD_KERNEL_HOST_VGPU_DEVICE_SET_VGPU_GUEST_LIFE_CYCLE_STATE
260  * is called with NVA081_NOTIFIERS_EVENT_VGPU_GUEST_DESTROYED state.
261  *
262  * gfid [IN]
263  *  This parameter specifies the gfid of vGPU assigned to VM.
264  *
265  * Possible status values returned are:
266  *   NV_OK
267  *   NV_ERR_OBJECT_NOT_FOUND
268  */
269 #define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_CLEAR_GUEST_VM_INFO (0x20804005) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_VGPU_MGR_INTERNAL_CLEAR_GUEST_VM_INFO_PARAMS_MESSAGE_ID" */
270 
271 #define NV2080_CTRL_VGPU_MGR_INTERNAL_CLEAR_GUEST_VM_INFO_PARAMS_MESSAGE_ID (0x5U)
272 
273 typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_CLEAR_GUEST_VM_INFO_PARAMS {
274     NvU32 gfid;
275 } NV2080_CTRL_VGPU_MGR_INTERNAL_CLEAR_GUEST_VM_INFO_PARAMS;
276 
277 /*
278  * NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_GET_VGPU_FB_USAGE
279  *
280  * This command is used to get the FB usage of all vGPU instances running on a GPU.
281  *
282  * vgpuCount [OUT]
283  *  This field specifies the number of vGPU devices for which FB usage is returned.
284  * vgpuFbUsage [OUT]
285  *  This is an array of type NV2080_VGPU_FB_USAGE, which contains a list of vGPU gfid
286  *  and their corresponding FB usage in bytes.
287  *
288  * Possible status values returned are:
289  *   NV_OK
290  *   NV_ERR_OBJECT_NOT_FOUND
291  */
292 #define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_GET_VGPU_FB_USAGE (0x20804006) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_VGPU_MGR_INTERNAL_GET_VGPU_FB_USAGE_PARAMS_MESSAGE_ID" */
293 
294 typedef struct NV2080_VGPU_FB_USAGE {
295     NvU32 gfid;
296     NV_DECLARE_ALIGNED(NvU64 fbUsed, 8);
297 } NV2080_VGPU_FB_USAGE;
298 
299 #define NV2080_CTRL_VGPU_MGR_INTERNAL_GET_VGPU_FB_USAGE_PARAMS_MESSAGE_ID (0x6U)
300 
301 typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_GET_VGPU_FB_USAGE_PARAMS {
302     NvU32 vgpuCount;
303     NV_DECLARE_ALIGNED(NV2080_VGPU_FB_USAGE vgpuFbUsage[NVA081_MAX_VGPU_PER_PGPU], 8);
304 } NV2080_CTRL_VGPU_MGR_INTERNAL_GET_VGPU_FB_USAGE_PARAMS;
305 
306 /*
307  * NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SET_VGPU_ENCODER_CAPACITY
308  *
309  * This command is used to set vGPU instance's (represented by gfid) encoder Capacity.
310  *
311  * gfid [IN]
312  *  This parameter specifies the gfid of vGPU assigned to VM.
313  * encoderCapacity [IN]
314  *  Encoder capacity value from 0 to 100. Value of 0x00 indicates encoder performance
315  *  may be minimal for this GPU and software should fall back to CPU-based encode.
316  *
317  * Possible status values returned are:
318  *   NV_OK
319  *   NV_ERR_OBJECT_NOT_FOUND
320  */
321 #define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SET_VGPU_ENCODER_CAPACITY (0x20804007) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_VGPU_MGR_INTERNAL_SET_VGPU_ENCODER_CAPACITY_PARAMS_MESSAGE_ID" */
322 
323 #define NV2080_CTRL_VGPU_MGR_INTERNAL_SET_VGPU_ENCODER_CAPACITY_PARAMS_MESSAGE_ID (0x7U)
324 
325 typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_SET_VGPU_ENCODER_CAPACITY_PARAMS {
326     NvU32 gfid;
327     NvU32 encoderCapacity;
328 } NV2080_CTRL_VGPU_MGR_INTERNAL_SET_VGPU_ENCODER_CAPACITY_PARAMS;
329 
330 /*
331  * NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_VGPU_PLUGIN_CLEANUP
332  *
333  * This command is used to cleanup all the GSP VGPU plugin task allocated resources after its shutdown.
334  * Can be called only with SR-IOV and with VGPU_GSP_PLUGIN_OFFLOAD feature.
335  *
336  * gfid [IN]
337  *  This parameter specifies the gfid of vGPU assigned to VM.
338  *
339  * Possible status values returned are:
340  *   NV_OK
341  *   NV_ERR_NOT_SUPPORTED
342  */
343 #define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_VGPU_PLUGIN_CLEANUP (0x20804008) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_VGPU_MGR_INTERNAL_VGPU_PLUGIN_CLEANUP_PARAMS_MESSAGE_ID" */
344 
345 #define NV2080_CTRL_VGPU_MGR_INTERNAL_VGPU_PLUGIN_CLEANUP_PARAMS_MESSAGE_ID (0x8U)
346 
347 typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_VGPU_PLUGIN_CLEANUP_PARAMS {
348     NvU32 gfid;
349 } NV2080_CTRL_VGPU_MGR_INTERNAL_VGPU_PLUGIN_CLEANUP_PARAMS;
350 
351 #define NV2080_CTRL_MAX_NVU32_TO_CONVERTED_STR_LEN             8
352 #define NV2080_CTRL_MAX_GPC_COUNT                              32
353 
354 /*
355  * NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_GET_PGPU_FS_ENCODING
356  *
357  * Reroutes kvgpumgrGetPgpuFSEncoding to vgpuMgrGetPgpuFSEncoding.
358  *
359  * pgpuString [OUT]
360  *  Resulting PGPU string
361  * pgpuStringSize
362  *  PGPU string size
363  *
364  * Possible status values returned are:
365  *   NV_OK
366  *   NV_ERR_INVALID_ARGUMENT
367  */
368 #define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_GET_PGPU_FS_ENCODING (0x20804009) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_VGPU_MGR_INTERNAL_GET_PGPU_FS_ENCODING_PARAMS_MESSAGE_ID" */
369 
370 #define NV2080_CTRL_VGPU_MGR_INTERNAL_GET_PGPU_FS_ENCODING_PARAMS_MESSAGE_ID (0x9U)
371 
372 typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_GET_PGPU_FS_ENCODING_PARAMS {
373     NvU8  pgpuString[NVA081_PGPU_METADATA_STRING_SIZE];
374     NvU32 pgpuStringSize;
375 } NV2080_CTRL_VGPU_MGR_INTERNAL_GET_PGPU_FS_ENCODING_PARAMS;
376 
377 /*
378  * NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_GET_PGPU_MIGRATION_SUPPORT
379  *
380  * Reroutes kvgpumgrCheckPgpuMigrationSupport to vgpuMgrCheckPgpuMigrationSupport.
381  *
382  * bIsMigrationSupported [OUT]
383  *  Resulting status of the migration support
384  *
385  * Possible status values returned are:
386  *   NV_OK
387  */
388 #define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_GET_PGPU_MIGRATION_SUPPORT (0x2080400a) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_VGPU_MGR_INTERNAL_GET_PGPU_MIGRATION_SUPPORT_PARAMS_MESSAGE_ID" */
389 
390 #define NV2080_CTRL_VGPU_MGR_INTERNAL_GET_PGPU_MIGRATION_SUPPORT_PARAMS_MESSAGE_ID (0xAU)
391 
392 typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_GET_PGPU_MIGRATION_SUPPORT_PARAMS {
393     NvBool bIsMigrationSupported;
394 } NV2080_CTRL_VGPU_MGR_INTERNAL_GET_PGPU_MIGRATION_SUPPORT_PARAMS;
395 
396 /*
397  * NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SET_VGPU_MGR_CONFIG
398  *
399  * Sets vgpu manager parameters. This control is used after GSP initialization.
400  *
401  * bSupportHeterogeneousTimeSlicedVgpuTypes [IN]
402  *  Enable/disable heterogeneous time-sliced vgpu types
403  *
404  * Possible status values returned are:
405  *   NV_OK
406  */
407 #define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SET_VGPU_MGR_CONFIG (0x2080400b) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_VGPU_MGR_INTERNAL_SET_VGPU_MGR_CONFIG_PARAMS_MESSAGE_ID" */
408 
409 #define NV2080_CTRL_VGPU_MGR_INTERNAL_SET_VGPU_MGR_CONFIG_PARAMS_MESSAGE_ID (0xBU)
410 
411 typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_SET_VGPU_MGR_CONFIG_PARAMS {
412     NvBool bSupportHeterogeneousTimeSlicedVgpuTypes;
413 } NV2080_CTRL_VGPU_MGR_INTERNAL_SET_VGPU_MGR_CONFIG_PARAMS;
414 
415 /* _ctrl2080vgpumgrinternal_h_ */
416