Skip to content

Commit 9d0b041

Browse files
committed
565.77
1 parent d5a0858 commit 9d0b041

39 files changed

+457
-216
lines changed

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# NVIDIA Linux Open GPU Kernel Module Source
22

33
This is the source release of the NVIDIA Linux open GPU kernel modules,
4-
version 565.57.01.
4+
version 565.77.
55

66

77
## How to Build
@@ -17,7 +17,7 @@ as root:
1717

1818
Note that the kernel modules built here must be used with GSP
1919
firmware and user-space NVIDIA GPU driver components from a corresponding
20-
565.57.01 driver release. This can be achieved by installing
20+
565.77 driver release. This can be achieved by installing
2121
the NVIDIA GPU driver from the .run file using the `--no-kernel-modules`
2222
option. E.g.,
2323

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

188-
https://us.download.nvidia.com/XFree86/Linux-x86_64/565.57.01/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/565.77/README/kernel_open.html
189189

190190
For vGPU support, please refer to the README.vgpu packaged in the vGPU Host
191191
Package for more details.
@@ -754,6 +754,8 @@ Subsystem Device ID.
754754
| NVIDIA H800 | 2324 10DE 17A8 |
755755
| NVIDIA H20 | 2329 10DE 198B |
756756
| NVIDIA H20 | 2329 10DE 198C |
757+
| NVIDIA H20-3e | 232C 10DE 2063 |
758+
| NVIDIA H20-3e | 232C 10DE 2064 |
757759
| NVIDIA H100 80GB HBM3 | 2330 10DE 16C0 |
758760
| NVIDIA H100 80GB HBM3 | 2330 10DE 16C1 |
759761
| NVIDIA H100 PCIe | 2331 10DE 1626 |
@@ -836,10 +838,12 @@ Subsystem Device ID.
836838
| NVIDIA GeForce RTX 2050 | 25AD |
837839
| NVIDIA RTX A1000 | 25B0 1028 1878 |
838840
| NVIDIA RTX A1000 | 25B0 103C 1878 |
841+
| NVIDIA RTX A1000 | 25B0 103C 8D96 |
839842
| NVIDIA RTX A1000 | 25B0 10DE 1878 |
840843
| NVIDIA RTX A1000 | 25B0 17AA 1878 |
841844
| NVIDIA RTX A400 | 25B2 1028 1879 |
842845
| NVIDIA RTX A400 | 25B2 103C 1879 |
846+
| NVIDIA RTX A400 | 25B2 103C 8D95 |
843847
| NVIDIA RTX A400 | 25B2 10DE 1879 |
844848
| NVIDIA RTX A400 | 25B2 17AA 1879 |
845849
| NVIDIA A16 | 25B6 10DE 14A9 |

kernel-open/Kbuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc
7272
EXTRA_CFLAGS += -I$(src)
7373
EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
7474
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
75-
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"565.57.01\"
75+
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"565.77\"
7676

7777
ifneq ($(SYSSRCHOST1X),)
7878
EXTRA_CFLAGS += -I$(SYSSRCHOST1X)

kernel-open/Makefile

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,22 @@ else
5252
endif
5353
endif
5454

55+
# If CC hasn't been set explicitly, check the value of CONFIG_CC_VERSION_TEXT.
56+
# Look for the compiler specified there, and use it by default, if found.
57+
ifeq ($(origin CC),default)
58+
cc_version_text=$(firstword $(shell . $(KERNEL_OUTPUT)/.config; \
59+
echo "$$CONFIG_CC_VERSION_TEXT"))
60+
61+
ifneq ($(cc_version_text),)
62+
ifeq ($(shell command -v $(cc_version_text)),)
63+
$(warning WARNING: Unable to locate the compiler $(cc_version_text) \
64+
from CONFIG_CC_VERSION_TEXT in the kernel configuration.)
65+
else
66+
CC=$(cc_version_text)
67+
endif
68+
endif
69+
endif
70+
5571
CC ?= cc
5672
LD ?= ld
5773
OBJDUMP ?= objdump
@@ -65,6 +81,16 @@ else
6581
)
6682
endif
6783

