diff --git a/README.md b/README.md index 55dcf5c73..dbd9e9717 100644 --- a/README.md +++ b/README.md @@ -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 535.216.01. +version 535.216.03. ## How to Build @@ -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 -535.216.01 driver release. This can be achieved by installing +535.216.03 driver release. This can be achieved by installing the NVIDIA GPU driver from the .run file using the `--no-kernel-modules` option. E.g., @@ -180,7 +180,7 @@ software applications. ## Compatible GPUs The open-gpu-kernel-modules can be used on any Turing or later GPU -(see the table below). However, in the 535.216.01 release, +(see the table below). However, in the 535.216.03 release, GeForce and Workstation support is still considered alpha-quality. To enable use of the open kernel modules on GeForce and Workstation GPUs, @@ -188,7 +188,7 @@ set the "NVreg_OpenRmEnableUnsupportedGpus" nvidia.ko kernel module parameter to 1. For more details, see the NVIDIA GPU driver end user README here: -https://us.download.nvidia.com/XFree86/Linux-x86_64/535.216.01/README/kernel_open.html +https://us.download.nvidia.com/XFree86/Linux-x86_64/535.216.03/README/kernel_open.html In the below table, if three IDs are listed, the first is the PCI Device ID, the second is the PCI Subsystem Vendor ID, and the third is the PCI @@ -749,6 +749,7 @@ Subsystem Device ID. | NVIDIA H800 | 2324 10DE 17A8 | | NVIDIA H20 | 2329 10DE 198B | | NVIDIA H20 | 2329 10DE 198C | +| NVIDIA H20-3e | 232C 10DE 2063 | | NVIDIA H100 80GB HBM3 | 2330 10DE 16C0 | | NVIDIA H100 80GB HBM3 | 2330 10DE 16C1 | | NVIDIA H100 PCIe | 2331 10DE 1626 | diff --git a/kernel-open/Kbuild b/kernel-open/Kbuild index fe8060f17..e4d149562 100644 --- a/kernel-open/Kbuild +++ b/kernel-open/Kbuild @@ -72,7 +72,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc EXTRA_CFLAGS += -I$(src) EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-error -Wno-format-extra-args EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM -EXTRA_CFLAGS += -DNV_VERSION_STRING=\"535.216.01\" +EXTRA_CFLAGS += -DNV_VERSION_STRING=\"535.216.03\" ifneq ($(SYSSRCHOST1X),) EXTRA_CFLAGS += -I$(SYSSRCHOST1X) diff --git a/src/common/inc/nvBldVer.h b/src/common/inc/nvBldVer.h index 52ef90cf7..1e245f235 100644 --- a/src/common/inc/nvBldVer.h +++ b/src/common/inc/nvBldVer.h @@ -43,11 +43,11 @@ #endif #if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) -#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r535/r538_95-686" -#define NV_BUILD_CHANGELIST_NUM (34854198) +#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r535/r538_95-688" +#define NV_BUILD_CHANGELIST_NUM (35042711) #define NV_BUILD_TYPE "Official" -#define NV_BUILD_NAME "rel/gpu_drv/r535/r538_95-686" -#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34854198) +#define NV_BUILD_NAME "rel/gpu_drv/r535/r538_95-688" +#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35042711) #else /* Windows builds */ #define NV_BUILD_BRANCH_VERSION "r538_95-1" diff --git a/src/common/inc/nvUnixVersion.h b/src/common/inc/nvUnixVersion.h index 8bf41b2f4..8c1ee7780 100644 --- a/src/common/inc/nvUnixVersion.h +++ b/src/common/inc/nvUnixVersion.h @@ -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 "535.216.01" +#define NV_VERSION_STRING "535.216.03" #else diff --git a/src/common/nvswitch/kernel/ls10/link_ls10.c b/src/common/nvswitch/kernel/ls10/link_ls10.c index 8e9e9b9b9..01d04bd43 100644 --- a/src/common/nvswitch/kernel/ls10/link_ls10.c +++ b/src/common/nvswitch/kernel/ls10/link_ls10.c @@ -408,6 +408,42 @@ nvswitch_corelib_set_dl_link_mode_ls10 switch (mode) { + case NVLINK_LINKSTATE_SAFE: + { + // check if link is in reset + if (nvswitch_is_link_in_reset(device, link)) + { + NVSWITCH_PRINT(device, ERROR, + "%s: link #%d is still in reset, cannot change link state\n", + __FUNCTION__, link->linkNumber); + return NVL_ERR_INVALID_STATE; + } + + NVSWITCH_PRINT(device, INFO, + "%s : Link state request to Safe for (%s):(%s) not needed. Skipping.\n", + __FUNCTION__, device->name, link->linkName); + + break; + } + + case NVLINK_LINKSTATE_HS: + { + // check if link is in reset + if (nvswitch_is_link_in_reset(device, link)) + { + NVSWITCH_PRINT(device, ERROR, + "%s: link #%d is still in reset, cannot change link state\n", + __FUNCTION__, link->linkNumber); + return -NVL_ERR_INVALID_STATE; + } + + NVSWITCH_PRINT(device, INFO, + "%s : Link state request to Active for (%s):(%s) not needed. Skipping.\n", + __FUNCTION__, device->name, link->linkName); + + break; + } + case NVLINK_LINKSTATE_INITPHASE1: { // Apply appropriate SIMMODE settings diff --git a/src/nvidia/generated/g_nv_name_released.h b/src/nvidia/generated/g_nv_name_released.h index 3be22e93e..9171ecf70 100644 --- a/src/nvidia/generated/g_nv_name_released.h +++ b/src/nvidia/generated/g_nv_name_released.h @@ -899,6 +899,7 @@ static const CHIPS_RELEASED sChipsReleased[] = { { 0x2324, 0x17a8, 0x10de, "NVIDIA H800" }, { 0x2329, 0x198b, 0x10de, "NVIDIA H20" }, { 0x2329, 0x198c, 0x10de, "NVIDIA H20" }, + { 0x232C, 0x2063, 0x10de, "NVIDIA H20-3e" }, { 0x2330, 0x16c0, 0x10de, "NVIDIA H100 80GB HBM3" }, { 0x2330, 0x16c1, 0x10de, "NVIDIA H100 80GB HBM3" }, { 0x2331, 0x1626, 0x10de, "NVIDIA H100 PCIe" }, diff --git a/version.mk b/version.mk index 97a8208e3..f6bc46ebe 100644 --- a/version.mk +++ b/version.mk @@ -1,4 +1,4 @@ -NVIDIA_VERSION = 535.216.01 +NVIDIA_VERSION = 535.216.03 # This file. VERSION_MK_FILE := $(lastword $(MAKEFILE_LIST))