mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-02-01 14:09:47 +00:00
580.65.06
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2006-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2006-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -68,8 +68,7 @@ typedef struct NV0000_CTRL_CLIENT_GET_ADDR_SPACE_TYPE_PARAMS {
|
||||
#define NV0000_CTRL_CMD_CLIENT_GET_ADDR_SPACE_TYPE_VIDMEM 0x00000002
|
||||
#define NV0000_CTRL_CMD_CLIENT_GET_ADDR_SPACE_TYPE_REGMEM 0x00000003
|
||||
#define NV0000_CTRL_CMD_CLIENT_GET_ADDR_SPACE_TYPE_FABRIC 0x00000004
|
||||
|
||||
|
||||
#define NV0000_CTRL_CMD_CLIENT_GET_ADDR_SPACE_TYPE_FABRIC_MC 0x00000005
|
||||
|
||||
/*
|
||||
* NV0000_CTRL_CMD_CLIENT_GET_HANDLE_INFO
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2005-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2005-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -31,12 +31,14 @@
|
||||
//
|
||||
|
||||
#include "ctrl/ctrl0000/ctrl0000base.h"
|
||||
#include "ctrl/ctrl0000/ctrl0000system.h"
|
||||
#include "ctrl/ctrlxxxx.h"
|
||||
#include "ctrl/ctrl2080/ctrl2080nvlink_common.h"
|
||||
#include "nvlimits.h"
|
||||
|
||||
/* NV01_ROOT (client) GPU control commands and parameters */
|
||||
|
||||
typedef NV2080_CTRL_NVLINK_LINK_MASK NV0000_CTRL_NVLINK_LINK_MASK;
|
||||
|
||||
/*
|
||||
* NV0000_CTRL_CMD_GPU_GET_ATTACHED_IDS
|
||||
*
|
||||
@@ -122,6 +124,18 @@ typedef struct NV0000_CTRL_GPU_GET_ID_INFO_PARAMS {
|
||||
* System-on-Chip (SOC).
|
||||
* NV0000_CTRL_GPU_ID_INFO_ATS_ENABLED
|
||||
* When ATS is enabled on the system.
|
||||
* NV0000_CTRL_GPU_ID_INFO_SOC_TYPE
|
||||
* This field indicates the GPU type for SOC-based GPUs. Legal values
|
||||
* for this field include:
|
||||
* NV0000_CTRL_GPU_ID_INFO_SOC_TYPE_NONE
|
||||
* This value indicates the GPU is not an SOC GPU.
|
||||
* NV0000_CTRL_GPU_ID_INFO_SOC_TYPE_DISPLAY
|
||||
* This value indicates the GPU is an SOC display GPU.
|
||||
* NV0000_CTRL_GPU_ID_INFO_SOC_TYPE_IGPU
|
||||
* This value indicates the GPU is an iGPU.
|
||||
* NV0000_CTRL_GPU_ID_INFO_SOC_TYPE_DISPLAY_AND_IGPU
|
||||
* This value indicates the GPU is both an iGPU and an SOC
|
||||
* display GPU.
|
||||
* [out] deviceInstance
|
||||
* This parameter returns the broadcast device instance number associated
|
||||
* with the specified GPU. This value can be used to instantiate
|
||||
@@ -192,6 +206,11 @@ typedef struct NV0000_CTRL_GPU_GET_ID_INFO_V2_PARAMS {
|
||||
#define NV0000_CTRL_GPU_ID_INFO_ATS_ENABLED 6:6
|
||||
#define NV0000_CTRL_GPU_ID_INFO_ATS_ENABLED_FALSE (0x00000000U)
|
||||
#define NV0000_CTRL_GPU_ID_INFO_ATS_ENABLED_TRUE (0x00000001U)
|
||||
#define NV0000_CTRL_GPU_ID_INFO_SOC_TYPE 8:7
|
||||
#define NV0000_CTRL_GPU_ID_INFO_SOC_TYPE_NONE (0x00000000U)
|
||||
#define NV0000_CTRL_GPU_ID_INFO_SOC_TYPE_DISPLAY (0x00000001U)
|
||||
#define NV0000_CTRL_GPU_ID_INFO_SOC_TYPE_IGPU (0x00000002U)
|
||||
#define NV0000_CTRL_GPU_ID_INFO_SOC_TYPE_DISPLAY_AND_IGPU (0x00000003U)
|
||||
|
||||
/*
|
||||
* NV0000_CTRL_CMD_GPU_GET_INIT_STATUS
|
||||
@@ -277,6 +296,13 @@ typedef struct NV0000_CTRL_GPU_GET_DEVICE_IDS_PARAMS {
|
||||
* NV0000_CTRL_CMD_GPU_GET_UUID_INFO.
|
||||
* The valid entries in excludedGpuIds[] are contiguous, with a value
|
||||
* of NV0000_CTRL_GPU_INVALID_ID indicating the invalid entries.
|
||||
* gpuFlags[]
|
||||
* This parameter returns flags for each valid entry in the gpuIds[]
|
||||
* table. Note that excluded GPUs do not have a gpuFlags[] entry.
|
||||
* Valid flag values include:
|
||||
* NV0000_CTRL_GPU_PROBED_ID_INFO_FLAGS_SOC_DISPLAY
|
||||
* When TRUE this flag indicates the GPU supports SOC Display
|
||||
* functionality.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
@@ -290,8 +316,14 @@ typedef struct NV0000_CTRL_GPU_GET_DEVICE_IDS_PARAMS {
|
||||
typedef struct NV0000_CTRL_GPU_GET_PROBED_IDS_PARAMS {
|
||||
NvU32 gpuIds[NV0000_CTRL_GPU_MAX_PROBED_GPUS];
|
||||
NvU32 excludedGpuIds[NV0000_CTRL_GPU_MAX_PROBED_GPUS];
|
||||
NvU32 gpuFlags[NV0000_CTRL_GPU_MAX_PROBED_GPUS];
|
||||
} NV0000_CTRL_GPU_GET_PROBED_IDS_PARAMS;
|
||||
|
||||
/* valid flags values */
|
||||
#define NV0000_CTRL_GPU_PROBED_ID_FLAGS_SOC_DISPLAY 0:0
|
||||
#define NV0000_CTRL_GPU_PROBED_ID_FLAGS_SOC_DISPLAY_FALSE (0x00000000U)
|
||||
#define NV0000_CTRL_GPU_PROBED_ID_FLAGS_SOC_DISPLAY_TRUE (0x00000001U)
|
||||
|
||||
/*
|
||||
* NV0000_CTRL_CMD_GPU_GET_PCI_INFO
|
||||
*
|
||||
@@ -318,7 +350,7 @@ typedef struct NV0000_CTRL_GPU_GET_PROBED_IDS_PARAMS {
|
||||
* NV_ERR_NOT_SUPPORTED
|
||||
* NV_ERR_INVALID_ARGUMENT
|
||||
*/
|
||||
#define NV0000_CTRL_CMD_GPU_GET_PCI_INFO (0x21bU) /* finn: Evaluated from "(FINN_NV01_ROOT_GPU_INTERFACE_ID << 8) | NV0000_CTRL_GPU_GET_PCI_INFO_PARAMS_MESSAGE_ID" */
|
||||
#define NV0000_CTRL_CMD_GPU_GET_PCI_INFO (0x21bU) /* finn: Evaluated from "(FINN_NV01_ROOT_GPU_INTERFACE_ID << 8) | NV0000_CTRL_GPU_GET_PCI_INFO_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV0000_CTRL_GPU_GET_PCI_INFO_PARAMS_MESSAGE_ID (0x1BU)
|
||||
|
||||
@@ -803,9 +835,7 @@ typedef struct NV0000_CTRL_GPU_GET_MEMOP_ENABLE_PARAMS {
|
||||
NvU32 enableMask;
|
||||
} NV0000_CTRL_GPU_GET_MEMOP_ENABLE_PARAMS;
|
||||
|
||||
#define NV0000_CTRL_GPU_FLAGS_MEMOP_ENABLE (0x00000001U)
|
||||
|
||||
|
||||
#define NV0000_CTRL_GPU_FLAGS_MEMOP_ENABLE (0x00000001U)
|
||||
|
||||
/*
|
||||
* NV0000_CTRL_CMD_GPU_DISABLE_NVLINK_INIT
|
||||
@@ -831,7 +861,8 @@ typedef struct NV0000_CTRL_GPU_GET_MEMOP_ENABLE_PARAMS {
|
||||
|
||||
typedef struct NV0000_CTRL_GPU_DISABLE_NVLINK_INIT_PARAMS {
|
||||
NvU32 gpuId;
|
||||
NvU32 mask;
|
||||
NvU32 mask; // This field will be deprecated in the future, please use links
|
||||
NV_DECLARE_ALIGNED(NV0000_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NvBool bSkipHwNvlinkDisable;
|
||||
} NV0000_CTRL_GPU_DISABLE_NVLINK_INIT_PARAMS;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2005-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2005-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -554,6 +554,7 @@ typedef struct NV0000_CTRL_NVD_GET_NVLOG_PARAMS {
|
||||
#define NV0000_CTRL_CMD_NVD_RCERR_RPT_TYPE_GRSTATUS 1
|
||||
#define NV0000_CTRL_CMD_NVD_RCERR_RPT_TYPE_GPCSTATUS 2
|
||||
#define NV0000_CTRL_CMD_NVD_RCERR_RPT_TYPE_MMU_FAULT_STATUS 3
|
||||
#define NV0000_CTRL_CMD_NVD_RCERR_RPT_TYPE_RC_ERROR 4
|
||||
|
||||
// pseudo register enums attribute content
|
||||
#define NV0000_CTRL_CMD_NVD_RCERR_RPT_REG_EMPTY 0x00000000
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2005-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2005-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -1572,24 +1572,6 @@ typedef struct NV0000_CTRL_SYSTEM_GPS_CTRL_PARAMS {
|
||||
#define NV0000_CTRL_GPS_CMD_PS_STATUS_ON (1U)
|
||||
|
||||
|
||||
/*
|
||||
* NV0000_CTRL_CMD_SYSTEM_SET_SECURITY_SETTINGS
|
||||
*
|
||||
* This command allows privileged users to update the values of
|
||||
* security settings governing RM behavior.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
* NV_ERR_INVALID_ARGUMENT,
|
||||
* NV_ERR_INVALID_OBJECT_HANDLE
|
||||
* NV_ERR_NOT_SUPPORTED
|
||||
* NV_ERR_INSUFFICIENT_PERMISSIONS
|
||||
*
|
||||
* Please note: as implied above, administrator privileges are
|
||||
* required to modify security settings.
|
||||
*/
|
||||
#define NV0000_CTRL_CMD_SYSTEM_SET_SECURITY_SETTINGS (0x129U) /* finn: Evaluated from "(FINN_NV01_ROOT_SYSTEM_INTERFACE_ID << 8) | NV0000_CTRL_SYSTEM_GPS_GET_PERF_SENSOR_COUNTERS_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define GPS_MAX_COUNTERS_PER_BLOCK 32U
|
||||
#define NV0000_CTRL_SYSTEM_GPS_GET_PERF_SENSOR_COUNTERS_PARAMS_MESSAGE_ID (0x29U)
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
// Source file: ctrl/ctrl003e.finn
|
||||
//
|
||||
|
||||
#include "ctrl0041.h"
|
||||
#include "ctrl/ctrlxxxx.h"
|
||||
/* NV01_MEMORY_SYSTEM control commands and parameters */
|
||||
|
||||
@@ -57,69 +58,13 @@
|
||||
/*
|
||||
* NV003E_CTRL_CMD_GET_SURFACE_PHYS_ATTR
|
||||
*
|
||||
* This command returns attributes associated with the memory object
|
||||
* at the given offset. The architecture dependent return parameter
|
||||
* comprFormat determines the meaningfulness (or not) of comprOffset.
|
||||
*
|
||||
* This call is currently only supported in the MODS environment.
|
||||
*
|
||||
* memOffset
|
||||
* This parameter is both an input and an output. As input, this
|
||||
* parameter holds an offset into the memory surface. The return
|
||||
* value is the physical address of the surface at the given offset.
|
||||
* memFormat
|
||||
* This parameter returns the memory kind of the surface.
|
||||
* comprOffset
|
||||
* This parameter returns the compression offset of the surface.
|
||||
* comprFormat
|
||||
* This parameter returns the type of compression of the surface.
|
||||
* gpuCacheAttr
|
||||
* gpuCacheAttr returns the gpu cache attribute of the surface.
|
||||
* Legal return values for this field are
|
||||
* NV003E_CTRL_GET_SURFACE_PHYS_ATTR_GPU_CACHED_UNKNOWN
|
||||
* NV003E_CTRL_GET_SURFACE_PHYS_ATTR_GPU_CACHED
|
||||
* NV003E_CTRL_GET_SURFACE_PHYS_ATTR_GPU_UNCACHED
|
||||
* gpuP2PCacheAttr
|
||||
* gpuP2PCacheAttr returns the gpu peer-to-peer cache attribute of the surface.
|
||||
* Legal return values for this field are
|
||||
* NV003E_CTRL_GET_SURFACE_PHYS_ATTR_GPU_CACHED_UNKNOWN
|
||||
* NV003E_CTRL_GET_SURFACE_PHYS_ATTR_GPU_CACHED
|
||||
* NV003E_CTRL_GET_SURFACE_PHYS_ATTR_GPU_UNCACHED
|
||||
* mmuContext
|
||||
* mmuContext returns the requested type of physical address
|
||||
* Legal return values for this field are
|
||||
* TEGRA_VASPACE_A -- return the non-GPU device physical address ( the system physical address itself) for Tegra engines.
|
||||
* returns the system physical address, may change to use a class value in future.
|
||||
* FERMI_VASPACE_A -- return the GPU device physical address( the system physical address, or the SMMU VA) for Big GPU engines.
|
||||
* 0 -- return the GPU device physical address( the system physical address, or the SMMU VA) for Big GPU engines.
|
||||
* use of zero may be deprecated in future.
|
||||
* contigSegmentSize
|
||||
* If the underlying surface is physically contiguous, this parameter
|
||||
* returns the size in bytes of the piece of memory starting from
|
||||
* the offset specified in the memOffset parameter extending to the last
|
||||
* byte of the surface.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
* NVOS_STATUS_BAD_OBJECT_HANDLE
|
||||
* NVOS_STATUS_BAD_OBJECT_PARENT
|
||||
* NVOS_STATUS_NOT_SUPPORTED
|
||||
* See NV0041_CTRL_CMD_GET_SURFACE_PHYS_ATTR
|
||||
*
|
||||
*/
|
||||
#define NV003E_CTRL_CMD_GET_SURFACE_PHYS_ATTR (0x3e0101) /* finn: Evaluated from "(FINN_NV01_MEMORY_SYSTEM_MEMORY_INTERFACE_ID << 8) | NV003E_CTRL_GET_SURFACE_PHYS_ATTR_PARAMS_MESSAGE_ID" */
|
||||
#define NV003E_CTRL_CMD_GET_SURFACE_PHYS_ATTR NV0041_CTRL_CMD_GET_SURFACE_PHYS_ATTR
|
||||
|
||||
#define NV003E_CTRL_GET_SURFACE_PHYS_ATTR_PARAMS_MESSAGE_ID (0x1U)
|
||||
typedef NV0041_CTRL_GET_SURFACE_PHYS_ATTR_PARAMS NV003E_CTRL_GET_SURFACE_PHYS_ATTR_PARAMS;
|
||||
|
||||
typedef struct NV003E_CTRL_GET_SURFACE_PHYS_ATTR_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 memOffset, 8);
|
||||
NvU32 memFormat;
|
||||
NvU32 comprOffset;
|
||||
NvU32 comprFormat;
|
||||
NvU32 gpuCacheAttr;
|
||||
NvU32 gpuP2PCacheAttr;
|
||||
NvU32 mmuContext;
|
||||
NV_DECLARE_ALIGNED(NvU64 contigSegmentSize, 8);
|
||||
} NV003E_CTRL_GET_SURFACE_PHYS_ATTR_PARAMS;
|
||||
|
||||
/* valid gpuCacheAttr return values */
|
||||
#define NV003E_CTRL_GET_SURFACE_PHYS_ATTR_GPU_CACHED_UNKNOWN (0x00000000)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2004-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2004-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -183,6 +183,13 @@ typedef struct NV0041_CTRL_GET_SURFACE_ZCULL_ID_PARAMS {
|
||||
* This surface has compression resources bound to it.
|
||||
* NV0041_CTRL_SURFACE_INFO_ATTRS_ZCULL
|
||||
* This surface has zcull resources bound to it.
|
||||
* NV0041_CTRL_SURFACE_INFO_INDEX_PHYS_SIZE_LO
|
||||
* This index is used to request the low 32 bits of the physically allocated
|
||||
* size (64 bit value) in units of bytes for the associated surface.
|
||||
* NV0041_CTRL_SURFACE_INFO_INDEX_PHYS_SIZE_HI
|
||||
* This index is used to request the high 32 bits of the physically
|
||||
* allocated size (64 bit value) in units of bytes for the associated
|
||||
* surface.
|
||||
* NV0041_CTRL_SURFACE_INFO_INDEX_COMPR_COVERAGE
|
||||
* This index is used to request the compression coverage (if any)
|
||||
* in units of 64K for the associated surface. A value of zero indicates
|
||||
@@ -192,7 +199,8 @@ typedef struct NV0041_CTRL_GET_SURFACE_ZCULL_ID_PARAMS {
|
||||
* NV0041_CTRL_SURFACE_INFO_INDEX_PHYS_SIZE
|
||||
* This index is used to request the physically allocated size in units
|
||||
* of 4K(NV0041_CTRL_SURFACE_INFO_PHYS_SIZE_SCALE_FACTOR) for the associated
|
||||
* surface.
|
||||
* surface. This interface is obsoleted by
|
||||
* NV0041_CTRL_SURFACE_INFO_INDEX_PHYS_SIZE_{LO,HI}.
|
||||
* NV0041_CTRL_SURFACE_INFO_INDEX_PHYS_ATTR
|
||||
* This index is used to request the surface attribute field. The returned
|
||||
* field value can be decoded using the NV0041_CTRL_SURFACE_INFO_PHYS_ATTR_*
|
||||
@@ -205,6 +213,8 @@ typedef NVXXXX_CTRL_XXX_INFO NV0041_CTRL_SURFACE_INFO;
|
||||
|
||||
/* valid surface info index values */
|
||||
#define NV0041_CTRL_SURFACE_INFO_INDEX_ATTRS (0x00000001)
|
||||
#define NV0041_CTRL_SURFACE_INFO_INDEX_PHYS_SIZE_LO (0x00000002)
|
||||
#define NV0041_CTRL_SURFACE_INFO_INDEX_PHYS_SIZE_HI (0x00000003)
|
||||
#define NV0041_CTRL_SURFACE_INFO_INDEX_COMPR_COVERAGE (0x00000005)
|
||||
#define NV0041_CTRL_SURFACE_INFO_INDEX_PHYS_SIZE (0x00000007)
|
||||
#define NV0041_CTRL_SURFACE_INFO_INDEX_PHYS_ATTR (0x00000008)
|
||||
@@ -450,4 +460,35 @@ typedef struct NV0041_CTRL_CMD_GET_TAG_PARAMS {
|
||||
NvU32 tag; /* [out] */
|
||||
} NV0041_CTRL_CMD_GET_TAG_PARAMS;
|
||||
|
||||
/*
|
||||
* NV0041_CTRL_CMD_MAP_MEMORY_FOR_GPU_ACCESS
|
||||
*
|
||||
* Map system memory into IOMMU VAS of a GPU described by hSubdevice
|
||||
* Returns the address
|
||||
*
|
||||
*/
|
||||
#define NV0041_CTRL_CMD_MAP_MEMORY_FOR_GPU_ACCESS (0x410122) /* finn: Evaluated from "(FINN_NV01_ROOT_USER_MEMORY_INTERFACE_ID << 8) | NV0041_CTRL_MAP_MEMORY_FOR_GPU_ACCESS_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV0041_CTRL_MAP_MEMORY_FOR_GPU_ACCESS_PARAMS_MESSAGE_ID (0x22U)
|
||||
|
||||
typedef struct NV0041_CTRL_MAP_MEMORY_FOR_GPU_ACCESS_PARAMS {
|
||||
NvHandle hSubdevice;
|
||||
NV_DECLARE_ALIGNED(NvU64 address, 8);
|
||||
} NV0041_CTRL_MAP_MEMORY_FOR_GPU_ACCESS_PARAMS;
|
||||
|
||||
|
||||
/*
|
||||
* NV0041_CTRL_CMD_UNMAP_MEMORY_FOR_GPU_ACCESS
|
||||
*
|
||||
* See NV0041_CTRL_CMD_MAP_MEMORY_FOR_GPU_ACCESS
|
||||
*
|
||||
*/
|
||||
#define NV0041_CTRL_CMD_UNMAP_MEMORY_FOR_GPU_ACCESS (0x410153) /* finn: Evaluated from "(FINN_NV01_ROOT_USER_MEMORY_INTERFACE_ID << 8) | NV0041_CTRL_UNMAP_MEMORY_FOR_GPU_ACCESS_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV0041_CTRL_UNMAP_MEMORY_FOR_GPU_ACCESS_PARAMS_MESSAGE_ID (0x53U)
|
||||
|
||||
typedef struct NV0041_CTRL_UNMAP_MEMORY_FOR_GPU_ACCESS_PARAMS {
|
||||
NvHandle hSubdevice;
|
||||
} NV0041_CTRL_UNMAP_MEMORY_FOR_GPU_ACCESS_PARAMS;
|
||||
|
||||
/* _ctrl0041_h_ */
|
||||
|
||||
@@ -163,7 +163,7 @@ typedef struct NV0073_CTRL_DFP_GET_INFO_PARAMS {
|
||||
#define NV0073_CTRL_DFP_FLAGS_FORMAT_YCBCR444_CAPABLE 12:12
|
||||
#define NV0073_CTRL_DFP_FLAGS_FORMAT_YCBCR444_CAPABLE_FALSE (0x00000000U)
|
||||
#define NV0073_CTRL_DFP_FLAGS_FORMAT_YCBCR444_CAPABLE_TRUE (0x00000001U)
|
||||
#define NV0073_CTRL_DFP_FLAGS_TYPE_C_TO_DP_CONNECTOR 13:13
|
||||
#define NV0073_CTRL_DFP_FLAGS_TYPE_C_TO_DP_CONNECTOR 13:13
|
||||
#define NV0073_CTRL_DFP_FLAGS_TYPE_C_TO_DP_CONNECTOR_FALSE (0x00000000U)
|
||||
#define NV0073_CTRL_DFP_FLAGS_TYPE_C_TO_DP_CONNECTOR_TRUE (0x00000001U)
|
||||
#define NV0073_CTRL_DFP_FLAGS_HDMI_ALLOWED 14:14
|
||||
@@ -285,8 +285,6 @@ typedef struct NV0073_CTRL_DFP_GET_DISPLAYPORT_DONGLE_INFO_PARAMS {
|
||||
#define NV0073_CTRL_DFP_GET_DISPLAYPORT_DONGLE_INFO_FLAGS_DP2TMDS_DONGLE_TYPE_1 (0x00000000U)
|
||||
#define NV0073_CTRL_DFP_GET_DISPLAYPORT_DONGLE_INFO_FLAGS_DP2TMDS_DONGLE_TYPE_2 (0x00000001U)
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* NV0073_CTRL_CMD_DFP_SET_ELD_AUDIO_CAPS
|
||||
*
|
||||
@@ -349,9 +347,9 @@ typedef struct NV0073_CTRL_DFP_GET_DISPLAYPORT_DONGLE_INFO_PARAMS {
|
||||
* NV_ERR_INVALID_PARAM_STRUCT
|
||||
* NV_ERR_INVALID_ARGUMENT
|
||||
*/
|
||||
#define NV0073_CTRL_CMD_DFP_SET_ELD_AUDIO_CAPS (0x731144U) /* finn: Evaluated from "(FINN_NV04_DISPLAY_COMMON_DFP_INTERFACE_ID << 8) | NV0073_CTRL_DFP_SET_ELD_AUDIO_CAP_PARAMS_MESSAGE_ID" */
|
||||
#define NV0073_CTRL_CMD_DFP_SET_ELD_AUDIO_CAPS (0x731144U) /* finn: Evaluated from "(FINN_NV04_DISPLAY_COMMON_DFP_INTERFACE_ID << 8) | NV0073_CTRL_DFP_SET_ELD_AUDIO_CAP_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV0073_CTRL_DFP_ELD_AUDIO_CAPS_ELD_BUFFER 96U
|
||||
#define NV0073_CTRL_DFP_ELD_AUDIO_CAPS_ELD_BUFFER 96U
|
||||
|
||||
#define NV0073_CTRL_DFP_SET_ELD_AUDIO_CAP_PARAMS_MESSAGE_ID (0x44U)
|
||||
|
||||
@@ -1464,7 +1462,184 @@ typedef struct NV0073_CTRL_DFP_EDP_DRIVER_UNLOAD_PARAMS {
|
||||
NvU32 displayId;
|
||||
} NV0073_CTRL_DFP_EDP_DRIVER_UNLOAD_PARAMS;
|
||||
|
||||
/*
|
||||
* NV0073_CTRL_CMD_SYSTEM_SET_REGION_RAM_RECTANGLES
|
||||
*
|
||||
* @brief
|
||||
* This command can be used to program the Rectangle regions info into
|
||||
* Region RAM. These Rectangle regions are then used as regions of interest
|
||||
* for Tell Tale and Frozen Frame detection.
|
||||
*
|
||||
* Some NVDisplay hardware has an internal RAM to support TellTale(TT)
|
||||
* and Frozen Frame(FF) features. Each entry in this RAM is simply defined
|
||||
* as a rectangle (x/y position, width and height). RM will load the region
|
||||
* RAM with rectangle entries using PDISP registers.
|
||||
*
|
||||
* Several new Core/Window methods have been added. These methods can be
|
||||
* programmed to specify which rectangle resources would be enabled and inform
|
||||
* hw to start using for TT/FF checking. There are also methods that can be used
|
||||
* to configure the manner of checking (e.g., for frozen frame detection, how
|
||||
* many regions need to be frozen for how many frames before it's considered as
|
||||
* a fault). As part of these methods, need to specify the index of the region
|
||||
* RAM entry (rectangle) that needs to be checked. This ID is already specified
|
||||
* for each rectangle as part of the info that was programmed by RM to Region RAM.
|
||||
*
|
||||
* The rectangles loaded onto Region RAM are not specifically tied to the current
|
||||
* mode, and do not have to be coupled with only one single mode. Based on the
|
||||
* current raster size, it is expected that the RM clients would choose the
|
||||
* Rectangles that are within the raster size. Once TT/FF checking is enabled,
|
||||
* Display HW continuously checks and will raise an interrupt event if detects an
|
||||
* error case. If a rectangle resource is chosen that "doesn't fit" the current
|
||||
* raster size, overlaps with another rectangle resource, etc, then HW will
|
||||
* generate an exception for these invalid states.
|
||||
*
|
||||
* @params
|
||||
* subDeviceInstance
|
||||
* This parameter specifies the subdevice instance within the
|
||||
* NV04_DISPLAY_COMMON parent device to which the operation should be
|
||||
* directed. This parameter must specify a value between zero and the
|
||||
* total number of subdevices within the parent device. This parameter
|
||||
* should be set to zero for default behavior.
|
||||
* numRectangles
|
||||
* This parameter specifies the number of rectangles whose region info
|
||||
* has been passed as part of this control call
|
||||
* rectanglesInfo::rectangleID
|
||||
* This parameter provides the ID of the rectangle which will be used
|
||||
* to identify the rectangle during methods programming for TellTale
|
||||
* or Frozen Frame detection.
|
||||
* rectanglesInfo::xCoordinate
|
||||
* This parameter specifies the x-coordinate of the top left corner of
|
||||
* the rectangle in the viewport.
|
||||
* rectanglesInfo::yCoordinate
|
||||
* This parameter specifies the y-coordinate of the top left corner of
|
||||
* the rectangle in the viewport.
|
||||
* rectanglesInfo::width
|
||||
* This parameter specifies the width of the rectangle.
|
||||
* rectanglesInfo::height
|
||||
* This parameter specifies the height of the rectangle.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK - Upon successfully programming Rectangles info to Region RAM
|
||||
* NV_ERR_INVALID_ARGUMENT - When incorrect values are passed in arguments
|
||||
*/
|
||||
#define NV0073_CTRL_CMD_SYSTEM_SET_REGION_RAM_RECTANGLES (0x731177U) /* finn: Evaluated from "(FINN_NV04_DISPLAY_COMMON_DFP_INTERFACE_ID << 8) | NV0073_CTRL_CMD_SYSTEM_SET_REGION_RAM_RECTANGLES_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV0073_CTRL_CMD_SYSTEM_MAX_REGION_RAM_RECTANGLES 16U
|
||||
|
||||
#define NV0073_CTRL_CMD_SYSTEM_SET_REGION_RAM_RECTANGLES_PARAMS_MESSAGE_ID (0x77U)
|
||||
|
||||
typedef struct NV0073_CTRL_CMD_SYSTEM_SET_REGION_RAM_RECTANGLES_PARAMS {
|
||||
NvU32 subDeviceInstance;
|
||||
NvU8 numRectangles;
|
||||
|
||||
struct {
|
||||
NvU8 rectangleID;
|
||||
NvU16 xCoordinate;
|
||||
NvU16 yCoordinate;
|
||||
NvU16 width;
|
||||
NvU16 height;
|
||||
} rectanglesInfo[NV0073_CTRL_CMD_SYSTEM_MAX_REGION_RAM_RECTANGLES];
|
||||
} NV0073_CTRL_CMD_SYSTEM_SET_REGION_RAM_RECTANGLES_PARAMS;
|
||||
|
||||
/*
|
||||
* NV0073_CTRL_CMD_SYSTEM_CONFIGURE_SAFETY_INTERRUPTS
|
||||
*
|
||||
* This command can be used to set the interrupt handling mechanism (One-time
|
||||
* or Continuous) of TellTale and FrozenFrame/Overlap events. Also, this command
|
||||
* can be used to Enable/Disable the safety interrupts.
|
||||
*
|
||||
* subDeviceInstance
|
||||
* This parameter specifies the subdevice instance within the
|
||||
* NV04_DISPLAY_COMMON parent device to which the operation should be
|
||||
* directed. This parameter must specify a value between zero and the
|
||||
* total number of subdevices within the parent device. This parameter
|
||||
* should be set to zero for default behavior.
|
||||
* tellTaleEvents
|
||||
* The 'mode' variable holds the interrupt configuration values for
|
||||
* TellTale events. Clients can specify whether the interrupt needs to
|
||||
* be Disabled or Enabled Continuously or Enabled Only Once using the
|
||||
* NV0073_CTRL_CMD_SYSTEM_SAFETY_INTERRUPT_MODE_* macros. ENABLE_ONLY_ONCE
|
||||
* helps avoid interrupt storm by disabling the interrupt after the first
|
||||
* event since Safety Interrupts are generated per frame.
|
||||
* The 'specified' field should be used to specify if the 'mode' value at
|
||||
* that index should be programmed as part of the control call handling
|
||||
* function. This helps if Clients don't want to update the TellTale
|
||||
* interrupt configuration of a particular tile in this instance of the
|
||||
* control call invocation. If it is set to NV_TRUE, the 'mode' value
|
||||
* will be programmed. If NV_FALSE, 'mode' value will not be programmed.
|
||||
* frozenFrameEvents
|
||||
* The 'mode' variable holds the interrupt configuration values for
|
||||
* FrozenFrame events. Clients can specify whether the interrupt needs to
|
||||
* be Disabled or Enabled Continuously or Enabled Only Once using the
|
||||
* NV0073_CTRL_CMD_SYSTEM_SAFETY_INTERRUPT_MODE_* macros. ENABLE_ONLY_ONCE
|
||||
* helps avoid interrupt storm by disabling the interrupt after the first
|
||||
* event since Safety Interrupts are generated per frame.
|
||||
* The 'specified' field should be used to specify if the 'mode' value at
|
||||
* that index should be programmed as part of the control call handling
|
||||
* function. This helps if Clients don't want to update the Frozen Frame
|
||||
* interrupt configuration of a particular head in this instance of the
|
||||
* control call invocation. If it is set to NV_TRUE, the 'mode' value
|
||||
* will be programmed. If NV_FALSE, 'mode' value will not be programmed.
|
||||
* overlapEvents
|
||||
* The 'mode' variable holds the interrupt configuration values for
|
||||
* Overlap events. Clients can specify whether the interrupt needs to
|
||||
* be Disabled or Enabled Continuously or Enabled Only Once using the
|
||||
* NV0073_CTRL_CMD_SYSTEM_SAFETY_INTERRUPT_MODE_* macros. ENABLE_ONLY_ONCE
|
||||
* helps avoid interrupt storm by disabling the interrupt after the first
|
||||
* event since Safety Interrupts are generated per frame.
|
||||
* The 'specified' field should be used to specify if the 'mode' value at
|
||||
* that index should be programmed as part of the control call handling
|
||||
* function. This helps if Clients don't want to update the Overlap
|
||||
* interrupt configuration of a particular tile in this instance of the
|
||||
* control call invocation. If it is set to NV_TRUE, the 'mode' value
|
||||
* will be programmed. If NV_FALSE, 'mode' value will not be programmed.
|
||||
*/
|
||||
/*
|
||||
* NOTE: Though we have created tellTaleEvents, frozenFrameEvents and overlapEvents structs as
|
||||
* arrays holding interrupt 'mode' for each Head/Tile, RM currently does not support
|
||||
* configuring these interrupts per Head/Tile. This support is planned to be added in RM
|
||||
* sometime later, but having the structures per Head/Tile helps in future-proofing the
|
||||
* control call interface.
|
||||
* Expectation from the clients is to set the same 'mode' value at all the indexes (for
|
||||
* all Heads/Tiles). This specified 'mode' value will be globally applied for all
|
||||
Heads/Tiles for now.
|
||||
*/
|
||||
#define NV0073_CTRL_CMD_SYSTEM_CONFIGURE_SAFETY_INTERRUPTS (0x731178U) /* finn: Evaluated from "(FINN_NV04_DISPLAY_COMMON_DFP_INTERFACE_ID << 8) | NV0073_CTRL_CMD_SYSTEM_CONFIGURE_SAFETY_INTERRUPTS_PARAMS_MESSAGE_ID" */
|
||||
|
||||
/*
|
||||
* Interrupt configuration values for Safety events
|
||||
*/
|
||||
#define NV0073_CTRL_CMD_SYSTEM_SAFETY_INTERRUPT_MODE_DISABLE 0U
|
||||
#define NV0073_CTRL_CMD_SYSTEM_SAFETY_INTERRUPT_MODE_ENABLE_CONTINUOUS 1U
|
||||
#define NV0073_CTRL_CMD_SYSTEM_SAFETY_INTERRUPT_MODE_ENABLE_ONLY_ONCE 2U
|
||||
#define NV0073_CTRL_CMD_SYSTEM_SAFETY_INTERRUPT_MODE_RESERVED 3U
|
||||
|
||||
/*
|
||||
* Head and Tile count used to specify Safety interrupt configuration for each head/tile.
|
||||
*/
|
||||
#define NV0073_CTRL_CMD_SYSTEM_MAX_SAFETY_HEAD_COUNT 8U
|
||||
#define NV0073_CTRL_CMD_SYSTEM_MAX_SAFETY_TILE_COUNT 8U
|
||||
|
||||
#define NV0073_CTRL_CMD_SYSTEM_CONFIGURE_SAFETY_INTERRUPTS_PARAMS_MESSAGE_ID (0x78U)
|
||||
|
||||
typedef struct NV0073_CTRL_CMD_SYSTEM_CONFIGURE_SAFETY_INTERRUPTS_PARAMS {
|
||||
NvU32 subDeviceInstance;
|
||||
|
||||
struct {
|
||||
NvU8 mode;
|
||||
NvBool specified;
|
||||
} tellTaleEvents[NV0073_CTRL_CMD_SYSTEM_MAX_SAFETY_TILE_COUNT];
|
||||
|
||||
struct {
|
||||
NvU8 mode;
|
||||
NvBool specified;
|
||||
} frozenFrameEvents[NV0073_CTRL_CMD_SYSTEM_MAX_SAFETY_HEAD_COUNT];
|
||||
|
||||
struct {
|
||||
NvU8 mode;
|
||||
NvBool specified;
|
||||
} overlapEvents[NV0073_CTRL_CMD_SYSTEM_MAX_SAFETY_TILE_COUNT];
|
||||
} NV0073_CTRL_CMD_SYSTEM_CONFIGURE_SAFETY_INTERRUPTS_PARAMS;
|
||||
|
||||
/*
|
||||
* NV0073_CTRL_CMD_DFP_SET_FORCE_BLACK_PIXELS
|
||||
@@ -1478,9 +1653,6 @@ typedef struct NV0073_CTRL_DFP_EDP_DRIVER_UNLOAD_PARAMS {
|
||||
* total number of subdevices within the parent device. This parameter
|
||||
* should be set to zero for default behavior.
|
||||
*
|
||||
* displayId
|
||||
* DisplayId of the connected display.
|
||||
*
|
||||
* bForceBlackPixels
|
||||
* To enable or disable black pixel generation.
|
||||
*
|
||||
@@ -1496,7 +1668,6 @@ typedef struct NV0073_CTRL_DFP_EDP_DRIVER_UNLOAD_PARAMS {
|
||||
|
||||
typedef struct NV0073_CTRL_DFP_SET_FORCE_BLACK_PIXELS_PARAMS {
|
||||
NvU32 subDeviceInstance;
|
||||
NvU32 displayId;
|
||||
NvU32 head;
|
||||
NvBool bForceBlack;
|
||||
} NV0073_CTRL_DFP_SET_FORCE_BLACK_PIXELS_PARAMS;
|
||||
|
||||
@@ -1705,7 +1705,9 @@ typedef struct NV0073_CTRL_CMD_DP_SEND_ACT_PARAMS {
|
||||
* bSupportDPDownSpread
|
||||
* Returns NV_TRUE if GPU support downspread.
|
||||
* bAvoidHBR3
|
||||
* Returns if we need to avoid HBR3 as much as possible
|
||||
* Returns NV_TRUE if we need to avoid HBR3 as much as possible
|
||||
* bIsDpTunnelingHwBugWarEnabled
|
||||
* Returns NV_TRUE if USB4 DP tunneling HW bug WAR is enabled for the chip.
|
||||
*
|
||||
* DSC caps
|
||||
*
|
||||
@@ -1737,6 +1739,7 @@ typedef struct NV0073_CTRL_CMD_DP_GET_CAPS_PARAMS {
|
||||
NvBool bUseRgFlushSequence;
|
||||
NvBool bSupportDPDownSpread;
|
||||
NvBool bAvoidHBR3;
|
||||
NvBool bIsDpTunnelingHwBugWarEnabled;
|
||||
NV0073_CTRL_CMD_DSC_CAP_PARAMS DSC;
|
||||
} NV0073_CTRL_CMD_DP_GET_CAPS_PARAMS;
|
||||
|
||||
@@ -3617,4 +3620,39 @@ typedef struct NV0073_CTRL_DP_USBC_CABLEID_INFO_PARAMS {
|
||||
NV0073_CTRL_DP_USBC_CABLEID_INFO cableIDInfo;
|
||||
} NV0073_CTRL_DP_USBC_CABLEID_INFO_PARAMS;
|
||||
|
||||
/*
|
||||
* NV0073_CTRL_CMD_STUFF_DUMMY_SYMBOL_WAR
|
||||
*
|
||||
* Some sink devices require extra padding between SDPs. This is programmed for GB20x+ GPUs.
|
||||
*
|
||||
* subDeviceInstance
|
||||
* This parameter specifies the subdevice instance within the
|
||||
* NV04_DISPLAY_COMMON parent device to which the operation should be
|
||||
* directed. This parameter must specify a value between zero and the
|
||||
* total number of subdevices within the parent device. This parameter
|
||||
* should be set to zero for default behavior.
|
||||
* displayId
|
||||
* This parameter specifies the ID of the display for which the control
|
||||
* is being issued. The display ID must be valid.
|
||||
* head
|
||||
* This parameter specifies the head index for the operation.
|
||||
* bEnable
|
||||
* Boolean to enable or disable the WAR.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
* NV_ERR_INVALID_PARAM_STRUCT
|
||||
* NV_ERR_INVALID_ARGUMENT
|
||||
*/
|
||||
#define NV0073_CTRL_STUFF_DUMMY_SYMBOL_WAR_PARAMS_MESSAGE_ID (0x8EU)
|
||||
|
||||
typedef struct NV0073_CTRL_STUFF_DUMMY_SYMBOL_WAR_PARAMS {
|
||||
NvU32 subDeviceInstance;
|
||||
NvU32 displayId;
|
||||
NvU32 head;
|
||||
NvBool bEnable;
|
||||
} NV0073_CTRL_STUFF_DUMMY_SYMBOL_WAR_PARAMS;
|
||||
|
||||
#define NV0073_CTRL_CMD_STUFF_DUMMY_SYMBOL_WAR (0x73138eU) /* finn: Evaluated from "(FINN_NV04_DISPLAY_COMMON_DP_INTERFACE_ID << 8) | NV0073_CTRL_STUFF_DUMMY_SYMBOL_WAR_PARAMS_MESSAGE_ID" */
|
||||
|
||||
/* _ctrl0073dp_h_ */
|
||||
|
||||
@@ -56,10 +56,4 @@ typedef NV0073_CTRL_CMD_DFP_SWITCH_DISP_MUX_PARAMS NV0073_CTRL_CMD_INTERNAL_DFP_
|
||||
|
||||
typedef NV0073_CTRL_CMD_DFP_GET_DISP_MUX_STATUS_PARAMS NV0073_CTRL_CMD_INTERNAL_DFP_GET_DISP_MUX_STATUS_PARAMS;
|
||||
|
||||
#define NV0073_CTRL_CMD_INTERNAL_INLINE_DISP_INTR_SERVICE_WAR_FOR_VR (0x730406U) /* finn: Evaluated from "(FINN_NV04_DISPLAY_COMMON_INTERNAL_INTERFACE_ID << 8) | NV0073_CTRL_INTERNAL_INLINE_DISP_INTR_SERVICE_WAR_FOR_VR_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV0073_CTRL_INTERNAL_INLINE_DISP_INTR_SERVICE_WAR_FOR_VR_PARAMS_MESSAGE_ID (0x6U)
|
||||
|
||||
typedef NV0073_CTRL_SYSTEM_INLINE_DISP_INTR_SERVICE_WAR_FOR_VR_PARAMS NV0073_CTRL_INTERNAL_INLINE_DISP_INTR_SERVICE_WAR_FOR_VR_PARAMS;
|
||||
|
||||
/* ctrl0073internal_h */
|
||||
|
||||
@@ -2047,6 +2047,12 @@ typedef struct NV0073_CTRL_SPECIFIC_DEFAULT_ADAPTIVESYNC_DISPLAY_PARAMS {
|
||||
* bDynamicHdrTonemapping
|
||||
* if bLtmEnable = true, and if set to true, and output is HDR, enable dynamic per frame HDR tonemapping. Set to false by default.
|
||||
*
|
||||
* maxDisplayLuminance
|
||||
* maximum display luminance
|
||||
*
|
||||
* luminanceSscalingFactor
|
||||
* HDR tone mapping luminance scaling factor
|
||||
*
|
||||
* Possible status values returned include:
|
||||
* NV_OK
|
||||
* NV_ERR_NOT_SUPPORTED
|
||||
@@ -2068,6 +2074,8 @@ typedef struct NV0073_CTRL_SPECIFIC_DISPLAY_BRIGHTNESS_LTM_PARAMS {
|
||||
NvU16 detailGain;
|
||||
NvBool bContentAdaptiveBrightness;
|
||||
NvBool bDynamicHdrTonemapping;
|
||||
NvU32 maxDisplayLuminance;
|
||||
NvU32 luminanceScalingFactor;
|
||||
} NV0073_CTRL_SPECIFIC_DISPLAY_BRIGHTNESS_LTM_PARAMS;
|
||||
|
||||
#define NV0073_CTRL_SPECIFIC_GET_DISPLAY_BRIGHTNESS_LTM_PARAMS_MESSAGE_ID (0xAFU)
|
||||
|
||||
@@ -1502,38 +1502,6 @@ typedef struct NV0073_CTRL_SYSTEM_CONFIG_VRR_PSTATE_SWITCH_PARAMS {
|
||||
NvU32 minVblankExtension;
|
||||
} NV0073_CTRL_SYSTEM_CONFIG_VRR_PSTATE_SWITCH_PARAMS;
|
||||
|
||||
/*
|
||||
* NV0073_CTRL_CMD_SYSTEM_INLINE_DISP_INTR_SERVICE_WAR_FOR_VR
|
||||
*
|
||||
* This command engages the WAR when VR devices are connected,
|
||||
* where the Pstate switching can cause delay in Vblank callbacks
|
||||
* reported to KMD, by servicing disp interrupts inline and reporting the
|
||||
* callbacks to KMD. Without the WAR, there can be stutters during pstate switch.
|
||||
* Bug#1778552
|
||||
*
|
||||
* subDeviceInstance
|
||||
* This parameter specifies the subdevice instance within the
|
||||
* NV04_DISPLAY_COMMON parent device to which the operation should be
|
||||
* directed.
|
||||
* bEngageWAR
|
||||
* Indicates if inline disp interrupt serving WAR has to be engaged or
|
||||
* disengaged.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
* NV_ERR_INVALID_PARAM_STRUCT
|
||||
* NV_ERR_INVALID_ARGUMENT
|
||||
*/
|
||||
|
||||
#define NV0073_CTRL_CMD_SYSTEM_INLINE_DISP_INTR_SERVICE_WAR_FOR_VR (0x730187U) /* finn: Evaluated from "(FINN_NV04_DISPLAY_COMMON_SYSTEM_INTERFACE_ID << 8) | NV0073_CTRL_SYSTEM_INLINE_DISP_INTR_SERVICE_WAR_FOR_VR_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV0073_CTRL_SYSTEM_INLINE_DISP_INTR_SERVICE_WAR_FOR_VR_PARAMS_MESSAGE_ID (0x87U)
|
||||
|
||||
typedef struct NV0073_CTRL_SYSTEM_INLINE_DISP_INTR_SERVICE_WAR_FOR_VR_PARAMS {
|
||||
NvU32 subDeviceInstance;
|
||||
NvBool bEngageWAR;
|
||||
} NV0073_CTRL_SYSTEM_INLINE_DISP_INTR_SERVICE_WAR_FOR_VR_PARAMS;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2009-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2009-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -31,6 +31,7 @@
|
||||
//
|
||||
|
||||
#include "ctrl/ctrl0080/ctrl0080base.h"
|
||||
#include "nvcfg_sdk.h"
|
||||
|
||||
/*
|
||||
* NV0080_CTRL_CMD_BIF_RESET
|
||||
@@ -47,7 +48,8 @@
|
||||
* to _SBR, a secondary-bus reset is performed. When set to
|
||||
* _FUNDAMENTAL, a fundamental reset is performed.
|
||||
*
|
||||
* NOTE: _FUNDAMENTAL is not yet supported.
|
||||
* NOTE: _FUNDAMENTAL is not supported for Blackwell and later chips.
|
||||
* Use BOOT_DEVICE_FUSE or BOOT_DEVICE reset type instead.
|
||||
*
|
||||
* Possible status return values are:
|
||||
* NV_OK
|
||||
@@ -73,6 +75,8 @@ typedef struct NV0080_CTRL_BIF_RESET_PARAMS {
|
||||
#define NV0080_CTRL_BIF_RESET_FLAGS_TYPE_OOBHUB_TRIGGER 0x7
|
||||
#define NV0080_CTRL_BIF_RESET_FLAGS_TYPE_BASE 0x8
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* NV0080_CTRL_BIF_SET_ASPM_FEATURE
|
||||
*
|
||||
|
||||
@@ -153,114 +153,6 @@ typedef struct NV0080_CTRL_FIFO_GET_ENGINE_CONTEXT_PROPERTIES_PARAMS {
|
||||
NvU32 size;
|
||||
} NV0080_CTRL_FIFO_GET_ENGINE_CONTEXT_PROPERTIES_PARAMS;
|
||||
|
||||
/*
|
||||
* NV0080_CTRL_CMD_FIFO_RUNLIST_GROUP_CHANNELS <Deprecated since Fermi+>
|
||||
*
|
||||
* This command allows the caller to group two sets of channels. A channel
|
||||
* set includes one or more channels. After grouping, the grouped channel IDs
|
||||
* are set to next to each other in the runlist. This command can be used
|
||||
* several times to group more than two channels.
|
||||
*
|
||||
* Using a NV0080_CTRL_CMD_FIFO_RUNLIST_DIVIDE_TIMESLICE after
|
||||
* NV0080_CTRL_CMD_FIFO_RUNLIST_GROUP_CHANNELS is the general usage. A
|
||||
* NV0080_CTRL_CMD_FIFO_RUNLIST_GROUP_CHANNELS after a
|
||||
* NV0080_CTRL_CMD_FIFO_RUNLIST_DIVIDE_TIMESLICE for a channel handle is not
|
||||
* allowed.
|
||||
*
|
||||
* NV0080_CTRL_FIFO_RUNLIST_GROUP_MAX_CHANNELS defines the max channels in a
|
||||
* group.
|
||||
*
|
||||
* hChannel1
|
||||
* This parameter specifies the handle of the channel that belongs to the
|
||||
* base set of channels.
|
||||
* hChannel2
|
||||
* This parameter specifies the handle of the channel that belongs to the
|
||||
* additional set of channels.
|
||||
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
* NV_ERR_NOT_SUPPORTED
|
||||
* NV_ERR_INVALID_DEVICE
|
||||
* NV_ERR_INVALID_CHANNEL
|
||||
* NV_ERR_INVALID_ARGUMENT
|
||||
*/
|
||||
|
||||
#define NV0080_CTRL_CMD_FIFO_RUNLIST_GROUP_CHANNELS (0x801709) /* finn: Evaluated from "(FINN_NV01_DEVICE_0_FIFO_INTERFACE_ID << 8) | 0x9" */
|
||||
|
||||
typedef struct NV0080_CTRL_FIFO_RUNLIST_GROUP_CHANNELS_PARAM {
|
||||
NvHandle hChannel1;
|
||||
NvHandle hChannel2;
|
||||
} NV0080_CTRL_FIFO_RUNLIST_GROUP_CHANNELS_PARAM;
|
||||
|
||||
#define NV0080_CTRL_FIFO_RUNLIST_GROUP_MAX_CHANNELS (8)
|
||||
|
||||
/*
|
||||
* NV0080_CTRL_CMD_FIFO_RUNLIST_DIVIDE_TIMESLICE <Deprecated since Fermi+>
|
||||
*
|
||||
* This command allows the caller to divide the timeslice (DMA_TIMESLICE) of a
|
||||
* channel between the channels in the group in which the channel resides.
|
||||
* After applying this command, a timeslice divided channel (group) has a
|
||||
* short timeslice and repeats more than once in the runlist. The total
|
||||
* available execution time is not changed.
|
||||
*
|
||||
* Using this command after NV0080_CTRL_CMD_FIFO_RUNLIST_GROUP_CHANNELS is the
|
||||
* general usage. A NV0080_CTRL_CMD_FIFO_RUNLIST_GROUP_CHANNELS after a
|
||||
* NV0080_CTRL_CMD_FIFO_RUNLIST_DIVIDE_TIMESLICE for a channel handle is not
|
||||
* allowed.
|
||||
*
|
||||
* hChannel
|
||||
* This parameter specifies the handle of the channel for the channel
|
||||
* group to which the divided timeslice operation will apply.
|
||||
* tsDivisor
|
||||
* This parameter specifies the timeslice divisor value. This value
|
||||
* should not exceed NV0080_CTRL_FIFO_RUNLIST_MAX_TIMESLICE_DIVISOR
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
* NV_ERR_NOT_SUPPORTED
|
||||
* NV_ERR_INVALID_DEVICE
|
||||
* NV_ERR_INVALID_CHANNEL
|
||||
* NV_ERR_INVALID_ARGUMENT
|
||||
* NV_ERR_INSUFFICIENT_RESOURCES
|
||||
*/
|
||||
#define NV0080_CTRL_CMD_FIFO_RUNLIST_DIVIDE_TIMESLICE (0x80170b) /* finn: Evaluated from "(FINN_NV01_DEVICE_0_FIFO_INTERFACE_ID << 8) | 0xB" */
|
||||
|
||||
typedef struct NV0080_CTRL_FIFO_RUNLIST_DIVIDE_TIMESLICE_PARAM {
|
||||
NvHandle hChannel;
|
||||
NvU32 tsDivisor;
|
||||
} NV0080_CTRL_FIFO_RUNLIST_DIVIDE_TIMESLICE_PARAM;
|
||||
|
||||
#define NV0080_CTRL_FIFO_RUNLIST_MAX_TIMESLICE_DIVISOR (12)
|
||||
|
||||
/*
|
||||
* NV0080_CTRL_CMD_FIFO_PREEMPT_RUNLIST <Deprecated since Fermi+>
|
||||
*
|
||||
* This command preepmts the engine represented by the specified runlist.
|
||||
*
|
||||
* hRunlist
|
||||
* This parameter specifies the per engine runlist handle. This
|
||||
* parameter is being retained to maintain backwards compatibility
|
||||
* with clients that have not transitioned over to using runlists
|
||||
* on a per subdevice basis.
|
||||
*
|
||||
* engineID
|
||||
* This parameter specifies the engine to be preempted. Engine defines
|
||||
* can be found in cl2080.h.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
* NV_ERR_INVALID_PARAM_STRUCT
|
||||
* NV_ERR_INVALID_OBJECT_HANDLE
|
||||
* NV_ERR_INVALID_ARGUMENT
|
||||
*/
|
||||
#define NV0080_CTRL_CMD_FIFO_PREEMPT_RUNLIST (0x80170c) /* finn: Evaluated from "(FINN_NV01_DEVICE_0_FIFO_INTERFACE_ID << 8) | 0xC" */
|
||||
|
||||
typedef struct NV0080_CTRL_FIFO_PREEMPT_RUNLIST_PARAMS {
|
||||
NvHandle hRunlist;
|
||||
NvU32 engineID;
|
||||
} NV0080_CTRL_FIFO_PREEMPT_RUNLIST_PARAMS;
|
||||
|
||||
|
||||
/*
|
||||
* NV0080_CTRL_CMD_FIFO_GET_CHANNELLIST
|
||||
*
|
||||
|
||||
@@ -501,7 +501,7 @@ typedef struct NV0080_CTRL_GPU_GET_SRIOV_CAPS_PARAMS {
|
||||
|
||||
|
||||
// Update this macro if new HW exceeds GPU Classlist MAX_SIZE
|
||||
#define NV0080_CTRL_GPU_CLASSLIST_MAX_SIZE 100
|
||||
#define NV0080_CTRL_GPU_CLASSLIST_MAX_SIZE 200
|
||||
|
||||
#define NV0080_CTRL_CMD_GPU_GET_CLASSLIST_V2 (0x800292) /* finn: Evaluated from "(FINN_NV01_DEVICE_0_GPU_INTERFACE_ID << 8) | NV0080_CTRL_GPU_GET_CLASSLIST_V2_PARAMS_MESSAGE_ID" */
|
||||
|
||||
|
||||
@@ -120,6 +120,8 @@ typedef struct NV0080_CTRL_INTERNAL_FIFO_RC_AND_PERMANENTLY_DISABLE_CHANNELS_PAR
|
||||
* Tell Physical RM whether any ZBC-kind surfaces are allocated.
|
||||
* If PF and all VFs report false, ZBC table can be flushed by Physical RM.
|
||||
*
|
||||
* subdevInstance [IN]
|
||||
* Subdevice instance of the GPU to be checked with
|
||||
* bZbcReferenced [IN]
|
||||
* NV_TRUE -> ZBC-kind (and no _SKIP_ZBCREFCOUNT flag) are allocated in Kernel RM
|
||||
*
|
||||
@@ -129,7 +131,21 @@ typedef struct NV0080_CTRL_INTERNAL_FIFO_RC_AND_PERMANENTLY_DISABLE_CHANNELS_PAR
|
||||
#define NV0080_CTRL_INTERNAL_MEMSYS_SET_ZBC_REFERENCED_PARAMS_MESSAGE_ID (0x0AU)
|
||||
|
||||
typedef struct NV0080_CTRL_INTERNAL_MEMSYS_SET_ZBC_REFERENCED_PARAMS {
|
||||
NvU32 subdevInstance;
|
||||
NvBool bZbcSurfacesExist;
|
||||
} NV0080_CTRL_INTERNAL_MEMSYS_SET_ZBC_REFERENCED_PARAMS;
|
||||
|
||||
|
||||
|
||||
#define NV0080_CTRL_INTERNAL_GR_INIT_BUG4208224_WAR_PARAMS_MESSAGE_ID (0x45U)
|
||||
|
||||
typedef struct NV0080_CTRL_INTERNAL_GR_INIT_BUG4208224_WAR_PARAMS {
|
||||
NvBool bTeardown;
|
||||
} NV0080_CTRL_INTERNAL_GR_INIT_BUG4208224_WAR_PARAMS;
|
||||
|
||||
#define NV0080_CTRL_CMD_INTERNAL_KGR_INIT_BUG4208224_WAR (0x802046) /* finn: Evaluated from "(FINN_NV01_DEVICE_0_INTERNAL_INTERFACE_ID << 8) | NV0080_CTRL_INTERNAL_KGR_INIT_BUG4208224_WAR_PARAMS_MESSAGE_ID" */
|
||||
#define NV0080_CTRL_INTERNAL_KGR_INIT_BUG4208224_WAR_PARAMS_MESSAGE_ID (0x46U)
|
||||
|
||||
typedef NV0080_CTRL_INTERNAL_GR_INIT_BUG4208224_WAR_PARAMS NV0080_CTRL_INTERNAL_KGR_INIT_BUG4208224_WAR_PARAMS;
|
||||
|
||||
/* ctrl0080internal_h */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -96,14 +96,17 @@ typedef struct NV00F1_CTRL_FABRIC_MEM_UNIMPORT_EVENT_DATA {
|
||||
} NV00F1_CTRL_FABRIC_MEM_UNIMPORT_EVENT_DATA;
|
||||
|
||||
/*
|
||||
* gpuFabricProbeHandle [IN]
|
||||
* gpuFabricProbeHandle
|
||||
* Fabric probe handle of the remote GPU
|
||||
*
|
||||
* key [IN]
|
||||
* key
|
||||
* Key is used by the GFM in the MCFLA team response as an ID to allow the
|
||||
* RM to correlate it with the MCFLA team request.
|
||||
*
|
||||
* cliqueId [IN]
|
||||
* bwModeEpoch
|
||||
* Currently active bwModeEpoch of the remote GPU being attached.
|
||||
*
|
||||
* cliqueId
|
||||
* Clique ID of the remote GPU being attached.
|
||||
*
|
||||
* index
|
||||
@@ -112,6 +115,9 @@ typedef struct NV00F1_CTRL_FABRIC_MEM_UNIMPORT_EVENT_DATA {
|
||||
* exportNodeId
|
||||
* ID of the exporter node where memory will be imported.
|
||||
*
|
||||
* bwMode
|
||||
* Currently active bwMode of the remote GPU being attached
|
||||
*
|
||||
* exportUuid
|
||||
* Universally unique identifier of the export object. This is extracted
|
||||
* from a fabric packet.
|
||||
@@ -119,9 +125,11 @@ typedef struct NV00F1_CTRL_FABRIC_MEM_UNIMPORT_EVENT_DATA {
|
||||
typedef struct NV00F1_CTRL_ATTACH_REMOTE_GPU_EVENT_DATA {
|
||||
NV_DECLARE_ALIGNED(NvU64 gpuFabricProbeHandle, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 key, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 bwModeEpoch, 8);
|
||||
NvU32 cliqueId;
|
||||
NvU16 index;
|
||||
NvU16 exportNodeId;
|
||||
NvU8 bwMode;
|
||||
NvU8 exportUuid[NV_MEM_EXPORT_UUID_LEN];
|
||||
} NV00F1_CTRL_ATTACH_REMOTE_GPU_EVENT_DATA;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2021-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -142,12 +142,20 @@ typedef struct NV00F8_CTRL_GET_INFO_PARAMS {
|
||||
*
|
||||
* cliqueId
|
||||
* Clique ID of the owner GPU
|
||||
*
|
||||
* bwModeEpoch
|
||||
* Currently active bwModeEpoch of of the owner GPU
|
||||
*
|
||||
* bwMode
|
||||
* Currently active bwMode of the owner GPU
|
||||
*/
|
||||
typedef struct NV_FABRIC_MEMORY_ATTRS {
|
||||
NvU32 kind;
|
||||
NV_DECLARE_ALIGNED(NvU64 pageSize, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 size, 8);
|
||||
NvU32 cliqueId;
|
||||
NV_DECLARE_ALIGNED(NvU64 bwModeEpoch, 8);
|
||||
NvU8 bwMode;
|
||||
} NV_FABRIC_MEMORY_ATTRS;
|
||||
|
||||
#define NV00F8_CTRL_DESCRIBE_PARAMS_MESSAGE_ID (0x2U)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -111,6 +111,13 @@ typedef struct NV00FD_CTRL_GET_INFO_PARAMS {
|
||||
* flags [IN]
|
||||
* For future use only. Must be zero for now.
|
||||
*
|
||||
* subPageOffset [IN]
|
||||
* For future use only. Must be zero for now.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Restrictions:
|
||||
* a. Memory belonging to only NVSwitch P2P supported GPUs
|
||||
* which can do multicast can be attached
|
||||
@@ -130,6 +137,7 @@ typedef struct NV00FD_CTRL_ATTACH_MEM_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 mapOffset, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 mapLength, 8);
|
||||
NvU32 flags;
|
||||
NvU32 subPageOffset;
|
||||
} NV00FD_CTRL_ATTACH_MEM_PARAMS;
|
||||
|
||||
/*
|
||||
@@ -215,11 +223,17 @@ typedef struct NV00FD_CTRL_DETACH_MEM_PARAMS {
|
||||
* Key is used by the GFM in the MCFLA team response as an ID to allow the
|
||||
* RM to correlate it with the MCFLA team request.
|
||||
*
|
||||
* bwModeEpoch [IN]
|
||||
* Currently active bwModeEpoch of the remote GPU being attached.
|
||||
*
|
||||
* cliqueId [IN]
|
||||
* Clique ID of the remote GPU being attached.
|
||||
*
|
||||
* nodeId [IN]
|
||||
* nodeID from which the remote GPU is being attached.
|
||||
*
|
||||
* bwMode [IN]
|
||||
* Currently active bwMode of the remote GPU being attached.
|
||||
*/
|
||||
#define NV00FD_CTRL_CMD_ATTACH_REMOTE_GPU (0xfd0106) /* finn: Evaluated from "(FINN_NV_MEMORY_MULTICAST_FABRIC_FABRIC_INTERFACE_ID << 8) | NV00FD_CTRL_ATTACH_REMOTE_GPU_PARAMS_MESSAGE_ID" */
|
||||
|
||||
@@ -228,8 +242,10 @@ typedef struct NV00FD_CTRL_DETACH_MEM_PARAMS {
|
||||
typedef struct NV00FD_CTRL_ATTACH_REMOTE_GPU_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 gpuFabricProbeHandle, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 key, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 bwModeEpoch, 8);
|
||||
NvU32 cliqueId;
|
||||
NvU16 nodeId;
|
||||
NvU8 bwMode;
|
||||
} NV00FD_CTRL_ATTACH_REMOTE_GPU_PARAMS;
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -45,6 +45,7 @@ typedef struct NV00FE_CTRL_OPERATION_MAP {
|
||||
NV_DECLARE_ALIGNED(NvU64 physicalOffset, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 size, 8);
|
||||
NvU32 dmaFlags; // NVOS46_FLAGS
|
||||
NvU32 kindOverride;
|
||||
} NV00FE_CTRL_OPERATION_MAP;
|
||||
|
||||
typedef struct NV00FE_CTRL_OPERATION_UNMAP {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2005-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2005-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -28,9 +28,6 @@
|
||||
// Source file: ctrl/ctrl2080/ctrl2080clk.finn
|
||||
//
|
||||
|
||||
|
||||
|
||||
/* _ctrl2080clk_h_ */
|
||||
#include "nvfixedtypes.h"
|
||||
#include "ctrl/ctrl2080/ctrl2080base.h"
|
||||
#include "ctrl/ctrl2080/ctrl2080boardobj.h"
|
||||
@@ -39,3 +36,10 @@
|
||||
#include "ctrl/ctrl2080/ctrl2080volt.h"
|
||||
#include "ctrl/ctrl2080/ctrl2080pmumon.h"
|
||||
|
||||
#define NV2080_CTRL_CLK_DOMAIN_TEGRA_UNDEFINED (0x00000000U)
|
||||
#define NV2080_CTRL_CLK_DOMAIN_TEGRA_GPCCLK (0x00000001U)
|
||||
#define NV2080_CTRL_CLK_DOMAIN_TEGRA_NVDCLK (0x00000002U)
|
||||
|
||||
|
||||
/* _ctrl2080clk_h_ */
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -76,6 +76,10 @@
|
||||
*
|
||||
* This call shall return NV_ERR_NOT_SUPPORTED if FORCE_PCIE type is used on non-Grace platforms.
|
||||
*
|
||||
* bAllowMmap
|
||||
* mmap support is allowed or not for the specific dmabuf based fd. User can control it.
|
||||
* That way user can enable mmap for testing/specific use cases and not for any all handles.
|
||||
*
|
||||
* handles
|
||||
* An array of {handle, offset, size} that describes the dma-buf.
|
||||
* The offsets and sizes must be OS page-size aligned.
|
||||
@@ -110,12 +114,13 @@ typedef struct NV2080_CTRL_DMABUF_MEM_HANDLE_INFO {
|
||||
#define NV2080_CTRL_DMABUF_EXPORT_MEM_PARAMS_MESSAGE_ID (0x1U)
|
||||
|
||||
typedef struct NV2080_CTRL_DMABUF_EXPORT_MEM_PARAMS {
|
||||
NvS32 fd;
|
||||
NvU32 totalObjects;
|
||||
NvU32 numObjects;
|
||||
NvU32 index;
|
||||
NvS32 fd;
|
||||
NvU32 totalObjects;
|
||||
NvU32 numObjects;
|
||||
NvU32 index;
|
||||
NV_DECLARE_ALIGNED(NvU64 totalSize, 8);
|
||||
NvU8 mappingType;
|
||||
NvU8 mappingType;
|
||||
NvBool bAllowMmap;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_DMABUF_MEM_HANDLE_INFO handles[NV2080_CTRL_DMABUF_MAX_HANDLES], 8);
|
||||
} NV2080_CTRL_DMABUF_EXPORT_MEM_PARAMS;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2017-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2017-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -109,4 +109,113 @@ typedef struct NV2080_CTRL_ECC_GET_VOLATILE_COUNTS_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 dramUncTot, 8);
|
||||
} NV2080_CTRL_ECC_GET_VOLATILE_COUNTS_PARAMS;
|
||||
|
||||
typedef struct eccLocation {
|
||||
NvU32 location;
|
||||
NvU32 sublocation;
|
||||
NvU32 extlocation;
|
||||
} eccLocation;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_ECC_SRAM_UNIQUE_UNCORR_COUNTS_ENTRY
|
||||
*
|
||||
* unit
|
||||
* The unit the error occurred in
|
||||
* location
|
||||
* The location info for the error
|
||||
* address
|
||||
* The address of the error
|
||||
* bIsParity
|
||||
* True if error is parity error, false if error is SEC-DED error
|
||||
* count
|
||||
* The number of uncorrectable unique error counts that occurred
|
||||
*/
|
||||
|
||||
typedef struct NV2080_CTRL_ECC_SRAM_UNIQUE_UNCORR_COUNTS_ENTRY {
|
||||
NvU32 unit;
|
||||
eccLocation location;
|
||||
NvU32 address;
|
||||
NvBool bIsParity;
|
||||
NvU32 count;
|
||||
} NV2080_CTRL_ECC_SRAM_UNIQUE_UNCORR_COUNTS_ENTRY;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_ECC_GET_SRAM_UNIQUE_UNCORR_COUNTS
|
||||
*
|
||||
* This command is used to query the ECC inforom object and determine the number
|
||||
* of unique uncorrectable error counts that occurred at an address.
|
||||
*
|
||||
* entryCount
|
||||
* The number of entries
|
||||
*
|
||||
* entries
|
||||
* The array of NV2080_CTRL_ECC_SRAM_UNIQUE_UNCORR_COUNTS_ENTRY
|
||||
*/
|
||||
|
||||
#define NV2080_CTRL_ECC_SRAM_UNIQUE_UNCORR_COUNTS_MAX_COUNT 600
|
||||
|
||||
#define NV2080_CTRL_CMD_ECC_GET_SRAM_UNIQUE_UNCORR_COUNTS (0x20803402) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_ECC_INTERFACE_ID << 8) | NV2080_CTRL_ECC_GET_SRAM_UNIQUE_UNCORR_COUNTS_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_ECC_GET_SRAM_UNIQUE_UNCORR_COUNTS_PARAMS_MESSAGE_ID (0x2U)
|
||||
|
||||
typedef struct NV2080_CTRL_ECC_GET_SRAM_UNIQUE_UNCORR_COUNTS_PARAMS {
|
||||
NvU32 entryCount;
|
||||
NV2080_CTRL_ECC_SRAM_UNIQUE_UNCORR_COUNTS_ENTRY entries[NV2080_CTRL_ECC_SRAM_UNIQUE_UNCORR_COUNTS_MAX_COUNT];
|
||||
} NV2080_CTRL_ECC_GET_SRAM_UNIQUE_UNCORR_COUNTS_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_ECC_ERROR_TYPE_CORRECTED 0
|
||||
#define NV2080_CTRL_ECC_ERROR_TYPE_UNCORRECTED 1
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_ECC_INJECT_ERROR
|
||||
*
|
||||
* This command is used to inject ECC errors.
|
||||
*
|
||||
* unit
|
||||
* The ECC unit
|
||||
*
|
||||
* errorType
|
||||
* The type of error to be injected
|
||||
*
|
||||
* location
|
||||
* The location within the ECC unit to be injected
|
||||
*
|
||||
* flags
|
||||
* Specific injection flags
|
||||
*
|
||||
* address
|
||||
* Specific injection address for DRAM
|
||||
*/
|
||||
|
||||
#define NV2080_CTRL_CMD_ECC_INJECT_ERROR (0x20803403) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_ECC_INTERFACE_ID << 8) | NV2080_CTRL_ECC_INJECT_ERROR_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_ECC_INJECT_ERROR_PARAMS_MESSAGE_ID (0x3U)
|
||||
|
||||
typedef struct NV2080_CTRL_ECC_INJECT_ERROR_PARAMS {
|
||||
NvU32 unit;
|
||||
NvU8 errorType;
|
||||
eccLocation location;
|
||||
NvU32 flags;
|
||||
NV_DECLARE_ALIGNED(NvU64 address, 8);
|
||||
} NV2080_CTRL_ECC_INJECT_ERROR_PARAMS;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_ECC_GET_REPAIR_STATUS
|
||||
*
|
||||
* This command is used to query the status of TPC/Channel repair
|
||||
*
|
||||
* bTpcRepairPending
|
||||
* Boolean indicating if TPC repair is pending
|
||||
* bChannelRepairPending
|
||||
* Boolean indicating if Channel repair is pending
|
||||
*/
|
||||
|
||||
#define NV2080_CTRL_CMD_ECC_GET_REPAIR_STATUS (0x20803404) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_ECC_INTERFACE_ID << 8) | NV2080_CTRL_ECC_GET_REPAIR_STATUS_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_ECC_GET_REPAIR_STATUS_PARAMS_MESSAGE_ID (0x4U)
|
||||
|
||||
typedef struct NV2080_CTRL_ECC_GET_REPAIR_STATUS_PARAMS {
|
||||
NvBool bTpcRepairPending;
|
||||
NvBool bChannelRepairPending;
|
||||
} NV2080_CTRL_ECC_GET_REPAIR_STATUS_PARAMS;
|
||||
|
||||
/* _ctrl2080ecc_h_ */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2006-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2006-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -293,127 +293,136 @@
|
||||
* depending on architecture/memory type).
|
||||
* NV2080_CTRL_FB_INFO_INDEX_IS_ZERO_FB
|
||||
* Returns true if FB is not present on this chip
|
||||
* NV2080_CTRL_FB_INFO_INDEX_ACCESS_COUNTER_BUFFER_COUNT
|
||||
* Returns the count of access counter buffers supported by GPU
|
||||
*/
|
||||
typedef NVXXXX_CTRL_XXX_INFO NV2080_CTRL_FB_INFO;
|
||||
|
||||
/* valid fb info index values */
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_TILE_REGION_COUNT (0x00000000U) // Deprecated
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_COMPRESSION_SIZE (0x00000001U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_DRAM_PAGE_STRIDE (0x00000002U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_TILE_REGION_FREE_COUNT (0x00000003U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PARTITION_COUNT (0x00000004U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BAR1_SIZE (0x00000005U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BANK_SWIZZLE_ALIGNMENT (0x00000006U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_RAM_SIZE (0x00000007U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_TOTAL_RAM_SIZE (0x00000008U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_HEAP_SIZE (0x00000009U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_MAPPABLE_HEAP_SIZE (0x0000000AU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BUS_WIDTH (0x0000000BU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_RAM_CFG (0x0000000CU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_RAM_TYPE (0x0000000DU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BANK_COUNT (0x0000000EU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_OVERLAY_OFFSET_ADJUSTMENT (0x0000000FU) // Deprecated (index reused to return 0)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_GPU_VADDR_SPACE_SIZE_KB (0x0000000FU) // Deprecated (index reused to return 0)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_GPU_VADDR_HEAP_SIZE_KB (0x0000000FU) // Deprecated (index reused to return 0)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_GPU_VADDR_MAPPBLE_SIZE_KB (0x0000000FU) // Deprecated (index reused to return 0)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_EFFECTIVE_BW (0x0000000FU) // Deprecated (index reused to return 0)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_FB_TAX_SIZE_KB (0x00000010U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_HEAP_BASE_KB (0x00000011U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LARGEST_FREE_REGION_SIZE_KB (0x00000012U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LARGEST_FREE_REGION_BASE_KB (0x00000013U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PARTITION_MASK (0x00000014U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_VISTA_RESERVED_HEAP_SIZE (0x00000015U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_HEAP_FREE (0x00000016U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_RAM_LOCATION (0x00000017U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_FB_IS_BROKEN (0x00000018U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_FBP_COUNT (0x00000019U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_FBP_MASK (0x0000001AU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_L2CACHE_SIZE (0x0000001BU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_MEMORYINFO_VENDOR_ID (0x0000001CU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BAR1_AVAIL_SIZE (0x0000001DU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_HEAP_START (0x0000001EU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BAR1_MAX_CONTIGUOUS_AVAIL_SIZE (0x0000001FU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_USABLE_RAM_SIZE (0x00000020U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_TRAINIG_2T (0x00000021U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LTC_COUNT (0x00000022U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LTS_COUNT (0x00000023U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_L2CACHE_ONLY_MODE (0x00000024U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PSEUDO_CHANNEL_MODE (0x00000025U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_SMOOTHDISP_RSVD_BAR1_SIZE (0x00000026U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_HEAP_OFFLINE_SIZE (0x00000027U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_1TO1_COMPTAG_ENABLED (0x00000028U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_SUSPEND_RESUME_RSVD_SIZE (0x00000029U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_ALLOW_PAGE_RETIREMENT (0x0000002AU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LTC_MASK (0x0000002BU)
|
||||
#define NV2080_CTRL_FB_INFO_POISON_FUSE_ENABLED (0x0000002CU)
|
||||
#define NV2080_CTRL_FB_INFO_FBPA_ECC_ENABLED (0x0000002DU)
|
||||
#define NV2080_CTRL_FB_INFO_DYNAMIC_PAGE_OFFLINING_ENABLED (0x0000002EU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_FORCED_BAR1_64KB_MAPPING_ENABLED (0x0000002FU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_P2P_MAILBOX_SIZE (0x00000030U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_P2P_MAILBOX_ALIGNMENT (0x00000031U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_P2P_MAILBOX_BAR1_MAX_OFFSET_64KB (0x00000032U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PROTECTED_MEM_SIZE_TOTAL_KB (0x00000033U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PROTECTED_MEM_SIZE_FREE_KB (0x00000034U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_ECC_STATUS_SIZE (0x00000035U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_IS_ZERO_FB (0x00000036U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PARTITION_MASK_0 (NV2080_CTRL_FB_INFO_INDEX_PARTITION_MASK)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PARTITION_MASK_1 (0x00000037U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LTC_MASK_0 (NV2080_CTRL_FB_INFO_INDEX_LTC_MASK)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LTC_MASK_1 (0x00000038U)
|
||||
#define NV2080_CTRL_FB_INFO_MAX_LIST_SIZE (0x00000039U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_TILE_REGION_COUNT (0x00000000U) // Deprecated
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_COMPRESSION_SIZE (0x00000001U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_DRAM_PAGE_STRIDE (0x00000002U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_TILE_REGION_FREE_COUNT (0x00000003U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PARTITION_COUNT (0x00000004U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BAR1_SIZE (0x00000005U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BANK_SWIZZLE_ALIGNMENT (0x00000006U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_RAM_SIZE (0x00000007U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_TOTAL_RAM_SIZE (0x00000008U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_HEAP_SIZE (0x00000009U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_MAPPABLE_HEAP_SIZE (0x0000000AU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BUS_WIDTH (0x0000000BU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_RAM_CFG (0x0000000CU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_RAM_TYPE (0x0000000DU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BANK_COUNT (0x0000000EU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_OVERLAY_OFFSET_ADJUSTMENT (0x0000000FU) // Deprecated (index reused to return 0)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_GPU_VADDR_SPACE_SIZE_KB (0x0000000FU) // Deprecated (index reused to return 0)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_GPU_VADDR_HEAP_SIZE_KB (0x0000000FU) // Deprecated (index reused to return 0)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_GPU_VADDR_MAPPBLE_SIZE_KB (0x0000000FU) // Deprecated (index reused to return 0)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_EFFECTIVE_BW (0x0000000FU) // Deprecated (index reused to return 0)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_FB_TAX_SIZE_KB (0x00000010U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_HEAP_BASE_KB (0x00000011U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LARGEST_FREE_REGION_SIZE_KB (0x00000012U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LARGEST_FREE_REGION_BASE_KB (0x00000013U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PARTITION_MASK (0x00000014U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_VISTA_RESERVED_HEAP_SIZE (0x00000015U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_HEAP_FREE (0x00000016U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_RAM_LOCATION (0x00000017U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_FB_IS_BROKEN (0x00000018U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_FBP_COUNT (0x00000019U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_FBP_MASK (0x0000001AU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_L2CACHE_SIZE (0x0000001BU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_MEMORYINFO_VENDOR_ID (0x0000001CU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BAR1_AVAIL_SIZE (0x0000001DU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_HEAP_START (0x0000001EU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_BAR1_MAX_CONTIGUOUS_AVAIL_SIZE (0x0000001FU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_USABLE_RAM_SIZE (0x00000020U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_TRAINIG_2T (0x00000021U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LTC_COUNT (0x00000022U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LTS_COUNT (0x00000023U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_L2CACHE_ONLY_MODE (0x00000024U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PSEUDO_CHANNEL_MODE (0x00000025U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_SMOOTHDISP_RSVD_BAR1_SIZE (0x00000026U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_HEAP_OFFLINE_SIZE (0x00000027U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_1TO1_COMPTAG_ENABLED (0x00000028U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_SUSPEND_RESUME_RSVD_SIZE (0x00000029U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_ALLOW_PAGE_RETIREMENT (0x0000002AU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LTC_MASK (0x0000002BU)
|
||||
#define NV2080_CTRL_FB_INFO_POISON_FUSE_ENABLED (0x0000002CU)
|
||||
#define NV2080_CTRL_FB_INFO_FBPA_ECC_ENABLED (0x0000002DU)
|
||||
#define NV2080_CTRL_FB_INFO_DYNAMIC_PAGE_OFFLINING_ENABLED (0x0000002EU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_FORCED_BAR1_64KB_MAPPING_ENABLED (0x0000002FU)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_P2P_MAILBOX_SIZE (0x00000030U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_P2P_MAILBOX_ALIGNMENT (0x00000031U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_P2P_MAILBOX_BAR1_MAX_OFFSET_64KB (0x00000032U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PROTECTED_MEM_SIZE_TOTAL_KB (0x00000033U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PROTECTED_MEM_SIZE_FREE_KB (0x00000034U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_ECC_STATUS_SIZE (0x00000035U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_IS_ZERO_FB (0x00000036U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PARTITION_MASK_0 (NV2080_CTRL_FB_INFO_INDEX_PARTITION_MASK)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_PARTITION_MASK_1 (0x00000037U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LTC_MASK_0 (NV2080_CTRL_FB_INFO_INDEX_LTC_MASK)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_LTC_MASK_1 (0x00000038U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_ACCESS_COUNTER_BUFFER_COUNT (0x00000039U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_COHERENCE_INFO (0x0000003AU)
|
||||
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_MAX (0x38U) /* finn: Evaluated from "(NV2080_CTRL_FB_INFO_MAX_LIST_SIZE - 1)" */
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_MAX NV2080_CTRL_FB_INFO_INDEX_ACCESS_COUNTER_BUFFER_COUNT
|
||||
|
||||
/* Intentionally picking a value much bigger than NV2080_CTRL_FB_INFO_INDEX_MAX to prevent VGPU plumbing updates */
|
||||
#define NV2080_CTRL_FB_INFO_MAX_LIST_SIZE (0x00000080U)
|
||||
|
||||
/* valid fb RAM type values */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_UNKNOWN (0x00000000U)
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_SDRAM (0x00000001U)
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_DDR1 (0x00000002U) /* SDDR and GDDR (aka DDR1 and GDDR1) */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_SDDR2 (0x00000003U) /* SDDR2 Used on NV43 and later */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_DDR2 NV2080_CTRL_FB_INFO_RAM_TYPE_SDDR2 /* Deprecated alias */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR2 (0x00000004U) /* GDDR2 Used on NV30 and some NV36 */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR3 (0x00000005U) /* GDDR3 Used on NV40 and later */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR4 (0x00000006U) /* GDDR4 Used on G80 and later (deprecated) */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_SDDR3 (0x00000007U) /* SDDR3 Used on G9x and later */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_DDR3 NV2080_CTRL_FB_INFO_RAM_TYPE_SDDR3 /* Deprecated alias */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR5 (0x00000008U) /* GDDR5 Used on GT21x and later */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_LPDDR2 (0x00000009U) /* LPDDR (Low Power SDDR) used on T2x and later. */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_UNKNOWN (0x00000000U)
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_SDRAM (0x00000001U)
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_DDR1 (0x00000002U) /* SDDR and GDDR (aka DDR1 and GDDR1) */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_SDDR2 (0x00000003U) /* SDDR2 Used on NV43 and later */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_DDR2 NV2080_CTRL_FB_INFO_RAM_TYPE_SDDR2 /* Deprecated alias */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR2 (0x00000004U) /* GDDR2 Used on NV30 and some NV36 */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR3 (0x00000005U) /* GDDR3 Used on NV40 and later */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR4 (0x00000006U) /* GDDR4 Used on G80 and later (deprecated) */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_SDDR3 (0x00000007U) /* SDDR3 Used on G9x and later */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_DDR3 NV2080_CTRL_FB_INFO_RAM_TYPE_SDDR3 /* Deprecated alias */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR5 (0x00000008U) /* GDDR5 Used on GT21x and later */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_LPDDR2 (0x00000009U) /* LPDDR (Low Power SDDR) used on T2x and later. */
|
||||
|
||||
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_SDDR4 (0x0000000CU) /* SDDR4 Used on Maxwell and later */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_LPDDR4 (0x0000000DU) /* LPDDR (Low Power SDDR) used on T21x and later.*/
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_HBM1 (0x0000000EU) /* HBM1 (High Bandwidth Memory) used on GP100 */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_HBM2 (0x0000000FU) /* HBM2 (High Bandwidth Memory-pseudo channel) */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR5X (0x00000010U) /* GDDR5X Used on GP10x */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR6 (0x00000011U) /* GDDR6 Used on TU10x */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR6X (0x00000012U) /* GDDR6X Used on GA10x */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_LPDDR5 (0x00000013U) /* LPDDR (Low Power SDDR) used on T23x and later.*/
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_HBM3 (0x00000014U) /* HBM3 (High Bandwidth Memory) v3 */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_SDDR4 (0x0000000CU) /* SDDR4 Used on Maxwell and later */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_LPDDR4 (0x0000000DU) /* LPDDR (Low Power SDDR) used on T21x and later.*/
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_HBM1 (0x0000000EU) /* HBM1 (High Bandwidth Memory) used on GP100 */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_HBM2 (0x0000000FU) /* HBM2 (High Bandwidth Memory-pseudo channel) */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR5X (0x00000010U) /* GDDR5X Used on GP10x */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR6 (0x00000011U) /* GDDR6 Used on TU10x */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR6X (0x00000012U) /* GDDR6X Used on GA10x */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_LPDDR5 (0x00000013U) /* LPDDR (Low Power SDDR) used on T23x and later.*/
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_HBM3 (0x00000014U) /* HBM3 (High Bandwidth Memory) v3 */
|
||||
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR7 (0x00000015U) /* GDDR7 */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_TYPE_GDDR7 (0x00000015U) /* GDDR7 */
|
||||
|
||||
|
||||
|
||||
/* valid RAM LOCATION types */
|
||||
#define NV2080_CTRL_FB_INFO_RAM_LOCATION_GPU_DEDICATED (0x00000000U)
|
||||
#define NV2080_CTRL_FB_INFO_RAM_LOCATION_SYS_SHARED (0x00000001U)
|
||||
#define NV2080_CTRL_FB_INFO_RAM_LOCATION_SYS_DEDICATED (0x00000002U)
|
||||
#define NV2080_CTRL_FB_INFO_RAM_LOCATION_GPU_DEDICATED (0x00000000U)
|
||||
#define NV2080_CTRL_FB_INFO_RAM_LOCATION_SYS_SHARED (0x00000001U)
|
||||
#define NV2080_CTRL_FB_INFO_RAM_LOCATION_SYS_DEDICATED (0x00000002U)
|
||||
|
||||
/* valid Memory Vendor ID values */
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_SAMSUNG (0x00000001U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_QIMONDA (0x00000002U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_ELPIDA (0x00000003U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_ETRON (0x00000004U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_NANYA (0x00000005U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_HYNIX (0x00000006U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_MOSEL (0x00000007U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_WINBOND (0x00000008U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_ESMT (0x00000009U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_MICRON (0x0000000FU)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_UNKNOWN (0xFFFFFFFFU)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_SAMSUNG (0x00000001U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_QIMONDA (0x00000002U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_ELPIDA (0x00000003U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_ETRON (0x00000004U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_NANYA (0x00000005U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_HYNIX (0x00000006U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_MOSEL (0x00000007U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_WINBOND (0x00000008U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_ESMT (0x00000009U)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_MICRON (0x0000000FU)
|
||||
#define NV2080_CTRL_FB_INFO_MEMORYINFO_VENDOR_ID_UNKNOWN (0xFFFFFFFFU)
|
||||
|
||||
#define NV2080_CTRL_FB_INFO_PSEUDO_CHANNEL_MODE_UNSUPPORTED (0x00000000U)
|
||||
#define NV2080_CTRL_FB_INFO_PSEUDO_CHANNEL_MODE_DISABLED (0x00000001U)
|
||||
#define NV2080_CTRL_FB_INFO_PSEUDO_CHANNEL_MODE_ENABLED (0x00000002U)
|
||||
#define NV2080_CTRL_FB_INFO_PSEUDO_CHANNEL_MODE_UNSUPPORTED (0x00000000U)
|
||||
#define NV2080_CTRL_FB_INFO_PSEUDO_CHANNEL_MODE_DISABLED (0x00000001U)
|
||||
#define NV2080_CTRL_FB_INFO_PSEUDO_CHANNEL_MODE_ENABLED (0x00000002U)
|
||||
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_COHERENCE_INFO_NON_FULLY_COHERENT (0x00000000U)
|
||||
#define NV2080_CTRL_FB_INFO_INDEX_COHERENCE_INFO_FULLY_COHERENT (0x00000001U)
|
||||
|
||||
/**
|
||||
* NV2080_CTRL_CMD_FB_GET_INFO
|
||||
@@ -437,7 +446,7 @@ typedef NVXXXX_CTRL_XXX_INFO NV2080_CTRL_FB_INFO;
|
||||
* NV_ERR_INVALID_ARGUMENT
|
||||
* NV_ERR_OPERATING_SYSTEM
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_FB_GET_INFO (0x20801301U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_FB_INTERFACE_ID << 8) | NV2080_CTRL_FB_GET_INFO_PARAMS_MESSAGE_ID" */
|
||||
#define NV2080_CTRL_CMD_FB_GET_INFO (0x20801301U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_FB_INTERFACE_ID << 8) | NV2080_CTRL_FB_GET_INFO_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_FB_GET_INFO_PARAMS_MESSAGE_ID (0x1U)
|
||||
|
||||
@@ -849,7 +858,7 @@ typedef struct NV2080_CTRL_FB_GET_GPU_CACHE_INFO_PARAMS {
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_FB_GET_FB_REGION_INFO (0x20801320U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_FB_INTERFACE_ID << 8) | NV2080_CTRL_CMD_FB_GET_FB_REGION_INFO_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_CMD_FB_GET_FB_REGION_INFO_MEM_TYPES 17U
|
||||
#define NV2080_CTRL_CMD_FB_GET_FB_REGION_INFO_MEM_TYPES 18U
|
||||
|
||||
typedef NvBool NV2080_CTRL_CMD_FB_GET_FB_REGION_SURFACE_MEM_TYPE_FLAG[NV2080_CTRL_CMD_FB_GET_FB_REGION_INFO_MEM_TYPES];
|
||||
|
||||
@@ -2706,6 +2715,7 @@ typedef struct NV2080_CTRL_CMD_FB_STATS_GET_PARAMS {
|
||||
|
||||
typedef struct NV2080_CTRL_FB_GET_STATIC_BAR1_INFO_PARAMS {
|
||||
NvBool bStaticBar1Enabled;
|
||||
NvBool bStaticBar1WriteCombined;
|
||||
NV_DECLARE_ALIGNED(NvU64 staticBar1StartOffset, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 staticBar1Size, 8);
|
||||
} NV2080_CTRL_FB_GET_STATIC_BAR1_INFO_PARAMS;
|
||||
@@ -2844,4 +2854,45 @@ typedef struct NV2080_CTRL_FB_GET_MEMORY_BOOT_TRAINING_FLAGS_PARAMS {
|
||||
NvBool skipBootTraining;
|
||||
} NV2080_CTRL_FB_GET_MEMORY_BOOT_TRAINING_FLAGS_PARAMS;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_FB_CMD_GET_CARVEOUT_REGION_INFO
|
||||
*
|
||||
* This command returns the carveout memory region characteristics.
|
||||
*
|
||||
* numCarveoutRegions
|
||||
* Number of valid regions returned in carveoutRegion[].
|
||||
* carveoutRegion[].base
|
||||
* Base address of carveout memory region.
|
||||
* carveoutRegion[].size
|
||||
* size of carveout memory region.
|
||||
* carveoutType
|
||||
* carveout type for carveout memory region.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
* NV_ERR_NOT_SUPPORTED
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_FB_GET_CARVEOUT_REGION_INFO (0x20801360U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_FB_INTERFACE_ID << 8) | NV2080_CTRL_FB_GET_CARVEOUT_REGION_INFO_PARAMS_MESSAGE_ID" */
|
||||
|
||||
typedef enum NV2080_CTRL_FB_GET_CARVEOUT_REGION_CARVEOUT_TYPE {
|
||||
NV2080_CTRL_FB_GET_CARVEOUT_REGION_CARVEOUT_TYPE_DISPLAY_FRM = 0,
|
||||
NV2080_CTRL_FB_GET_CARVEOUT_REGION_CARVEOUT_TYPE_DISPLAY_FRM_RESERVED = 1,
|
||||
NV2080_CTRL_FB_GET_CARVEOUT_REGION_CARVEOUT_TYPE_UEFI = 2,
|
||||
} NV2080_CTRL_FB_GET_CARVEOUT_REGION_CARVEOUT_TYPE;
|
||||
|
||||
typedef struct NV2080_CTRL_FB_GET_CARVEOUT_REGION_INFO {
|
||||
NV_DECLARE_ALIGNED(NvU64 base, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 size, 8);
|
||||
NV2080_CTRL_FB_GET_CARVEOUT_REGION_CARVEOUT_TYPE carveoutType;
|
||||
} NV2080_CTRL_FB_GET_CARVEOUT_REGION_INFO;
|
||||
|
||||
#define NV2080_CTRL_FB_GET_CARVEOUT_REGION_INFO_MAX_ENTRIES 8U
|
||||
|
||||
#define NV2080_CTRL_FB_GET_CARVEOUT_REGION_INFO_PARAMS_MESSAGE_ID (0x60U)
|
||||
|
||||
typedef struct NV2080_CTRL_FB_GET_CARVEOUT_REGION_INFO_PARAMS {
|
||||
NvU32 numCarveoutRegions;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_FB_GET_CARVEOUT_REGION_INFO carveoutRegion[NV2080_CTRL_FB_GET_CARVEOUT_REGION_INFO_MAX_ENTRIES], 8);
|
||||
} NV2080_CTRL_FB_GET_CARVEOUT_REGION_INFO_PARAMS;
|
||||
|
||||
/* _ctrl2080fb_h_ */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2006-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2006-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -539,20 +539,23 @@ typedef struct NV2080_CTRL_CMD_FIFO_GET_USERD_LOCATION_PARAMS {
|
||||
#define NV2080_CTRL_FIFO_OBJSCHED_SW_NCOUNTERS 8
|
||||
#define NV2080_CTRL_FIFO_OBJSCHED_SW_GET_LOG_ENTRIES 200
|
||||
|
||||
typedef struct NV2080_CTRL_FIFO_OBJSCHED_SW_GET_LOG_ENTRY {
|
||||
NV_DECLARE_ALIGNED(NvU64 timestampNs, 8);
|
||||
NV_DECLARE_ALIGNED(NvS64 timeRunTotalNs, 8);
|
||||
NvU32 timeRunNs;
|
||||
NvU32 swrlId;
|
||||
NvU32 targetTimeSlice;
|
||||
NV_DECLARE_ALIGNED(NvU64 cumulativePreemptionTime, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 cumulativeIdleTime, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 counters[NV2080_CTRL_FIFO_OBJSCHED_SW_NCOUNTERS], 8);
|
||||
} NV2080_CTRL_FIFO_OBJSCHED_SW_GET_LOG_ENTRY;
|
||||
|
||||
#define NV2080_CTRL_FIFO_OBJSCHED_SW_GET_LOG_PARAMS_MESSAGE_ID (0xEU)
|
||||
|
||||
typedef struct NV2080_CTRL_FIFO_OBJSCHED_SW_GET_LOG_PARAMS {
|
||||
NvU32 engineId;
|
||||
NvU32 count;
|
||||
struct {
|
||||
NV_DECLARE_ALIGNED(NvU64 timestampNs, 8);
|
||||
NV_DECLARE_ALIGNED(NvS64 timeRunTotalNs, 8);
|
||||
NvU32 timeRunNs;
|
||||
NvU32 swrlId;
|
||||
NvU32 targetTimeSlice;
|
||||
NV_DECLARE_ALIGNED(NvU64 cumulativePreemptionTime, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 counters[NV2080_CTRL_FIFO_OBJSCHED_SW_NCOUNTERS], 8);
|
||||
} entry[NV2080_CTRL_FIFO_OBJSCHED_SW_GET_LOG_ENTRIES];
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_FIFO_OBJSCHED_SW_GET_LOG_ENTRY entry[NV2080_CTRL_FIFO_OBJSCHED_SW_GET_LOG_ENTRIES], 8);
|
||||
NvU32 schedPolicy;
|
||||
NvU32 arrEnabled;
|
||||
NvU32 arrAvgFactor;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2006-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2006-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -112,8 +112,15 @@ typedef NVXXXX_CTRL_XXX_INFO NV2080_CTRL_GPU_INFO;
|
||||
|
||||
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_IS_LOCALIZATION_SUPPORTED (0x00000041U)
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_GPU_NON_PASID_ATS_CAPABILITY (0x00000042U)
|
||||
|
||||
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_COHERENT_GPU_MEMORY_MODE (0x00000044U)
|
||||
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_COMPR_BIT_BACKING_COPY_TYPE (0x00000045U)
|
||||
|
||||
#define NV2080_CTRL_GPU_INFO_MAX_LIST_SIZE (0x00000046U)
|
||||
|
||||
#define NV2080_CTRL_GPU_INFO_MAX_LIST_SIZE (0x00000042U)
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_GROUP_ID 30:24
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_RESERVED 31:31
|
||||
|
||||
@@ -228,6 +235,21 @@ typedef NVXXXX_CTRL_XXX_INFO NV2080_CTRL_GPU_INFO;
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_IS_LOCALIZATION_SUPPORTED_NO (0x00000000U)
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_IS_LOCALIZATION_SUPPORTED_YES (0x00000001U)
|
||||
|
||||
/* valid Non-PASID ATS capability values */
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_GPU_NON_PASID_ATS_CAPABILITY_NO (0x00000000U)
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_GPU_NON_PASID_ATS_CAPABILITY_YES (0x00000001U)
|
||||
|
||||
|
||||
|
||||
/* valid coherent GPU memory mode capability values */
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_COHERENT_GPU_MEMORY_MODE_NONE (0x00000000U)
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_COHERENT_GPU_MEMORY_MODE_NUMA (0x00000001U)
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_COHERENT_GPU_MEMORY_MODE_DRIVER (0x00000002U)
|
||||
|
||||
/* valid compression bit backing copy type values */
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_COMP_BIT_BACKING_COPY_TYPE_PHYSICAL (0x00000000U)
|
||||
#define NV2080_CTRL_GPU_INFO_INDEX_COMP_BIT_BACKING_COPY_TYPE_VIRTUAL (0x00000001U)
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_GPU_GET_INFO
|
||||
*
|
||||
@@ -1380,8 +1402,6 @@ typedef struct NV2080_CTRL_GPU_SET_ECC_CONFIGURATION_PARAMS {
|
||||
NvU32 newConfiguration;
|
||||
} NV2080_CTRL_GPU_SET_ECC_CONFIGURATION_PARAMS;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_GPU_RESET_ECC_ERROR_STATUS
|
||||
*
|
||||
@@ -2608,7 +2628,7 @@ typedef struct NV2080_CTRL_GPU_SET_PARTITION_INFO {
|
||||
#define NV2080_CTRL_GPU_MAX_PARTITIONS 0x00000008U
|
||||
#define NV2080_CTRL_GPU_MAX_PARTITION_IDS 0x00000009U
|
||||
#define NV2080_CTRL_GPU_MAX_SMC_IDS 0x00000008U
|
||||
#define NV2080_CTRL_GPU_MAX_GPC_PER_SMC 0x0000000cU
|
||||
#define NV2080_CTRL_GPU_MAX_GPC_PER_SMC 0x00000010U
|
||||
#define NV2080_CTRL_GPU_MAX_CE_PER_SMC 0x00000008U
|
||||
|
||||
#define NV2080_CTRL_GPU_PARTITION_FLAG_MEMORY_SIZE 1:0
|
||||
@@ -3147,8 +3167,6 @@ typedef struct NV2080_CTRL_GPU_GET_VMMU_SEGMENT_SIZE_PARAMS {
|
||||
#define NV2080_CTRL_GPU_VMMU_SEGMENT_SIZE_512MB 0x20000000U
|
||||
#define NV2080_CTRL_GPU_VMMU_SEGMENT_SIZE_1024MB 0x40000000U
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_GPU_GET_PARTITION_CAPACITY
|
||||
*
|
||||
@@ -3859,23 +3877,6 @@ typedef struct NV2080_CTRL_GPU_VALIDATE_MEM_MAP_REQUEST_PARAMS {
|
||||
NvU32 protection;
|
||||
} NV2080_CTRL_GPU_VALIDATE_MEM_MAP_REQUEST_PARAMS;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_GPU_SET_EGM_GPA_FABRIC_BASE_ADDR
|
||||
*
|
||||
* @brief This command is similar to NV2080_CTRL_CMD_GPU_SET_FABRIC_BASE_ADDR
|
||||
* but will be used to set the EGM fabric base addr associated with the gpu.
|
||||
* Note: For EGM FLA, we will be making use of the existing control call i.e
|
||||
* NV2080_CTRL_CMD_FLA_RANGE
|
||||
*
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_GPU_SET_EGM_GPA_FABRIC_BASE_ADDR (0x20800199U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_GPU_INTERFACE_ID << 8) | NV2080_CTRL_GPU_SET_EGM_GPA_FABRIC_BASE_ADDR_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_GPU_SET_EGM_GPA_FABRIC_BASE_ADDR_PARAMS_MESSAGE_ID (0x99U)
|
||||
|
||||
typedef struct NV2080_CTRL_GPU_SET_EGM_GPA_FABRIC_BASE_ADDR_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 egmGpaFabricBaseAddr, 8);
|
||||
} NV2080_CTRL_GPU_SET_EGM_GPA_FABRIC_BASE_ADDR_PARAMS;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_GPU_GET_ENGINE_LOAD_TIMES
|
||||
*
|
||||
@@ -3968,8 +3969,50 @@ typedef struct NV2080_CTRL_GPU_EXEC_REG_OPS_NOPTRS_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_GR_ROUTE_INFO grRouteInfo, 8);
|
||||
} NV2080_CTRL_GPU_EXEC_REG_OPS_NOPTRS_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_GPU_SKYLINE_INFO_MAX_SKYLINES 9U
|
||||
#define NV2080_CTRL_GPU_SKYLINE_INFO_MAX_NON_SINGLETON_VGPCS 12U
|
||||
/*!
|
||||
* NV2080_CTRL_GPU_SKYLINE_INFO
|
||||
* skylineVgpcSize[OUT]
|
||||
* - TPC count of non-singleton VGPCs
|
||||
* singletonVgpcMask[OUT]
|
||||
* - Mask of active Singletons
|
||||
* maxInstances[OUT]
|
||||
* - Max allowed instances of this skyline concurrently on a GPU
|
||||
* computeSizeFlag
|
||||
* - One of NV2080_CTRL_GPU_PARTITION_FLAG_COMPUTE_SIZE_* flags which is associated with this skyline
|
||||
*/
|
||||
typedef struct NV2080_CTRL_GPU_SKYLINE_INFO {
|
||||
NvU8 skylineVgpcSize[NV2080_CTRL_GPU_SKYLINE_INFO_MAX_NON_SINGLETON_VGPCS];
|
||||
NvU32 singletonVgpcMask;
|
||||
NvU32 maxInstances;
|
||||
NvU32 computeSizeFlag;
|
||||
} NV2080_CTRL_GPU_SKYLINE_INFO;
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GPU_GET_SKYLINE_INFO_PARAMS
|
||||
* skylineTable[OUT]
|
||||
* - TPC count of non-singleton VGPCs
|
||||
* - Mask of singleton vGPC IDs active
|
||||
* - Max Instances of this skyline possible concurrently
|
||||
* - Associated compute size with the indexed skyline
|
||||
* validEntries[OUT]
|
||||
* - Number of entries which contain valid info in skylineInfo
|
||||
*/
|
||||
#define NV2080_CTRL_GPU_GET_SKYLINE_INFO_PARAMS_MESSAGE_ID (0x9FU)
|
||||
|
||||
typedef struct NV2080_CTRL_GPU_GET_SKYLINE_INFO_PARAMS {
|
||||
NV2080_CTRL_GPU_SKYLINE_INFO skylineTable[NV2080_CTRL_GPU_SKYLINE_INFO_MAX_SKYLINES];
|
||||
NvU32 validEntries;
|
||||
} NV2080_CTRL_GPU_GET_SKYLINE_INFO_PARAMS;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_GPU_GET_SKYLINE_INFO
|
||||
*
|
||||
* Retrieves skyline information about the GPU. Params are sized to currently known max
|
||||
* values, but will need to be modified in the future should that change.
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_GPU_GET_SKYLINE_INFO (0x2080019fU) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_GPU_INTERFACE_ID << 8) | NV2080_CTRL_GPU_GET_SKYLINE_INFO_PARAMS_MESSAGE_ID" */
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GPU_P2P_PEER_CAPS_PEER_INFO
|
||||
@@ -4146,6 +4189,19 @@ typedef struct NV2080_CTRL_GPU_GET_COMPUTE_PROFILES_PARAMS {
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_TRUE 1
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_FALSE 2
|
||||
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION 11:8
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_NOT_SUPPORTED 0
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_NONE 1
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INCORRECT_SYSGUID 2
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INCORRECT_CHASSIS_SN 3
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_NO_PARTITION 4
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INSUFFICIENT_NVLINKS 5
|
||||
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_SUMMARY_NOT_SUPPORTED 0
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_SUMMARY_HEALTHY 1
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_SUMMARY_UNHEALTHY 2
|
||||
#define NV2080_CTRL_GPU_FABRIC_HEALTH_SUMMARY_LIMITED_CAPACITY 3
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_CMD_GET_GPU_FABRIC_PROBE_INFO_PARAMS
|
||||
*
|
||||
@@ -4177,6 +4233,8 @@ typedef struct NV2080_CTRL_GPU_GET_COMPUTE_PROFILES_PARAMS {
|
||||
* - Unique ID of a set of GPUs within a fabric partition that can perform P2P
|
||||
* fabricHealthMask[OUT]
|
||||
* - Mask where bits indicate different status about the health of the fabric
|
||||
* fabricHealthSummary[OUT]
|
||||
* - Summary of the Fabric Health
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_GET_GPU_FABRIC_PROBE_INFO_PARAMS_MESSAGE_ID (0xA3U)
|
||||
|
||||
@@ -4188,6 +4246,7 @@ typedef struct NV2080_CTRL_CMD_GET_GPU_FABRIC_PROBE_INFO_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 fabricCaps, 8);
|
||||
NvU32 fabricCliqueId;
|
||||
NvU32 fabricHealthMask;
|
||||
NvU8 fabricHealthSummary;
|
||||
} NV2080_CTRL_CMD_GET_GPU_FABRIC_PROBE_INFO_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_GET_GPU_FABRIC_PROBE_INFO (0x208001a3) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_GPU_INTERFACE_ID << 8) | NV2080_CTRL_CMD_GET_GPU_FABRIC_PROBE_INFO_PARAMS_MESSAGE_ID" */
|
||||
|
||||
@@ -402,8 +402,6 @@ typedef struct NV2080_CTRL_GR_GET_INFO_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_GR_ROUTE_INFO grRouteInfo, 8);
|
||||
} NV2080_CTRL_GR_GET_INFO_PARAMS;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_GR_CTXSW_ZCULL_MODE
|
||||
*
|
||||
@@ -1208,6 +1206,8 @@ typedef struct NV2080_CTRL_GR_GET_GLOBAL_SM_ORDER_PARAMS {
|
||||
NvU16 virtualGpcId;
|
||||
NvU16 migratableTpcId;
|
||||
NvU16 ugpuId;
|
||||
NvU16 physicalCpcId;
|
||||
NvU16 virtualTpcId;
|
||||
} globalSmId[NV2080_CTRL_CMD_GR_GET_GLOBAL_SM_ORDER_MAX_SM_COUNT];
|
||||
|
||||
NvU16 numSm;
|
||||
@@ -1715,6 +1715,35 @@ typedef struct NV2080_CTRL_GR_GET_SM_ISSUE_RATE_MODIFIER_V2_PARAMS {
|
||||
NV2080_CTRL_GR_SM_ISSUE_RATE_MODIFIER_V2 smIssueRateModifierList[NV2080_CTRL_GR_SM_ISSUE_RATE_MODIFIER_V2_MAX_LIST_SIZE];
|
||||
} NV2080_CTRL_GR_GET_SM_ISSUE_RATE_MODIFIER_V2_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_GR_SM_ISSUE_THROTTLE_CTRL_MAX_LIST_SIZE (0xFFU)
|
||||
#define NV2080_CTRL_GR_SM_ISSUE_THROTTLE_CTRL_MASK (0x0U)
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_GR_GET_SM_ISSUE_THROTTLE_CTRL
|
||||
*
|
||||
* This command provides an interface to retrieve the throttle contol values of
|
||||
* various instruction types for a GR engine.
|
||||
*
|
||||
* smIssueThrottleCtrlListSize
|
||||
* This field specifies the number of entries on the caller's
|
||||
* smIssueThrottleCtrlList.
|
||||
* When caller passes smIssueThrottleCtrlListSize = 0, all fuse
|
||||
* values are returned.
|
||||
* smIssueThrottleCtrlList
|
||||
* This field specifies a pointer in the caller's address space
|
||||
* to the buffer into which the throttle control values are to be returned.
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_GR_GET_SM_ISSUE_THROTTLE_CTRL (0x2080123dU) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_GR_INTERFACE_ID << 8) | NV2080_CTRL_GR_GET_SM_ISSUE_THROTTLE_CTRL_PARAMS_MESSAGE_ID" */
|
||||
|
||||
typedef NVXXXX_CTRL_XXX_INFO NV2080_CTRL_GR_SM_ISSUE_THROTTLE_CTRL;
|
||||
|
||||
#define NV2080_CTRL_GR_GET_SM_ISSUE_THROTTLE_CTRL_PARAMS_MESSAGE_ID (0x3DU)
|
||||
|
||||
typedef struct NV2080_CTRL_GR_GET_SM_ISSUE_THROTTLE_CTRL_PARAMS {
|
||||
NvU32 smIssueThrottleCtrlListSize;
|
||||
NV2080_CTRL_GR_SM_ISSUE_THROTTLE_CTRL smIssueThrottleCtrlList[NV2080_CTRL_GR_SM_ISSUE_THROTTLE_CTRL_MAX_LIST_SIZE];
|
||||
} NV2080_CTRL_GR_GET_SM_ISSUE_THROTTLE_CTRL_PARAMS;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_GR_FECS_BIND_EVTBUF_FOR_UID
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2019-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2019-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -46,7 +46,7 @@
|
||||
// log the error and march on.
|
||||
//
|
||||
// NV2080_CTRL_GRMGR_GET_GR_FS_INFO_PARAMS
|
||||
// numQueries[IN]
|
||||
// numQueries[in]
|
||||
// - Specifies the number of valid queries that the caller will be passing in
|
||||
//
|
||||
// Possible status values returned are:
|
||||
@@ -69,7 +69,7 @@
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_GPC_COUNT_PARAMS
|
||||
* gpcCount[OUT]
|
||||
* gpcCount[out]
|
||||
* - No. of logical/local GPCs which client can use to create the
|
||||
* logical/local mask respectively
|
||||
*/
|
||||
@@ -79,9 +79,9 @@ typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_GPC_COUNT_PARAMS {
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_CHIPLET_GPC_MAP_PARAMS
|
||||
* gpcId[IN]
|
||||
* gpcId[in]
|
||||
* - Logical/local GPC ID
|
||||
* chipletGpcMap[OUT]
|
||||
* chipletGpcMap[out]
|
||||
* - Returns chiplet GPC ID for legacy case and device monitoring client
|
||||
* - Returns local GPC ID (== input gpcId) for SMC client
|
||||
* - Does not support DM attribution case
|
||||
@@ -93,9 +93,9 @@ typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_CHIPLET_GPC_MAP_PARAMS {
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_TPC_MASK_PARAMS
|
||||
* gpcId[IN]
|
||||
* gpcId[in]
|
||||
* - Logical/local GPC ID
|
||||
* tpcMask[OUT]
|
||||
* tpcMask[out]
|
||||
* - Returns physical TPC mask for legacy, DM client and SMC cases
|
||||
* - Does not support DM attribution case
|
||||
*/
|
||||
@@ -106,9 +106,9 @@ typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_TPC_MASK_PARAMS {
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_PPC_MASK_PARAMS
|
||||
* gpcId[IN]
|
||||
* gpcId[in]
|
||||
* - Logical/local GPC ID
|
||||
* ppcMask[OUT]
|
||||
* ppcMask[out]
|
||||
* - Returns physical PPC mask for legacy, DM client and SMC cases
|
||||
* - Does not support DM attribution case
|
||||
*/
|
||||
@@ -122,14 +122,14 @@ typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_PPC_MASK_PARAMS {
|
||||
* it would break driver compatibility !!!
|
||||
*
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_PARTITION_CHIPLET_GPC_MAP_PARAMS
|
||||
* swizzId[IN]
|
||||
* swizzId[in]
|
||||
* - Swizz ID of partition
|
||||
* - A DM client with an invalid swizz ID, will fail this call
|
||||
* - This parameter is not compulsory for an SMC client; the subscription
|
||||
* itself will do the necessary validation.
|
||||
* gpcId[IN]
|
||||
* gpcId[in]
|
||||
* - Logical/local GPC ID
|
||||
* chipletGpcMap[OUT]
|
||||
* chipletGpcMap[out]
|
||||
* - Returns chiplet GPC ID for legacy case and device monitoring client
|
||||
* - Returns local GPC ID (== input gpcId) for SMC client
|
||||
* - Does not support non-attribution case for DM client
|
||||
@@ -142,9 +142,9 @@ typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_PARTITION_CHIPLET_GPC_MAP_PARAMS {
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_ROP_MASK_PARAMS
|
||||
* gpcId[IN]
|
||||
* gpcId[in]
|
||||
* - Logical/local GPC ID
|
||||
* ropMask[OUT]
|
||||
* ropMask[out]
|
||||
* - Returns physical ROP mask for legacy, DM client
|
||||
* - Returns logical ROP mask for SMC
|
||||
*/
|
||||
@@ -155,7 +155,7 @@ typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_ROP_MASK_PARAMS {
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_CHIPLET_SYSPIPE_MASK_PARAMS
|
||||
* chipletSyspipeMask [OUT]
|
||||
* chipletSyspipeMask [out]
|
||||
* - Mask of chiplet SMC-IDs for DM client attribution case
|
||||
* - Mask of local SMC-IDs for SMC client
|
||||
* - Legacy case returns 1 GR
|
||||
@@ -167,13 +167,13 @@ typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_CHIPLET_SYSPIPE_MASK_PARAMS {
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_PARTITION_CHIPLET_SYSPIPE_IDS_PARAMS
|
||||
* swizzId[IN]
|
||||
* swizzId[in]
|
||||
* - Swizz ID of partition
|
||||
* - A DM client with an invalid swizz ID, will fail this call
|
||||
* physSyspipeId[GRMGR_MAX_SMC_IDS] [OUT]
|
||||
* physSyspipeId[GRMGR_MAX_SMC_IDS] [out]
|
||||
* - Physical SMC-IDs mapped to partition local idx for DM client attribution case
|
||||
* - Does not support non-attribution case for DM client, SMC clients, legacy case
|
||||
* physSyspipeIdCount[OUT]
|
||||
* physSyspipeIdCount[out]
|
||||
* - Valid count of physSmcIds which has been populated in above array.
|
||||
* - Failure case will return 0
|
||||
*/
|
||||
@@ -185,14 +185,14 @@ typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_PARTITION_CHIPLET_SYSPIPE_IDS_PARAMS
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_PROFILER_MON_GPC_MASK_PARAMS
|
||||
* swizzId[IN]
|
||||
* swizzId[in]
|
||||
* - Swizz ID of partition
|
||||
* - Mandatory parameter
|
||||
* - A DM client with an invalid swizz ID, will fail this call
|
||||
* grIdx[IN]
|
||||
* grIdx[in]
|
||||
* - Local grIdx for a partition
|
||||
* - Mandatory parameter
|
||||
* gpcEnMask[OUT]
|
||||
* gpcEnMask[out]
|
||||
* - Logical enabled GPC mask associated with requested grIdx of the partition i.e swizzid->engineId->gpcMask
|
||||
* - These Ids should be used as input further
|
||||
* - Does not support non-attribution case for DM client, SMC clients, legacy case
|
||||
@@ -205,7 +205,7 @@ typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_PROFILER_MON_GPC_MASK_PARAMS {
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_PARTITION_SYSPIPE_ID
|
||||
* syspipeId[OUT]
|
||||
* syspipeId[out]
|
||||
* - Partition-local GR idx for client subscribed to exec partition
|
||||
* - Does not support legacy case, DM client, or SMC client subscribed only to partition
|
||||
*/
|
||||
@@ -214,9 +214,41 @@ typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_PARTITION_SYSPIPE_ID_PARAMS {
|
||||
} NV2080_CTRL_GRMGR_GR_FS_INFO_PARTITION_SYSPIPE_ID_PARAMS;
|
||||
|
||||
/*!
|
||||
* queryType[IN]
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_CHIPLET_GRAPHICS_SYSPIPE_MASK_PARAMS
|
||||
* chipletSyspipeMask [out]
|
||||
* - Mask of chiplet GFX capable SMC-IDs for DM client attribution case
|
||||
* - Mask of local GFX capable SMC-IDs for SMC client
|
||||
* - Legacy case returns GR0 if GFX capable, else 0
|
||||
* - Does not support attribution case for DM client
|
||||
*/
|
||||
typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_CHIPLET_GRAPHICS_SYSPIPE_MASK_PARAMS {
|
||||
NvU32 chipletSyspipeMask; // param[out] - Mask of chiplet SMC IDs
|
||||
} NV2080_CTRL_GRMGR_GR_FS_INFO_CHIPLET_GRAPHICS_SYSPIPE_MASK_PARAMS;
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_GRMGR_GR_FS_INFO_GFX_CAPABLE_GPC_MASK_PARAMS
|
||||
* swizzId[in]
|
||||
* - Swizz ID of partition
|
||||
* - Mandatory parameter
|
||||
* - A DM client with an invalid swizz ID, will fail this call
|
||||
* grIdx[in]
|
||||
* - Local grIdx for a partition
|
||||
* - Mandatory parameter
|
||||
* gpcEnMask[out]
|
||||
* - Logical enabled GPC mask associated with requested grIdx of the partition i.e swizzid->engineId->gpcMask
|
||||
* - These Ids should be used as input further
|
||||
* - Does not support non-attribution case for DM client, SMC clients, legacy case
|
||||
*/
|
||||
typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_GFX_CAPABLE_GPC_MASK_PARAMS {
|
||||
NvU32 swizzId; // param[in] - swizz ID of partition
|
||||
NvU32 grIdx; // param[in] - partition local GR ID
|
||||
NvU32 gpcEnMask; // param[out] - logical enabled GPC mask
|
||||
} NV2080_CTRL_GRMGR_GR_FS_INFO_GFX_CAPABLE_GPC_MASK_PARAMS;
|
||||
|
||||
/*!
|
||||
* queryType[in]
|
||||
* - Use queryType defines to specify what information is being requested
|
||||
* status[OUT]
|
||||
* status[out]
|
||||
* - Possible status values returned are:
|
||||
* NV_OK
|
||||
* NV_ERR_INVALID_ARGUMENT
|
||||
@@ -237,6 +269,8 @@ typedef struct NV2080_CTRL_GRMGR_GR_FS_INFO_QUERY_PARAMS {
|
||||
NV2080_CTRL_GRMGR_GR_FS_INFO_PROFILER_MON_GPC_MASK_PARAMS dmGpcMaskData;
|
||||
NV2080_CTRL_GRMGR_GR_FS_INFO_PARTITION_SYSPIPE_ID_PARAMS partitionSyspipeIdData;
|
||||
NV2080_CTRL_GRMGR_GR_FS_INFO_ROP_MASK_PARAMS ropMaskData;
|
||||
NV2080_CTRL_GRMGR_GR_FS_INFO_CHIPLET_GRAPHICS_SYSPIPE_MASK_PARAMS gfxSyspipeMaskData;
|
||||
NV2080_CTRL_GRMGR_GR_FS_INFO_GFX_CAPABLE_GPC_MASK_PARAMS gfxGpcMaskData;
|
||||
} queryData;
|
||||
} NV2080_CTRL_GRMGR_GR_FS_INFO_QUERY_PARAMS;
|
||||
|
||||
@@ -259,5 +293,7 @@ typedef struct NV2080_CTRL_GRMGR_GET_GR_FS_INFO_PARAMS {
|
||||
#define NV2080_CTRL_GRMGR_GR_FS_INFO_QUERY_PROFILER_MON_GPC_MASK 8
|
||||
#define NV2080_CTRL_GRMGR_GR_FS_INFO_QUERY_PARTITION_SYSPIPE_ID 9
|
||||
#define NV2080_CTRL_GRMGR_GR_FS_INFO_QUERY_ROP_MASK 10
|
||||
#define NV2080_CTRL_GRMGR_GR_FS_INFO_QUERY_CHIPLET_GRAPHICS_SYSPIPE_MASK 11
|
||||
#define NV2080_CTRL_GRMGR_GR_FS_INFO_QUERY_GFX_CAPABLE_GPC_MASK 12
|
||||
|
||||
/* _ctrl2080grmgr_h_ */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2020-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2020-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -31,6 +31,7 @@
|
||||
//
|
||||
|
||||
#include "nvimpshared.h"
|
||||
#include "ctrl2080nvlink_common.h"
|
||||
#include "cc_drv.h"
|
||||
#include "ctrl/ctrl2080/ctrl2080base.h"
|
||||
|
||||
@@ -39,6 +40,7 @@
|
||||
#include "ctrl/ctrl0080/ctrl0080msenc.h" /* NV0080_CTRL_MSENC_CAPS_TBL_SIZE */
|
||||
#include "ctrl/ctrl0080/ctrl0080bsp.h" /* NV0080_CTRL_BSP_CAPS_TBL_SIZE */
|
||||
#include "ctrl/ctrl2080/ctrl2080fifo.h" /* NV2080_CTRL_FIFO_UPDATE_CHANNEL_INFO */
|
||||
#include "ctrl/ctrl2080/ctrl2080mc.h" /* NV2080_INTR_* */
|
||||
#include "ctrl/ctrl0073/ctrl0073system.h" /* NV0073_CTRL_SYSTEM_ACPI_ID_MAP_MAX_DISPLAYS */
|
||||
#include "ctrl/ctrl0000/ctrl0000system.h"
|
||||
#include "ctrl/ctrl90f1.h"
|
||||
@@ -230,6 +232,8 @@ typedef struct NV2080_CTRL_INTERNAL_STATIC_GR_GLOBAL_SM_ORDER {
|
||||
NvU16 virtualGpcId;
|
||||
NvU16 migratableTpcId;
|
||||
NvU16 ugpuId;
|
||||
NvU16 physicalCpcId;
|
||||
NvU16 virtualTpcId;
|
||||
} globalSmId[NV2080_CTRL_INTERNAL_GR_MAX_SM];
|
||||
|
||||
NvU16 numSm;
|
||||
@@ -279,7 +283,7 @@ typedef struct NV2080_CTRL_INTERNAL_MSENC_GET_CAPS_PARAMS {
|
||||
} NV2080_CTRL_INTERNAL_MSENC_GET_CAPS_PARAMS;
|
||||
|
||||
|
||||
#define NV2080_CTRL_INTERNAL_GR_MAX_GPC 12
|
||||
#define NV2080_CTRL_INTERNAL_GR_MAX_GPC 16
|
||||
#define NV2080_CTRL_INTERNAL_MAX_TPC_PER_GPC_COUNT 10
|
||||
|
||||
/*!
|
||||
@@ -820,23 +824,39 @@ typedef NV2080_CTRL_INTERNAL_MIGMGR_PROMOTE_GPU_INSTANCE_MEM_RANGE_PARAMS NV2080
|
||||
|
||||
#define NV2080_CTRL_CMD_INTERNAL_MIGMGR_PROMOTE_GPU_INSTANCE_MEM_RANGE (0x20800a43) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_INTERNAL_MIGMGR_PROMOTE_GPU_INSTANCE_MEM_RANGE_PARAMS_MESSAGE_ID" */
|
||||
|
||||
|
||||
|
||||
#define NV2080_CTRL_INTERNAL_GR_INIT_BUG4208224_WAR_PARAMS_MESSAGE_ID (0x45U)
|
||||
|
||||
typedef struct NV2080_CTRL_INTERNAL_GR_INIT_BUG4208224_WAR_PARAMS {
|
||||
NvBool bTeardown;
|
||||
} NV2080_CTRL_INTERNAL_GR_INIT_BUG4208224_WAR_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_INTERNAL_KGR_INIT_BUG4208224_WAR (0x20800a46) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_INTERNAL_KGR_INIT_BUG4208224_WAR_PARAMS_MESSAGE_ID" */
|
||||
#define NV2080_CTRL_INTERNAL_KGR_INIT_BUG4208224_WAR_PARAMS_MESSAGE_ID (0x46U)
|
||||
|
||||
typedef NV2080_CTRL_INTERNAL_GR_INIT_BUG4208224_WAR_PARAMS NV2080_CTRL_INTERNAL_KGR_INIT_BUG4208224_WAR_PARAMS;
|
||||
|
||||
typedef struct NV2080_CTRL_INTERNAL_STATIC_GR_PDB_PROPERTIES {
|
||||
NvBool bPerSubCtxheaderSupported;
|
||||
} NV2080_CTRL_INTERNAL_STATIC_GR_PDB_PROPERTIES;
|
||||
|
||||
/*!
|
||||
* NV2080_CTRL_CMD_INTERNAL_GPU_CHECK_CTS_ID_VALID
|
||||
*
|
||||
* This command validates whether a given CTS ID can be used within a GPU Instance by checking
|
||||
* if the required GPCs can be allocated from the GPU Instance.
|
||||
*
|
||||
* ctsId [in]
|
||||
* The CTS ID to validate
|
||||
*
|
||||
* bCheckClientGI [in]
|
||||
* Validate the CTS ID against the GPU Instance owned by the client.
|
||||
*
|
||||
* giComputeSize [in]
|
||||
* The compute size for the GPU Instance, which determines the number of GPCs in the GPU Instance.
|
||||
*
|
||||
* bCtsIdValid [out]
|
||||
* Returns whether the CTS ID is valid within the specified GPU Instance.
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_INTERNAL_GPU_CHECK_CTS_ID_VALID (0x20800a46) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_INTERNAL_GPU_CHECK_CTS_ID_VALID_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_INTERNAL_GPU_CHECK_CTS_ID_VALID_PARAMS_MESSAGE_ID (0x46U)
|
||||
|
||||
typedef struct NV2080_CTRL_INTERNAL_GPU_CHECK_CTS_ID_VALID_PARAMS {
|
||||
NvU32 ctsId;
|
||||
NvBool bCheckClientGI;
|
||||
NvU32 giComputeSize;
|
||||
NvBool bCtsIdValid;
|
||||
} NV2080_CTRL_INTERNAL_GPU_CHECK_CTS_ID_VALID_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_INTERNAL_STATIC_GR_GET_PDB_PROPERTIES_PARAMS_MESSAGE_ID (0x47U)
|
||||
|
||||
typedef struct NV2080_CTRL_INTERNAL_STATIC_GR_GET_PDB_PROPERTIES_PARAMS {
|
||||
@@ -1435,36 +1455,12 @@ typedef struct NV2080_CTRL_INTERNAL_FB_GET_HEAP_RESERVATION_SIZE_PARAMS {
|
||||
* Interrupt table for Kernel RM.
|
||||
*
|
||||
* subtreeMap [OUT]
|
||||
* Subtree range for each NV2080_INTR_CATEGORY.
|
||||
* Subtree mask for each NV2080_INTR_CATEGORY.
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_INTERNAL_INTR_GET_KERNEL_TABLE (0x20800a5c) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_INTERNAL_INTR_GET_KERNEL_TABLE_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_INTERNAL_INTR_MAX_TABLE_SIZE 128
|
||||
|
||||
/*!
|
||||
* Categories of interrupts.
|
||||
*
|
||||
* Each of these categories get a separate range of interrupt subtrees (top
|
||||
* level bits).
|
||||
*/
|
||||
typedef enum NV2080_INTR_CATEGORY {
|
||||
NV2080_INTR_CATEGORY_DEFAULT = 0,
|
||||
NV2080_INTR_CATEGORY_ESCHED_DRIVEN_ENGINE = 1,
|
||||
NV2080_INTR_CATEGORY_ESCHED_DRIVEN_ENGINE_NOTIFICATION = 2,
|
||||
NV2080_INTR_CATEGORY_RUNLIST = 3,
|
||||
NV2080_INTR_CATEGORY_RUNLIST_NOTIFICATION = 4,
|
||||
NV2080_INTR_CATEGORY_UVM_OWNED = 5,
|
||||
NV2080_INTR_CATEGORY_UVM_SHARED = 6,
|
||||
NV2080_INTR_CATEGORY_ENUM_COUNT = 7,
|
||||
} NV2080_INTR_CATEGORY;
|
||||
|
||||
#define NV2080_INTR_INVALID_SUBTREE NV_U8_MAX
|
||||
|
||||
typedef struct NV2080_INTR_CATEGORY_SUBTREE_MAP {
|
||||
NvU8 subtreeStart;
|
||||
NvU8 subtreeEnd;
|
||||
} NV2080_INTR_CATEGORY_SUBTREE_MAP;
|
||||
|
||||
typedef struct NV2080_CTRL_INTERNAL_INTR_GET_KERNEL_TABLE_ENTRY {
|
||||
NvU16 engineIdx;
|
||||
NvU32 pmcIntrMask;
|
||||
@@ -1477,7 +1473,7 @@ typedef struct NV2080_CTRL_INTERNAL_INTR_GET_KERNEL_TABLE_ENTRY {
|
||||
typedef struct NV2080_CTRL_INTERNAL_INTR_GET_KERNEL_TABLE_PARAMS {
|
||||
NvU32 tableLen;
|
||||
NV2080_CTRL_INTERNAL_INTR_GET_KERNEL_TABLE_ENTRY table[NV2080_CTRL_INTERNAL_INTR_MAX_TABLE_SIZE];
|
||||
NV2080_INTR_CATEGORY_SUBTREE_MAP subtreeMap[NV2080_INTR_CATEGORY_ENUM_COUNT];
|
||||
NV_DECLARE_ALIGNED(NV2080_INTR_CATEGORY_SUBTREE_MAP subtreeMap[NV2080_INTR_CATEGORY_ENUM_COUNT], 8);
|
||||
} NV2080_CTRL_INTERNAL_INTR_GET_KERNEL_TABLE_PARAMS;
|
||||
|
||||
/* Index to retrieve the needed heap space for specific module */
|
||||
@@ -3439,7 +3435,7 @@ typedef struct NV2080_CTRL_INTERNAL_FIFO_GET_NUM_SECURE_CHANNELS_PARAMS {
|
||||
* NV_ERR_INVALID_STATE
|
||||
* NV_ERR_NOT_SUPPORTED
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_INTERNAL_PERF_PFM_REQ_HNDLR_DEPENDENCY_CHECK (0x20800a7a) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_INTERNAL_INTERFACE_ID << 8) | 0x7A" */
|
||||
#define NV2080_CTRL_CMD_INTERNAL_PERF_PFM_REQ_HNDLR_DEPENDENCY_CHECK (0x20800a45) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_INTERNAL_INTERFACE_ID << 8) | 0x45" */
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_INTERNAL_BIF_DISABLE_SYSTEM_MEMORY_ACCESS
|
||||
@@ -5166,6 +5162,7 @@ typedef struct NV2080_CTRL_INTERNAL_NVLINK_GET_LINK_AND_CLOCK_VALUES {
|
||||
|
||||
typedef struct NV2080_CTRL_INTERNAL_NVLINK_GET_LINK_AND_CLOCK_INFO_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 linkMask, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NvU32 nvlinkRefClkSpeedKHz;
|
||||
NvBool bSublinkStateInst; // whether instantaneous sublink state is needed
|
||||
NV2080_CTRL_INTERNAL_NVLINK_GET_LINK_AND_CLOCK_VALUES linkInfo[NV2080_CTRL_INTERNAL_NVLINK_MAX_ARR_SIZE];
|
||||
@@ -5281,7 +5278,74 @@ typedef struct NV2080_CTRL_INTERNAL_SEND_CMC_LIBOS_BUFFER_INFO_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 logBufferAddr, 8);
|
||||
} NV2080_CTRL_INTERNAL_SEND_CMC_LIBOS_BUFFER_INFO_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_INTERNAL_SEND_CMC_LIBOS_BUFFER_INFO (0x20800a89U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_INTERNAL_SEND_CMC_LIBOS_BUFFER_INFO_PARAMS_MESSAGE_ID" */
|
||||
#define NV2080_CTRL_CMD_INTERNAL_SEND_CMC_LIBOS_BUFFER_INFO (0x20800a89U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_INTERNAL_SEND_CMC_LIBOS_BUFFER_INFO_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_INTERNAL_HFRP_INSTANCE_SIZE 5
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_INTERNAL_GPU_GET_HFRP_INFO
|
||||
*
|
||||
* This command retrives HFRP info from physical RM
|
||||
*
|
||||
* [Out] hfrpPrivBase
|
||||
* HFRP device PRIV base
|
||||
* [Out] hfrpIntrCtrlReg
|
||||
* HFRP intr control base
|
||||
*
|
||||
*/
|
||||
#define NV2080_CTRL_INTERNAL_GPU_GET_HFRP_INFO_PARAMS_MESSAGE_ID (0x7AU)
|
||||
|
||||
typedef struct NV2080_CTRL_INTERNAL_GPU_GET_HFRP_INFO_PARAMS {
|
||||
NvU32 hfrpPrivBase[NV2080_CTRL_INTERNAL_HFRP_INSTANCE_SIZE];
|
||||
NvU32 hfrpIntrCtrlReg[NV2080_CTRL_INTERNAL_HFRP_INSTANCE_SIZE];
|
||||
} NV2080_CTRL_INTERNAL_GPU_GET_HFRP_INFO_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_INTERNAL_GPU_GET_HFRP_INFO (0x20800a7aU) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_INTERNAL_GPU_GET_HFRP_INFO_PARAMS_MESSAGE_ID" */
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_INTERNAL_SEND_CMC_UMD_API_OP_PARAMS
|
||||
*
|
||||
* Send UMD API operations to CMC
|
||||
*
|
||||
* [in] opType
|
||||
* UMD Task construct/destroy operation to perform on CMC
|
||||
* [in] handle
|
||||
* Handle of CmcUmdApi object for CMC to identify
|
||||
* [in] ringBufferSize
|
||||
* Size of ring buffer in bytes
|
||||
* [in] ringBufferOffset
|
||||
* Offset of ring buffer
|
||||
* [in] userdPa
|
||||
* PA of USERD memory
|
||||
* [in] userdVa
|
||||
* VA of USERD memory
|
||||
* [in] instBlkAddr
|
||||
* Address of instance block holding VASpace PDB info
|
||||
* [in] instBlkAperture
|
||||
* Aperture of instance block
|
||||
* [out] workSubmitToken
|
||||
* WorkSubmitToken generated by CMC for UMD_API object
|
||||
*
|
||||
*/
|
||||
#define NV2080_CTRL_INTERNAL_SEND_CMC_UMD_API_OP_PARAMS_MESSAGE_ID (0x7CU)
|
||||
|
||||
typedef struct NV2080_CTRL_INTERNAL_SEND_CMC_UMD_API_OP_PARAMS {
|
||||
NvU32 opType;
|
||||
NvU32 ringBufferSize;
|
||||
NV_DECLARE_ALIGNED(NvU64 ringBufferOffset, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 userdPa, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 userdVa, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 instBlkAddr, 8);
|
||||
NvU8 instBlkAperture;
|
||||
NvU8 userdAperture;
|
||||
NvU32 workSubmitToken;
|
||||
NvU32 cmcHandle;
|
||||
} NV2080_CTRL_INTERNAL_SEND_CMC_UMD_API_OP_PARAMS;
|
||||
|
||||
#define NV2080_INTERNAL_CMC_UMD_API_TASK_CONSTRUCT 0x0U
|
||||
#define NV2080_INTERNAL_CMC_UMD_API_TASK_DESTROY 0x1U
|
||||
|
||||
#define NV2080_CTRL_CMD_INTERNAL_SEND_CMC_UMD_API_OP (0x20800a7cU) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_INTERNAL_SEND_CMC_UMD_API_OP_PARAMS_MESSAGE_ID" */
|
||||
|
||||
|
||||
/*
|
||||
@@ -5317,4 +5381,32 @@ typedef struct NV2080_CTRL_INTERNAL_STATIC_GR_GET_SM_ISSUE_RATE_MODIFIER_V2_PARA
|
||||
|
||||
typedef NV2080_CTRL_INTERNAL_STATIC_GR_GET_SM_ISSUE_RATE_MODIFIER_V2_PARAMS NV2080_CTRL_INTERNAL_STATIC_KGR_GET_SM_ISSUE_RATE_MODIFIER_V2_PARAMS;
|
||||
|
||||
|
||||
/*!
|
||||
* @ref NV2080_CTRL_CMD_GR_GET_SM_ISSUE_THROTTLE_CTRL
|
||||
*
|
||||
* This command returns the throttle controls for all the GR engines.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct NV2080_CTRL_INTERNAL_STATIC_GR_SM_ISSUE_THROTTLE_CTRL {
|
||||
NvU32 smIssueThrottleCtrlListSize;
|
||||
NV2080_CTRL_GR_SM_ISSUE_THROTTLE_CTRL smIssueThrottleCtrlList[NV2080_CTRL_GR_SM_ISSUE_THROTTLE_CTRL_MAX_LIST_SIZE];
|
||||
} NV2080_CTRL_INTERNAL_STATIC_GR_SM_ISSUE_THROTTLE_CTRL;
|
||||
|
||||
#define NV2080_CTRL_INTERNAL_STATIC_GR_GET_SM_ISSUE_THROTTLE_CTRL_PARAMS_MESSAGE_ID (0x04U)
|
||||
|
||||
typedef struct NV2080_CTRL_INTERNAL_STATIC_GR_GET_SM_ISSUE_THROTTLE_CTRL_PARAMS {
|
||||
NV2080_CTRL_INTERNAL_STATIC_GR_SM_ISSUE_THROTTLE_CTRL smIssueThrottleCtrl[NV2080_CTRL_INTERNAL_GR_MAX_ENGINES];
|
||||
} NV2080_CTRL_INTERNAL_STATIC_GR_GET_SM_ISSUE_THROTTLE_CTRL_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_INTERNAL_STATIC_KGR_GET_SM_ISSUE_THROTTLE_CTRL (0x20800b05) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_INTERNAL_2_INTERFACE_ID << 8) | NV2080_CTRL_INTERNAL_STATIC_KGR_GET_SM_ISSUE_THROTTLE_CTRL_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_INTERNAL_STATIC_KGR_GET_SM_ISSUE_THROTTLE_CTRL_PARAMS_MESSAGE_ID (0x05U)
|
||||
|
||||
typedef NV2080_CTRL_INTERNAL_STATIC_GR_GET_SM_ISSUE_THROTTLE_CTRL_PARAMS NV2080_CTRL_INTERNAL_STATIC_KGR_GET_SM_ISSUE_THROTTLE_CTRL_PARAMS;
|
||||
|
||||
/* ctrl2080internal_h */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2014-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2014-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -148,6 +148,9 @@ typedef struct NV2080_CTRL_MC_GET_ARCH_INFO_PARAMS {
|
||||
#define NV2080_CTRL_MC_ARCH_INFO_IMPLEMENTATION_GB20B (0x0000000B)
|
||||
|
||||
|
||||
#define NV2080_CTRL_MC_ARCH_INFO_IMPLEMENTATION_GB20C (0x0000000C)
|
||||
|
||||
|
||||
|
||||
/* Valid Chip sub revisions */
|
||||
#define NV2080_CTRL_MC_ARCH_INFO_SUBREVISION_NO_SUBREVISION (0x00000000)
|
||||
@@ -219,7 +222,7 @@ typedef struct NV2080_CTRL_MC_GET_MANUFACTURER_PARAMS {
|
||||
* NVOS_STATUS_ERROR_NOT_SUPPORTED
|
||||
*/
|
||||
|
||||
#define NV2080_CTRL_CMD_MC_CHANGE_REPLAYABLE_FAULT_OWNERSHIP (0x2080170c) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_MC_INTERFACE_ID << 8) | NV2080_CTRL_MC_CHANGE_REPLAYABLE_FAULT_OWNERSHIP_PARAMS_MESSAGE_ID" */
|
||||
#define NV2080_CTRL_CMD_MC_CHANGE_REPLAYABLE_FAULT_OWNERSHIP (0x2080170c) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_MC_INTERFACE_ID << 8) | NV2080_CTRL_MC_CHANGE_REPLAYABLE_FAULT_OWNERSHIP_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_MC_CHANGE_REPLAYABLE_FAULT_OWNERSHIP_PARAMS_MESSAGE_ID (0xCU)
|
||||
|
||||
@@ -314,4 +317,45 @@ typedef struct NV2080_CTRL_MC_GET_STATIC_INTR_TABLE_PARAMS {
|
||||
NV2080_CTRL_MC_STATIC_INTR_ENTRY entries[NV2080_CTRL_MC_GET_STATIC_INTR_TABLE_MAX];
|
||||
} NV2080_CTRL_MC_GET_STATIC_INTR_TABLE_PARAMS;
|
||||
|
||||
|
||||
/*!
|
||||
* Categories of interrupts.
|
||||
*
|
||||
* Each of these categories get a separate range of interrupt subtrees (top
|
||||
* level bits) corresponding to a set of interrupt leaves.
|
||||
* Interrupt leaves may overlap between two or more categories.
|
||||
* Interrupt leaves may or may not be contiguous.
|
||||
*/
|
||||
typedef enum NV2080_INTR_CATEGORY {
|
||||
NV2080_INTR_CATEGORY_DEFAULT = 0,
|
||||
NV2080_INTR_CATEGORY_ESCHED_DRIVEN_ENGINE = 1,
|
||||
NV2080_INTR_CATEGORY_ESCHED_DRIVEN_ENGINE_NOTIFICATION = 2,
|
||||
NV2080_INTR_CATEGORY_RUNLIST = 3,
|
||||
NV2080_INTR_CATEGORY_RUNLIST_NOTIFICATION = 4,
|
||||
NV2080_INTR_CATEGORY_UVM_OWNED = 5,
|
||||
NV2080_INTR_CATEGORY_UVM_SHARED = 6,
|
||||
NV2080_INTR_CATEGORY_ENUM_COUNT = 7,
|
||||
} NV2080_INTR_CATEGORY;
|
||||
|
||||
#define NV2080_INTR_INVALID_SUBTREE NV_U8_MAX
|
||||
|
||||
typedef struct NV2080_INTR_CATEGORY_SUBTREE_MAP {
|
||||
// Maximum possible 64 subtrees, but 16 is enough for any existing silicon.
|
||||
NV_DECLARE_ALIGNED(NvU64 subtreeMask, 8);
|
||||
} NV2080_INTR_CATEGORY_SUBTREE_MAP;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_MC_GET_INTR_CATEGORY_SUBTREE_MAP
|
||||
*
|
||||
* This command gets a mapping from every interrupt category -> subtrees used from
|
||||
* Host RM.
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_MC_GET_INTR_CATEGORY_SUBTREE_MAP (0x2080170f) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_MC_INTERFACE_ID << 8) | NV2080_CTRL_MC_GET_INTR_CATEGORY_SUBTREE_MAP_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_MC_GET_INTR_CATEGORY_SUBTREE_MAP_PARAMS_MESSAGE_ID (0xFU)
|
||||
|
||||
typedef struct NV2080_CTRL_MC_GET_INTR_CATEGORY_SUBTREE_MAP_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NV2080_INTR_CATEGORY_SUBTREE_MAP subtreeMap[NV2080_INTR_CATEGORY_ENUM_COUNT], 8);
|
||||
} NV2080_CTRL_MC_GET_INTR_CATEGORY_SUBTREE_MAP_PARAMS;
|
||||
|
||||
/* _ctrl2080mc_h_ */
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
//
|
||||
|
||||
#include "ctrl/ctrl2080/ctrl2080base.h"
|
||||
#include "ctrl/ctrl2080/ctrl2080nvlink_common.h"
|
||||
#include "nvcfg_sdk.h"
|
||||
|
||||
/* NV20_SUBDEVICE_XX bus control commands and parameters */
|
||||
@@ -73,8 +74,8 @@ typedef struct NV2080_CTRL_CMD_NVLINK_GET_NVLINK_CAPS_PARAMS {
|
||||
NvU32 discoveredLinkMask;
|
||||
NvU32 enabledLinkMask;
|
||||
|
||||
NV_DECLARE_ALIGNED(NvU64 discoveredLinks, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 enabledLinks, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK discoveredLinks, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK enabledLinks, 8);
|
||||
} NV2080_CTRL_CMD_NVLINK_GET_NVLINK_CAPS_PARAMS;
|
||||
|
||||
/* extract cap bit setting from tbl */
|
||||
@@ -427,9 +428,6 @@ typedef enum NV2080_CTRL_NVLINK_STATUS_L1_THRESHOLD_UNIT {
|
||||
NV2080_CTRL_NVLINK_STATUS_L1_THRESHOLD_UNIT_50US = 1,
|
||||
} NV2080_CTRL_NVLINK_STATUS_L1_THRESHOLD_UNIT;
|
||||
|
||||
#define NV2080_CTRL_NVLINK_MAX_LINKS 32
|
||||
#define NV2080_CTRL_NVLINK_MAX_ARR_SIZE 64
|
||||
|
||||
// NVLink REFCLK types
|
||||
#define NV2080_CTRL_NVLINK_REFCLK_TYPE_INVALID (0x00U)
|
||||
#define NV2080_CTRL_NVLINK_REFCLK_TYPE_NVHS (0x01U)
|
||||
@@ -438,8 +436,10 @@ typedef enum NV2080_CTRL_NVLINK_STATUS_L1_THRESHOLD_UNIT {
|
||||
#define NV2080_CTRL_CMD_NVLINK_GET_NVLINK_STATUS_PARAMS_MESSAGE_ID (0x2U)
|
||||
|
||||
typedef struct NV2080_CTRL_CMD_NVLINK_GET_NVLINK_STATUS_PARAMS {
|
||||
NvU32 enabledLinkMask;
|
||||
NvBool bSublinkStateInst; // whether instantaneous sublink state is needed
|
||||
NvU32 enabledLinkMask; // (This field will be deprecated in the future, use enabledLinks)
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK enabledLinks, 8);
|
||||
NvBool bSublinkStateInst; // whether instantaneous sublink state is needed
|
||||
NvBool bNvleModeEnabled; // whether Nvlink Encryption is enabled or not
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_STATUS_INFO linkInfo[NV2080_CTRL_NVLINK_MAX_ARR_SIZE], 8);
|
||||
} NV2080_CTRL_CMD_NVLINK_GET_NVLINK_STATUS_PARAMS;
|
||||
|
||||
@@ -448,6 +448,8 @@ typedef struct NV2080_CTRL_CMD_NVLINK_GET_NVLINK_STATUS_PARAMS {
|
||||
*
|
||||
* enabledLinkMask
|
||||
* This field specifies the mask of available links on this subdevice.
|
||||
* bNvleModeEnabled
|
||||
* This field indicates if Nvlink Encryption is enabled or not.
|
||||
* linkInfo
|
||||
* This structure stores the per-link status of different NVLink parameters. The link is identified using an index.
|
||||
*
|
||||
@@ -689,7 +691,10 @@ typedef struct NV2080_CTRL_NVLINK_COMMON_ERR_INFO {
|
||||
/*
|
||||
* NV2080_CTRL_NVLINK_GET_ERR_INFO_PARAMS
|
||||
*
|
||||
* linkMask
|
||||
* linkMask (This field will be deprecated in the future, please use links)
|
||||
* Returns the mask of links enabled
|
||||
*
|
||||
* links
|
||||
* Returns the mask of links enabled
|
||||
*
|
||||
* linkErrInfo
|
||||
@@ -711,6 +716,7 @@ typedef struct NV2080_CTRL_NVLINK_COMMON_ERR_INFO {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_GET_ERR_INFO_PARAMS {
|
||||
NvU32 linkMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV2080_CTRL_NVLINK_ERR_INFO linkErrInfo[NV2080_CTRL_NVLINK_MAX_ARR_SIZE];
|
||||
NvU32 ioctrlMask;
|
||||
NV2080_CTRL_NVLINK_COMMON_ERR_INFO commonErrInfo[NV2080_CTRL_NVLINK_MAX_IOCTRLS];
|
||||
@@ -784,7 +790,10 @@ typedef struct NV2080_CTRL_NVLINK_GET_ERR_INFO_PARAMS {
|
||||
* Mask of counter types to be queried
|
||||
* One of NV2080_CTRL_NVLINK_COUNTERS_TYPE_* macros
|
||||
*
|
||||
* [in] linkMask
|
||||
* [in] linkMask (This field will be deprecated in the future, please use links)
|
||||
* Mask of links to be queried
|
||||
*
|
||||
* [in] links
|
||||
* Mask of links to be queried
|
||||
*
|
||||
* [out] counters
|
||||
@@ -802,7 +811,7 @@ typedef struct NV2080_CTRL_NVLINK_GET_ERR_INFO_PARAMS {
|
||||
* [out] bRx1TlCounterOverflow
|
||||
* This boolean is set to NV_TRUE if RX Counter 1 has rolled over.
|
||||
*
|
||||
* [out] value
|
||||
* [out] value
|
||||
* This array contains the error counts for each error type as requested from
|
||||
* the counterMask. The array indexes correspond to the mask bits one-to-one.
|
||||
*/
|
||||
@@ -819,6 +828,7 @@ typedef struct NV2080_CTRL_NVLINK_GET_COUNTERS_VALUES {
|
||||
typedef struct NV2080_CTRL_NVLINK_GET_COUNTERS_PARAMS {
|
||||
NvU32 counterMask;
|
||||
NV_DECLARE_ALIGNED(NvU64 linkMask, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_GET_COUNTERS_VALUES counters[NV2080_CTRL_NVLINK_MAX_ARR_SIZE], 8);
|
||||
} NV2080_CTRL_NVLINK_GET_COUNTERS_PARAMS;
|
||||
|
||||
@@ -829,7 +839,11 @@ typedef struct NV2080_CTRL_NVLINK_GET_COUNTERS_PARAMS {
|
||||
* NV2080_CTRL_CMD_NVLINK_CLEAR_COUNTERS
|
||||
* This command clears/resets the counters for the specified types.
|
||||
*
|
||||
* [in] linkMask
|
||||
* [in] linkMask (This field will be deprecated in the future, please use links)
|
||||
* This parameter specifies for which links we want to clear the
|
||||
* counters.
|
||||
*
|
||||
* [in] links
|
||||
* This parameter specifies for which links we want to clear the
|
||||
* counters.
|
||||
*
|
||||
@@ -849,6 +863,7 @@ typedef struct NV2080_CTRL_NVLINK_GET_COUNTERS_PARAMS {
|
||||
typedef struct NV2080_CTRL_NVLINK_CLEAR_COUNTERS_PARAMS {
|
||||
NvU32 counterMask;
|
||||
NV_DECLARE_ALIGNED(NvU64 linkMask, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
} NV2080_CTRL_NVLINK_CLEAR_COUNTERS_PARAMS;
|
||||
|
||||
|
||||
@@ -1006,7 +1021,10 @@ typedef struct NV2080_CTRL_NVLINK_CLEAR_COUNTERS_PARAMS {
|
||||
* NV2080_CTRL_CMD_NVLINK_GET_COUNTERS_V2
|
||||
* This command gets the counts for different counter types.
|
||||
*
|
||||
* [in] linkMask
|
||||
* [in] linkMask (This field will be deprecated in the future, please use links)
|
||||
* Mask of links to be queried
|
||||
*
|
||||
* [in] links
|
||||
* Mask of links to be queried
|
||||
*
|
||||
* [in] counterMask
|
||||
@@ -1027,6 +1045,7 @@ typedef struct NV2080_CTRL_NVLINK_COUNTERS_V2_VALUES {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_GET_COUNTERS_V2_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 linkMask, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 counterMask[NV2080_CTRL_NVLINK_COUNTER_MAX_GROUPS], 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_COUNTERS_V2_VALUES counter[NV2080_CTRL_NVLINK_MAX_ARR_SIZE][NV2080_CTRL_NVLINK_COUNTER_MAX_COUNTERS_PER_LINK_IN_REQ], 8);
|
||||
} NV2080_CTRL_NVLINK_GET_COUNTERS_V2_PARAMS;
|
||||
@@ -1036,7 +1055,11 @@ typedef struct NV2080_CTRL_NVLINK_GET_COUNTERS_V2_PARAMS {
|
||||
* NV2080_CTRL_CMD_NVLINK_CLEAR_COUNTERS_V2
|
||||
* This command clears/resets the counters for the specified types.
|
||||
*
|
||||
* [in] linkMask
|
||||
* [in] linkMask (This field will be deprecated in the future, please use links)
|
||||
* This parameter specifies for which links we want to clear the
|
||||
* counters.
|
||||
*
|
||||
* [in] links
|
||||
* This parameter specifies for which links we want to clear the
|
||||
* counters.
|
||||
*
|
||||
@@ -1049,6 +1072,7 @@ typedef struct NV2080_CTRL_NVLINK_GET_COUNTERS_V2_PARAMS {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_CLEAR_COUNTERS_V2_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 linkMask, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 counterMask[NV2080_CTRL_NVLINK_COUNTER_MAX_GROUPS], 8);
|
||||
} NV2080_CTRL_NVLINK_CLEAR_COUNTERS_V2_PARAMS;
|
||||
#define NV2080_CTRL_CMD_NVLINK_CLEAR_COUNTERS_V2 (0x20803051U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8 | NV2080_CTRL_NVLINK_CLEAR_COUNTERS_V2_PARAMS_MESSAGE_ID)" */
|
||||
@@ -1058,8 +1082,12 @@ typedef struct NV2080_CTRL_NVLINK_CLEAR_COUNTERS_V2_PARAMS {
|
||||
* This command causes all the same actions to occur as if the related
|
||||
* error were to occur, either fatal or recoverable.
|
||||
*
|
||||
* [in] linkMask size: 32 bits
|
||||
* [in] linkMask (This field will be deprecated in the future, please use links)
|
||||
* Controls which links to apply error injection to.
|
||||
*
|
||||
* [in] links
|
||||
* Controls which links to apply error injection to.
|
||||
*
|
||||
* [in] bFatal
|
||||
* This parameter specifies that the error should be fatal.
|
||||
*
|
||||
@@ -1070,6 +1098,7 @@ typedef struct NV2080_CTRL_NVLINK_CLEAR_COUNTERS_V2_PARAMS {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_INJECT_ERROR_PARAMS {
|
||||
NvU32 linkMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NvBool bFatalError;
|
||||
} NV2080_CTRL_NVLINK_INJECT_ERROR_PARAMS;
|
||||
|
||||
@@ -1148,8 +1177,12 @@ typedef struct NV2080_CTRL_NVLINK_HW_ERROR_INJECT_CFG {
|
||||
* This command causes all the same actions to occur as if the related
|
||||
* error were to occur, either fatal or recoverable.
|
||||
*
|
||||
* [in] linkMask size: 64 bits
|
||||
* [in] linkMask size: 64 bits (This field will be deprecated in the future, please use links)
|
||||
* Mask of the links to be configured.
|
||||
*
|
||||
* [in] links
|
||||
* Mask of the links to be configured.
|
||||
*
|
||||
* [in] errCfg
|
||||
* This parameter specifies that the error configurations.
|
||||
*/
|
||||
@@ -1158,6 +1191,7 @@ typedef struct NV2080_CTRL_NVLINK_HW_ERROR_INJECT_CFG {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_SET_HW_ERROR_INJECT_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 linkMask, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_HW_ERROR_INJECT_CFG errCfg[NV2080_CTRL_NVLINK_MAX_ARR_SIZE], 8);
|
||||
} NV2080_CTRL_NVLINK_SET_HW_ERROR_INJECT_PARAMS;
|
||||
|
||||
@@ -1199,8 +1233,12 @@ typedef struct NV2080_CTRL_NVLINK_HW_ERROR_INJECT_INFO {
|
||||
* NV2080_CTRL_CMD_NVLINK_GET_HW_ERROR_INJECT
|
||||
* This command get all the current nvlink error config
|
||||
*
|
||||
* [in] linkMask size: 64 bits
|
||||
* [in] linkMask size: 64 bits (This field will be deprecated in the future, please use links)
|
||||
* Mask of the links to be configured.
|
||||
*
|
||||
* [in] links
|
||||
* Mask of the links to be configured.
|
||||
*
|
||||
* [in] errCfg
|
||||
* This parameter specifies that the error configurations.
|
||||
*/
|
||||
@@ -1209,6 +1247,7 @@ typedef struct NV2080_CTRL_NVLINK_HW_ERROR_INJECT_INFO {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_GET_HW_ERROR_INJECT_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 linkMask, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV2080_CTRL_NVLINK_HW_ERROR_INJECT_INFO errInfo[NV2080_CTRL_NVLINK_MAX_ARR_SIZE];
|
||||
} NV2080_CTRL_NVLINK_GET_HW_ERROR_INJECT_PARAMS;
|
||||
|
||||
@@ -1218,8 +1257,12 @@ typedef struct NV2080_CTRL_NVLINK_GET_HW_ERROR_INJECT_PARAMS {
|
||||
* NV2080_CTRL_CMD_NVLINK_GET_ERROR_RECOVERIES
|
||||
* This command gets the number of successful error recoveries
|
||||
*
|
||||
* [in] linkMask size: 32 bits
|
||||
* [in] linkMask size: 32 bits (This field will be deprecated in the future, please use links)
|
||||
* This parameter controls which links to get recoveries for.
|
||||
*
|
||||
* [in] links
|
||||
* This parameter controls which links to get recoveries for.
|
||||
*
|
||||
* [out] numRecoveries
|
||||
* This parameter specifies the number of successful per link error recoveries
|
||||
*/
|
||||
@@ -1229,6 +1272,7 @@ typedef struct NV2080_CTRL_NVLINK_GET_HW_ERROR_INJECT_PARAMS {
|
||||
|
||||
typedef struct NV2080_CTRL_CMD_NVLINK_GET_ERROR_RECOVERIES_PARAMS {
|
||||
NvU32 linkMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NvU32 numRecoveries[NV2080_CTRL_NVLINK_MAX_ARR_SIZE];
|
||||
} NV2080_CTRL_CMD_NVLINK_GET_ERROR_RECOVERIES_PARAMS;
|
||||
|
||||
@@ -1640,9 +1684,14 @@ typedef struct NV2080_CTRL_CMD_NVLINK_SETUP_EOM_PARAMS {
|
||||
* This command sets the mask of links associated with the GPU
|
||||
* to a target power state
|
||||
*
|
||||
* [in] linkMask
|
||||
* [in] linkMask (This field will be deprecated in the future, please use links)
|
||||
* Mask of links that will be put to desired power state
|
||||
* Note: In Turing RM supports only tansitions into/out of L2
|
||||
*
|
||||
* [in] links
|
||||
* Mask of links that will be put to desired power state
|
||||
* Note: In Turing RM supports only tansitions into/out of L2
|
||||
*
|
||||
* [in] powerState
|
||||
* Target power state to which the links will transition
|
||||
* This can be any one of NV2080_CTRL_NVLINK_POWER_STATE_* states
|
||||
@@ -1669,6 +1718,7 @@ typedef struct NV2080_CTRL_CMD_NVLINK_SETUP_EOM_PARAMS {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_SET_POWER_STATE_PARAMS {
|
||||
NvU32 linkMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NvU32 powerState;
|
||||
} NV2080_CTRL_NVLINK_SET_POWER_STATE_PARAMS;
|
||||
|
||||
@@ -1898,7 +1948,11 @@ typedef struct NV2080_CTRL_NVLINK_LINK_ECC_ERROR {
|
||||
* Control to get the values of ECC ERRORS
|
||||
*
|
||||
* Parameters:
|
||||
* linkMask [IN]
|
||||
* linkMask [IN] (This field will be deprecated in the future, please use links)
|
||||
* Links on which the ECC error data requested
|
||||
* A valid link/port mask returned by the port masks returned by
|
||||
* NVSWITCH_GET_INFO
|
||||
* links [IN]
|
||||
* Links on which the ECC error data requested
|
||||
* A valid link/port mask returned by the port masks returned by
|
||||
* NVSWITCH_GET_INFO
|
||||
@@ -1911,6 +1965,7 @@ typedef struct NV2080_CTRL_NVLINK_LINK_ECC_ERROR {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_GET_NVLINK_ECC_ERRORS_PARAMS {
|
||||
NvU32 linkMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV2080_CTRL_NVLINK_LINK_ECC_ERROR errorLink[NV2080_CTRL_NVLINK_MAX_ARR_SIZE];
|
||||
} NV2080_CTRL_NVLINK_GET_NVLINK_ECC_ERRORS_PARAMS;
|
||||
|
||||
@@ -1939,7 +1994,9 @@ typedef struct NV2080_CTRL_NVLINK_GET_NVLINK_ECC_ERRORS_PARAMS {
|
||||
* [in] counterMask
|
||||
* Mask of counter types to be queried
|
||||
* One of NV2080_CTRL_NVLINK_READ_TP_COUNTERS_TYPE_* macros
|
||||
* [in] linkMask
|
||||
* [in] linkMask (This field will be deprecated in the future, please use links)
|
||||
* Mask of links to be queried
|
||||
* [in] links
|
||||
* Mask of links to be queried
|
||||
* [out] value
|
||||
* Throughput counter value returned
|
||||
@@ -1980,6 +2037,7 @@ typedef struct NV2080_CTRL_NVLINK_READ_TP_COUNTERS_VALUES {
|
||||
typedef struct NV2080_CTRL_NVLINK_READ_TP_COUNTERS_PARAMS {
|
||||
NvU16 counterMask;
|
||||
NV_DECLARE_ALIGNED(NvU64 linkMask, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_READ_TP_COUNTERS_VALUES counters[NV2080_CTRL_NVLINK_MAX_ARR_SIZE], 8);
|
||||
} NV2080_CTRL_NVLINK_READ_TP_COUNTERS_PARAMS;
|
||||
|
||||
@@ -2105,7 +2163,9 @@ typedef struct NV2080_CTRL_NVLINK_PHY_REFRESH_STATUS_INFO {
|
||||
* NV2080_CTRL_CMD_NVLINK_GET_REFRESH_COUNTERS
|
||||
*
|
||||
*
|
||||
* [In] linkMask
|
||||
* [In] linkMask (This field will be deprecated in the future, please use links)
|
||||
* Specifies for which links we want to read the counters
|
||||
* [In] links
|
||||
* Specifies for which links we want to read the counters
|
||||
* [Out] refreshCountPass
|
||||
* Count of number of times PHY refresh pass
|
||||
@@ -2116,6 +2176,7 @@ typedef struct NV2080_CTRL_NVLINK_PHY_REFRESH_STATUS_INFO {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_GET_REFRESH_COUNTERS_PARAMS {
|
||||
NvU32 linkMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV2080_CTRL_NVLINK_PHY_REFRESH_STATUS_INFO refreshCount[NV2080_CTRL_NVLINK_MAX_LINK_COUNT];
|
||||
} NV2080_CTRL_NVLINK_GET_REFRESH_COUNTERS_PARAMS;
|
||||
|
||||
@@ -2129,13 +2190,16 @@ typedef struct NV2080_CTRL_NVLINK_GET_REFRESH_COUNTERS_PARAMS {
|
||||
* NV2080_CTRL_CMD_NVLINK_CLEAR_REFRESH_COUNTERS
|
||||
*
|
||||
*
|
||||
* [In] linkMask
|
||||
* [In] linkMask (This field will be deprecated in the future, please use links)
|
||||
* Specifies for which links we want to clear the counters
|
||||
* [In] links
|
||||
* Specifies for which links we want to clear the counters
|
||||
*/
|
||||
#define NV2080_CTRL_NVLINK_CLEAR_REFRESH_COUNTERS_PARAMS_MESSAGE_ID (0x29U)
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_CLEAR_REFRESH_COUNTERS_PARAMS {
|
||||
NvU32 linkMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
} NV2080_CTRL_NVLINK_CLEAR_REFRESH_COUNTERS_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_CLEAR_REFRESH_COUNTERS (0x20803029U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_CLEAR_REFRESH_COUNTERS_PARAMS_MESSAGE_ID" */
|
||||
@@ -2164,27 +2228,50 @@ typedef struct NV2080_CTRL_NVLINK_GET_SET_NVSWITCH_FLA_ADDR_PARAMS {
|
||||
*
|
||||
* Syncs the different link masks and vbios defined values between CPU-RM and GSP-RM
|
||||
*
|
||||
* [in] discoveredLinks
|
||||
* [in] discoveredLinks (This field will be deprecated in the future, please use discoveredLinkMask)
|
||||
* Mask of links discovered from IOCTRLs
|
||||
*
|
||||
* [in] connectedLinksMask
|
||||
* [in] discoveredLinkMask
|
||||
* Mask of links discovered from IOCTRLs
|
||||
*
|
||||
* [in] connectedLinksMask (This field will be deprecated in the future, please use connectedLinks)
|
||||
* Mask of links which are connected (remote present)
|
||||
*
|
||||
* [in] bridgeSensableLinks
|
||||
* [in] connectedLinks
|
||||
* Mask of links which are connected (remote present)
|
||||
*
|
||||
* [in] bridgeSensableLinks (This field will be deprecated in the future, please use bridgeSensableLinkMask)
|
||||
* Mask of links whose remote endpoint presence can be sensed
|
||||
*
|
||||
* [in] bridgedLinks
|
||||
* [in] bridgeSensableLinkMask
|
||||
* Mask of links whose remote endpoint presence can be sensed
|
||||
*
|
||||
* [in] bridgedLinks (This field will be deprecated in the future, please use bridgedLinkMask)
|
||||
* Mask of links which are connected (remote present)
|
||||
* Same as connectedLinksMask, but also tracks the case where link
|
||||
* is connected but marginal and could not initialize
|
||||
*
|
||||
* [out] initDisabledLinksMask
|
||||
* [in] bridgedLinkMask
|
||||
* Mask of links which are connected (remote present)
|
||||
* Same as connectedLinks, but also tracks the case where link
|
||||
* is connected but marginal and could not initialize
|
||||
*
|
||||
* [out] initDisabledLinksMask (This field will be deprecated in the future, please use initDisabledLinks)
|
||||
* Mask of links for which initialization is disabled
|
||||
*
|
||||
* [out] vbiosDisabledLinkMask
|
||||
* [out] initDisabledLinks
|
||||
* Mask of links for which initialization is disabled
|
||||
*
|
||||
* [out] vbiosDisabledLinkMask (This field will be deprecated in the future, please use vbiosDisabledLinks)
|
||||
* Mask of links disabled in the VBIOS
|
||||
*
|
||||
* [out] initializedLinks
|
||||
* [out] vbiosDisabledLinks
|
||||
* Mask of links disabled in the VBIOS
|
||||
*
|
||||
* [out] initializedLinks (This field will be deprecated in the future, please use initializedLinkMask)
|
||||
* Mask of initialized links
|
||||
*
|
||||
* [out] initializedLinkMask
|
||||
* Mask of initialized links
|
||||
*
|
||||
* [out] bEnableTrainingAtLoad
|
||||
@@ -2198,12 +2285,19 @@ typedef struct NV2080_CTRL_NVLINK_GET_SET_NVSWITCH_FLA_ADDR_PARAMS {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_SYNC_LINK_MASKS_AND_VBIOS_INFO_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 discoveredLinks, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK discoveredLinkMasks, 8);
|
||||
NvU32 connectedLinksMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK connectedLinks, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 bridgeSensableLinks, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK bridgeSensableLinkMasks, 8);
|
||||
NvU32 bridgedLinks;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK bridgedLinkMasks, 8);
|
||||
NvU32 initDisabledLinksMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK initDisabledLinks, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 vbiosDisabledLinkMask, 8);
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK vbiosDisabledLinks, 8);
|
||||
NvU32 initializedLinks;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK initializedLinkMasks, 8);
|
||||
NvBool bEnableTrainingAtLoad;
|
||||
NvBool bEnableSafeModeAtLoad;
|
||||
} NV2080_CTRL_NVLINK_SYNC_LINK_MASKS_AND_VBIOS_INFO_PARAMS;
|
||||
@@ -2224,7 +2318,10 @@ typedef struct NV2080_CTRL_NVLINK_SYNC_LINK_MASKS_AND_VBIOS_INFO_PARAMS {
|
||||
*
|
||||
* Process the init disabled NVLinks and filter those out
|
||||
*
|
||||
* [in/out] initDisabledLinksMask
|
||||
* [in/out] initDisabledLinksMask (This field will be deprecated in the future, please use initDisabledLinks)
|
||||
* Mask of links initdisabled on a given GPU
|
||||
*
|
||||
* [in/out] initDisabledLinks
|
||||
* Mask of links initdisabled on a given GPU
|
||||
*
|
||||
* [in] bSkipHwNvlinkDisable
|
||||
@@ -2235,6 +2332,7 @@ typedef struct NV2080_CTRL_NVLINK_SYNC_LINK_MASKS_AND_VBIOS_INFO_PARAMS {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_PROCESS_INIT_DISABLED_LINKS_PARAMS {
|
||||
NvU32 initDisabledLinksMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK initDisabledLinks, 8);
|
||||
NvBool bSkipHwNvlinkDisable;
|
||||
} NV2080_CTRL_NVLINK_PROCESS_INIT_DISABLED_LINKS_PARAMS;
|
||||
|
||||
@@ -2543,18 +2641,7 @@ typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_PAOS_PARAMS {
|
||||
} NV2080_CTRL_NVLINK_PRM_ACCESS_PAOS_PARAMS;
|
||||
|
||||
|
||||
/*!
|
||||
*
|
||||
* NV2080_CTRL_CMD_NVLINK_ENABLE_LINKS
|
||||
*
|
||||
* Nvlink Fatal Error Recovery
|
||||
* This command accepts no parameters.
|
||||
*
|
||||
*/
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_FATAL_ERROR_RECOVERY (0x20803048U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | 0x48" */
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_PLTC (0x20803053U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_PLTC_PARAMS_MESSAGE_ID" */
|
||||
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_PLTC (0x20803053U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_PLTC_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_NVLINK_PRM_ACCESS_PLTC_PARAMS_MESSAGE_ID (0x53U)
|
||||
|
||||
@@ -3120,6 +3207,31 @@ typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_PLIB_PARAMS {
|
||||
NvU8 split_num;
|
||||
} NV2080_CTRL_NVLINK_PRM_ACCESS_PLIB_PARAMS;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_NVLINK_GET_PLATFORM_INFO_PARAMS
|
||||
*
|
||||
* This command returns platform-specific information related to the GPU's NVLink setup.
|
||||
*
|
||||
* ibGuid
|
||||
* Infiniband GUID reported by platform (for Blackwell, ibGuid is 8 bytes so indices 8-15 are zero)
|
||||
* rackGuid
|
||||
* GUID of the rack containing this GPU (for Blackwell rackGuid is 13 bytes so indices 13-15 are zero)
|
||||
* chassisPhysicalSlotNumber
|
||||
* The slot number in the rack containing this GPU (includes switches)
|
||||
* computeSlotIndex
|
||||
* The index within the compute slots in the rack containing this GPU (does not include switches)
|
||||
* nodeIndex
|
||||
* Index of the node within the slot containing this GPU
|
||||
* peerType
|
||||
* Platform indicated NVLink-peer type (e.g. switch present or not)
|
||||
* moduleId
|
||||
* ID of this GPU within the node
|
||||
* nvlinkSignalingProtocol
|
||||
* signaling protocol (xdr/bidir)
|
||||
* lanesPerLink
|
||||
* lanes per link encoding (x1/x2)
|
||||
*/
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_GET_PLATFORM_INFO (0x20803083U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_GET_PLATFORM_INFO_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_NVLINK_GET_PLATFORM_INFO_PARAMS_MESSAGE_ID (0x83U)
|
||||
@@ -3132,6 +3244,8 @@ typedef struct NV2080_CTRL_NVLINK_GET_PLATFORM_INFO_PARAMS {
|
||||
NvU8 nodeIndex;
|
||||
NvU8 peerType;
|
||||
NvU8 moduleId;
|
||||
NvU8 nvlinkSignalingProtocol;
|
||||
NvU8 lanesPerLink;
|
||||
} NV2080_CTRL_NVLINK_GET_PLATFORM_INFO_PARAMS;
|
||||
|
||||
/*
|
||||
@@ -3146,15 +3260,15 @@ typedef struct NV2080_CTRL_NVLINK_UPHY_CLN_CMD {
|
||||
NvU16 address;
|
||||
} NV2080_CTRL_NVLINK_UPHY_CLN_CMD;
|
||||
|
||||
#define NV2080_CTRL_NVLINK_BLACKWELL_MAX_LINKS 18U
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_NVLINK_READ_UPHY_CLN
|
||||
*
|
||||
*
|
||||
* This command retrieves the land id cln select, lane id, and pll index.
|
||||
*
|
||||
* [in] linkMask
|
||||
* [in] linkMask (This field will be deprecated in the future, please use links)
|
||||
* Mask of links whose uphy should be read
|
||||
* [in] links
|
||||
* Mask of links whose uphy should be read
|
||||
* [in] uphyCmd
|
||||
* Array of input data (pll index and address) for each link,
|
||||
@@ -3174,14 +3288,15 @@ typedef struct NV2080_CTRL_NVLINK_UPHY_CLN_CMD {
|
||||
* NV_ERR_TIMEOUT
|
||||
* If a timeout occurred waiting for minion response
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_NVLINK_READ_UPHY_CLN (0x20803084U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_READ_UPHY_CLN_REG_PARAMS_MESSAGE_ID" */
|
||||
#define NV2080_CTRL_CMD_NVLINK_READ_UPHY_CLN (0x20803084U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_READ_UPHY_CLN_REG_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_NVLINK_READ_UPHY_CLN_REG_PARAMS_MESSAGE_ID (0x84U)
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_READ_UPHY_CLN_REG_PARAMS {
|
||||
NvU32 linkMask;
|
||||
NV2080_CTRL_NVLINK_UPHY_CLN_CMD uphyCmd[NV2080_CTRL_NVLINK_BLACKWELL_MAX_LINKS];
|
||||
NvU32 data[NV2080_CTRL_NVLINK_BLACKWELL_MAX_LINKS];
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV2080_CTRL_NVLINK_UPHY_CLN_CMD uphyCmd[NV2080_CTRL_NVLINK_MAX_LINKS];
|
||||
NvU32 data[NV2080_CTRL_NVLINK_MAX_LINKS];
|
||||
} NV2080_CTRL_NVLINK_READ_UPHY_CLN_REG_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_NVLINK_SUPPORTED_MAX_BW_MODE_COUNT 23U
|
||||
@@ -3285,6 +3400,8 @@ typedef struct NV2080_CTRL_NVLINK_GET_LOCAL_DEVICE_INFO_PARAMS {
|
||||
*
|
||||
* This command is used to inject NVL5 ERROR_INJECT_V2 commands
|
||||
*
|
||||
* [in] links
|
||||
* link mask of which links to inject the error on
|
||||
* [out]
|
||||
* Error Types to be injected
|
||||
*
|
||||
@@ -3329,6 +3446,7 @@ typedef enum NV2080_CTRL_NVLINK_INJECT_SW_ERROR_SEVERITY {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_INJECT_SW_ERROR_PARAMS {
|
||||
NvU32 linkMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV2080_CTRL_NVLINK_INJECT_SW_ERROR_SEVERITY severity;
|
||||
} NV2080_CTRL_NVLINK_INJECT_SW_ERROR_PARAMS;
|
||||
|
||||
@@ -3420,6 +3538,7 @@ typedef struct NV2080_CTRL_NVLINK_L1_FORCE_CONFIG {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_CONFIGURE_L1_TOGGLE_PARAMS {
|
||||
NvU32 linkMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV2080_CTRL_NVLINK_L1_FORCE_CONFIG config;
|
||||
} NV2080_CTRL_NVLINK_CONFIGURE_L1_TOGGLE_PARAMS;
|
||||
|
||||
@@ -3429,6 +3548,7 @@ typedef struct NV2080_CTRL_NVLINK_CONFIGURE_L1_TOGGLE_PARAMS {
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_GET_L1_TOGGLE_PARAMS {
|
||||
NvU32 linkMask;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_LINK_MASK links, 8);
|
||||
NV2080_CTRL_NVLINK_L1_FORCE_CONFIG config[NV2080_CTRL_NVLINK_MAX_LINKS];
|
||||
} NV2080_CTRL_NVLINK_GET_L1_TOGGLE_PARAMS;
|
||||
|
||||
@@ -3449,6 +3569,75 @@ typedef struct NV2080_CTRL_NVLINK_GET_NVLE_ENCRYPT_EN_INFO_PARAMS {
|
||||
NvBool bEncryptEnSet;
|
||||
} NV2080_CTRL_NVLINK_GET_NVLE_ENCRYPT_EN_INFO_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_NVLINK_PRM_ACCESS_MCSR_DATA_SIZE (0x10U)
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_MCSR (0x20803090U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_MCSR_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_NVLINK_PRM_ACCESS_MCSR_PARAMS_MESSAGE_ID (0x90U)
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_MCSR_PARAMS {
|
||||
NvBool bWrite;
|
||||
NV2080_CTRL_NVLINK_PRM_DATA prm;
|
||||
NvU32 base_address;
|
||||
NvU16 num_addresses;
|
||||
NvU32 data[NV2080_CTRL_NVLINK_PRM_ACCESS_MCSR_DATA_SIZE];
|
||||
} NV2080_CTRL_NVLINK_PRM_ACCESS_MCSR_PARAMS;
|
||||
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_NVLINK_GET_FIRMWARE_VERSION_INFO
|
||||
*
|
||||
* This command is used to get the firmware version info
|
||||
*
|
||||
* [out] firmwareVersion
|
||||
* Array of firmware versions specifying their ucode type, and major/minor/subminor version
|
||||
* [out] chipTypeArch
|
||||
* Chip type arch
|
||||
* [out] numValidEntries
|
||||
* Number of valid entries in firmwareVersion array
|
||||
*/
|
||||
|
||||
#define NV2080_CTRL_NVLINK_FIRMWARE_VERSION_LENGTH (0x10U)
|
||||
#define NV2080_CTRL_NVLINK_SEMANTIC_VERSION_UCODE_TYPE_MSE (0x01U)
|
||||
#define NV2080_CTRL_NVLINK_SEMANTIC_VERSION_UCODE_TYPE_NETIR (0x02U)
|
||||
#define NV2080_CTRL_NVLINK_SEMANTIC_VERSION_UCODE_TYPE_NETIR_UPHY (0x03U)
|
||||
#define NV2080_CTRL_NVLINK_SEMANTIC_VERSION_UCODE_TYPE_NETIR_CLN (0x04U)
|
||||
#define NV2080_CTRL_NVLINK_SEMANTIC_VERSION_UCODE_TYPE_NETIR_DLN (0x05U)
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_SEMANTIC_VERSION {
|
||||
NvU8 ucodeType;
|
||||
NvU32 major;
|
||||
NvU32 minor;
|
||||
NvU32 subMinor;
|
||||
} NV2080_CTRL_NVLINK_SEMANTIC_VERSION;
|
||||
|
||||
#define NV2080_CTRL_NVLINK_GET_FIRMWARE_VERSION_INFO (0x20803091U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_GET_FIRMWARE_VERSION_INFO_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_NVLINK_GET_FIRMWARE_VERSION_INFO_PARAMS_MESSAGE_ID (0x91U)
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_GET_FIRMWARE_VERSION_INFO_PARAMS {
|
||||
NV2080_CTRL_NVLINK_SEMANTIC_VERSION firmwareVersion[NV2080_CTRL_NVLINK_FIRMWARE_VERSION_LENGTH];
|
||||
NvU8 chipTypeArch;
|
||||
NvU32 numValidEntries;
|
||||
} NV2080_CTRL_NVLINK_GET_FIRMWARE_VERSION_INFO_PARAMS;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_NVLINK_SET_NVLE_ENABLED_STATE
|
||||
*
|
||||
* This command is used to set the NVLE enablement status in GSP-RM
|
||||
*
|
||||
* [Out] bIsNvleEnabled
|
||||
* Boolean to determine if Nvlink Encryption is enabled or not
|
||||
*/
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_SET_NVLE_ENABLED_STATE (0x20803092U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_SET_NVLE_ENABLED_STATE_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_NVLINK_SET_NVLE_ENABLED_STATE_PARAMS_MESSAGE_ID (0x92U)
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_SET_NVLE_ENABLED_STATE_PARAMS {
|
||||
NvBool bIsNvleEnabled;
|
||||
} NV2080_CTRL_NVLINK_SET_NVLE_ENABLED_STATE_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_PTASV2 (0x20803093U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_PTASV2_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_NVLINK_PRM_ACCESS_PTASV2_PARAMS_MESSAGE_ID (0x93U)
|
||||
@@ -3490,17 +3679,17 @@ typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_SLLM_5NM_PARAMS {
|
||||
NvU16 peq_interval_period;
|
||||
} NV2080_CTRL_NVLINK_PRM_ACCESS_SLLM_5NM_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS (0x20803090U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_PARAMS_MESSAGE_ID" */
|
||||
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS (0x20803095U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_NVLINK_PRM_ACCESS_PARAMS_MESSAGE_ID (0x90U)
|
||||
#define NV2080_CTRL_NVLINK_PRM_ACCESS_PARAMS_MESSAGE_ID (0x95U)
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_PARAMS {
|
||||
NV2080_CTRL_NVLINK_PRM_DATA prm;
|
||||
} NV2080_CTRL_NVLINK_PRM_ACCESS_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_PPRM (0x20803091U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_PPRM_PARAMS_MESSAGE_ID" */
|
||||
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_PPRM (0x20803096U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_PPRM_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_NVLINK_PRM_ACCESS_PPRM_PARAMS_MESSAGE_ID (0x91U)
|
||||
#define NV2080_CTRL_NVLINK_PRM_ACCESS_PPRM_PARAMS_MESSAGE_ID (0x96U)
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_PPRM_PARAMS {
|
||||
NvBool bWrite;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2013-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2014-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -23,29 +23,20 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <nvtypes.h>
|
||||
|
||||
//
|
||||
// This file was generated with FINN, an NVIDIA coding tool.
|
||||
// Source file: ctrl/ctrlc06f.finn
|
||||
// Source file: ctrl/ctrl2080/ctrl2080nvlink_common.finn
|
||||
//
|
||||
|
||||
|
||||
|
||||
#define NV2080_CTRL_NVLINK_MAX_LINKS 64
|
||||
#define NV2080_CTRL_NVLINK_MAX_ARR_SIZE 64
|
||||
#define NV2080_CTRL_NVLINK_MAX_MASK_SIZE (0x1) /* finn: Evaluated from "((NV2080_CTRL_NVLINK_MAX_LINKS + 63) / 64)" */
|
||||
|
||||
/* PASCAL_CHANNEL_GPFIFO_A control commands and parameters */
|
||||
|
||||
#include "ctrl/ctrlxxxx.h"
|
||||
|
||||
/* PASCAL_CHANNEL_GPFIFO_B command categories (6bits) */
|
||||
#define NVC06F_CTRL_RESERVED (0x00)
|
||||
|
||||
/*
|
||||
* NVC06F_CTRL_CMD_NULL
|
||||
*
|
||||
* This command does nothing.
|
||||
* This command does not take any parameters.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
*/
|
||||
#define NVC06F_CTRL_CMD_NULL (0xc06f0000) /* finn: Evaluated from "(FINN_PASCAL_CHANNEL_GPFIFO_A_RESERVED_INTERFACE_ID << 8) | 0x0" */
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_LINK_MASK {
|
||||
NvU8 lenMasks;
|
||||
NV_DECLARE_ALIGNED(NvU64 masks[NV2080_CTRL_NVLINK_MAX_MASK_SIZE], 8);
|
||||
} NV2080_CTRL_NVLINK_LINK_MASK;
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2005-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2005-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -890,6 +890,34 @@ typedef struct NV2080_CTRL_PERF_GET_CURRENT_PSTATE_PARAMS {
|
||||
NvU32 currPstate;
|
||||
} NV2080_CTRL_PERF_GET_CURRENT_PSTATE_PARAMS;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_PERF_GET_TEGRA_PERFMON_SAMPLE
|
||||
*
|
||||
* Fetch the busyness of the specified clock domain in percentage
|
||||
* for Tegra chips.
|
||||
*
|
||||
* clkDomain
|
||||
* Clock domain identifier for Tegra platforms.
|
||||
*
|
||||
* clkPercentBusy
|
||||
* Busyness of the specified clock domain in percentage
|
||||
* unit ranging from 0 to 100.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
* NV_ERR_NOT_SUPPORTED
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_PERF_GET_TEGRA_PERFMON_SAMPLE (0x20802069) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_PERF_INTERFACE_ID << 8) | NV2080_CTRL_PERF_GET_TEGRA_PERFMON_SAMPLE_PARAMS_MESSAGE_ID" */
|
||||
|
||||
typedef NvU32 NV2080_CTRL_CLK_DOMAIN_TEGRA;
|
||||
|
||||
#define NV2080_CTRL_PERF_GET_TEGRA_PERFMON_SAMPLE_PARAMS_MESSAGE_ID (0x69U)
|
||||
|
||||
typedef struct NV2080_CTRL_PERF_GET_TEGRA_PERFMON_SAMPLE_PARAMS {
|
||||
NV2080_CTRL_CLK_DOMAIN_TEGRA clkDomain;
|
||||
NvU32 clkPercentBusy;
|
||||
} NV2080_CTRL_PERF_GET_TEGRA_PERFMON_SAMPLE_PARAMS;
|
||||
|
||||
|
||||
/* _ctrl2080perf_h_ */
|
||||
|
||||
|
||||
@@ -212,6 +212,7 @@ typedef struct NV2080_HOST_VGPU_DEVICE {
|
||||
NvU32 gfid;
|
||||
NV_DECLARE_ALIGNED(NvU64 vgpuPciId, 8);
|
||||
NvU32 vgpuDeviceInstanceId;
|
||||
NvU32 accountingPid;
|
||||
NV_DECLARE_ALIGNED(NvU64 fbUsed, 8);
|
||||
NvU32 encoderCapacity;
|
||||
NvU32 eccState;
|
||||
@@ -499,4 +500,23 @@ typedef struct NV2080_CTRL_VGPU_MGR_INTERNAL_SET_VGPU_MIG_TIMESLICE_MODE_PARAMS
|
||||
} NV2080_CTRL_VGPU_MGR_INTERNAL_SET_VGPU_MIG_TIMESLICE_MODE_PARAMS;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SET_POWER_STATE
|
||||
*
|
||||
* This command is used to share the Power State from KMD side to GSP-RM.
|
||||
*
|
||||
* state
|
||||
* This parameter contains Power State Information.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
*/
|
||||
#define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SET_POWER_STATE (0x20804010) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_VGPU_MGR_INTERNAL_INTERFACE_ID << 8) | NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SET_POWER_STATE_PARAMS_MESSAGE_ID" */
|
||||
#define NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SET_POWER_STATE_PARAMS_MESSAGE_ID (0x10U)
|
||||
|
||||
typedef struct NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SET_POWER_STATE_PARAMS {
|
||||
NvU32 state;
|
||||
} NV2080_CTRL_CMD_VGPU_MGR_INTERNAL_SET_POWER_STATE_PARAMS;
|
||||
|
||||
/* _ctrl2080vgpumgrinternal_h_ */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2009-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2009-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -454,6 +454,9 @@ typedef struct NV208F_CTRL_FB_ECC_INJECTION_SUPPORTED_PARAMS {
|
||||
*
|
||||
* address
|
||||
* The physical DRAM address to be targeted by the write kill
|
||||
*
|
||||
* bProdInjection
|
||||
* Whether the write kill is set through the production injection flow or not
|
||||
*/
|
||||
#define NV208F_CTRL_CMD_FB_ECC_SET_WRITE_KILL (0x208f0511) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_DIAG_FB_INTERFACE_ID << 8) | NV208F_CTRL_FB_ECC_SET_WRITE_KILL_PARAMS_MESSAGE_ID" */
|
||||
|
||||
@@ -461,6 +464,7 @@ typedef struct NV208F_CTRL_FB_ECC_INJECTION_SUPPORTED_PARAMS {
|
||||
|
||||
typedef struct NV208F_CTRL_FB_ECC_SET_WRITE_KILL_PARAMS {
|
||||
NvBool setWriteKill;
|
||||
NvBool bProdInjection;
|
||||
NV_DECLARE_ALIGNED(NvU64 address, 8);
|
||||
} NV208F_CTRL_FB_ECC_SET_WRITE_KILL_PARAMS;
|
||||
|
||||
@@ -698,30 +702,30 @@ typedef struct NV208F_CTRL_FB_GET_FBPA_PAC_MASKS_PARAMS {
|
||||
} NV208F_CTRL_FB_GET_FBPA_PAC_MASKS_PARAMS;
|
||||
|
||||
/*
|
||||
* NV208F_CTRL_CMD_FB_CONVERT_CHANNEL
|
||||
* NV208F_CTRL_CMD_FB_CONVERT_SUBLOCATION
|
||||
*
|
||||
* This API converts either a channel from physical to logical or vice-versa
|
||||
* This API converts either the given sublocation from physical to logical or vice-versa
|
||||
*
|
||||
* conversionType:
|
||||
* See NV208F_CTRL_FB_CHANNEL_CONVERSION_TYPE
|
||||
* See NV208F_CTRL_FB_SUBLOCATION_CONVERSION_TYPE
|
||||
* fbpa:
|
||||
* The physical fbpa the channel resides
|
||||
* The physical fbpa the sublocation resides
|
||||
* input:
|
||||
* Input channel
|
||||
* Input sublocation
|
||||
* output:
|
||||
* Output channel
|
||||
* Output sublocation
|
||||
*/
|
||||
#define NV208F_CTRL_CMD_FB_CONVERT_CHANNEL (0x208f0519) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_DIAG_FB_INTERFACE_ID << 8) | NV208F_CTRL_FB_CONVERT_CHANNEL_PARAMS_MESSAGE_ID" */
|
||||
#define NV208F_CTRL_CMD_FB_CONVERT_SUBLOCATION (0x208f0519) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_DIAG_FB_INTERFACE_ID << 8) | NV208F_CTRL_FB_CONVERT_SUBLOCATION_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV208F_CTRL_FB_CONVERT_CHANNEL_PARAMS_MESSAGE_ID (0x19U)
|
||||
#define NV208F_CTRL_FB_CONVERT_SUBLOCATION_PARAMS_MESSAGE_ID (0x19U)
|
||||
|
||||
typedef struct NV208F_CTRL_FB_CONVERT_CHANNEL_PARAMS {
|
||||
typedef struct NV208F_CTRL_FB_CONVERT_SUBLOCATION_PARAMS {
|
||||
NvU32 conversionType;
|
||||
NvU32 fbpa;
|
||||
NvU32 input;
|
||||
NvU32 output;
|
||||
} NV208F_CTRL_FB_CONVERT_CHANNEL_PARAMS;
|
||||
} NV208F_CTRL_FB_CONVERT_SUBLOCATION_PARAMS;
|
||||
|
||||
#define NV208F_CTRL_FB_CHANNEL_CONVERSION_TYPE_LOGICAL_TO_PHYSICAL (0x00000000U)
|
||||
#define NV208F_CTRL_FB_CHANNEL_CONVERSION_TYPE_PHYSICAL_TO_LOGICAL (0x00000001U)
|
||||
#define NV208F_CTRL_FB_SUBLOCATION_CONVERSION_TYPE_LOGICAL_TO_PHYSICAL (0x00000000U)
|
||||
#define NV208F_CTRL_FB_SUBLOCATION_CONVERSION_TYPE_PHYSICAL_TO_LOGICAL (0x00000001U)
|
||||
/* _ctrl208ffb_h_ */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2018-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2018-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -41,7 +41,7 @@
|
||||
* Parameters:
|
||||
*
|
||||
* location
|
||||
* Only used for HSHUBMMU.
|
||||
* Only used for HSHUBMMU for pre-Blackwell.
|
||||
*
|
||||
* sublocation
|
||||
* Only used for HSHUBMMU.
|
||||
@@ -68,7 +68,6 @@ typedef struct NV208F_CTRL_MMU_ECC_INJECT_ERROR_PARAMS {
|
||||
NvU32 sublocation;
|
||||
NvU8 unit;
|
||||
NvU8 errorType;
|
||||
NvU8 instance;
|
||||
} NV208F_CTRL_MMU_ECC_INJECT_ERROR_PARAMS;
|
||||
|
||||
|
||||
@@ -146,4 +145,5 @@ typedef struct NV208F_CTRL_MMU_GET_NUM_HUBMMUS_PARAMS {
|
||||
NvU32 numHubmmus;
|
||||
} NV208F_CTRL_MMU_GET_NUM_HUBMMUS_PARAMS;
|
||||
|
||||
// extension NV_VERIF_FEATURES
|
||||
/* _ctrl208fmmu_h_ */
|
||||
|
||||
@@ -644,8 +644,6 @@ typedef struct NV5070_CTRL_CMD_IS_MODE_POSSIBLE_PARAMS {
|
||||
NvBool bUseCachedPerfState;
|
||||
} NV5070_CTRL_CMD_IS_MODE_POSSIBLE_PARAMS;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* NV5070_CTRL_CMD_GET_CHANNEL_INFO
|
||||
*
|
||||
|
||||
@@ -256,88 +256,6 @@ typedef struct NV5070_CTRL_CMD_SET_RG_FLIPLOCK_PROP_PARAMS {
|
||||
NvU32 swapLockoutStart;
|
||||
} NV5070_CTRL_CMD_SET_RG_FLIPLOCK_PROP_PARAMS;
|
||||
|
||||
/*
|
||||
* NV5070_CTRL_CMD_SET_VIDEO_STATUS
|
||||
*
|
||||
* This command is used to set the current video playback status for use
|
||||
* by the Display Power Saving (nvDPS) feature. The playback status is
|
||||
* used to maximize power savings by altering the DFP refresh rate used for
|
||||
* video playback.
|
||||
*
|
||||
* displayId
|
||||
* This parameter specifies the ID of the video playback display.
|
||||
* Only one display may be indicated in this parameter.
|
||||
* clientId
|
||||
* This parameter specifies the opaque client ID associated with
|
||||
* the video playback application.
|
||||
* mode
|
||||
* This parameter specifies the video playback mode. Valid values
|
||||
* for this parameter include:
|
||||
* NV5070_CTRL_DFP_SET_VIDEO_STATUS_MODE_NON_FULLSCREEN
|
||||
* This value indicates that there is either no video playback or
|
||||
* that video playback is windowed.
|
||||
* NV5070_CTRL_DFP_SET_VIDEO_STATUS_MODE_FULLSCREEN
|
||||
* This value indicates that video playback is fullscreen.
|
||||
* NV5070_CTRL_DFP_SET_VIDEO_STATUS_MODE_D3D
|
||||
* This value indicates that there is a D3D app started.
|
||||
* frameRate
|
||||
* The parameter indicates the current video playback frame rate.
|
||||
* The value is a 32 bit unsigned fixed point number, 24 bit unsigned
|
||||
* integer (bits 31:7), and 8 fraction bits (bits 7:0), measured in
|
||||
* number of frames per second.
|
||||
* A value of 0 indicates that video playback is stopped or not playing.
|
||||
* frameRateAlarmUpperLimit
|
||||
* The parameter indicates the upper limit which will can be tolerated in
|
||||
* notifying frame rate change. If the frame rate changed but is still
|
||||
* below the limit. The newer frame rate doesn't have to be set till it's
|
||||
* over the limit.
|
||||
* The value is a 32 bit unsigned fixed point number, 24 bit unsigned
|
||||
* integer (bits 31:7), and 8 fraction bits (bits 7:0), measured in
|
||||
* number of frames per second.
|
||||
* A value of 0 indicates no tolerance of frame rate notifying. Instant
|
||||
* frame rate has to be set when it has changed.
|
||||
* frameRateAlarmLowerLimit
|
||||
* The parameter indicates the lower limit which will can be tolerated in
|
||||
* notifying frame rate change. If the frame rate changed but is still
|
||||
* above the limit. The newer frame rate doesn't have to be set till it's
|
||||
* below the limit.
|
||||
* The value is a 32 bit unsigned fixed point number, 24 bit unsigned
|
||||
* integer (bits 31:7), and 8 fraction bits (bits 7:0), measured in
|
||||
* number of frames per second.
|
||||
* A value of 0 indicates no tolerance of frame rate notifying. Instant
|
||||
* frame rate has to be set when it has changed.
|
||||
*
|
||||
* The frameRateAlarm limit values can be used by the video client to
|
||||
* indicate the the range in which frame rate changes do not require
|
||||
* notification (i.e. frame rates outside these limits will result in
|
||||
* notification).
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
* NV_ERR_INVALID_PARAM_STRUCT
|
||||
* NV_ERR_INVALID_ARGUMENT
|
||||
* NV_ERR_NOT_SUPPORTED
|
||||
*/
|
||||
#define NV5070_CTRL_CMD_SET_VIDEO_STATUS (0x50700209) /* finn: Evaluated from "(FINN_NV50_DISPLAY_RG_INTERFACE_ID << 8) | NV5070_CTRL_DFP_SET_VIDEO_STATUS_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV5070_CTRL_DFP_SET_VIDEO_STATUS_PARAMS_MESSAGE_ID (0x9U)
|
||||
|
||||
typedef struct NV5070_CTRL_DFP_SET_VIDEO_STATUS_PARAMS {
|
||||
NV5070_CTRL_CMD_BASE_PARAMS base;
|
||||
|
||||
NvU32 displayId;
|
||||
NvU32 clientId;
|
||||
NvU32 mode;
|
||||
NvU32 frameRate;
|
||||
NvU32 frameRateAlarmUpperLimit;
|
||||
NvU32 frameRateAlarmLowerLimit;
|
||||
} NV5070_CTRL_DFP_SET_VIDEO_STATUS_PARAMS;
|
||||
|
||||
/* valid mode flags */
|
||||
#define NV5070_CTRL_DFP_SET_VIDEO_STATUS_MODE_NON_FULLSCREEN (0x00000000)
|
||||
#define NV5070_CTRL_DFP_SET_VIDEO_STATUS_MODE_FULLSCREEEN (0x00000001)
|
||||
#define NV5070_CTRL_DFP_SET_VIDEO_STATUS_MODE_D3D (0x00000002)
|
||||
|
||||
/*
|
||||
* NV5070_CTRL_CMD_GET_RG_CONNECTED_LOCKPIN_STATELESS
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2014-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2014-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -43,11 +43,12 @@
|
||||
#define NVA081_CTRL_VGPU_CONFIG (0x01)
|
||||
|
||||
#define NVA081_CTRL_VGPU_CONFIG_INVALID_TYPE 0x00
|
||||
#define NVA081_MAX_VGPU_TYPES_PER_PGPU 0x64
|
||||
#define NVA081_MAX_VGPU_PER_PGPU 32
|
||||
#define NVA081_MAX_VGPU_TYPES_PER_PGPU 0x80
|
||||
#define NVA081_MAX_VGPU_PER_PGPU 48
|
||||
#define NVA081_MAX_VGPU_PER_PGPU_NON_MIG 32
|
||||
#define NVA081_MAX_VGPU_PER_GI 12
|
||||
#define NVA081_VM_UUID_SIZE 16
|
||||
#define NVA081_VGPU_STRING_BUFFER_SIZE 32
|
||||
#define NVA081_VGPU_STRING_BUFFER_SIZE 64
|
||||
#define NVA081_VGPU_SIGNATURE_SIZE 128
|
||||
#define NVA081_VM_NAME_SIZE 128
|
||||
#define NVA081_PCI_CONFIG_SPACE_SIZE 0x100
|
||||
@@ -263,6 +264,7 @@ typedef struct NVA081_HOST_VGPU_DEVICE {
|
||||
NvBool bDriverLoaded;
|
||||
NvU32 swizzId;
|
||||
NvU32 placementId;
|
||||
NvU32 accountingPid;
|
||||
} NVA081_HOST_VGPU_DEVICE;
|
||||
|
||||
/* ECC state values */
|
||||
@@ -1056,4 +1058,20 @@ typedef struct NVA081_CTRL_VGPU_CONFIG_ENUMERATE_VGPU_PER_GPU_INSTANCE_PARAMS {
|
||||
NvU32 vgpuInstanceIds[NVA081_MAX_VGPU_PER_GI];
|
||||
} NVA081_CTRL_VGPU_CONFIG_ENUMERATE_VGPU_PER_GPU_INSTANCE_PARAMS;
|
||||
|
||||
/*
|
||||
* NVA081_CTRL_CMD_VGPU_CONFIG_CLEAR_SWIZZID_MASK
|
||||
*
|
||||
* This Command Clears the Assigned SwizzId Mask during vGPU destroy
|
||||
*
|
||||
* swizzId [IN]
|
||||
* This parameter specifies the SwizzId of vGPU device
|
||||
*/
|
||||
#define NVA081_CTRL_CMD_VGPU_CONFIG_CLEAR_SWIZZID_MASK (0xa0810125) /* finn: Evaluated from "(FINN_NVA081_VGPU_CONFIG_VGPU_CONFIG_INTERFACE_ID << 8) | NVA081_CTRL_CMD_VGPU_CONFIG_CLEAR_SWIZZID_MASK_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NVA081_CTRL_CMD_VGPU_CONFIG_CLEAR_SWIZZID_MASK_PARAMS_MESSAGE_ID (0x25U)
|
||||
|
||||
typedef struct NVA081_CTRL_CMD_VGPU_CONFIG_CLEAR_SWIZZID_MASK_PARAMS {
|
||||
NvU32 swizzId;
|
||||
} NVA081_CTRL_CMD_VGPU_CONFIG_CLEAR_SWIZZID_MASK_PARAMS;
|
||||
|
||||
/* _ctrlA081vgpuconfig_h_ */
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2007-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
//
|
||||
// This file was generated with FINN, an NVIDIA coding tool.
|
||||
// Source file: ctrl/ctrla16f.finn
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
/* GK100_GPFIFO control commands and parameters */
|
||||
|
||||
#include "ctrl/ctrlxxxx.h"
|
||||
#define NVA16F_CTRL_CMD(cat,idx) \
|
||||
NVXXXX_CTRL_CMD(0xA16F, NVA16F_CTRL_##cat, idx)
|
||||
|
||||
/* GK100_GPFIFO command categories (6bits) */
|
||||
#define NVA16F_CTRL_RESERVED (0x00)
|
||||
|
||||
/*
|
||||
* NVA16F_CTRL_CMD_NULL
|
||||
*
|
||||
* This command does nothing.
|
||||
* This command does not take any parameters.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
*/
|
||||
#define NVA16F_CTRL_CMD_NULL (0xa16f0000) /* finn: Evaluated from "(FINN_KEPLER_CHANNEL_GPFIFO_B_RESERVED_INTERFACE_ID << 8) | 0x0" */
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2011-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
//
|
||||
// This file was generated with FINN, an NVIDIA coding tool.
|
||||
// Source file: ctrl/ctrla26f.finn
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
/* GK20A_GPFIFO control commands and parameters */
|
||||
|
||||
#include "ctrl/ctrlxxxx.h"
|
||||
#define NVA26F_CTRL_CMD(cat,idx) \
|
||||
NVXXXX_CTRL_CMD(0xA26F, NVA26F_CTRL_##cat, idx)
|
||||
|
||||
/* GK20A_GPFIFO command categories (6bits) */
|
||||
#define NVA26F_CTRL_RESERVED (0x00)
|
||||
|
||||
/*
|
||||
* NVA26F_CTRL_CMD_NULL
|
||||
*
|
||||
* This command does nothing.
|
||||
* This command does not take any parameters.
|
||||
*
|
||||
* Possible status values returned are:
|
||||
* NV_OK
|
||||
*/
|
||||
#define NVA26F_CTRL_CMD_NULL (0xa26f0000) /* finn: Evaluated from "(FINN_KEPLER_CHANNEL_GPFIFO_C_RESERVED_INTERFACE_ID << 8) | 0x0" */
|
||||
|
||||
@@ -187,6 +187,8 @@ typedef struct NVC370_CTRL_IDLE_CHANNEL_PARAMS {
|
||||
|
||||
#define NVC370_CTRL_CMD_GET_ACCL (0xc3700103) /* finn: Evaluated from "(FINN_NVC370_DISPLAY_CHNCTL_INTERFACE_ID << 8) | NVC370_CTRL_GET_ACCL_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NVC370_CTRL_CMD_CHANNEL_CANCEL_FLIP (0xc3700105) /* finn: Evaluated from "(FINN_NVC370_DISPLAY_CHNCTL_INTERFACE_ID << 8) | NVC370_CTRL_CHANNEL_CANCEL_FLIP_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NVC370_CTRL_ACCL_MAX_INSTANCE_CORE NVC370_CTRL_CMD_MAX_CHANNEL_INSTANCE_CORE
|
||||
#define NVC370_CTRL_ACCL_MAX_INSTANCE_WINDOW NVC370_CTRL_CMD_MAX_CHANNEL_INSTANCE_WINDOW
|
||||
#define NVC370_CTRL_ACCL_MAX_INSTANCE_WINDOW_IMM NVC370_CTRL_CMD_MAX_CHANNEL_INSTANCE_WINDOW_IMM
|
||||
@@ -220,6 +222,14 @@ typedef NVC370_CTRL_ACCL_PARAMS NVC370_CTRL_SET_ACCL_PARAMS;
|
||||
|
||||
typedef NVC370_CTRL_ACCL_PARAMS NVC370_CTRL_GET_ACCL_PARAMS;
|
||||
|
||||
#define NVC370_CTRL_CHANNEL_CANCEL_FLIP_PARAMS_MESSAGE_ID (0x5U)
|
||||
|
||||
typedef struct NVC370_CTRL_CHANNEL_CANCEL_FLIP_PARAMS {
|
||||
NVC370_CTRL_CMD_BASE_PARAMS base;
|
||||
NvU32 channelClass;
|
||||
NvU32 channelInstance;
|
||||
} NVC370_CTRL_CHANNEL_CANCEL_FLIP_PARAMS;
|
||||
|
||||
/*
|
||||
* NVC370_CTRL_CMD_GET_CHANNEL_INFO
|
||||
*
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
// NVC370_CTRL_CMD_SET_SOR_FLUSH_MODE
|
||||
//
|
||||
// This command is used enable/disable flush mode on all the heads attached to the SOR
|
||||
|
||||
// Applies to NV Display 5.0+ (GB20X+ and T264+)
|
||||
// [in] subDeviceInstance
|
||||
// This parameter specifies the subdevice instance within the
|
||||
// NV04_DISPLAY_COMMON parent device to which the operation should be
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2017-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
//
|
||||
// This file was generated with FINN, an NVIDIA coding tool.
|
||||
// Source file: ctrl/ctrlc46f.finn
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
/* TURING_CHANNEL_GPFIFO_A control commands and parameters */
|
||||
|
||||
#include "ctrl/ctrlxxxx.h"
|
||||
#include "ctrl/ctrlc36f.h" // This control call interface is an ALIAS of C36F
|
||||
|
||||
#define NVC46F_CTRL_CMD(cat,idx) \
|
||||
NVXXXX_CTRL_CMD(0xC36F, NVC46F_CTRL_##cat, idx)
|
||||
|
||||
/* TURING_CHANNEL_GPFIFO_A command categories (6bits) */
|
||||
#define NVC46F_CTRL_RESERVED (0x00)
|
||||
#define NVC46F_CTRL_GPFIFO (0x01)
|
||||
|
||||
/*
|
||||
* NVC46F_CTRL_CMD_NULL
|
||||
*
|
||||
* This command does nothing.
|
||||
* This command does not take any parameters.
|
||||
*
|
||||
* Possible status values returned is: NV_OK
|
||||
*/
|
||||
#define NVC46F_CTRL_CMD_NULL (NVC36F_CTRL_CMD_NULL)
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
//
|
||||
// This file was generated with FINN, an NVIDIA coding tool.
|
||||
// Source file: ctrl/ctrlc86f.finn
|
||||
//
|
||||
|
||||
|
||||
|
||||
#include "nvcfg_sdk.h"
|
||||
|
||||
|
||||
|
||||
/* HOPPER_CHANNEL_GPFIFO_A control commands and parameters */
|
||||
|
||||
#include "ctrl/ctrlxxxx.h"
|
||||
#include "ctrl/ctrlc36f.h" // This control call interface is an ALIAS of C36F
|
||||
|
||||
#define NVC86F_CTRL_CMD(cat,idx) \
|
||||
NVXXXX_CTRL_CMD(0xC36F, NVC86F_CTRL_##cat, idx)
|
||||
|
||||
/* HOPPER_CHANNEL_GPFIFO_A command categories (6bits) */
|
||||
#define NVC86F_CTRL_RESERVED (0x00)
|
||||
#define NVC86F_CTRL_GPFIFO (0x01)
|
||||
|
||||
/*
|
||||
* NVC86F_CTRL_CMD_NULL
|
||||
*
|
||||
* This command does nothing.
|
||||
* This command does not take any parameters.
|
||||
*
|
||||
* Possible status values returned is: NV_OK
|
||||
*/
|
||||
#define NVC86F_CTRL_CMD_NULL (NVC36F_CTRL_CMD_NULL)
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
//
|
||||
// This file was generated with FINN, an NVIDIA coding tool.
|
||||
// Source file: ctrl/ctrlc96f.finn
|
||||
//
|
||||
|
||||
|
||||
|
||||
#include "nvcfg_sdk.h"
|
||||
|
||||
|
||||
|
||||
/* BLACKWELL_CHANNEL_GPFIFO_A control commands and parameters */
|
||||
|
||||
#include "ctrl/ctrlxxxx.h"
|
||||
#include "ctrl/ctrlc36f.h" // This control call interface is an ALIAS of C36F
|
||||
|
||||
#define NVC96F_CTRL_CMD(cat,idx) \
|
||||
NVXXXX_CTRL_CMD(0xC36F, NVC96F_CTRL_##cat, idx)
|
||||
|
||||
/* BLACKWELL_CHANNEL_GPFIFO_A command categories (6bits) */
|
||||
#define NVC96F_CTRL_RESERVED (0x00)
|
||||
#define NVC96F_CTRL_GPFIFO (0x01)
|
||||
|
||||
/*
|
||||
* NVC96F_CTRL_CMD_NULL
|
||||
*
|
||||
* This command does nothing.
|
||||
* This command does not take any parameters.
|
||||
*
|
||||
* Possible status values returned is: NV_OK
|
||||
*/
|
||||
#define NVC96F_CTRL_CMD_NULL (NVC36F_CTRL_CMD_NULL)
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
//
|
||||
// This file was generated with FINN, an NVIDIA coding tool.
|
||||
// Source file: ctrl/ctrlca6f.finn
|
||||
//
|
||||
|
||||
|
||||
|
||||
#include "nvcfg_sdk.h"
|
||||
|
||||
|
||||
|
||||
/* BLACKWELL_CHANNEL_GPFIFO_B control commands and parameters */
|
||||
|
||||
#include "ctrl/ctrlxxxx.h"
|
||||
#include "ctrl/ctrlc36f.h" // This control call interface is an ALIAS of C36F
|
||||
|
||||
#define NVCA6F_CTRL_CMD(cat,idx) \
|
||||
NVXXXX_CTRL_CMD(0xC36F, NVCA6F_CTRL_##cat, idx)
|
||||
|
||||
/* BLACKWELL_CHANNEL_GPFIFO_B command categories (6bits) */
|
||||
#define NVCA6F_CTRL_RESERVED (0x00)
|
||||
#define NVCA6F_CTRL_GPFIFO (0x01)
|
||||
|
||||
/*
|
||||
* NVCA6F_CTRL_CMD_NULL
|
||||
*
|
||||
* This command does nothing.
|
||||
* This command does not take any parameters.
|
||||
*
|
||||
* Possible status values returned is: NV_OK
|
||||
*/
|
||||
#define NVCA6F_CTRL_CMD_NULL (NVC36F_CTRL_CMD_NULL)
|
||||
|
||||
Reference in New Issue
Block a user