84+
KERNEL_ARCH = $(ARCH)
85+
86+
ifneq ($(filter $(ARCH),i386 x86_64),)
87+
KERNEL_ARCH = x86
88+
else
89+
ifeq ($(filter $(ARCH),arm64 powerpc),)
90+
$(error Unsupported architecture $(ARCH))
91+
endif
92+
endif
93+
6894
NV_KERNEL_MODULES ?= $(wildcard nvidia nvidia-uvm nvidia-vgpu-vfio nvidia-modeset nvidia-drm nvidia-peermem)
6995
NV_KERNEL_MODULES := $(filter-out $(NV_EXCLUDE_KERNEL_MODULES), \
7096
$(NV_KERNEL_MODULES))
@@ -106,8 +132,9 @@ else
106132
# module symbols on which the Linux kernel's module resolution is dependent
107133
# and hence must be used whenever present.
108134

109-
LD_SCRIPT ?= $(KERNEL_SOURCES)/scripts/module-common.lds \
110-
$(KERNEL_SOURCES)/arch/$(ARCH)/kernel/module.lds \
135+
LD_SCRIPT ?= $(KERNEL_SOURCES)/scripts/module-common.lds \
136+
$(KERNEL_SOURCES)/arch/$(KERNEL_ARCH)/kernel/module.lds \
137+
$(KERNEL_OUTPUT)/arch/$(KERNEL_ARCH)/module.lds \
111138
$(KERNEL_OUTPUT)/scripts/module.lds
112139
NV_MODULE_COMMON_SCRIPTS := $(foreach s, $(wildcard $(LD_SCRIPT)), -T $(s))
113140

kernel-open/conftest.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2450,6 +2450,22 @@ compile_test() {
24502450
fi
24512451
;;
24522452

2453+
file_operations_fop_unsigned_offset_present)
2454+
#
2455+
# Determine if the FOP_UNSIGNED_OFFSET define is present.
2456+
#
2457+
# Added by commit 641bb4394f40 ("fs: move FMODE_UNSIGNED_OFFSET to
2458+
# fop_flags") in v6.12.
2459+
#
2460+
CODE="
2461+
#include <linux/fs.h>
2462+
int conftest_file_operations_fop_unsigned_offset_present(void) {
2463+
return FOP_UNSIGNED_OFFSET;
2464+
}"
2465+
2466+
compile_check_conftest "$CODE" "NV_FILE_OPERATIONS_FOP_UNSIGNED_OFFSET_PRESENT" "" "types"
2467+
;;
2468+
24532469
pci_dev_has_ats_enabled)
24542470
#
24552471
# Determine if the 'pci_dev' data type has a 'ats_enabled' member.

kernel-open/nvidia-drm/nvidia-drm-drv.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1711,6 +1711,10 @@ static const struct file_operations nv_drm_fops = {
17111711
.read = drm_read,
17121712

17131713
.llseek = noop_llseek,
1714+
1715+
#if defined(NV_FILE_OPERATIONS_FOP_UNSIGNED_OFFSET_PRESENT)
1716+
.fop_flags = FOP_UNSIGNED_OFFSET,
1717+
#endif
17141718
};
17151719

17161720
static const struct drm_ioctl_desc nv_drm_ioctls[] = {

kernel-open/nvidia-drm/nvidia-drm-sources.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,4 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_color_lut
140140
NV_CONFTEST_TYPE_COMPILE_TESTS += drm_property_blob_put
141141
NV_CONFTEST_TYPE_COMPILE_TESTS += drm_driver_has_gem_prime_mmap
142142
NV_CONFTEST_TYPE_COMPILE_TESTS += drm_output_poll_changed
143+
NV_CONFTEST_TYPE_COMPILE_TESTS += file_operations_fop_unsigned_offset_present

kernel-open/nvidia-uvm/uvm_hmm.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ static void hmm_copy_devmem_page(struct page *dst_page, struct page *src_page)
184184
gpu = uvm_gpu_chunk_get_gpu(gpu_chunk);
185185
status = uvm_mmu_chunk_map(gpu_chunk);
186186
if (status != NV_OK)
187-
goto out_zero;
187+
goto out;
188188

189189
status = uvm_parent_gpu_map_cpu_pages(gpu->parent, dst_page, PAGE_SIZE, &dma_addr);
190190
if (status != NV_OK)
@@ -215,7 +215,7 @@ static void hmm_copy_devmem_page(struct page *dst_page, struct page *src_page)
215215
out_unmap_gpu:
216216
uvm_mmu_chunk_unmap(gpu_chunk, NULL);
217217

218-
out_zero:
218+
out:
219219
// We can't fail eviction because we need to free the device-private pages
220220
// so the GPU can be unregistered. So the best we can do is warn on any
221221
// failures and zero the uninitialised page. This could result in data loss
@@ -245,6 +245,7 @@ static NV_STATUS uvm_hmm_pmm_gpu_evict_pfn(unsigned long pfn)
245245
}
246246

