Skip to content

Commit

Permalink
560.31.02
Browse files Browse the repository at this point in the history
  • Loading branch information
gauravjuvekar committed Jul 31, 2024
1 parent 448d5cc commit 315fd96
Show file tree
Hide file tree
Showing 40 changed files with 45,696 additions and 45,549 deletions.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# NVIDIA Linux Open GPU Kernel Module Source

This is the source release of the NVIDIA Linux open GPU kernel modules,
version 560.28.03.
version 560.31.02.


## How to Build
Expand All @@ -17,7 +17,7 @@ as root:

Note that the kernel modules built here must be used with GSP
firmware and user-space NVIDIA GPU driver components from a corresponding
560.28.03 driver release. This can be achieved by installing
560.31.02 driver release. This can be achieved by installing
the NVIDIA GPU driver from the .run file using the `--no-kernel-modules`
option. E.g.,

Expand Down Expand Up @@ -185,7 +185,7 @@ table below).
For details on feature support and limitations, see the NVIDIA GPU driver
end user README here:

https://us.download.nvidia.com/XFree86/Linux-x86_64/560.28.03/README/kernel_open.html
https://us.download.nvidia.com/XFree86/Linux-x86_64/560.31.02/README/kernel_open.html

For vGPU support, please refer to the README.vgpu packaged in the vGPU Host
Package for more details.
Expand Down Expand Up @@ -831,10 +831,12 @@ Subsystem Device ID.
| NVIDIA GeForce RTX 2050 | 25AD |
| NVIDIA RTX A1000 | 25B0 1028 1878 |
| NVIDIA RTX A1000 | 25B0 103C 1878 |
| NVIDIA RTX A1000 | 25B0 103C 8D96 |
| NVIDIA RTX A1000 | 25B0 10DE 1878 |
| NVIDIA RTX A1000 | 25B0 17AA 1878 |
| NVIDIA RTX A400 | 25B2 1028 1879 |
| NVIDIA RTX A400 | 25B2 103C 1879 |
| NVIDIA RTX A400 | 25B2 103C 8D95 |
| NVIDIA RTX A400 | 25B2 10DE 1879 |
| NVIDIA RTX A400 | 25B2 17AA 1879 |
| NVIDIA A16 | 25B6 10DE 14A9 |
Expand Down
2 changes: 1 addition & 1 deletion kernel-open/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc
EXTRA_CFLAGS += -I$(src)
EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"560.28.03\"
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"560.31.02\"

ifneq ($(SYSSRCHOST1X),)
EXTRA_CFLAGS += -I$(SYSSRCHOST1X)
Expand Down
2 changes: 1 addition & 1 deletion kernel-open/common/inc/nv.h
Original file line number Diff line number Diff line change
Expand Up @@ -1047,7 +1047,7 @@ NV_STATUS NV_API_CALL nv_vgpu_get_bar_info(nvidia_stack_t *, nv_state_t *, con
NvU64 *, NvU64 *, NvU32 *, NvBool *, NvU8 *);
NV_STATUS NV_API_CALL nv_vgpu_get_hbm_info(nvidia_stack_t *, nv_state_t *, const NvU8 *, NvU64 *, NvU64 *);
NV_STATUS NV_API_CALL nv_vgpu_process_vf_info(nvidia_stack_t *, nv_state_t *, NvU8, NvU32, NvU8, NvU8, NvU8, NvBool, void *);
NV_STATUS NV_API_CALL nv_gpu_bind_event(nvidia_stack_t *);
NV_STATUS NV_API_CALL nv_gpu_bind_event(nvidia_stack_t *, NvU32, NvBool *);
NV_STATUS NV_API_CALL nv_gpu_unbind_event(nvidia_stack_t *, NvU32, NvBool *);

NV_STATUS NV_API_CALL nv_get_usermap_access_params(nv_state_t*, nv_usermap_access_params_t*);
Expand Down
20 changes: 10 additions & 10 deletions src/common/inc/nvBldVer.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,25 +36,25 @@
// and then checked back in. You cannot make changes to these sections without
// corresponding changes to the buildmeister script
#ifndef NV_BUILD_BRANCH
#define NV_BUILD_BRANCH r560_70
#define NV_BUILD_BRANCH r560_78
#endif
#ifndef NV_PUBLIC_BRANCH
#define NV_PUBLIC_BRANCH r560_70
#define NV_PUBLIC_BRANCH r560_78
#endif

