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