247247
lock_page(dst_page);
248+
248249
hmm_copy_devmem_page(dst_page, migrate_pfn_to_page(src_pfn));
249250
dst_pfn = migrate_pfn(page_to_pfn(dst_page));
250251
migrate_device_pages(&src_pfn, &dst_pfn, 1);

src/common/inc/nvBldVer.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,25 @@
3636
// and then checked back in. You cannot make changes to these sections without
3737
// corresponding changes to the buildmeister script
3838
#ifndef NV_BUILD_BRANCH
39-
#define NV_BUILD_BRANCH r565_97
39+
#define NV_BUILD_BRANCH r565_00
4040
#endif
4141
#ifndef NV_PUBLIC_BRANCH
42-
#define NV_PUBLIC_BRANCH r565_97
42+
#define NV_PUBLIC_BRANCH r565_00
4343
#endif
4444

4545
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS)
46-
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r565/r565_97-152"
47-
#define NV_BUILD_CHANGELIST_NUM (34971420)
46+
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r565/r565_00-213"
47+
#define NV_BUILD_CHANGELIST_NUM (35186646)
4848
#define NV_BUILD_TYPE "Official"
49-
#define NV_BUILD_NAME "rel/gpu_drv/r565/r565_97-152"
50-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34971420)
49+
#define NV_BUILD_NAME "rel/gpu_drv/r565/r565_00-213"
50+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35186646)
5151

5252
#else /* Windows builds */
53-
#define NV_BUILD_BRANCH_VERSION "r565_97-1"
54-
#define NV_BUILD_CHANGELIST_NUM (34971420)
53+
#define NV_BUILD_BRANCH_VERSION "r565_00-169"
54+
#define NV_BUILD_CHANGELIST_NUM (35186646)
5555
#define NV_BUILD_TYPE "Official"
56-
#define NV_BUILD_NAME "565.98"
57-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34971420)
56+
#define NV_BUILD_NAME "566.31"
57+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35186646)
5858
#define NV_BUILD_BRANCH_BASE_VERSION R565
5959
#endif
6060
// End buildmeister python edited section

src/common/inc/nvUnixVersion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) || defined(NV_VMWARE) || defined(NV_QNX) || defined(NV_INTEGRITY) || \
55
(defined(RMCFG_FEATURE_PLATFORM_GSP) && RMCFG_FEATURE_PLATFORM_GSP == 1)
66

7-
#define NV_VERSION_STRING "565.57.01"
7+
#define NV_VERSION_STRING "565.77"
88

99
#else
1010

src/common/nvswitch/kernel/ls10/link_ls10.c

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,42 @@ nvswitch_corelib_set_dl_link_mode_ls10
362362

363363
switch (mode)
364364
{
365+
case NVLINK_LINKSTATE_SAFE:
366+
{
367+
// check if link is in reset
368+
if (nvswitch_is_link_in_reset(device, link))
369+
{
370+
NVSWITCH_PRINT(device, ERROR,
371+
"%s: link #%d is still in reset, cannot change link state\n",
372+
__FUNCTION__, link->linkNumber);
373+
return NVL_ERR_INVALID_STATE;
374+
}
375+
376+
NVSWITCH_PRINT(device, INFO,
377+
"%s : Link state request to Safe for (%s):(%s) not needed. Skipping.\n",
378+
__FUNCTION__, device->name, link->linkName);
379+
380+
break;
381+
}
382+
383+
case NVLINK_LINKSTATE_HS:
384+
{
385+
// check if link is in reset
386+
if (nvswitch_is_link_in_reset(device, link))
387+
{
388+
NVSWITCH_PRINT(device, ERROR,
389+
"%s: link #%d is still in reset, cannot change link state\n",
390+
__FUNCTION__, link->linkNumber);
391+
return -NVL_ERR_INVALID_STATE;
392+
}
393+
394+
NVSWITCH_PRINT(device, INFO,
395+
"%s : Link state request to Active for (%s):(%s) not needed. Skipping.\n",
396+
__FUNCTION__, device->name, link->linkName);
397+
398+
break;
399+
}
400+
365401
case NVLINK_LINKSTATE_INITPHASE1:
366402
{
367403
// Apply appropriate SIMMODE settings

0 commit comments

Comments
 (0)