#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS)
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r560/r560_70-107"
#define NV_BUILD_CHANGELIST_NUM (34587299)
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r560/r560_78-120"
#define NV_BUILD_CHANGELIST_NUM (34643855)
#define NV_BUILD_TYPE "Official"
#define NV_BUILD_NAME "rel/gpu_drv/r560/r560_70-107"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34587299)
#define NV_BUILD_NAME "rel/gpu_drv/r560/r560_78-120"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34643855)

#else /* Windows builds */
#define NV_BUILD_BRANCH_VERSION "r560_70-2"
#define NV_BUILD_CHANGELIST_NUM (34567210)
#define NV_BUILD_BRANCH_VERSION "r560_78-2"
#define NV_BUILD_CHANGELIST_NUM (34643068)
#define NV_BUILD_TYPE "Official"
#define NV_BUILD_NAME "560.73"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34567210)
#define NV_BUILD_NAME "560.81"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34643068)
#define NV_BUILD_BRANCH_BASE_VERSION R560
#endif
// End buildmeister python edited section
Expand Down
2 changes: 1 addition & 1 deletion src/common/inc/nvUnixVersion.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) || defined(NV_VMWARE) || defined(NV_QNX) || defined(NV_INTEGRITY) || \
(defined(RMCFG_FEATURE_PLATFORM_GSP) && RMCFG_FEATURE_PLATFORM_GSP == 1)

#define NV_VERSION_STRING "560.28.03"
#define NV_VERSION_STRING "560.31.02"

#else

Expand Down
14 changes: 7 additions & 7 deletions src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000vgpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,24 +155,24 @@ typedef struct NV0000_CTRL_VGPU_DELETE_DEVICE_PARAMS {
} NV0000_CTRL_VGPU_DELETE_DEVICE_PARAMS;

/*
* NV0000_CTRL_CMD_VGPU_VFIO_UNREGISTER_STATUS
* NV0000_CTRL_CMD_VGPU_VFIO_NOTIFY_RM_STATUS
*
* This command informs RM the status vgpu-vfio unregister for a GPU.
* This command informs RM the status of vgpu-vfio GPU operations such as probe and unregister.
*
* returnStatus [IN]
* This parameter provides the status vgpu-vfio unregister operation.
* This parameter provides the status of vgpu-vfio GPU operation.
*
* gpuPciId [IN]
* This parameter provides the gpu id of the GPU
*/

#define NV0000_CTRL_CMD_VGPU_VFIO_UNREGISTER_STATUS (0xc05) /* finn: Evaluated from "(FINN_NV01_ROOT_VGPU_INTERFACE_ID << 8) | NV0000_CTRL_VGPU_VFIO_UNREGISTER_STATUS_PARAMS_MESSAGE_ID" */
#define NV0000_CTRL_CMD_VGPU_VFIO_NOTIFY_RM_STATUS (0xc05) /* finn: Evaluated from "(FINN_NV01_ROOT_VGPU_INTERFACE_ID << 8) | NV0000_CTRL_VGPU_VFIO_NOTIFY_RM_STATUS_PARAMS_MESSAGE_ID" */

#define NV0000_CTRL_VGPU_VFIO_UNREGISTER_STATUS_PARAMS_MESSAGE_ID (0x5U)
#define NV0000_CTRL_VGPU_VFIO_NOTIFY_RM_STATUS_PARAMS_MESSAGE_ID (0x5U)

typedef struct NV0000_CTRL_VGPU_VFIO_UNREGISTER_STATUS_PARAMS {
typedef struct NV0000_CTRL_VGPU_VFIO_NOTIFY_RM_STATUS_PARAMS {
NvU32 returnStatus;
NvU32 gpuId;
} NV0000_CTRL_VGPU_VFIO_UNREGISTER_STATUS_PARAMS;
} NV0000_CTRL_VGPU_VFIO_NOTIFY_RM_STATUS_PARAMS;

/* _ctrl0000vgpu_h_ */
31 changes: 0 additions & 31 deletions src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080nvlink.h
Original file line number Diff line number Diff line change
Expand Up @@ -3638,18 +3638,6 @@ typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_MTSDE_PARAMS {
NvU8 slot_index;
} NV2080_CTRL_NVLINK_PRM_ACCESS_MTSDE_PARAMS;

