Skip to content

Commit 90eb107

Browse files
committed
520.61.05
1 parent fe07287 commit 90eb107

File tree

758 files changed

+88026
-26136
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

758 files changed

+88026
-26136
lines changed

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# Changelog
22

3+
## Release 520 Entries
4+
5+
### [520.61.05] 2022-10-10
6+
7+
#### Added
8+
9+
- Introduce support for NVIDIA H100 GPUs.
10+
11+
#### Fixed
12+
13+
- Fix/Improve Makefile, [#308](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/308/) by @izenynn
14+
- Make nvLogBase2 more efficient, [#177](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/177/) by @DMaroo
15+
- nv-pci: fixed always true expression, [#195](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/195/) by @ValZapod
16+
317
## Release 515 Entries
418

519
### [515.76] 2022-09-20

Makefile

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,30 @@
66
# To install the build kernel modules: run (as root) `make modules_install`
77
###########################################################################
88

9-
include utils.mk
10-
11-
all: modules
9+
###########################################################################
10+
# variables
11+
###########################################################################
1212

1313
nv_kernel_o = src/nvidia/$(OUTPUTDIR)/nv-kernel.o
1414
nv_kernel_o_binary = kernel-open/nvidia/nv-kernel.o_binary
1515

1616
nv_modeset_kernel_o = src/nvidia-modeset/$(OUTPUTDIR)/nv-modeset-kernel.o
1717
nv_modeset_kernel_o_binary = kernel-open/nvidia-modeset/nv-modeset-kernel.o_binary
1818

19-
.PHONY: $(nv_kernel_o) $(nv_modeset_kernel_o) modules modules_install
19+
###########################################################################
20+
# rules
21+
###########################################################################
2022

23+
include utils.mk
24+
25+
.PHONY: all
26+
all: modules
2127

2228
###########################################################################
2329
# nv-kernel.o is the OS agnostic portion of nvidia.ko
2430
###########################################################################
2531

32+
.PHONY: $(nv_kernel_o)
2633
$(nv_kernel_o):
2734
$(MAKE) -C src/nvidia
2835

@@ -34,6 +41,7 @@ $(nv_kernel_o_binary): $(nv_kernel_o)
3441
# nv-modeset-kernel.o is the OS agnostic portion of nvidia-modeset.ko
3542
###########################################################################
3643

44+
.PHONY: $(nv_modeset_kernel_o)
3745
$(nv_modeset_kernel_o):
3846
$(MAKE) -C src/nvidia-modeset
3947

@@ -46,31 +54,33 @@ $(nv_modeset_kernel_o_binary): $(nv_modeset_kernel_o)
4654
# the kernel modules with kbuild.
4755
###########################################################################
4856

57+
.PHONY: modules
4958
modules: $(nv_kernel_o_binary) $(nv_modeset_kernel_o_binary)
5059
$(MAKE) -C kernel-open modules
5160

52-
5361
###########################################################################
5462
# Install the built kernel modules using kbuild.
5563
###########################################################################
5664

65+
.PHONY: modules_install
5766
modules_install:
5867
$(MAKE) -C kernel-open modules_install
5968

60-
6169
###########################################################################
6270
# clean
6371
###########################################################################
6472

65-
.PHONY: clean nvidia.clean nvidia-modeset.clean kernel-open.clean
66-
73+
.PHONY: clean
6774
clean: nvidia.clean nvidia-modeset.clean kernel-open.clean
6875

76+
.PHONY: nvidia.clean
6977
nvidia.clean:
7078
$(MAKE) -C src/nvidia clean
7179

80+
.PHONY: nvidia-modeset.clean
7281
nvidia-modeset.clean:
7382
$(MAKE) -C src/nvidia-modeset clean
7483

84+
.PHONY: kernel-open.clean
7585
kernel-open.clean:
7686
$(MAKE) -C kernel-open clean

README.md

Lines changed: 4 additions & 4 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 515.76.
4+
version 520.61.05.
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.bin
1919
firmware and user-space NVIDIA GPU driver components from a corresponding
20-
515.76 driver release. This can be achieved by installing
20+
520.61.05 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

@@ -167,15 +167,15 @@ for the target kernel.
167167
## Compatible GPUs
168168

169169
The open-gpu-kernel-modules can be used on any Turing or later GPU
170-
(see the table below). However, in the 515.76 release,
170+
(see the table below). However, in the 520.61.05 release,
171171
GeForce and Workstation support is still considered alpha-quality.
172172

173173
To enable use of the open kernel modules on GeForce and Workstation GPUs,
174174
set the "NVreg_OpenRmEnableUnsupportedGpus" nvidia.ko kernel module
175175
parameter to 1. For more details, see the NVIDIA GPU driver end user
176176
README here:
177177

178-
https://us.download.nvidia.com/XFree86/Linux-x86_64/515.76/README/kernel_open.html
178+
https://us.download.nvidia.com/XFree86/Linux-x86_64/520.61.05/README/kernel_open.html
179179

180180
In the below table, if three IDs are listed, the first is the PCI Device
181181
ID, the second is the PCI Subsystem Vendor ID, and the third is the PCI

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 -MD $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-error -Wno-format-extra-args
7474
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
75-
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"515.76\"
75+
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"520.61.05\"
7676

7777
EXTRA_CFLAGS += -Wno-unused-function
7878

kernel-open/common/inc/cpuopsys.h

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,6 @@
101101
# define NV_ANDROID
102102
#endif
103103

104-
105-
106-
107-
108-
109-
110-
111104
#if defined(DceCore) && !defined(NV_DCECORE)
112105
# define NV_DCECORE
113106
#endif
@@ -355,15 +348,6 @@
355348
#define NVOS_IS_INTEGRITY 0
356349
#endif
357350

358-
359-
360-
361-
362-
363-
364-
365-
366-
367351
#if defined(NVCPU_X86)
368352
#define NVCPU_IS_X86 1
369353
#else

kernel-open/common/inc/nv-linux.h

Lines changed: 26 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1037,6 +1037,32 @@ static inline vm_fault_t nv_insert_pfn(struct vm_area_struct *vma,
10371037
return VM_FAULT_SIGBUS;
10381038
}
10391039

1040+
/* Converts BAR index to Linux specific PCI BAR index */
1041+
static inline NvU8 nv_bar_index_to_os_bar_index
1042+
(
1043+
struct pci_dev *dev,
1044+
NvU8 nv_bar_index
1045+
)
1046+
{
1047+
NvU8 bar_index = 0;
1048+
NvU8 i;
1049+
1050+
BUG_ON(nv_bar_index >= NV_GPU_NUM_BARS);
1051+
1052+
for (i = 0; i < nv_bar_index; i++)
1053+
{
1054+
if (NV_PCI_RESOURCE_FLAGS(dev, bar_index) & PCI_BASE_ADDRESS_MEM_TYPE_64)
1055+
{
1056+
bar_index += 2;
1057+
}
1058+
else
1059+
{
1060+
bar_index++;
1061+
}
1062+
}
1063+
1064+
return bar_index;
1065+
}
10401066

10411067
#define NV_PAGE_MASK (NvU64)(long)PAGE_MASK
10421068

@@ -1161,16 +1187,6 @@ typedef struct nvidia_pte_s {
11611187
unsigned int page_count;
11621188
} nvidia_pte_t;
11631189

1164-
1165-
1166-
1167-
1168-
1169-
1170-
1171-
1172-
1173-
11741190
typedef struct nv_alloc_s {
11751191
struct nv_alloc_s *next;
11761192
struct device *dev;
@@ -1413,34 +1429,6 @@ struct os_wait_queue {
14131429
struct completion q;
14141430
};
14151431

1416-
1417-
1418-
1419-
1420-
1421-
1422-
1423-
1424-
1425-
1426-
1427-
1428-
1429-
1430-
1431-
1432-
1433-
1434-
1435-
1436-
1437-
1438-
1439-
1440-
1441-
1442-
1443-
14441432
/*
14451433
* To report error in msi/msix when unhandled count reaches a threshold
14461434
*/
@@ -1464,19 +1452,6 @@ struct nv_dma_device {
14641452
NvBool nvlink;
14651453
};
14661454

1467-
1468-
1469-
1470-
1471-
1472-
1473-
1474-
1475-
1476-
1477-
1478-
1479-
14801455
/* linux-specific version of old nv_state_t */
14811456
/* this is a general os-specific state structure. the first element *must* be
14821457
the general state structure, for the generic unix-based code */
@@ -1492,11 +1467,6 @@ typedef struct nv_linux_state_s {
14921467
/* IBM-NPU info associated with this GPU */
14931468
nv_ibmnpu_info_t *npu;
14941469

1495-
1496-
1497-
1498-
1499-
15001470
/* NUMA node information for the platforms where GPU memory is presented
15011471
* as a NUMA node to the kernel */
15021472
struct {
@@ -1576,23 +1546,6 @@ typedef struct nv_linux_state_s {
15761546
/* Per-device notifier block for ACPI events */
15771547
struct notifier_block acpi_nb;
15781548

1579-
1580-
1581-
1582-
1583-
1584-
1585-
1586-
1587-
1588-
1589-
1590-
1591-
1592-
1593-
1594-
1595-
15961549
/* Lock serializing ISRs for different SOC vectors */
15971550
nv_spinlock_t soc_isr_lock;
15981551

@@ -1760,12 +1713,10 @@ static inline struct kmem_cache *nv_kmem_cache_create(const char *name, unsigned
17601713
return cache;
17611714
}
17621715

1763-
17641716
#if defined(CONFIG_PCI_IOV)
17651717
#define NV_PCI_SRIOV_SUPPORT
17661718
#endif /* CONFIG_PCI_IOV */
17671719

1768-
17691720
#define NV_PCIE_CFG_MAX_OFFSET 0x1000
17701721

17711722
#include "nv-proto.h"
@@ -1959,11 +1910,6 @@ static inline NvU32 nv_default_irq_flags(nv_state_t *nv)
19591910

19601911
NvS32 nv_request_soc_irq(nv_linux_state_t *, NvU32, nv_soc_irq_type_t, NvU32, NvU32);
19611912

1962-
1963-
1964-
1965-
1966-
19671913
static inline void nv_mutex_destroy(struct mutex *lock)
19681914
{
19691915
mutex_destroy(lock);

0 commit comments

Comments
 (0)