1 #ifndef _G_KERNEL_GSP_NVOC_H_ 2 #define _G_KERNEL_GSP_NVOC_H_ 3 #include "nvoc/runtime.h" 4 5 #ifdef __cplusplus 6 extern "C" { 7 #endif 8 9 /* 10 * SPDX-FileCopyrightText: Copyright (c) 2017-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. 11 * SPDX-License-Identifier: MIT 12 * 13 * Permission is hereby granted, free of charge, to any person obtaining a 14 * copy of this software and associated documentation files (the "Software"), 15 * to deal in the Software without restriction, including without limitation 16 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 17 * and/or sell copies of the Software, and to permit persons to whom the 18 * Software is furnished to do so, subject to the following conditions: 19 * 20 * The above copyright notice and this permission notice shall be included in 21 * all copies or substantial portions of the Software. 22 * 23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 26 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 29 * DEALINGS IN THE SOFTWARE. 30 */ 31 32 #include "g_kernel_gsp_nvoc.h" 33 34 #ifndef KERNEL_GSP_H 35 #define KERNEL_GSP_H 36 37 /*! 38 * This file provides definitions for all KernelGsp data structures 39 * and interfaces. KernelGsp is responsible for initiating the boot 40 * of RM on the GSP core (GSP-RM) and helps facilitate communication 41 * between Kernel RM and GSP-RM. 42 */ 43 44 #include "core/core.h" 45 #include "core/bin_data.h" 46 #include "gpu/eng_state.h" 47 #include "gpu/intr/intr_service.h" 48 #include "gpu/falcon/kernel_falcon.h" 49 #include "gpu/gsp/gsp_static_config.h" 50 #include "gpu/gsp/gsp_init_args.h" 51 #include "gpu/gsp/gsp_fw_heap.h" 52 #include "nv-firmware.h" 53 #include "nv_sriov_defines.h" 54 #include "rmRiscvUcode.h" 55 56 #include "libos_init_args.h" 57 #include "gsp_fw_wpr_meta.h" 58 #include "gsp_fw_sr_meta.h" 59 #include "liblogdecode.h" 60 61 /*! 62 * Forward declarations 63 */ 64 typedef struct SimAccessBuffer SimAccessBuffer; 65 typedef struct GSP_FMC_BOOT_PARAMS GSP_FMC_BOOT_PARAMS; 66 67 /*! 68 * Structure for VBIOS image for early FRTS. 69 */ 70 typedef struct KernelGspVbiosImg 71 { 72 NvU8 *pImage; 73 NvU32 biosSize; 74 NvU32 expansionRomOffset; 75 } KernelGspVbiosImg; 76 77 /*! 78 * Variant of KernelGspFlcnUcode representing a non-Boot-from-HS ucode that 79 * loads directly without the generic falcon bootloader. 80 */ 81 typedef struct KernelGspFlcnUcodeBootDirect 82 { 83 NvU8 *pImage; 84 NvU32 size; 85 86 NvU32 imemSize; 87 NvU32 imemNsSize; 88 NvU32 imemNsPa; 89 NvU32 imemSecSize; 90 NvU32 imemSecPa; 91 92 NvU32 dataOffset; 93 NvU32 dmemSize; 94 NvU32 dmemPa; 95 } KernelGspFlcnUcodeBootDirect; 96 97 /*! 98 * Variant of KernelGspFlcnUcode representing a non-Boot-from-HS ucode that 99 * loads via the generic falcon bootloader. 100 */ 101 typedef struct KernelGspFlcnUcodeBootWithLoader 102 { 103 MEMORY_DESCRIPTOR *pCodeMemDesc; 104 MEMORY_DESCRIPTOR *pDataMemDesc; 105 106 NvU32 codeOffset; 107 NvU32 imemSize; 108 NvU32 imemNsSize; 109 NvU32 imemNsPa; 110 NvU32 imemSecSize; 111 NvU32 imemSecPa; 112 NvU32 codeEntry; 113 114 NvU32 dataOffset; 115 NvU32 dmemSize; 116 NvU32 dmemPa; 117 118 // Extra fields used for falcon ucodes from VBIOS 119 NvU32 interfaceOffset; 120 } KernelGspFlcnUcodeBootWithLoader; 121 122 /*! 123 * Variant of KernelGspFlcnUcode representing a Boot-from-HS ucode. 124 */ 125 typedef struct KernelGspFlcnUcodeBootFromHs 126 { 127 MEMORY_DESCRIPTOR *pUcodeMemDesc; 128 NvU32 size; 129 130 NvU32 codeOffset; 131 NvU32 imemSize; 132 NvU32 imemPa; 133 NvU32 imemVa; 134 135 NvU32 dataOffset; 136 NvU32 dmemSize; 137 NvU32 dmemPa; 138 NvU32 dmemVa; 139 140 NvU32 hsSigDmemAddr; 141 NvU32 ucodeId; 142 NvU32 engineIdMask; 143 144 // Extra fields used for falcon ucodes from VBIOS 145 NvU32 *pSignatures; 146 NvU32 signaturesTotalSize; // size of buffer pointed by pSignatures 147 NvU32 sigSize; // size of one signature 148 NvU32 sigCount; 149 150 NvU32 vbiosSigVersions; 151 NvU32 interfaceOffset; 152 } KernelGspFlcnUcodeBootFromHs; 153 154 /*! 155 * Type of KernelGspFlcnUcode. Used as tag in tagged union KernelGspFlcnUcode. 156 * Affects how the ucode is loaded/booted. 157 */ 158 typedef enum KernelGspFlcnUcodeBootType 159 { 160 KGSP_FLCN_UCODE_BOOT_DIRECT, 161 KGSP_FLCN_UCODE_BOOT_WITH_LOADER, 162 KGSP_FLCN_UCODE_BOOT_FROM_HS 163 } KernelGspFlcnUcodeBootType; 164 165 /*! 166 * RPC processing trigger 167 */ 168 typedef enum KernelGspRpcEventHandlerContext 169 { 170 KGSP_RPC_EVENT_HANDLER_CONTEXT_POLL, // called after issuing an RPC 171 KGSP_RPC_EVENT_HANDLER_CONTEXT_POLL_BOOTUP, // called from kgspWaitForRmInitDone 172 KGSP_RPC_EVENT_HANDLER_CONTEXT_INTERRUPT // called in bottom-half interrupt path 173 } KernelGspRpcEventHandlerContext; 174 175 /*! 176 * Tagged union of falcon ucode variants used by early FRTS and GSP-RM boot. 177 */ 178 typedef struct KernelGspFlcnUcode 179 { 180 KernelGspFlcnUcodeBootType bootType; 181 union 182 { 183 KernelGspFlcnUcodeBootDirect ucodeBootDirect; 184 KernelGspFlcnUcodeBootWithLoader ucodeBootWithLoader; 185 KernelGspFlcnUcodeBootFromHs ucodeBootFromHs; 186 }; 187 } KernelGspFlcnUcode; 188 189 /*! 190 * Structure for used for executing a FWSEC command 191 */ 192 typedef struct KernelGspPreparedFwsecCmd 193 { 194 KernelGspFlcnUcode *pFwsecUcode; 195 NvU32 cmd; 196 NvU64 frtsOffset; 197 } KernelGspPreparedFwsecCmd; 198 199 /*! 200 * GSP-RM source when running in Emulated/Simulated RISCV environment is 201 * extremely slow, so we need a factor (X) to scale timeouts by. 202 */ 203 #define GSP_SCALE_TIMEOUT_EMU_SIM 2500 204 205 /*! 206 * Size of libos init arguments packet. 207 */ 208 #define LIBOS_INIT_ARGUMENTS_SIZE 0x1000 209 210 /*! 211 * Structure for passing GSP-RM firmware data 212 */ 213 typedef struct GSP_FIRMWARE 214 { 215 const void *pBuf; // buffer holding the firmware (ucode) 216 NvU32 size; // size of the firmware 217 const void *pImageData; // points to the GSP FW image start inside the pBuf buffer 218 NvU64 imageSize; // GSP FW image size inside the pBuf buffer 219 const void *pSignatureData; // points to the GSP FW signature start inside the pBuf buffer 220 NvU64 signatureSize; // GSP FW signature size inside the pBuf buffer 221 const void *pLogElf; // firmware logging section and symbol information to decode logs 222 NvU32 logElfSize; // size of the gsp log elf binary 223 } GSP_FIRMWARE; 224 225 /*! 226 * Known ELF section names (or name prefixes) of gsp_*.bin or gsp_log_*.bin. 227 */ 228 #define GSP_VERSION_SECTION_NAME ".fwversion" 229 #define GSP_IMAGE_SECTION_NAME ".fwimage" 230 #define GSP_LOGGING_SECTION_NAME ".fwlogging" 231 #define GSP_SIGNATURE_SECTION_NAME_PREFIX ".fwsignature_" 232 #define GSP_CC_SIGNATURE_SECTION_NAME_PREFIX ".fwsignature_cc_" 233 234 /*! 235 * GSP Notify op infra. Used by UVM in HCC mode. 236 */ 237 #define GSP_NOTIFY_OP_RESERVED_OPCODE 0 238 // Request fault buffer flush. 239 #define GSP_NOTIFY_OP_FLUSH_REPLAYABLE_FAULT_BUFFER_OPCODE 1 240 #define GSP_NOTIFY_OP_FLUSH_REPLAYABLE_FAULT_BUFFER_VALID_ARGC 1 241 #define GSP_NOTIFY_OP_FLUSH_REPLAYABLE_FAULT_BUFFER_FLUSH_MODE_ARGIDX 0 242 // Fault on prefetch toggle. 243 #define GSP_NOTIFY_OP_TOGGLE_FAULT_ON_PREFETCH_OPCODE 2 244 #define GSP_NOTIFY_OP_TOGGLE_FAULT_ON_PREFETCH_VALID_ARGC 1 245 #define GSP_NOTIFY_OP_TOGGLE_FAULT_ON_PREFETCH_EN_ARGIDX 0 246 // Always keep this as the last defined value 247 #define GSP_NOTIFY_OP_OPCODE_MAX 3 248 #define GSP_NOTIFY_OP_NO_ARGUMENTS 0 249 #define GSP_NOTIFY_OP_MAX_ARGUMENT_COUNT 1 250 typedef struct NotifyOpSharedSurface 251 { 252 NvU32 inUse; // 0 - signals free, 1 - signals busy 253 // An atomic swap is issued in a loop over this field from the 254 // KernelRM side to synchronize access to the shared notify op resource. 255 // Once the operation finishes the exiting thread flips the value back to 0. 256 NvU32 seqNum; // Read by KernelRM; Written by GSP. Provides synchronization so the 257 // requester knows when the operation is finished by GSP. 258 NvU32 opCode; // Written by KernelRM; Read by GSP. Specifies the operation to be performed. 259 NvU32 status; // Read by KernelRM; Written by GSP. Specifies the status of the operation. 260 // Becomes valid for the current operation after seqNum is incremented. 261 NvU32 argc; // Written by KernelRM; Read by GSP. Specifies the number of arguments. 262 NvU32 args[GSP_NOTIFY_OP_MAX_ARGUMENT_COUNT]; // Written by KernelRM; Read by GSP. Contains a list of NvU32 args used 263 // by the operation. 264 } NotifyOpSharedSurface; 265 266 /*! 267 * Index into libosLogDecode array. 268 */ 269 enum 270 { 271 LOGIDX_INIT, 272 LOGIDX_INTR, 273 LOGIDX_RM, 274 LOGIDX_SIZE 275 }; 276 277 /*! 278 * LIBOS task logging. 279 */ 280 typedef struct 281 { 282 /* Memory for task logging */ 283 MEMORY_DESCRIPTOR *pTaskLogDescriptor; 284 NvU64 *pTaskLogBuffer; 285 NvP64 pTaskLogMappingPriv; 286 NvU64 id8; 287 } RM_LIBOS_LOG_MEM; 288 289 /*! 290 * KernelGsp object definition 291 */ 292 293 // Private field names are wrapped in PRIVATE_FIELD, which does nothing for 294 // the matching C source file, but causes diagnostics to be issued if another 295 // source file references the field. 296 #ifdef NVOC_KERNEL_GSP_H_PRIVATE_ACCESS_ALLOWED 297 #define PRIVATE_FIELD(x) x 298 #else 299 #define PRIVATE_FIELD(x) NVOC_PRIVATE_FIELD(x) 300 #endif 301 302 struct MESSAGE_QUEUE_COLLECTION; 303 304 305 struct KernelGsp { 306 const struct NVOC_RTTI *__nvoc_rtti; 307 struct OBJENGSTATE __nvoc_base_OBJENGSTATE; 308 struct IntrService __nvoc_base_IntrService; 309 struct KernelFalcon __nvoc_base_KernelFalcon; 310 struct Object *__nvoc_pbase_Object; 311 struct OBJENGSTATE *__nvoc_pbase_OBJENGSTATE; 312 struct IntrService *__nvoc_pbase_IntrService; 313 struct CrashCatEngine *__nvoc_pbase_CrashCatEngine; 314 struct KernelCrashCatEngine *__nvoc_pbase_KernelCrashCatEngine; 315 struct KernelFalcon *__nvoc_pbase_KernelFalcon; 316 struct KernelGsp *__nvoc_pbase_KernelGsp; 317 NV_STATUS (*__kgspConstructEngine__)(struct OBJGPU *, struct KernelGsp *, ENGDESCRIPTOR); 318 void (*__kgspRegisterIntrService__)(struct OBJGPU *, struct KernelGsp *, IntrServiceRecord *); 319 NvU32 (*__kgspServiceInterrupt__)(struct OBJGPU *, struct KernelGsp *, IntrServiceServiceInterruptArguments *); 320 void (*__kgspConfigureFalcon__)(struct OBJGPU *, struct KernelGsp *); 321 NvBool (*__kgspIsDebugModeEnabled__)(struct OBJGPU *, struct KernelGsp *); 322 NV_STATUS (*__kgspAllocBootArgs__)(struct OBJGPU *, struct KernelGsp *); 323 void (*__kgspFreeBootArgs__)(struct OBJGPU *, struct KernelGsp *); 324 void (*__kgspProgramLibosBootArgsAddr__)(struct OBJGPU *, struct KernelGsp *); 325 NV_STATUS (*__kgspSetCmdQueueHead__)(struct OBJGPU *, struct KernelGsp *, NvU32, NvU32); 326 NV_STATUS (*__kgspPrepareForBootstrap__)(struct OBJGPU *, struct KernelGsp *, GSP_FIRMWARE *); 327 NV_STATUS (*__kgspBootstrap__)(struct OBJGPU *, struct KernelGsp *, GSP_FIRMWARE *); 328 void (*__kgspGetGspRmBootUcodeStorage__)(struct OBJGPU *, struct KernelGsp *, BINDATA_STORAGE **, BINDATA_STORAGE **); 329 const BINDATA_ARCHIVE *(*__kgspGetBinArchiveGspRmBoot__)(struct KernelGsp *); 330 const BINDATA_ARCHIVE *(*__kgspGetBinArchiveConcatenatedFMCDesc__)(struct KernelGsp *); 331 const BINDATA_ARCHIVE *(*__kgspGetBinArchiveConcatenatedFMC__)(struct KernelGsp *); 332 const BINDATA_ARCHIVE *(*__kgspGetBinArchiveGspRmFmcGfwDebugSigned__)(struct KernelGsp *); 333 const BINDATA_ARCHIVE *(*__kgspGetBinArchiveGspRmFmcGfwProdSigned__)(struct KernelGsp *); 334 const BINDATA_ARCHIVE *(*__kgspGetBinArchiveGspRmCcFmcGfwProdSigned__)(struct KernelGsp *); 335 NV_STATUS (*__kgspCalculateFbLayout__)(struct OBJGPU *, struct KernelGsp *, GSP_FIRMWARE *); 336 NvU32 (*__kgspGetNonWprHeapSize__)(struct OBJGPU *, struct KernelGsp *); 337 NV_STATUS (*__kgspExecuteSequencerCommand__)(struct OBJGPU *, struct KernelGsp *, NvU32, NvU32 *, NvU32); 338 NvU32 (*__kgspReadUcodeFuseVersion__)(struct OBJGPU *, struct KernelGsp *, NvU32); 339 NV_STATUS (*__kgspResetHw__)(struct OBJGPU *, struct KernelGsp *); 340 NvBool (*__kgspHealthCheck__)(struct OBJGPU *, struct KernelGsp *); 341 NvU32 (*__kgspService__)(struct OBJGPU *, struct KernelGsp *); 342 NvBool (*__kgspIsWpr2Up__)(struct OBJGPU *, struct KernelGsp *); 343 NvU32 (*__kgspGetFrtsSize__)(struct OBJGPU *, struct KernelGsp *); 344 NvU64 (*__kgspGetPrescrubbedTopFbSize__)(struct OBJGPU *, struct KernelGsp *); 345 NV_STATUS (*__kgspExtractVbiosFromRom__)(struct OBJGPU *, struct KernelGsp *, KernelGspVbiosImg **); 346 NV_STATUS (*__kgspPrepareForFwsecFrts__)(struct OBJGPU *, struct KernelGsp *, KernelGspFlcnUcode *, const NvU64, KernelGspPreparedFwsecCmd *); 347 NV_STATUS (*__kgspPrepareForFwsecSb__)(struct OBJGPU *, struct KernelGsp *, KernelGspFlcnUcode *, KernelGspPreparedFwsecCmd *); 348 NV_STATUS (*__kgspExecuteFwsec__)(struct OBJGPU *, struct KernelGsp *, KernelGspPreparedFwsecCmd *); 349 NV_STATUS (*__kgspExecuteScrubberIfNeeded__)(struct OBJGPU *, struct KernelGsp *); 350 NV_STATUS (*__kgspExecuteBooterLoad__)(struct OBJGPU *, struct KernelGsp *, const NvU64); 351 NV_STATUS (*__kgspExecuteBooterUnloadIfNeeded__)(struct OBJGPU *, struct KernelGsp *, const NvU64); 352 NV_STATUS (*__kgspExecuteHsFalcon__)(struct OBJGPU *, struct KernelGsp *, KernelGspFlcnUcode *, struct KernelFalcon *, NvU32 *, NvU32 *); 353 NV_STATUS (*__kgspWaitForProcessorSuspend__)(struct OBJGPU *, struct KernelGsp *); 354 NV_STATUS (*__kgspSavePowerMgmtState__)(struct OBJGPU *, struct KernelGsp *); 355 NV_STATUS (*__kgspRestorePowerMgmtState__)(struct OBJGPU *, struct KernelGsp *); 356 void (*__kgspFreeSuspendResumeData__)(struct OBJGPU *, struct KernelGsp *); 357 NV_STATUS (*__kgspWaitForGfwBootOk__)(struct OBJGPU *, struct KernelGsp *); 358 const BINDATA_ARCHIVE *(*__kgspGetBinArchiveBooterLoadUcode__)(struct KernelGsp *); 359 const BINDATA_ARCHIVE *(*__kgspGetBinArchiveBooterUnloadUcode__)(struct KernelGsp *); 360 NvU64 (*__kgspGetMinWprHeapSizeMB__)(struct OBJGPU *, struct KernelGsp *); 361 NvU64 (*__kgspGetMaxWprHeapSizeMB__)(struct OBJGPU *, struct KernelGsp *); 362 NvU32 (*__kgspGetFwHeapParamOsCarveoutSize__)(struct OBJGPU *, struct KernelGsp *); 363 NV_STATUS (*__kgspInitVgpuPartitionLogging__)(struct OBJGPU *, struct KernelGsp *, NvU32, NvU64, NvU64, NvU64, NvU64); 364 NV_STATUS (*__kgspFreeVgpuPartitionLogging__)(struct OBJGPU *, struct KernelGsp *, NvU32); 365 const char *(*__kgspGetSignatureSectionNamePrefix__)(struct OBJGPU *, struct KernelGsp *); 366 NV_STATUS (*__kgspSetupGspFmcArgs__)(struct OBJGPU *, struct KernelGsp *, GSP_FIRMWARE *); 367 void (*__kgspReadEmem__)(struct KernelGsp *, NvU64, NvU64, void *); 368 NV_STATUS (*__kgspIssueNotifyOp__)(struct OBJGPU *, struct KernelGsp *, NvU32, NvU32 *, NvU32); 369 NV_STATUS (*__kgspCheckGspRmCcCleanup__)(struct OBJGPU *, struct KernelGsp *); 370 NvBool (*__kgspConfigured__)(struct KernelGsp *); 371 NvU32 (*__kgspPriRead__)(struct KernelGsp *, NvU32); 372 void (*__kgspRegWrite__)(struct OBJGPU *, struct KernelGsp *, NvU32, NvU32); 373 NvU32 (*__kgspMaskDmemAddr__)(struct OBJGPU *, struct KernelGsp *, NvU32); 374 void (*__kgspStateDestroy__)(POBJGPU, struct KernelGsp *); 375 void (*__kgspVprintf__)(struct KernelGsp *, NvBool, const char *, va_list); 376 NvBool (*__kgspClearInterrupt__)(struct OBJGPU *, struct KernelGsp *, IntrServiceClearInterruptArguments *); 377 void (*__kgspPriWrite__)(struct KernelGsp *, NvU32, NvU32); 378 void *(*__kgspMapBufferDescriptor__)(struct KernelGsp *, CrashCatBufferDescriptor *); 379 void (*__kgspSyncBufferDescriptor__)(struct KernelGsp *, CrashCatBufferDescriptor *, NvU32, NvU32); 380 NvU32 (*__kgspRegRead__)(struct OBJGPU *, struct KernelGsp *, NvU32); 381 NvBool (*__kgspIsPresent__)(POBJGPU, struct KernelGsp *); 382 NV_STATUS (*__kgspStateLoad__)(POBJGPU, struct KernelGsp *, NvU32); 383 const NvU32 *(*__kgspGetScratchOffsets__)(struct KernelGsp *, NV_CRASHCAT_SCRATCH_GROUP_ID); 384 void (*__kgspUnload__)(struct KernelGsp *); 385 NV_STATUS (*__kgspStateUnload__)(POBJGPU, struct KernelGsp *, NvU32); 386 NV_STATUS (*__kgspServiceNotificationInterrupt__)(struct OBJGPU *, struct KernelGsp *, IntrServiceServiceNotificationInterruptArguments *); 387 NvU32 (*__kgspGetWFL0Offset__)(struct KernelGsp *); 388 NV_STATUS (*__kgspStateInitLocked__)(POBJGPU, struct KernelGsp *); 389 NV_STATUS (*__kgspStatePreLoad__)(POBJGPU, struct KernelGsp *, NvU32); 390 NV_STATUS (*__kgspStatePostUnload__)(POBJGPU, struct KernelGsp *, NvU32); 391 NV_STATUS (*__kgspStatePreUnload__)(POBJGPU, struct KernelGsp *, NvU32); 392 NV_STATUS (*__kgspStateInitUnlocked__)(POBJGPU, struct KernelGsp *); 393 void (*__kgspInitMissing__)(POBJGPU, struct KernelGsp *); 394 NV_STATUS (*__kgspStatePreInitLocked__)(POBJGPU, struct KernelGsp *); 395 NV_STATUS (*__kgspStatePreInitUnlocked__)(POBJGPU, struct KernelGsp *); 396 NV_STATUS (*__kgspStatePostLoad__)(POBJGPU, struct KernelGsp *, NvU32); 397 void (*__kgspUnmapBufferDescriptor__)(struct KernelGsp *, CrashCatBufferDescriptor *); 398 void (*__kgspReadDmem__)(struct KernelGsp *, NvU32, NvU32, void *); 399 struct MESSAGE_QUEUE_COLLECTION *pMQCollection; 400 struct OBJRPC *pRpc; 401 struct OBJRPC *pLocklessRpc; 402 char vbiosVersionStr[16]; 403 KernelGspFlcnUcode *pFwsecUcode; 404 KernelGspFlcnUcode *pScrubberUcode; 405 KernelGspFlcnUcode *pBooterLoadUcode; 406 KernelGspFlcnUcode *pBooterUnloadUcode; 407 MEMORY_DESCRIPTOR *pWprMetaDescriptor; 408 GspFwWprMeta *pWprMeta; 409 NvP64 pWprMetaMappingPriv; 410 KernelGspPreparedFwsecCmd *pPreparedFwsecCmd; 411 MEMORY_DESCRIPTOR *pSRMetaDescriptor; 412 MEMORY_DESCRIPTOR *pSRRadix3Descriptor; 413 MEMORY_DESCRIPTOR *pGspFmcArgumentsDescriptor; 414 GSP_FMC_BOOT_PARAMS *pGspFmcArgumentsCached; 415 NvP64 pGspFmcArgumentsMappingPriv; 416 MEMORY_DESCRIPTOR *pLibosInitArgumentsDescriptor; 417 LibosMemoryRegionInitArgument *pLibosInitArgumentsCached; 418 NvP64 pLibosInitArgumentsMappingPriv; 419 MEMORY_DESCRIPTOR *pGspArgumentsDescriptor; 420 GSP_ARGUMENTS_CACHED *pGspArgumentsCached; 421 NvP64 pGspArgumentsMappingPriv; 422 MEMORY_DESCRIPTOR *pGspRmBootUcodeMemdesc; 423 NvP64 pGspRmBootUcodeMemdescPriv; 424 NvU32 gspRmBootUcodeSize; 425 NvU8 *pGspRmBootUcodeImage; 426 RM_RISCV_UCODE_DESC *pGspRmBootUcodeDesc; 427 MEMORY_DESCRIPTOR *pGspUCodeRadix3Descriptor; 428 MEMORY_DESCRIPTOR *pSignatureMemdesc; 429 LIBOS_LOG_DECODE logDecode; 430 LIBOS_LOG_DECODE logDecodeVgpuPartition[32]; 431 RM_LIBOS_LOG_MEM rmLibosLogMem[3]; 432 RM_LIBOS_LOG_MEM gspPluginInitTaskLogMem[32]; 433 RM_LIBOS_LOG_MEM gspPluginVgpuTaskLogMem[32]; 434 NvBool bHasVgpuLogs; 435 void *pLogElf; 436 NvU64 logElfDataSize; 437 PORT_MUTEX *pNvlogFlushMtx; 438 NvBool bLibosLogsPollingEnabled; 439 NvU8 bootAttempts; 440 NvBool bInInit; 441 NvBool bInLockdown; 442 NvBool bPollingForRpcResponse; 443 NvBool bFatalError; 444 MEMORY_DESCRIPTOR *pMemDesc_simAccessBuf; 445 SimAccessBuffer *pSimAccessBuf; 446 NvP64 pSimAccessBufPriv; 447 MEMORY_DESCRIPTOR *pNotifyOpSurfMemDesc; 448 NotifyOpSharedSurface *pNotifyOpSurf; 449 NvP64 pNotifyOpSurfPriv; 450 MEMORY_DESCRIPTOR *pProfilerSamplesMD; 451 void *pProfilerSamplesMDPriv; 452 void *pProfilerSamples; 453 GspStaticConfigInfo gspStaticInfo; 454 NvBool bIsTaskIsrQueueRequired; 455 NvBool bPartitionedFmc; 456 NvBool bScrubberUcodeSupported; 457 NvU32 fwHeapParamBaseSize; 458 NvBool bBootGspRmWithBoostClocks; 459 NvU8 ememPort; 460 }; 461 462 #ifndef __NVOC_CLASS_KernelGsp_TYPEDEF__ 463 #define __NVOC_CLASS_KernelGsp_TYPEDEF__ 464 typedef struct KernelGsp KernelGsp; 465 #endif /* __NVOC_CLASS_KernelGsp_TYPEDEF__ */ 466 467 #ifndef __nvoc_class_id_KernelGsp 468 #define __nvoc_class_id_KernelGsp 0x311d4e 469 #endif /* __nvoc_class_id_KernelGsp */ 470 471 extern const struct NVOC_CLASS_DEF __nvoc_class_def_KernelGsp; 472 473 #define __staticCast_KernelGsp(pThis) \ 474 ((pThis)->__nvoc_pbase_KernelGsp) 475 476 #ifdef __nvoc_kernel_gsp_h_disabled 477 #define __dynamicCast_KernelGsp(pThis) ((KernelGsp*)NULL) 478 #else //__nvoc_kernel_gsp_h_disabled 479 #define __dynamicCast_KernelGsp(pThis) \ 480 ((KernelGsp*)__nvoc_dynamicCast(staticCast((pThis), Dynamic), classInfo(KernelGsp))) 481 #endif //__nvoc_kernel_gsp_h_disabled 482 483 #define PDB_PROP_KGSP_IS_MISSING_BASE_CAST __nvoc_base_OBJENGSTATE. 484 #define PDB_PROP_KGSP_IS_MISSING_BASE_NAME PDB_PROP_ENGSTATE_IS_MISSING 485 486 NV_STATUS __nvoc_objCreateDynamic_KernelGsp(KernelGsp**, Dynamic*, NvU32, va_list); 487 488 NV_STATUS __nvoc_objCreate_KernelGsp(KernelGsp**, Dynamic*, NvU32); 489 #define __objCreate_KernelGsp(ppNewObj, pParent, createFlags) \ 490 __nvoc_objCreate_KernelGsp((ppNewObj), staticCast((pParent), Dynamic), (createFlags)) 491 492 #define kgspConstructEngine(pGpu, pKernelGsp, arg0) kgspConstructEngine_DISPATCH(pGpu, pKernelGsp, arg0) 493 #define kgspRegisterIntrService(pGpu, pKernelGsp, pRecords) kgspRegisterIntrService_DISPATCH(pGpu, pKernelGsp, pRecords) 494 #define kgspServiceInterrupt(pGpu, pKernelGsp, pParams) kgspServiceInterrupt_DISPATCH(pGpu, pKernelGsp, pParams) 495 #define kgspConfigureFalcon(pGpu, pKernelGsp) kgspConfigureFalcon_DISPATCH(pGpu, pKernelGsp) 496 #define kgspConfigureFalcon_HAL(pGpu, pKernelGsp) kgspConfigureFalcon_DISPATCH(pGpu, pKernelGsp) 497 #define kgspIsDebugModeEnabled(pGpu, pKernelGsp) kgspIsDebugModeEnabled_DISPATCH(pGpu, pKernelGsp) 498 #define kgspIsDebugModeEnabled_HAL(pGpu, pKernelGsp) kgspIsDebugModeEnabled_DISPATCH(pGpu, pKernelGsp) 499 #define kgspAllocBootArgs(pGpu, pKernelGsp) kgspAllocBootArgs_DISPATCH(pGpu, pKernelGsp) 500 #define kgspAllocBootArgs_HAL(pGpu, pKernelGsp) kgspAllocBootArgs_DISPATCH(pGpu, pKernelGsp) 501 #define kgspFreeBootArgs(pGpu, pKernelGsp) kgspFreeBootArgs_DISPATCH(pGpu, pKernelGsp) 502 #define kgspFreeBootArgs_HAL(pGpu, pKernelGsp) kgspFreeBootArgs_DISPATCH(pGpu, pKernelGsp) 503 #define kgspProgramLibosBootArgsAddr(pGpu, pKernelGsp) kgspProgramLibosBootArgsAddr_DISPATCH(pGpu, pKernelGsp) 504 #define kgspProgramLibosBootArgsAddr_HAL(pGpu, pKernelGsp) kgspProgramLibosBootArgsAddr_DISPATCH(pGpu, pKernelGsp) 505 #define kgspSetCmdQueueHead(pGpu, pKernelGsp, queueIdx, value) kgspSetCmdQueueHead_DISPATCH(pGpu, pKernelGsp, queueIdx, value) 506 #define kgspSetCmdQueueHead_HAL(pGpu, pKernelGsp, queueIdx, value) kgspSetCmdQueueHead_DISPATCH(pGpu, pKernelGsp, queueIdx, value) 507 #define kgspPrepareForBootstrap(pGpu, pKernelGsp, pGspFw) kgspPrepareForBootstrap_DISPATCH(pGpu, pKernelGsp, pGspFw) 508 #define kgspPrepareForBootstrap_HAL(pGpu, pKernelGsp, pGspFw) kgspPrepareForBootstrap_DISPATCH(pGpu, pKernelGsp, pGspFw) 509 #define kgspBootstrap(pGpu, pKernelGsp, pGspFw) kgspBootstrap_DISPATCH(pGpu, pKernelGsp, pGspFw) 510 #define kgspBootstrap_HAL(pGpu, pKernelGsp, pGspFw) kgspBootstrap_DISPATCH(pGpu, pKernelGsp, pGspFw) 511 #define kgspGetGspRmBootUcodeStorage(pGpu, pKernelGsp, ppBinStorageImage, ppBinStorageDesc) kgspGetGspRmBootUcodeStorage_DISPATCH(pGpu, pKernelGsp, ppBinStorageImage, ppBinStorageDesc) 512 #define kgspGetGspRmBootUcodeStorage_HAL(pGpu, pKernelGsp, ppBinStorageImage, ppBinStorageDesc) kgspGetGspRmBootUcodeStorage_DISPATCH(pGpu, pKernelGsp, ppBinStorageImage, ppBinStorageDesc) 513 #define kgspGetBinArchiveGspRmBoot(pKernelGsp) kgspGetBinArchiveGspRmBoot_DISPATCH(pKernelGsp) 514 #define kgspGetBinArchiveGspRmBoot_HAL(pKernelGsp) kgspGetBinArchiveGspRmBoot_DISPATCH(pKernelGsp) 515 #define kgspGetBinArchiveConcatenatedFMCDesc(pKernelGsp) kgspGetBinArchiveConcatenatedFMCDesc_DISPATCH(pKernelGsp) 516 #define kgspGetBinArchiveConcatenatedFMCDesc_HAL(pKernelGsp) kgspGetBinArchiveConcatenatedFMCDesc_DISPATCH(pKernelGsp) 517 #define kgspGetBinArchiveConcatenatedFMC(pKernelGsp) kgspGetBinArchiveConcatenatedFMC_DISPATCH(pKernelGsp) 518 #define kgspGetBinArchiveConcatenatedFMC_HAL(pKernelGsp) kgspGetBinArchiveConcatenatedFMC_DISPATCH(pKernelGsp) 519 #define kgspGetBinArchiveGspRmFmcGfwDebugSigned(pKernelGsp) kgspGetBinArchiveGspRmFmcGfwDebugSigned_DISPATCH(pKernelGsp) 520 #define kgspGetBinArchiveGspRmFmcGfwDebugSigned_HAL(pKernelGsp) kgspGetBinArchiveGspRmFmcGfwDebugSigned_DISPATCH(pKernelGsp) 521 #define kgspGetBinArchiveGspRmFmcGfwProdSigned(pKernelGsp) kgspGetBinArchiveGspRmFmcGfwProdSigned_DISPATCH(pKernelGsp) 522 #define kgspGetBinArchiveGspRmFmcGfwProdSigned_HAL(pKernelGsp) kgspGetBinArchiveGspRmFmcGfwProdSigned_DISPATCH(pKernelGsp) 523 #define kgspGetBinArchiveGspRmCcFmcGfwProdSigned(pKernelGsp) kgspGetBinArchiveGspRmCcFmcGfwProdSigned_DISPATCH(pKernelGsp) 524 #define kgspGetBinArchiveGspRmCcFmcGfwProdSigned_HAL(pKernelGsp) kgspGetBinArchiveGspRmCcFmcGfwProdSigned_DISPATCH(pKernelGsp) 525 #define kgspCalculateFbLayout(pGpu, pKernelGsp, pGspFw) kgspCalculateFbLayout_DISPATCH(pGpu, pKernelGsp, pGspFw) 526 #define kgspCalculateFbLayout_HAL(pGpu, pKernelGsp, pGspFw) kgspCalculateFbLayout_DISPATCH(pGpu, pKernelGsp, pGspFw) 527 #define kgspGetNonWprHeapSize(pGpu, pKernelGsp) kgspGetNonWprHeapSize_DISPATCH(pGpu, pKernelGsp) 528 #define kgspGetNonWprHeapSize_HAL(pGpu, pKernelGsp) kgspGetNonWprHeapSize_DISPATCH(pGpu, pKernelGsp) 529 #define kgspExecuteSequencerCommand(pGpu, pKernelGsp, opCode, pPayLoad, payloadSize) kgspExecuteSequencerCommand_DISPATCH(pGpu, pKernelGsp, opCode, pPayLoad, payloadSize) 530 #define kgspExecuteSequencerCommand_HAL(pGpu, pKernelGsp, opCode, pPayLoad, payloadSize) kgspExecuteSequencerCommand_DISPATCH(pGpu, pKernelGsp, opCode, pPayLoad, payloadSize) 531 #define kgspReadUcodeFuseVersion(pGpu, pKernelGsp, ucodeId) kgspReadUcodeFuseVersion_DISPATCH(pGpu, pKernelGsp, ucodeId) 532 #define kgspReadUcodeFuseVersion_HAL(pGpu, pKernelGsp, ucodeId) kgspReadUcodeFuseVersion_DISPATCH(pGpu, pKernelGsp, ucodeId) 533 #define kgspResetHw(pGpu, pKernelGsp) kgspResetHw_DISPATCH(pGpu, pKernelGsp) 534 #define kgspResetHw_HAL(pGpu, pKernelGsp) kgspResetHw_DISPATCH(pGpu, pKernelGsp) 535 #define kgspHealthCheck(pGpu, pKernelGsp) kgspHealthCheck_DISPATCH(pGpu, pKernelGsp) 536 #define kgspHealthCheck_HAL(pGpu, pKernelGsp) kgspHealthCheck_DISPATCH(pGpu, pKernelGsp) 537 #define kgspService(pGpu, pKernelGsp) kgspService_DISPATCH(pGpu, pKernelGsp) 538 #define kgspService_HAL(pGpu, pKernelGsp) kgspService_DISPATCH(pGpu, pKernelGsp) 539 #define kgspIsWpr2Up(pGpu, pKernelGsp) kgspIsWpr2Up_DISPATCH(pGpu, pKernelGsp) 540 #define kgspIsWpr2Up_HAL(pGpu, pKernelGsp) kgspIsWpr2Up_DISPATCH(pGpu, pKernelGsp) 541 #define kgspGetFrtsSize(pGpu, pKernelGsp) kgspGetFrtsSize_DISPATCH(pGpu, pKernelGsp) 542 #define kgspGetFrtsSize_HAL(pGpu, pKernelGsp) kgspGetFrtsSize_DISPATCH(pGpu, pKernelGsp) 543 #define kgspGetPrescrubbedTopFbSize(pGpu, pKernelGsp) kgspGetPrescrubbedTopFbSize_DISPATCH(pGpu, pKernelGsp) 544 #define kgspGetPrescrubbedTopFbSize_HAL(pGpu, pKernelGsp) kgspGetPrescrubbedTopFbSize_DISPATCH(pGpu, pKernelGsp) 545 #define kgspExtractVbiosFromRom(pGpu, pKernelGsp, ppVbiosImg) kgspExtractVbiosFromRom_DISPATCH(pGpu, pKernelGsp, ppVbiosImg) 546 #define kgspExtractVbiosFromRom_HAL(pGpu, pKernelGsp, ppVbiosImg) kgspExtractVbiosFromRom_DISPATCH(pGpu, pKernelGsp, ppVbiosImg) 547 #define kgspPrepareForFwsecFrts(pGpu, pKernelGsp, pFwsecUcode, frtsOffset, preparedCmd) kgspPrepareForFwsecFrts_DISPATCH(pGpu, pKernelGsp, pFwsecUcode, frtsOffset, preparedCmd) 548 #define kgspPrepareForFwsecFrts_HAL(pGpu, pKernelGsp, pFwsecUcode, frtsOffset, preparedCmd) kgspPrepareForFwsecFrts_DISPATCH(pGpu, pKernelGsp, pFwsecUcode, frtsOffset, preparedCmd) 549 #define kgspPrepareForFwsecSb(pGpu, pKernelGsp, pFwsecUcode, preparedCmd) kgspPrepareForFwsecSb_DISPATCH(pGpu, pKernelGsp, pFwsecUcode, preparedCmd) 550 #define kgspPrepareForFwsecSb_HAL(pGpu, pKernelGsp, pFwsecUcode, preparedCmd) kgspPrepareForFwsecSb_DISPATCH(pGpu, pKernelGsp, pFwsecUcode, preparedCmd) 551 #define kgspExecuteFwsec(pGpu, pKernelGsp, preparedCmd) kgspExecuteFwsec_DISPATCH(pGpu, pKernelGsp, preparedCmd) 552 #define kgspExecuteFwsec_HAL(pGpu, pKernelGsp, preparedCmd) kgspExecuteFwsec_DISPATCH(pGpu, pKernelGsp, preparedCmd) 553 #define kgspExecuteScrubberIfNeeded(pGpu, pKernelGsp) kgspExecuteScrubberIfNeeded_DISPATCH(pGpu, pKernelGsp) 554 #define kgspExecuteScrubberIfNeeded_HAL(pGpu, pKernelGsp) kgspExecuteScrubberIfNeeded_DISPATCH(pGpu, pKernelGsp) 555 #define kgspExecuteBooterLoad(pGpu, pKernelGsp, sysmemAddrOfData) kgspExecuteBooterLoad_DISPATCH(pGpu, pKernelGsp, sysmemAddrOfData) 556 #define kgspExecuteBooterLoad_HAL(pGpu, pKernelGsp, sysmemAddrOfData) kgspExecuteBooterLoad_DISPATCH(pGpu, pKernelGsp, sysmemAddrOfData) 557 #define kgspExecuteBooterUnloadIfNeeded(pGpu, pKernelGsp, sysmemAddrOfSuspendResumeData) kgspExecuteBooterUnloadIfNeeded_DISPATCH(pGpu, pKernelGsp, sysmemAddrOfSuspendResumeData) 558 #define kgspExecuteBooterUnloadIfNeeded_HAL(pGpu, pKernelGsp, sysmemAddrOfSuspendResumeData) kgspExecuteBooterUnloadIfNeeded_DISPATCH(pGpu, pKernelGsp, sysmemAddrOfSuspendResumeData) 559 #define kgspExecuteHsFalcon(pGpu, pKernelGsp, pFlcnUcode, pKernelFlcn, pMailbox0, pMailbox1) kgspExecuteHsFalcon_DISPATCH(pGpu, pKernelGsp, pFlcnUcode, pKernelFlcn, pMailbox0, pMailbox1) 560 #define kgspExecuteHsFalcon_HAL(pGpu, pKernelGsp, pFlcnUcode, pKernelFlcn, pMailbox0, pMailbox1) kgspExecuteHsFalcon_DISPATCH(pGpu, pKernelGsp, pFlcnUcode, pKernelFlcn, pMailbox0, pMailbox1) 561 #define kgspWaitForProcessorSuspend(pGpu, pKernelGsp) kgspWaitForProcessorSuspend_DISPATCH(pGpu, pKernelGsp) 562 #define kgspWaitForProcessorSuspend_HAL(pGpu, pKernelGsp) kgspWaitForProcessorSuspend_DISPATCH(pGpu, pKernelGsp) 563 #define kgspSavePowerMgmtState(pGpu, pKernelGsp) kgspSavePowerMgmtState_DISPATCH(pGpu, pKernelGsp) 564 #define kgspSavePowerMgmtState_HAL(pGpu, pKernelGsp) kgspSavePowerMgmtState_DISPATCH(pGpu, pKernelGsp) 565 #define kgspRestorePowerMgmtState(pGpu, pKernelGsp) kgspRestorePowerMgmtState_DISPATCH(pGpu, pKernelGsp) 566 #define kgspRestorePowerMgmtState_HAL(pGpu, pKernelGsp) kgspRestorePowerMgmtState_DISPATCH(pGpu, pKernelGsp) 567 #define kgspFreeSuspendResumeData(pGpu, pKernelGsp) kgspFreeSuspendResumeData_DISPATCH(pGpu, pKernelGsp) 568 #define kgspFreeSuspendResumeData_HAL(pGpu, pKernelGsp) kgspFreeSuspendResumeData_DISPATCH(pGpu, pKernelGsp) 569 #define kgspWaitForGfwBootOk(pGpu, pKernelGsp) kgspWaitForGfwBootOk_DISPATCH(pGpu, pKernelGsp) 570 #define kgspWaitForGfwBootOk_HAL(pGpu, pKernelGsp) kgspWaitForGfwBootOk_DISPATCH(pGpu, pKernelGsp) 571 #define kgspGetBinArchiveBooterLoadUcode(pKernelGsp) kgspGetBinArchiveBooterLoadUcode_DISPATCH(pKernelGsp) 572 #define kgspGetBinArchiveBooterLoadUcode_HAL(pKernelGsp) kgspGetBinArchiveBooterLoadUcode_DISPATCH(pKernelGsp) 573 #define kgspGetBinArchiveBooterUnloadUcode(pKernelGsp) kgspGetBinArchiveBooterUnloadUcode_DISPATCH(pKernelGsp) 574 #define kgspGetBinArchiveBooterUnloadUcode_HAL(pKernelGsp) kgspGetBinArchiveBooterUnloadUcode_DISPATCH(pKernelGsp) 575 #define kgspGetMinWprHeapSizeMB(pGpu, pKernelGsp) kgspGetMinWprHeapSizeMB_DISPATCH(pGpu, pKernelGsp) 576 #define kgspGetMinWprHeapSizeMB_HAL(pGpu, pKernelGsp) kgspGetMinWprHeapSizeMB_DISPATCH(pGpu, pKernelGsp) 577 #define kgspGetMaxWprHeapSizeMB(pGpu, pKernelGsp) kgspGetMaxWprHeapSizeMB_DISPATCH(pGpu, pKernelGsp) 578 #define kgspGetMaxWprHeapSizeMB_HAL(pGpu, pKernelGsp) kgspGetMaxWprHeapSizeMB_DISPATCH(pGpu, pKernelGsp) 579 #define kgspGetFwHeapParamOsCarveoutSize(pGpu, pKernelGsp) kgspGetFwHeapParamOsCarveoutSize_DISPATCH(pGpu, pKernelGsp) 580 #define kgspGetFwHeapParamOsCarveoutSize_HAL(pGpu, pKernelGsp) kgspGetFwHeapParamOsCarveoutSize_DISPATCH(pGpu, pKernelGsp) 581 #define kgspInitVgpuPartitionLogging(pGpu, pKernelGsp, gfid, initTaskLogBUffOffset, initTaskLogBUffSize, vgpuTaskLogBUffOffset, vgpuTaskLogBuffSize) kgspInitVgpuPartitionLogging_DISPATCH(pGpu, pKernelGsp, gfid, initTaskLogBUffOffset, initTaskLogBUffSize, vgpuTaskLogBUffOffset, vgpuTaskLogBuffSize) 582 #define kgspInitVgpuPartitionLogging_HAL(pGpu, pKernelGsp, gfid, initTaskLogBUffOffset, initTaskLogBUffSize, vgpuTaskLogBUffOffset, vgpuTaskLogBuffSize) kgspInitVgpuPartitionLogging_DISPATCH(pGpu, pKernelGsp, gfid, initTaskLogBUffOffset, initTaskLogBUffSize, vgpuTaskLogBUffOffset, vgpuTaskLogBuffSize) 583 #define kgspFreeVgpuPartitionLogging(pGpu, pKernelGsp, gfid) kgspFreeVgpuPartitionLogging_DISPATCH(pGpu, pKernelGsp, gfid) 584 #define kgspFreeVgpuPartitionLogging_HAL(pGpu, pKernelGsp, gfid) kgspFreeVgpuPartitionLogging_DISPATCH(pGpu, pKernelGsp, gfid) 585 #define kgspGetSignatureSectionNamePrefix(pGpu, pKernelGsp) kgspGetSignatureSectionNamePrefix_DISPATCH(pGpu, pKernelGsp) 586 #define kgspGetSignatureSectionNamePrefix_HAL(pGpu, pKernelGsp) kgspGetSignatureSectionNamePrefix_DISPATCH(pGpu, pKernelGsp) 587 #define kgspSetupGspFmcArgs(pGpu, pKernelGsp, pGspFw) kgspSetupGspFmcArgs_DISPATCH(pGpu, pKernelGsp, pGspFw) 588 #define kgspSetupGspFmcArgs_HAL(pGpu, pKernelGsp, pGspFw) kgspSetupGspFmcArgs_DISPATCH(pGpu, pKernelGsp, pGspFw) 589 #define kgspReadEmem(pKernelGsp, offset, size, pBuf) kgspReadEmem_DISPATCH(pKernelGsp, offset, size, pBuf) 590 #define kgspReadEmem_HAL(pKernelGsp, offset, size, pBuf) kgspReadEmem_DISPATCH(pKernelGsp, offset, size, pBuf) 591 #define kgspIssueNotifyOp(pGpu, pKernelGsp, opCode, pArgs, argc) kgspIssueNotifyOp_DISPATCH(pGpu, pKernelGsp, opCode, pArgs, argc) 592 #define kgspIssueNotifyOp_HAL(pGpu, pKernelGsp, opCode, pArgs, argc) kgspIssueNotifyOp_DISPATCH(pGpu, pKernelGsp, opCode, pArgs, argc) 593 #define kgspCheckGspRmCcCleanup(pGpu, pKernelGsp) kgspCheckGspRmCcCleanup_DISPATCH(pGpu, pKernelGsp) 594 #define kgspCheckGspRmCcCleanup_HAL(pGpu, pKernelGsp) kgspCheckGspRmCcCleanup_DISPATCH(pGpu, pKernelGsp) 595 #define kgspConfigured(arg0) kgspConfigured_DISPATCH(arg0) 596 #define kgspPriRead(arg0, offset) kgspPriRead_DISPATCH(arg0, offset) 597 #define kgspRegWrite(pGpu, pKernelFlcn, offset, data) kgspRegWrite_DISPATCH(pGpu, pKernelFlcn, offset, data) 598 #define kgspMaskDmemAddr(pGpu, pKernelFlcn, addr) kgspMaskDmemAddr_DISPATCH(pGpu, pKernelFlcn, addr) 599 #define kgspStateDestroy(pGpu, pEngstate) kgspStateDestroy_DISPATCH(pGpu, pEngstate) 600 #define kgspVprintf(arg0, bReportStart, fmt, args) kgspVprintf_DISPATCH(arg0, bReportStart, fmt, args) 601 #define kgspClearInterrupt(pGpu, pIntrService, pParams) kgspClearInterrupt_DISPATCH(pGpu, pIntrService, pParams) 602 #define kgspPriWrite(arg0, offset, data) kgspPriWrite_DISPATCH(arg0, offset, data) 603 #define kgspMapBufferDescriptor(arg0, pBufDesc) kgspMapBufferDescriptor_DISPATCH(arg0, pBufDesc) 604 #define kgspSyncBufferDescriptor(arg0, pBufDesc, offset, size) kgspSyncBufferDescriptor_DISPATCH(arg0, pBufDesc, offset, size) 605 #define kgspRegRead(pGpu, pKernelFlcn, offset) kgspRegRead_DISPATCH(pGpu, pKernelFlcn, offset) 606 #define kgspIsPresent(pGpu, pEngstate) kgspIsPresent_DISPATCH(pGpu, pEngstate) 607 #define kgspStateLoad(pGpu, pEngstate, arg0) kgspStateLoad_DISPATCH(pGpu, pEngstate, arg0) 608 #define kgspGetScratchOffsets(arg0, scratchGroupId) kgspGetScratchOffsets_DISPATCH(arg0, scratchGroupId) 609 #define kgspUnload(arg0) kgspUnload_DISPATCH(arg0) 610 #define kgspStateUnload(pGpu, pEngstate, arg0) kgspStateUnload_DISPATCH(pGpu, pEngstate, arg0) 611 #define kgspServiceNotificationInterrupt(pGpu, pIntrService, pParams) kgspServiceNotificationInterrupt_DISPATCH(pGpu, pIntrService, pParams) 612 #define kgspGetWFL0Offset(arg0) kgspGetWFL0Offset_DISPATCH(arg0) 613 #define kgspStateInitLocked(pGpu, pEngstate) kgspStateInitLocked_DISPATCH(pGpu, pEngstate) 614 #define kgspStatePreLoad(pGpu, pEngstate, arg0) kgspStatePreLoad_DISPATCH(pGpu, pEngstate, arg0) 615 #define kgspStatePostUnload(pGpu, pEngstate, arg0) kgspStatePostUnload_DISPATCH(pGpu, pEngstate, arg0) 616 #define kgspStatePreUnload(pGpu, pEngstate, arg0) kgspStatePreUnload_DISPATCH(pGpu, pEngstate, arg0) 617 #define kgspStateInitUnlocked(pGpu, pEngstate) kgspStateInitUnlocked_DISPATCH(pGpu, pEngstate) 618 #define kgspInitMissing(pGpu, pEngstate) kgspInitMissing_DISPATCH(pGpu, pEngstate) 619 #define kgspStatePreInitLocked(pGpu, pEngstate) kgspStatePreInitLocked_DISPATCH(pGpu, pEngstate) 620 #define kgspStatePreInitUnlocked(pGpu, pEngstate) kgspStatePreInitUnlocked_DISPATCH(pGpu, pEngstate) 621 #define kgspStatePostLoad(pGpu, pEngstate, arg0) kgspStatePostLoad_DISPATCH(pGpu, pEngstate, arg0) 622 #define kgspUnmapBufferDescriptor(arg0, pBufDesc) kgspUnmapBufferDescriptor_DISPATCH(arg0, pBufDesc) 623 #define kgspReadDmem(arg0, offset, size, pBuf) kgspReadDmem_DISPATCH(arg0, offset, size, pBuf) 624 NV_STATUS kgspConstructEngine_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, ENGDESCRIPTOR arg0); 625 626 static inline NV_STATUS kgspConstructEngine_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, ENGDESCRIPTOR arg0) { 627 return pKernelGsp->__kgspConstructEngine__(pGpu, pKernelGsp, arg0); 628 } 629 630 void kgspRegisterIntrService_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, IntrServiceRecord pRecords[171]); 631 632 static inline void kgspRegisterIntrService_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, IntrServiceRecord pRecords[171]) { 633 pKernelGsp->__kgspRegisterIntrService__(pGpu, pKernelGsp, pRecords); 634 } 635 636 NvU32 kgspServiceInterrupt_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, IntrServiceServiceInterruptArguments *pParams); 637 638 static inline NvU32 kgspServiceInterrupt_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, IntrServiceServiceInterruptArguments *pParams) { 639 return pKernelGsp->__kgspServiceInterrupt__(pGpu, pKernelGsp, pParams); 640 } 641 642 void kgspConfigureFalcon_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 643 644 void kgspConfigureFalcon_GA102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 645 646 static inline void kgspConfigureFalcon_f2d351(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 647 NV_ASSERT_PRECOMP(0); 648 } 649 650 static inline void kgspConfigureFalcon_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 651 pKernelGsp->__kgspConfigureFalcon__(pGpu, pKernelGsp); 652 } 653 654 NvBool kgspIsDebugModeEnabled_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 655 656 NvBool kgspIsDebugModeEnabled_GA100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 657 658 static inline NvBool kgspIsDebugModeEnabled_108313(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 659 NV_ASSERT_OR_RETURN_PRECOMP(0, ((NvBool)(0 != 0))); 660 } 661 662 static inline NvBool kgspIsDebugModeEnabled_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 663 return pKernelGsp->__kgspIsDebugModeEnabled__(pGpu, pKernelGsp); 664 } 665 666 NV_STATUS kgspAllocBootArgs_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 667 668 NV_STATUS kgspAllocBootArgs_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 669 670 static inline NV_STATUS kgspAllocBootArgs_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 671 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 672 } 673 674 static inline NV_STATUS kgspAllocBootArgs_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 675 return pKernelGsp->__kgspAllocBootArgs__(pGpu, pKernelGsp); 676 } 677 678 void kgspFreeBootArgs_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 679 680 void kgspFreeBootArgs_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 681 682 static inline void kgspFreeBootArgs_f2d351(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 683 NV_ASSERT_PRECOMP(0); 684 } 685 686 static inline void kgspFreeBootArgs_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 687 pKernelGsp->__kgspFreeBootArgs__(pGpu, pKernelGsp); 688 } 689 690 void kgspProgramLibosBootArgsAddr_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 691 692 static inline void kgspProgramLibosBootArgsAddr_f2d351(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 693 NV_ASSERT_PRECOMP(0); 694 } 695 696 static inline void kgspProgramLibosBootArgsAddr_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 697 pKernelGsp->__kgspProgramLibosBootArgsAddr__(pGpu, pKernelGsp); 698 } 699 700 NV_STATUS kgspSetCmdQueueHead_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 queueIdx, NvU32 value); 701 702 static inline NV_STATUS kgspSetCmdQueueHead_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 queueIdx, NvU32 value) { 703 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 704 } 705 706 static inline NV_STATUS kgspSetCmdQueueHead_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 queueIdx, NvU32 value) { 707 return pKernelGsp->__kgspSetCmdQueueHead__(pGpu, pKernelGsp, queueIdx, value); 708 } 709 710 NV_STATUS kgspPrepareForBootstrap_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw); 711 712 NV_STATUS kgspPrepareForBootstrap_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw); 713 714 static inline NV_STATUS kgspPrepareForBootstrap_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) { 715 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 716 } 717 718 static inline NV_STATUS kgspPrepareForBootstrap_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) { 719 return pKernelGsp->__kgspPrepareForBootstrap__(pGpu, pKernelGsp, pGspFw); 720 } 721 722 NV_STATUS kgspBootstrap_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw); 723 724 NV_STATUS kgspBootstrap_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw); 725 726 static inline NV_STATUS kgspBootstrap_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) { 727 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 728 } 729 730 static inline NV_STATUS kgspBootstrap_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) { 731 return pKernelGsp->__kgspBootstrap__(pGpu, pKernelGsp, pGspFw); 732 } 733 734 void kgspGetGspRmBootUcodeStorage_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, BINDATA_STORAGE **ppBinStorageImage, BINDATA_STORAGE **ppBinStorageDesc); 735 736 void kgspGetGspRmBootUcodeStorage_GA102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, BINDATA_STORAGE **ppBinStorageImage, BINDATA_STORAGE **ppBinStorageDesc); 737 738 void kgspGetGspRmBootUcodeStorage_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, BINDATA_STORAGE **ppBinStorageImage, BINDATA_STORAGE **ppBinStorageDesc); 739 740 static inline void kgspGetGspRmBootUcodeStorage_f2d351(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, BINDATA_STORAGE **ppBinStorageImage, BINDATA_STORAGE **ppBinStorageDesc) { 741 NV_ASSERT_PRECOMP(0); 742 } 743 744 static inline void kgspGetGspRmBootUcodeStorage_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, BINDATA_STORAGE **ppBinStorageImage, BINDATA_STORAGE **ppBinStorageDesc) { 745 pKernelGsp->__kgspGetGspRmBootUcodeStorage__(pGpu, pKernelGsp, ppBinStorageImage, ppBinStorageDesc); 746 } 747 748 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_TU102(struct KernelGsp *pKernelGsp); 749 750 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_GA100(struct KernelGsp *pKernelGsp); 751 752 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_GA102(struct KernelGsp *pKernelGsp); 753 754 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_GH100(struct KernelGsp *pKernelGsp); 755 756 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_AD102(struct KernelGsp *pKernelGsp); 757 758 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_80f438(struct KernelGsp *pKernelGsp) { 759 NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0)); 760 } 761 762 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_DISPATCH(struct KernelGsp *pKernelGsp) { 763 return pKernelGsp->__kgspGetBinArchiveGspRmBoot__(pKernelGsp); 764 } 765 766 const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMCDesc_GH100(struct KernelGsp *pKernelGsp); 767 768 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMCDesc_80f438(struct KernelGsp *pKernelGsp) { 769 NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0)); 770 } 771 772 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMCDesc_DISPATCH(struct KernelGsp *pKernelGsp) { 773 return pKernelGsp->__kgspGetBinArchiveConcatenatedFMCDesc__(pKernelGsp); 774 } 775 776 const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMC_GH100(struct KernelGsp *pKernelGsp); 777 778 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMC_80f438(struct KernelGsp *pKernelGsp) { 779 NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0)); 780 } 781 782 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMC_DISPATCH(struct KernelGsp *pKernelGsp) { 783 return pKernelGsp->__kgspGetBinArchiveConcatenatedFMC__(pKernelGsp); 784 } 785 786 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwDebugSigned_GH100(struct KernelGsp *pKernelGsp); 787 788 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwDebugSigned_80f438(struct KernelGsp *pKernelGsp) { 789 NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0)); 790 } 791 792 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwDebugSigned_DISPATCH(struct KernelGsp *pKernelGsp) { 793 return pKernelGsp->__kgspGetBinArchiveGspRmFmcGfwDebugSigned__(pKernelGsp); 794 } 795 796 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwProdSigned_GH100(struct KernelGsp *pKernelGsp); 797 798 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwProdSigned_80f438(struct KernelGsp *pKernelGsp) { 799 NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0)); 800 } 801 802 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwProdSigned_DISPATCH(struct KernelGsp *pKernelGsp) { 803 return pKernelGsp->__kgspGetBinArchiveGspRmFmcGfwProdSigned__(pKernelGsp); 804 } 805 806 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmCcFmcGfwProdSigned_GH100(struct KernelGsp *pKernelGsp); 807 808 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmCcFmcGfwProdSigned_80f438(struct KernelGsp *pKernelGsp) { 809 NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0)); 810 } 811 812 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmCcFmcGfwProdSigned_DISPATCH(struct KernelGsp *pKernelGsp) { 813 return pKernelGsp->__kgspGetBinArchiveGspRmCcFmcGfwProdSigned__(pKernelGsp); 814 } 815 816 NV_STATUS kgspCalculateFbLayout_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw); 817 818 NV_STATUS kgspCalculateFbLayout_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw); 819 820 static inline NV_STATUS kgspCalculateFbLayout_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) { 821 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 822 } 823 824 static inline NV_STATUS kgspCalculateFbLayout_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) { 825 return pKernelGsp->__kgspCalculateFbLayout__(pGpu, pKernelGsp, pGspFw); 826 } 827 828 static inline NvU32 kgspGetNonWprHeapSize_ed6b8b(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 829 return 1048576; 830 } 831 832 static inline NvU32 kgspGetNonWprHeapSize_d505ea(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 833 return 2097152; 834 } 835 836 static inline NvU32 kgspGetNonWprHeapSize_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 837 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 838 } 839 840 static inline NvU32 kgspGetNonWprHeapSize_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 841 return pKernelGsp->__kgspGetNonWprHeapSize__(pGpu, pKernelGsp); 842 } 843 844 NV_STATUS kgspExecuteSequencerCommand_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 opCode, NvU32 *pPayLoad, NvU32 payloadSize); 845 846 NV_STATUS kgspExecuteSequencerCommand_GA102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 opCode, NvU32 *pPayLoad, NvU32 payloadSize); 847 848 static inline NV_STATUS kgspExecuteSequencerCommand_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 opCode, NvU32 *pPayLoad, NvU32 payloadSize) { 849 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 850 } 851 852 static inline NV_STATUS kgspExecuteSequencerCommand_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 opCode, NvU32 *pPayLoad, NvU32 payloadSize) { 853 return pKernelGsp->__kgspExecuteSequencerCommand__(pGpu, pKernelGsp, opCode, pPayLoad, payloadSize); 854 } 855 856 static inline NvU32 kgspReadUcodeFuseVersion_b2b553(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 ucodeId) { 857 return 0; 858 } 859 860 NvU32 kgspReadUcodeFuseVersion_GA100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 ucodeId); 861 862 static inline NvU32 kgspReadUcodeFuseVersion_474d46(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 ucodeId) { 863 NV_ASSERT_OR_RETURN_PRECOMP(0, 0); 864 } 865 866 static inline NvU32 kgspReadUcodeFuseVersion_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 ucodeId) { 867 return pKernelGsp->__kgspReadUcodeFuseVersion__(pGpu, pKernelGsp, ucodeId); 868 } 869 870 NV_STATUS kgspResetHw_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 871 872 NV_STATUS kgspResetHw_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 873 874 static inline NV_STATUS kgspResetHw_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 875 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 876 } 877 878 static inline NV_STATUS kgspResetHw_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 879 return pKernelGsp->__kgspResetHw__(pGpu, pKernelGsp); 880 } 881 882 NvBool kgspHealthCheck_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 883 884 static inline NvBool kgspHealthCheck_108313(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 885 NV_ASSERT_OR_RETURN_PRECOMP(0, ((NvBool)(0 != 0))); 886 } 887 888 static inline NvBool kgspHealthCheck_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 889 return pKernelGsp->__kgspHealthCheck__(pGpu, pKernelGsp); 890 } 891 892 NvU32 kgspService_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 893 894 static inline NvU32 kgspService_474d46(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 895 NV_ASSERT_OR_RETURN_PRECOMP(0, 0); 896 } 897 898 static inline NvU32 kgspService_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 899 return pKernelGsp->__kgspService__(pGpu, pKernelGsp); 900 } 901 902 NvBool kgspIsWpr2Up_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 903 904 NvBool kgspIsWpr2Up_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 905 906 static inline NvBool kgspIsWpr2Up_108313(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 907 NV_ASSERT_OR_RETURN_PRECOMP(0, ((NvBool)(0 != 0))); 908 } 909 910 static inline NvBool kgspIsWpr2Up_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 911 return pKernelGsp->__kgspIsWpr2Up__(pGpu, pKernelGsp); 912 } 913 914 NvU32 kgspGetFrtsSize_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 915 916 static inline NvU32 kgspGetFrtsSize_4a4dee(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 917 return 0; 918 } 919 920 static inline NvU32 kgspGetFrtsSize_474d46(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 921 NV_ASSERT_OR_RETURN_PRECOMP(0, 0); 922 } 923 924 static inline NvU32 kgspGetFrtsSize_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 925 return pKernelGsp->__kgspGetFrtsSize__(pGpu, pKernelGsp); 926 } 927 928 static inline NvU64 kgspGetPrescrubbedTopFbSize_e1e623(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 929 return 256 * 1024 * 1024; 930 } 931 932 static inline NvU64 kgspGetPrescrubbedTopFbSize_604eb7(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 933 return (+18446744073709551615ULL); 934 } 935 936 static inline NvU64 kgspGetPrescrubbedTopFbSize_474d46(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 937 NV_ASSERT_OR_RETURN_PRECOMP(0, 0); 938 } 939 940 static inline NvU64 kgspGetPrescrubbedTopFbSize_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 941 return pKernelGsp->__kgspGetPrescrubbedTopFbSize__(pGpu, pKernelGsp); 942 } 943 944 NV_STATUS kgspExtractVbiosFromRom_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspVbiosImg **ppVbiosImg); 945 946 static inline NV_STATUS kgspExtractVbiosFromRom_395e98(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspVbiosImg **ppVbiosImg) { 947 return NV_ERR_NOT_SUPPORTED; 948 } 949 950 static inline NV_STATUS kgspExtractVbiosFromRom_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspVbiosImg **ppVbiosImg) { 951 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 952 } 953 954 static inline NV_STATUS kgspExtractVbiosFromRom_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspVbiosImg **ppVbiosImg) { 955 return pKernelGsp->__kgspExtractVbiosFromRom__(pGpu, pKernelGsp, ppVbiosImg); 956 } 957 958 NV_STATUS kgspPrepareForFwsecFrts_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode, const NvU64 frtsOffset, KernelGspPreparedFwsecCmd *preparedCmd); 959 960 static inline NV_STATUS kgspPrepareForFwsecFrts_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode, const NvU64 frtsOffset, KernelGspPreparedFwsecCmd *preparedCmd) { 961 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 962 } 963 964 static inline NV_STATUS kgspPrepareForFwsecFrts_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode, const NvU64 frtsOffset, KernelGspPreparedFwsecCmd *preparedCmd) { 965 return pKernelGsp->__kgspPrepareForFwsecFrts__(pGpu, pKernelGsp, pFwsecUcode, frtsOffset, preparedCmd); 966 } 967 968 NV_STATUS kgspPrepareForFwsecSb_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode, KernelGspPreparedFwsecCmd *preparedCmd); 969 970 static inline NV_STATUS kgspPrepareForFwsecSb_395e98(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode, KernelGspPreparedFwsecCmd *preparedCmd) { 971 return NV_ERR_NOT_SUPPORTED; 972 } 973 974 static inline NV_STATUS kgspPrepareForFwsecSb_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode, KernelGspPreparedFwsecCmd *preparedCmd) { 975 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 976 } 977 978 static inline NV_STATUS kgspPrepareForFwsecSb_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode, KernelGspPreparedFwsecCmd *preparedCmd) { 979 return pKernelGsp->__kgspPrepareForFwsecSb__(pGpu, pKernelGsp, pFwsecUcode, preparedCmd); 980 } 981 982 NV_STATUS kgspExecuteFwsec_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspPreparedFwsecCmd *preparedCmd); 983 984 static inline NV_STATUS kgspExecuteFwsec_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspPreparedFwsecCmd *preparedCmd) { 985 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 986 } 987 988 static inline NV_STATUS kgspExecuteFwsec_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspPreparedFwsecCmd *preparedCmd) { 989 return pKernelGsp->__kgspExecuteFwsec__(pGpu, pKernelGsp, preparedCmd); 990 } 991 992 NV_STATUS kgspExecuteScrubberIfNeeded_AD102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 993 994 static inline NV_STATUS kgspExecuteScrubberIfNeeded_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 995 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 996 } 997 998 static inline NV_STATUS kgspExecuteScrubberIfNeeded_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 999 return pKernelGsp->__kgspExecuteScrubberIfNeeded__(pGpu, pKernelGsp); 1000 } 1001 1002 NV_STATUS kgspExecuteBooterLoad_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfData); 1003 1004 static inline NV_STATUS kgspExecuteBooterLoad_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfData) { 1005 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 1006 } 1007 1008 static inline NV_STATUS kgspExecuteBooterLoad_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfData) { 1009 return pKernelGsp->__kgspExecuteBooterLoad__(pGpu, pKernelGsp, sysmemAddrOfData); 1010 } 1011 1012 NV_STATUS kgspExecuteBooterUnloadIfNeeded_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfSuspendResumeData); 1013 1014 static inline NV_STATUS kgspExecuteBooterUnloadIfNeeded_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfSuspendResumeData) { 1015 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 1016 } 1017 1018 static inline NV_STATUS kgspExecuteBooterUnloadIfNeeded_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfSuspendResumeData) { 1019 return pKernelGsp->__kgspExecuteBooterUnloadIfNeeded__(pGpu, pKernelGsp, sysmemAddrOfSuspendResumeData); 1020 } 1021 1022 NV_STATUS kgspExecuteHsFalcon_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFlcnUcode, struct KernelFalcon *pKernelFlcn, NvU32 *pMailbox0, NvU32 *pMailbox1); 1023 1024 NV_STATUS kgspExecuteHsFalcon_GA102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFlcnUcode, struct KernelFalcon *pKernelFlcn, NvU32 *pMailbox0, NvU32 *pMailbox1); 1025 1026 static inline NV_STATUS kgspExecuteHsFalcon_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFlcnUcode, struct KernelFalcon *pKernelFlcn, NvU32 *pMailbox0, NvU32 *pMailbox1) { 1027 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 1028 } 1029 1030 static inline NV_STATUS kgspExecuteHsFalcon_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFlcnUcode, struct KernelFalcon *pKernelFlcn, NvU32 *pMailbox0, NvU32 *pMailbox1) { 1031 return pKernelGsp->__kgspExecuteHsFalcon__(pGpu, pKernelGsp, pFlcnUcode, pKernelFlcn, pMailbox0, pMailbox1); 1032 } 1033 1034 NV_STATUS kgspWaitForProcessorSuspend_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1035 1036 static inline NV_STATUS kgspWaitForProcessorSuspend_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1037 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 1038 } 1039 1040 static inline NV_STATUS kgspWaitForProcessorSuspend_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1041 return pKernelGsp->__kgspWaitForProcessorSuspend__(pGpu, pKernelGsp); 1042 } 1043 1044 NV_STATUS kgspSavePowerMgmtState_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1045 1046 static inline NV_STATUS kgspSavePowerMgmtState_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1047 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 1048 } 1049 1050 static inline NV_STATUS kgspSavePowerMgmtState_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1051 return pKernelGsp->__kgspSavePowerMgmtState__(pGpu, pKernelGsp); 1052 } 1053 1054 NV_STATUS kgspRestorePowerMgmtState_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1055 1056 static inline NV_STATUS kgspRestorePowerMgmtState_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1057 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 1058 } 1059 1060 static inline NV_STATUS kgspRestorePowerMgmtState_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1061 return pKernelGsp->__kgspRestorePowerMgmtState__(pGpu, pKernelGsp); 1062 } 1063 1064 void kgspFreeSuspendResumeData_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1065 1066 static inline void kgspFreeSuspendResumeData_f2d351(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1067 NV_ASSERT_PRECOMP(0); 1068 } 1069 1070 static inline void kgspFreeSuspendResumeData_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1071 pKernelGsp->__kgspFreeSuspendResumeData__(pGpu, pKernelGsp); 1072 } 1073 1074 NV_STATUS kgspWaitForGfwBootOk_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1075 1076 NV_STATUS kgspWaitForGfwBootOk_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1077 1078 static inline NV_STATUS kgspWaitForGfwBootOk_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1079 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 1080 } 1081 1082 static inline NV_STATUS kgspWaitForGfwBootOk_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1083 return pKernelGsp->__kgspWaitForGfwBootOk__(pGpu, pKernelGsp); 1084 } 1085 1086 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_TU102(struct KernelGsp *pKernelGsp); 1087 1088 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_TU116(struct KernelGsp *pKernelGsp); 1089 1090 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_GA100(struct KernelGsp *pKernelGsp); 1091 1092 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_GA102(struct KernelGsp *pKernelGsp); 1093 1094 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_AD102(struct KernelGsp *pKernelGsp); 1095 1096 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_80f438(struct KernelGsp *pKernelGsp) { 1097 NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0)); 1098 } 1099 1100 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_DISPATCH(struct KernelGsp *pKernelGsp) { 1101 return pKernelGsp->__kgspGetBinArchiveBooterLoadUcode__(pKernelGsp); 1102 } 1103 1104 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_TU102(struct KernelGsp *pKernelGsp); 1105 1106 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_TU116(struct KernelGsp *pKernelGsp); 1107 1108 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_GA100(struct KernelGsp *pKernelGsp); 1109 1110 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_GA102(struct KernelGsp *pKernelGsp); 1111 1112 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_AD102(struct KernelGsp *pKernelGsp); 1113 1114 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_80f438(struct KernelGsp *pKernelGsp) { 1115 NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0)); 1116 } 1117 1118 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_DISPATCH(struct KernelGsp *pKernelGsp) { 1119 return pKernelGsp->__kgspGetBinArchiveBooterUnloadUcode__(pKernelGsp); 1120 } 1121 1122 static inline NvU64 kgspGetMinWprHeapSizeMB_7185bf(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1123 return (64U); 1124 } 1125 1126 static inline NvU64 kgspGetMinWprHeapSizeMB_cc88c3(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1127 return pGpu->bVgpuGspPluginOffloadEnabled ? (565U) : (86U); 1128 } 1129 1130 static inline NvU64 kgspGetMinWprHeapSizeMB_b2b553(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1131 return 0; 1132 } 1133 1134 static inline NvU64 kgspGetMinWprHeapSizeMB_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1135 return pKernelGsp->__kgspGetMinWprHeapSizeMB__(pGpu, pKernelGsp); 1136 } 1137 1138 static inline NvU64 kgspGetMaxWprHeapSizeMB_ad4e6a(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1139 return (256U); 1140 } 1141 1142 static inline NvU64 kgspGetMaxWprHeapSizeMB_55728f(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1143 return pGpu->bVgpuGspPluginOffloadEnabled ? (1040U) : (278U); 1144 } 1145 1146 static inline NvU64 kgspGetMaxWprHeapSizeMB_b2b553(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1147 return 0; 1148 } 1149 1150 static inline NvU64 kgspGetMaxWprHeapSizeMB_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1151 return pKernelGsp->__kgspGetMaxWprHeapSizeMB__(pGpu, pKernelGsp); 1152 } 1153 1154 static inline NvU32 kgspGetFwHeapParamOsCarveoutSize_397f70(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1155 return (0 << 20); 1156 } 1157 1158 static inline NvU32 kgspGetFwHeapParamOsCarveoutSize_4b5307(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1159 return pGpu->bVgpuGspPluginOffloadEnabled ? (36 << 20) : (22 << 20); 1160 } 1161 1162 static inline NvU32 kgspGetFwHeapParamOsCarveoutSize_b2b553(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1163 return 0; 1164 } 1165 1166 static inline NvU32 kgspGetFwHeapParamOsCarveoutSize_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1167 return pKernelGsp->__kgspGetFwHeapParamOsCarveoutSize__(pGpu, pKernelGsp); 1168 } 1169 1170 static inline NV_STATUS kgspInitVgpuPartitionLogging_395e98(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid, NvU64 initTaskLogBUffOffset, NvU64 initTaskLogBUffSize, NvU64 vgpuTaskLogBUffOffset, NvU64 vgpuTaskLogBuffSize) { 1171 return NV_ERR_NOT_SUPPORTED; 1172 } 1173 1174 NV_STATUS kgspInitVgpuPartitionLogging_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid, NvU64 initTaskLogBUffOffset, NvU64 initTaskLogBUffSize, NvU64 vgpuTaskLogBUffOffset, NvU64 vgpuTaskLogBuffSize); 1175 1176 static inline NV_STATUS kgspInitVgpuPartitionLogging_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid, NvU64 initTaskLogBUffOffset, NvU64 initTaskLogBUffSize, NvU64 vgpuTaskLogBUffOffset, NvU64 vgpuTaskLogBuffSize) { 1177 return pKernelGsp->__kgspInitVgpuPartitionLogging__(pGpu, pKernelGsp, gfid, initTaskLogBUffOffset, initTaskLogBUffSize, vgpuTaskLogBUffOffset, vgpuTaskLogBuffSize); 1178 } 1179 1180 static inline NV_STATUS kgspFreeVgpuPartitionLogging_395e98(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid) { 1181 return NV_ERR_NOT_SUPPORTED; 1182 } 1183 1184 NV_STATUS kgspFreeVgpuPartitionLogging_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid); 1185 1186 static inline NV_STATUS kgspFreeVgpuPartitionLogging_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid) { 1187 return pKernelGsp->__kgspFreeVgpuPartitionLogging__(pGpu, pKernelGsp, gfid); 1188 } 1189 1190 const char *kgspGetSignatureSectionNamePrefix_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1191 1192 static inline const char *kgspGetSignatureSectionNamePrefix_789efb(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1193 return ".fwsignature_"; 1194 } 1195 1196 static inline const char *kgspGetSignatureSectionNamePrefix_80f438(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1197 NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0)); 1198 } 1199 1200 static inline const char *kgspGetSignatureSectionNamePrefix_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1201 return pKernelGsp->__kgspGetSignatureSectionNamePrefix__(pGpu, pKernelGsp); 1202 } 1203 1204 NV_STATUS kgspSetupGspFmcArgs_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw); 1205 1206 static inline NV_STATUS kgspSetupGspFmcArgs_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) { 1207 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 1208 } 1209 1210 static inline NV_STATUS kgspSetupGspFmcArgs_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) { 1211 return pKernelGsp->__kgspSetupGspFmcArgs__(pGpu, pKernelGsp, pGspFw); 1212 } 1213 1214 void kgspReadEmem_TU102(struct KernelGsp *pKernelGsp, NvU64 offset, NvU64 size, void *pBuf); 1215 1216 static inline void kgspReadEmem_366c4c(struct KernelGsp *pKernelGsp, NvU64 offset, NvU64 size, void *pBuf) { 1217 NV_ASSERT(0); 1218 } 1219 1220 static inline void kgspReadEmem_DISPATCH(struct KernelGsp *pKernelGsp, NvU64 offset, NvU64 size, void *pBuf) { 1221 pKernelGsp->__kgspReadEmem__(pKernelGsp, offset, size, pBuf); 1222 } 1223 1224 NV_STATUS kgspIssueNotifyOp_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 opCode, NvU32 *pArgs, NvU32 argc); 1225 1226 static inline NV_STATUS kgspIssueNotifyOp_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 opCode, NvU32 *pArgs, NvU32 argc) { 1227 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 1228 } 1229 1230 static inline NV_STATUS kgspIssueNotifyOp_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 opCode, NvU32 *pArgs, NvU32 argc) { 1231 return pKernelGsp->__kgspIssueNotifyOp__(pGpu, pKernelGsp, opCode, pArgs, argc); 1232 } 1233 1234 NV_STATUS kgspCheckGspRmCcCleanup_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1235 1236 static inline NV_STATUS kgspCheckGspRmCcCleanup_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1237 NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED); 1238 } 1239 1240 static inline NV_STATUS kgspCheckGspRmCcCleanup_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1241 return pKernelGsp->__kgspCheckGspRmCcCleanup__(pGpu, pKernelGsp); 1242 } 1243 1244 static inline NvBool kgspConfigured_DISPATCH(struct KernelGsp *arg0) { 1245 return arg0->__kgspConfigured__(arg0); 1246 } 1247 1248 static inline NvU32 kgspPriRead_DISPATCH(struct KernelGsp *arg0, NvU32 offset) { 1249 return arg0->__kgspPriRead__(arg0, offset); 1250 } 1251 1252 static inline void kgspRegWrite_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelFlcn, NvU32 offset, NvU32 data) { 1253 pKernelFlcn->__kgspRegWrite__(pGpu, pKernelFlcn, offset, data); 1254 } 1255 1256 static inline NvU32 kgspMaskDmemAddr_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelFlcn, NvU32 addr) { 1257 return pKernelFlcn->__kgspMaskDmemAddr__(pGpu, pKernelFlcn, addr); 1258 } 1259 1260 static inline void kgspStateDestroy_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) { 1261 pEngstate->__kgspStateDestroy__(pGpu, pEngstate); 1262 } 1263 1264 static inline void kgspVprintf_DISPATCH(struct KernelGsp *arg0, NvBool bReportStart, const char *fmt, va_list args) { 1265 arg0->__kgspVprintf__(arg0, bReportStart, fmt, args); 1266 } 1267 1268 static inline NvBool kgspClearInterrupt_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pIntrService, IntrServiceClearInterruptArguments *pParams) { 1269 return pIntrService->__kgspClearInterrupt__(pGpu, pIntrService, pParams); 1270 } 1271 1272 static inline void kgspPriWrite_DISPATCH(struct KernelGsp *arg0, NvU32 offset, NvU32 data) { 1273 arg0->__kgspPriWrite__(arg0, offset, data); 1274 } 1275 1276 static inline void *kgspMapBufferDescriptor_DISPATCH(struct KernelGsp *arg0, CrashCatBufferDescriptor *pBufDesc) { 1277 return arg0->__kgspMapBufferDescriptor__(arg0, pBufDesc); 1278 } 1279 1280 static inline void kgspSyncBufferDescriptor_DISPATCH(struct KernelGsp *arg0, CrashCatBufferDescriptor *pBufDesc, NvU32 offset, NvU32 size) { 1281 arg0->__kgspSyncBufferDescriptor__(arg0, pBufDesc, offset, size); 1282 } 1283 1284 static inline NvU32 kgspRegRead_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelFlcn, NvU32 offset) { 1285 return pKernelFlcn->__kgspRegRead__(pGpu, pKernelFlcn, offset); 1286 } 1287 1288 static inline NvBool kgspIsPresent_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) { 1289 return pEngstate->__kgspIsPresent__(pGpu, pEngstate); 1290 } 1291 1292 static inline NV_STATUS kgspStateLoad_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) { 1293 return pEngstate->__kgspStateLoad__(pGpu, pEngstate, arg0); 1294 } 1295 1296 static inline const NvU32 *kgspGetScratchOffsets_DISPATCH(struct KernelGsp *arg0, NV_CRASHCAT_SCRATCH_GROUP_ID scratchGroupId) { 1297 return arg0->__kgspGetScratchOffsets__(arg0, scratchGroupId); 1298 } 1299 1300 static inline void kgspUnload_DISPATCH(struct KernelGsp *arg0) { 1301 arg0->__kgspUnload__(arg0); 1302 } 1303 1304 static inline NV_STATUS kgspStateUnload_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) { 1305 return pEngstate->__kgspStateUnload__(pGpu, pEngstate, arg0); 1306 } 1307 1308 static inline NV_STATUS kgspServiceNotificationInterrupt_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pIntrService, IntrServiceServiceNotificationInterruptArguments *pParams) { 1309 return pIntrService->__kgspServiceNotificationInterrupt__(pGpu, pIntrService, pParams); 1310 } 1311 1312 static inline NvU32 kgspGetWFL0Offset_DISPATCH(struct KernelGsp *arg0) { 1313 return arg0->__kgspGetWFL0Offset__(arg0); 1314 } 1315 1316 static inline NV_STATUS kgspStateInitLocked_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) { 1317 return pEngstate->__kgspStateInitLocked__(pGpu, pEngstate); 1318 } 1319 1320 static inline NV_STATUS kgspStatePreLoad_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) { 1321 return pEngstate->__kgspStatePreLoad__(pGpu, pEngstate, arg0); 1322 } 1323 1324 static inline NV_STATUS kgspStatePostUnload_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) { 1325 return pEngstate->__kgspStatePostUnload__(pGpu, pEngstate, arg0); 1326 } 1327 1328 static inline NV_STATUS kgspStatePreUnload_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) { 1329 return pEngstate->__kgspStatePreUnload__(pGpu, pEngstate, arg0); 1330 } 1331 1332 static inline NV_STATUS kgspStateInitUnlocked_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) { 1333 return pEngstate->__kgspStateInitUnlocked__(pGpu, pEngstate); 1334 } 1335 1336 static inline void kgspInitMissing_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) { 1337 pEngstate->__kgspInitMissing__(pGpu, pEngstate); 1338 } 1339 1340 static inline NV_STATUS kgspStatePreInitLocked_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) { 1341 return pEngstate->__kgspStatePreInitLocked__(pGpu, pEngstate); 1342 } 1343 1344 static inline NV_STATUS kgspStatePreInitUnlocked_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) { 1345 return pEngstate->__kgspStatePreInitUnlocked__(pGpu, pEngstate); 1346 } 1347 1348 static inline NV_STATUS kgspStatePostLoad_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) { 1349 return pEngstate->__kgspStatePostLoad__(pGpu, pEngstate, arg0); 1350 } 1351 1352 static inline void kgspUnmapBufferDescriptor_DISPATCH(struct KernelGsp *arg0, CrashCatBufferDescriptor *pBufDesc) { 1353 arg0->__kgspUnmapBufferDescriptor__(arg0, pBufDesc); 1354 } 1355 1356 static inline void kgspReadDmem_DISPATCH(struct KernelGsp *arg0, NvU32 offset, NvU32 size, void *pBuf) { 1357 arg0->__kgspReadDmem__(arg0, offset, size, pBuf); 1358 } 1359 1360 void kgspDestruct_IMPL(struct KernelGsp *pKernelGsp); 1361 1362 #define __nvoc_kgspDestruct(pKernelGsp) kgspDestruct_IMPL(pKernelGsp) 1363 void kgspPopulateGspRmInitArgs_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_SR_INIT_ARGUMENTS *pGspSrInitArgs); 1364 1365 #ifdef __nvoc_kernel_gsp_h_disabled 1366 static inline void kgspPopulateGspRmInitArgs(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_SR_INIT_ARGUMENTS *pGspSrInitArgs) { 1367 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1368 } 1369 #else //__nvoc_kernel_gsp_h_disabled 1370 #define kgspPopulateGspRmInitArgs(pGpu, pKernelGsp, pGspSrInitArgs) kgspPopulateGspRmInitArgs_IMPL(pGpu, pKernelGsp, pGspSrInitArgs) 1371 #endif //__nvoc_kernel_gsp_h_disabled 1372 1373 NV_STATUS kgspInitRm_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw); 1374 1375 #ifdef __nvoc_kernel_gsp_h_disabled 1376 static inline NV_STATUS kgspInitRm(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) { 1377 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1378 return NV_ERR_NOT_SUPPORTED; 1379 } 1380 #else //__nvoc_kernel_gsp_h_disabled 1381 #define kgspInitRm(pGpu, pKernelGsp, pGspFw) kgspInitRm_IMPL(pGpu, pKernelGsp, pGspFw) 1382 #endif //__nvoc_kernel_gsp_h_disabled 1383 1384 NV_STATUS kgspCreateRadix3_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, MEMORY_DESCRIPTOR **ppMemdescRadix3, MEMORY_DESCRIPTOR *pMemdescData, const void *pData, NvU64 sizeOfData); 1385 1386 #ifdef __nvoc_kernel_gsp_h_disabled 1387 static inline NV_STATUS kgspCreateRadix3(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, MEMORY_DESCRIPTOR **ppMemdescRadix3, MEMORY_DESCRIPTOR *pMemdescData, const void *pData, NvU64 sizeOfData) { 1388 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1389 return NV_ERR_NOT_SUPPORTED; 1390 } 1391 #else //__nvoc_kernel_gsp_h_disabled 1392 #define kgspCreateRadix3(pGpu, pKernelGsp, ppMemdescRadix3, pMemdescData, pData, sizeOfData) kgspCreateRadix3_IMPL(pGpu, pKernelGsp, ppMemdescRadix3, pMemdescData, pData, sizeOfData) 1393 #endif //__nvoc_kernel_gsp_h_disabled 1394 1395 NV_STATUS kgspUnloadRm_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1396 1397 #ifdef __nvoc_kernel_gsp_h_disabled 1398 static inline NV_STATUS kgspUnloadRm(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1399 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1400 return NV_ERR_NOT_SUPPORTED; 1401 } 1402 #else //__nvoc_kernel_gsp_h_disabled 1403 #define kgspUnloadRm(pGpu, pKernelGsp) kgspUnloadRm_IMPL(pGpu, pKernelGsp) 1404 #endif //__nvoc_kernel_gsp_h_disabled 1405 1406 NV_STATUS kgspPrepareBootBinaryImage_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1407 1408 #ifdef __nvoc_kernel_gsp_h_disabled 1409 static inline NV_STATUS kgspPrepareBootBinaryImage(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1410 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1411 return NV_ERR_NOT_SUPPORTED; 1412 } 1413 #else //__nvoc_kernel_gsp_h_disabled 1414 #define kgspPrepareBootBinaryImage(pGpu, pKernelGsp) kgspPrepareBootBinaryImage_IMPL(pGpu, pKernelGsp) 1415 #endif //__nvoc_kernel_gsp_h_disabled 1416 1417 NvU64 kgspGetFwHeapSize_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU64 posteriorFbSize); 1418 1419 #ifdef __nvoc_kernel_gsp_h_disabled 1420 static inline NvU64 kgspGetFwHeapSize(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU64 posteriorFbSize) { 1421 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1422 return 0; 1423 } 1424 #else //__nvoc_kernel_gsp_h_disabled 1425 #define kgspGetFwHeapSize(pGpu, pKernelGsp, posteriorFbSize) kgspGetFwHeapSize_IMPL(pGpu, pKernelGsp, posteriorFbSize) 1426 #endif //__nvoc_kernel_gsp_h_disabled 1427 1428 NvU64 kgspGetWprEndMargin_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1429 1430 #ifdef __nvoc_kernel_gsp_h_disabled 1431 static inline NvU64 kgspGetWprEndMargin(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1432 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1433 return 0; 1434 } 1435 #else //__nvoc_kernel_gsp_h_disabled 1436 #define kgspGetWprEndMargin(pGpu, pKernelGsp) kgspGetWprEndMargin_IMPL(pGpu, pKernelGsp) 1437 #endif //__nvoc_kernel_gsp_h_disabled 1438 1439 void kgspSetupLibosInitArgs_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1440 1441 #ifdef __nvoc_kernel_gsp_h_disabled 1442 static inline void kgspSetupLibosInitArgs(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1443 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1444 } 1445 #else //__nvoc_kernel_gsp_h_disabled 1446 #define kgspSetupLibosInitArgs(pGpu, pKernelGsp) kgspSetupLibosInitArgs_IMPL(pGpu, pKernelGsp) 1447 #endif //__nvoc_kernel_gsp_h_disabled 1448 1449 NV_STATUS kgspQueueAsyncInitRpcs_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1450 1451 #ifdef __nvoc_kernel_gsp_h_disabled 1452 static inline NV_STATUS kgspQueueAsyncInitRpcs(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1453 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1454 return NV_ERR_NOT_SUPPORTED; 1455 } 1456 #else //__nvoc_kernel_gsp_h_disabled 1457 #define kgspQueueAsyncInitRpcs(pGpu, pKernelGsp) kgspQueueAsyncInitRpcs_IMPL(pGpu, pKernelGsp) 1458 #endif //__nvoc_kernel_gsp_h_disabled 1459 1460 void kgspRpcRecvEvents_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1461 1462 #ifdef __nvoc_kernel_gsp_h_disabled 1463 static inline void kgspRpcRecvEvents(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1464 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1465 } 1466 #else //__nvoc_kernel_gsp_h_disabled 1467 #define kgspRpcRecvEvents(pGpu, pKernelGsp) kgspRpcRecvEvents_IMPL(pGpu, pKernelGsp) 1468 #endif //__nvoc_kernel_gsp_h_disabled 1469 1470 NV_STATUS kgspWaitForRmInitDone_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1471 1472 #ifdef __nvoc_kernel_gsp_h_disabled 1473 static inline NV_STATUS kgspWaitForRmInitDone(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1474 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1475 return NV_ERR_NOT_SUPPORTED; 1476 } 1477 #else //__nvoc_kernel_gsp_h_disabled 1478 #define kgspWaitForRmInitDone(pGpu, pKernelGsp) kgspWaitForRmInitDone_IMPL(pGpu, pKernelGsp) 1479 #endif //__nvoc_kernel_gsp_h_disabled 1480 1481 NV_STATUS kgspStartLogPolling_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp); 1482 1483 #ifdef __nvoc_kernel_gsp_h_disabled 1484 static inline NV_STATUS kgspStartLogPolling(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) { 1485 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1486 return NV_ERR_NOT_SUPPORTED; 1487 } 1488 #else //__nvoc_kernel_gsp_h_disabled 1489 #define kgspStartLogPolling(pGpu, pKernelGsp) kgspStartLogPolling_IMPL(pGpu, pKernelGsp) 1490 #endif //__nvoc_kernel_gsp_h_disabled 1491 1492 void kgspDumpGspLogs_IMPL(struct KernelGsp *pKernelGsp, NvBool arg0); 1493 1494 #ifdef __nvoc_kernel_gsp_h_disabled 1495 static inline void kgspDumpGspLogs(struct KernelGsp *pKernelGsp, NvBool arg0) { 1496 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1497 } 1498 #else //__nvoc_kernel_gsp_h_disabled 1499 #define kgspDumpGspLogs(pKernelGsp, arg0) kgspDumpGspLogs_IMPL(pKernelGsp, arg0) 1500 #endif //__nvoc_kernel_gsp_h_disabled 1501 1502 void kgspDumpGspLogsUnlocked_IMPL(struct KernelGsp *pKernelGsp, NvBool arg0); 1503 1504 #ifdef __nvoc_kernel_gsp_h_disabled 1505 static inline void kgspDumpGspLogsUnlocked(struct KernelGsp *pKernelGsp, NvBool arg0) { 1506 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1507 } 1508 #else //__nvoc_kernel_gsp_h_disabled 1509 #define kgspDumpGspLogsUnlocked(pKernelGsp, arg0) kgspDumpGspLogsUnlocked_IMPL(pKernelGsp, arg0) 1510 #endif //__nvoc_kernel_gsp_h_disabled 1511 1512 NV_STATUS kgspExecuteSequencerBuffer_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, void *pRunCpuSeqParams); 1513 1514 #ifdef __nvoc_kernel_gsp_h_disabled 1515 static inline NV_STATUS kgspExecuteSequencerBuffer(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, void *pRunCpuSeqParams) { 1516 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1517 return NV_ERR_NOT_SUPPORTED; 1518 } 1519 #else //__nvoc_kernel_gsp_h_disabled 1520 #define kgspExecuteSequencerBuffer(pGpu, pKernelGsp, pRunCpuSeqParams) kgspExecuteSequencerBuffer_IMPL(pGpu, pKernelGsp, pRunCpuSeqParams) 1521 #endif //__nvoc_kernel_gsp_h_disabled 1522 1523 NV_STATUS kgspParseFwsecUcodeFromVbiosImg_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const KernelGspVbiosImg *const pVbiosImg, KernelGspFlcnUcode **ppFwsecUcode, NvU64 *pVbiosVersionCombined); 1524 1525 #ifdef __nvoc_kernel_gsp_h_disabled 1526 static inline NV_STATUS kgspParseFwsecUcodeFromVbiosImg(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const KernelGspVbiosImg *const pVbiosImg, KernelGspFlcnUcode **ppFwsecUcode, NvU64 *pVbiosVersionCombined) { 1527 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1528 return NV_ERR_NOT_SUPPORTED; 1529 } 1530 #else //__nvoc_kernel_gsp_h_disabled 1531 #define kgspParseFwsecUcodeFromVbiosImg(pGpu, pKernelGsp, pVbiosImg, ppFwsecUcode, pVbiosVersionCombined) kgspParseFwsecUcodeFromVbiosImg_IMPL(pGpu, pKernelGsp, pVbiosImg, ppFwsecUcode, pVbiosVersionCombined) 1532 #endif //__nvoc_kernel_gsp_h_disabled 1533 1534 NV_STATUS kgspAllocateScrubberUcodeImage_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppScrubberUcode); 1535 1536 #ifdef __nvoc_kernel_gsp_h_disabled 1537 static inline NV_STATUS kgspAllocateScrubberUcodeImage(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppScrubberUcode) { 1538 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1539 return NV_ERR_NOT_SUPPORTED; 1540 } 1541 #else //__nvoc_kernel_gsp_h_disabled 1542 #define kgspAllocateScrubberUcodeImage(pGpu, pKernelGsp, ppScrubberUcode) kgspAllocateScrubberUcodeImage_IMPL(pGpu, pKernelGsp, ppScrubberUcode) 1543 #endif //__nvoc_kernel_gsp_h_disabled 1544 1545 NV_STATUS kgspAllocateBooterLoadUcodeImage_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppBooterLoadUcode); 1546 1547 #ifdef __nvoc_kernel_gsp_h_disabled 1548 static inline NV_STATUS kgspAllocateBooterLoadUcodeImage(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppBooterLoadUcode) { 1549 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1550 return NV_ERR_NOT_SUPPORTED; 1551 } 1552 #else //__nvoc_kernel_gsp_h_disabled 1553 #define kgspAllocateBooterLoadUcodeImage(pGpu, pKernelGsp, ppBooterLoadUcode) kgspAllocateBooterLoadUcodeImage_IMPL(pGpu, pKernelGsp, ppBooterLoadUcode) 1554 #endif //__nvoc_kernel_gsp_h_disabled 1555 1556 NV_STATUS kgspAllocateBooterUnloadUcodeImage_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppBooterUnloadUcode); 1557 1558 #ifdef __nvoc_kernel_gsp_h_disabled 1559 static inline NV_STATUS kgspAllocateBooterUnloadUcodeImage(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppBooterUnloadUcode) { 1560 NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!"); 1561 return NV_ERR_NOT_SUPPORTED; 1562 } 1563 #else //__nvoc_kernel_gsp_h_disabled 1564 #define kgspAllocateBooterUnloadUcodeImage(pGpu, pKernelGsp, ppBooterUnloadUcode) kgspAllocateBooterUnloadUcodeImage_IMPL(pGpu, pKernelGsp, ppBooterUnloadUcode) 1565 #endif //__nvoc_kernel_gsp_h_disabled 1566 1567 #undef PRIVATE_FIELD 1568 1569 1570 NV_STATUS rpcRmApiControl_GSP(RM_API *pRmApi, NvHandle hClient, NvHandle hObject, 1571 NvU32 cmd, void *pParamStructPtr, NvU32 paramsSize); 1572 NV_STATUS rpcRmApiAlloc_GSP(RM_API *pRmApi, NvHandle hClient, NvHandle hParent, 1573 NvHandle hObject, NvU32 hClass, void *pAllocParams, NvU32 allocParamsSize); 1574 NV_STATUS rpcRmApiDupObject_GSP(RM_API *pRmApi, NvHandle hClient, NvHandle hParent, NvHandle *phObject, 1575 NvHandle hClientSrc, NvHandle hObjectSrc, NvU32 flags); 1576 NV_STATUS rpcRmApiFree_GSP(RM_API *pRmApi, NvHandle hClient, NvHandle hObject); 1577 1578 /* Free a KernelGspVbiosImg structure */ 1579 void kgspFreeVbiosImg(KernelGspVbiosImg *pVbiosImg); 1580 /* Free a KernelGspFlcnUcode structure */ 1581 void kgspFreeFlcnUcode(KernelGspFlcnUcode *pFlcnUcode); 1582 1583 void kgspLogRpcDebugInfo(struct OBJGPU *pGpu, OBJRPC *pRpc, NvU32 errorNum, NvBool bPollingForRpcResponse); 1584 1585 #endif // KERNEL_GSP_H 1586 1587 #ifdef __cplusplus 1588 } // extern "C" 1589 #endif 1590 1591 #endif // _G_KERNEL_GSP_NVOC_H_ 1592