#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_MGCR (0x20803060U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_MGCR_PARAMS_MESSAGE_ID" */

#define NV2080_CTRL_NVLINK_PRM_ACCESS_MGCR_PARAMS_MESSAGE_ID (0x60U)

typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_MGCR_PARAMS {
NvBool bWrite;
NV2080_CTRL_NVLINK_PRM_DATA prm;
NvU8 segment;
NvU32 GPIO_set;
NvU32 GPIO_clear;
} NV2080_CTRL_NVLINK_PRM_ACCESS_MGCR_PARAMS;

#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_MTCAP (0x20803061U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_MTCAP_PARAMS_MESSAGE_ID" */

#define NV2080_CTRL_NVLINK_PRM_ACCESS_MTCAP_PARAMS_MESSAGE_ID (0x61U)
Expand Down Expand Up @@ -3739,25 +3727,6 @@ typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_PDDR_PARAMS {
NvU8 module_info_ext;
} NV2080_CTRL_NVLINK_PRM_ACCESS_PDDR_PARAMS;

#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_MTMP (0x20803067U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_MTMP_PARAMS_MESSAGE_ID" */

#define NV2080_CTRL_NVLINK_PRM_ACCESS_MTMP_PARAMS_MESSAGE_ID (0x67U)

typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_MTMP_PARAMS {
NvBool bWrite;
NV2080_CTRL_NVLINK_PRM_DATA prm;
NvU16 sensor_index;
NvU8 slot_index;
NvU8 sdme;
NvU8 weme;
NvU8 mtr;
NvU8 mte;
NvU16 temperature_threshold_hi;
NvU8 sdee;
NvU8 tee;
NvU16 temperature_threshold_lo;
} NV2080_CTRL_NVLINK_PRM_ACCESS_MTMP_PARAMS;

#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_PPTT (0x20803068U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_PPTT_PARAMS_MESSAGE_ID" */

#define NV2080_CTRL_NVLINK_PRM_ACCESS_PPTT_PARAMS_MESSAGE_ID (0x68U)
Expand Down
5 changes: 5 additions & 0 deletions src/common/sdk/nvidia/inc/nvfixedtypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,11 @@ typedef NvSFXP24_8 NvTemp;
*/
#define NV_TYPES_NVSFXP11_5_TO_NV_TEMP(x) ((NvTemp)(x) << 3)

/*!
* Macro to convert NvTemp to SFXP 11.5.
*/
#define NV_TYPES_NV_TEMP_TO_NVSFXP11_5(x) ((NvSFXP11_5)(x) >> 3)

/*!
* Macro to convert UFXP 5.3 to NvTemp.
*/
Expand Down
2 changes: 1 addition & 1 deletion src/nvidia/arch/nvalloc/unix/include/nv.h
Original file line number Diff line number Diff line change
Expand Up @@ -1047,7 +1047,7 @@ NV_STATUS NV_API_CALL nv_vgpu_get_bar_info(nvidia_stack_t *, nv_state_t *, con
NvU64 *, NvU64 *, NvU32 *, NvBool *, NvU8 *);
NV_STATUS NV_API_CALL nv_vgpu_get_hbm_info(nvidia_stack_t *, nv_state_t *, const NvU8 *, NvU64 *, NvU64 *);
NV_STATUS NV_API_CALL nv_vgpu_process_vf_info(nvidia_stack_t *, nv_state_t *, NvU8, NvU32, NvU8, NvU8, NvU8, NvBool, void *);
NV_STATUS NV_API_CALL nv_gpu_bind_event(nvidia_stack_t *);
NV_STATUS NV_API_CALL nv_gpu_bind_event(nvidia_stack_t *, NvU32, NvBool *);
NV_STATUS NV_API_CALL nv_gpu_unbind_event(nvidia_stack_t *, NvU32, NvBool *);

NV_STATUS NV_API_CALL nv_get_usermap_access_params(nv_state_t*, nv_usermap_access_params_t*);
Expand Down
6 changes: 4 additions & 2 deletions src/nvidia/arch/nvalloc/unix/src/os-hypervisor.c
Original file line number Diff line number Diff line change
Expand Up @@ -799,7 +799,9 @@ NV_STATUS NV_API_CALL nv_gpu_unbind_event
}

NV_STATUS NV_API_CALL nv_gpu_bind_event(
nvidia_stack_t *sp
nvidia_stack_t *sp,
NvU32 gpuId,
NvBool *isEventNotified
)
{
THREAD_STATE_NODE threadState;
Expand All @@ -812,7 +814,7 @@ NV_STATUS NV_API_CALL nv_gpu_bind_event(
// LOCK: acquire API lock
if ((rmStatus = rmapiLockAcquire(API_LOCK_FLAGS_NONE, RM_LOCK_MODULES_HYPERVISOR)) == NV_OK)
{
CliAddSystemEvent(NV0000_NOTIFIERS_GPU_BIND_EVENT, 0, NULL);
CliAddSystemEvent(NV0000_NOTIFIERS_GPU_BIND_EVENT, gpuId, isEventNotified);

// UNLOCK: release API lock
rmapiLockRelease();
Expand Down
48 changes: 23 additions & 25 deletions src/nvidia/arch/nvalloc/unix/src/osapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1519,24 +1519,6 @@ static NV_STATUS RmP2PDmaMapPagesCoherent(
return status;
}

static void
RmHandleNvpcfEvents(
nv_state_t *pNv
)
{
OBJGPU *pGpu = NV_GET_NV_PRIV_PGPU(pNv);
THREAD_STATE_NODE threadState;

if (RmUnixRmApiPrologue(pNv, &threadState, RM_LOCK_MODULES_ACPI) == NULL)
{
return;
}

gpuNotifySubDeviceEvent(pGpu, NV2080_NOTIFIERS_NVPCF_EVENTS, NULL, 0, 0, 0);

RmUnixRmApiEpilogue(pNv, &threadState);
}

/*
* ---------------------------------------------------------------------------
*
Expand Down Expand Up @@ -4276,7 +4258,6 @@ void NV_API_CALL rm_power_source_change_event(
THREAD_STATE_NODE threadState;
void *fp;
nv_state_t *nv;
OBJGPU *pGpu = gpumgrGetGpu(0);
NV_STATUS rmStatus = NV_OK;

NV_ENTER_RM_RUNTIME(sp,fp);
Expand All @@ -4285,6 +4266,7 @@ void NV_API_CALL rm_power_source_change_event(
// LOCK: acquire API lock
if ((rmStatus = rmapiLockAcquire(API_LOCK_FLAGS_NONE, RM_LOCK_MODULES_EVENT)) == NV_OK)
{
OBJGPU *pGpu = gpumgrGetGpu(0);
if (pGpu != NULL)
{
nv = NV_GET_NV_STATE(pGpu);
Expand Down Expand Up @@ -5902,16 +5884,32 @@ void NV_API_CALL rm_acpi_nvpcf_notify(
nvidia_stack_t *sp
)
{
void *fp;
OBJGPU *pGpu = gpumgrGetGpu(0);
void *fp;
THREAD_STATE_NODE threadState;
NV_STATUS rmStatus = NV_OK;

NV_ENTER_RM_RUNTIME(sp,fp);

if (pGpu != NULL)
threadStateInit(&threadState, THREAD_STATE_FLAGS_NONE);

// LOCK: acquire API lock
if ((rmStatus = rmapiLockAcquire(API_LOCK_FLAGS_NONE,
RM_LOCK_MODULES_EVENT)) == NV_OK)
{
nv_state_t *nv = NV_GET_NV_STATE(pGpu);
RmHandleNvpcfEvents(nv);
OBJGPU *pGpu = gpumgrGetGpu(0);
if (pGpu != NULL)
{
nv_state_t *nv = NV_GET_NV_STATE(pGpu);
if ((rmStatus = os_ref_dynamic_power(nv, NV_DYNAMIC_PM_FINE)) ==
NV_OK)
{
gpuNotifySubDeviceEvent(pGpu, NV2080_NOTIFIERS_NVPCF_EVENTS,
NULL, 0, 0, 0);
}
os_unref_dynamic_power(nv, NV_DYNAMIC_PM_FINE);
}
rmapiLockRelease();
}

threadStateFree(&threadState, THREAD_STATE_FLAGS_NONE);
NV_EXIT_RM_RUNTIME(sp,fp);
}
Loading

0 comments on commit 315fd96

Please sign in to comment.