Skip to content

Commit

Permalink
520.61.05
Browse files Browse the repository at this point in the history
  • Loading branch information
aritger committed Oct 10, 2022
1 parent fe07287 commit 90eb107
Show file tree
Hide file tree
Showing 758 changed files with 88,026 additions and 26,136 deletions.
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## Release 520 Entries

### [520.61.05] 2022-10-10

#### Added

- Introduce support for NVIDIA H100 GPUs.

#### Fixed

- Fix/Improve Makefile, [#308](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/308/) by @izenynn
- Make nvLogBase2 more efficient, [#177](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/177/) by @DMaroo
- nv-pci: fixed always true expression, [#195](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/195/) by @ValZapod

## Release 515 Entries

### [515.76] 2022-09-20
Expand Down
26 changes: 18 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,30 @@
# To install the build kernel modules: run (as root) `make modules_install`
###########################################################################

include utils.mk

all: modules
###########################################################################
# variables
###########################################################################

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

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

.PHONY: $(nv_kernel_o) $(nv_modeset_kernel_o) modules modules_install
###########################################################################
# rules
###########################################################################

include utils.mk

.PHONY: all
all: modules

###########################################################################
# nv-kernel.o is the OS agnostic portion of nvidia.ko
###########################################################################

.PHONY: $(nv_kernel_o)
$(nv_kernel_o):
$(MAKE) -C src/nvidia

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

.PHONY: $(nv_modeset_kernel_o)
$(nv_modeset_kernel_o):
$(MAKE) -C src/nvidia-modeset

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

.PHONY: modules
modules: $(nv_kernel_o_binary) $(nv_modeset_kernel_o_binary)
$(MAKE) -C kernel-open modules


###########################################################################
# Install the built kernel modules using kbuild.
###########################################################################

.PHONY: modules_install
modules_install:
$(MAKE) -C kernel-open modules_install


###########################################################################
# clean
###########################################################################

.PHONY: clean nvidia.clean nvidia-modeset.clean kernel-open.clean

.PHONY: clean
clean: nvidia.clean nvidia-modeset.clean kernel-open.clean

.PHONY: nvidia.clean
nvidia.clean:
$(MAKE) -C src/nvidia clean

.PHONY: nvidia-modeset.clean
nvidia-modeset.clean:
$(MAKE) -C src/nvidia-modeset clean

.PHONY: kernel-open.clean
kernel-open.clean:
$(MAKE) -C kernel-open clean
8 changes: 4 additions & 4 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 515.76.
version 520.61.05.


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

Note that the kernel modules built here must be used with gsp.bin
firmware and user-space NVIDIA GPU driver components from a corresponding
515.76 driver release. This can be achieved by installing
520.61.05 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 @@ -167,15 +167,15 @@ for the target kernel.
## Compatible GPUs

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

To enable use of the open kernel modules on GeForce and Workstation GPUs,
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/515.76/README/kernel_open.html
https://us.download.nvidia.com/XFree86/Linux-x86_64/520.61.05/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
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 -MD $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-error -Wno-format-extra-args
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"515.76\"
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"520.61.05\"

EXTRA_CFLAGS += -Wno-unused-function

Expand Down
16 changes: 0 additions & 16 deletions kernel-open/common/inc/cpuopsys.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,13 +101,6 @@
# define NV_ANDROID
#endif








#if defined(DceCore) && !defined(NV_DCECORE)
# define NV_DCECORE
#endif
Expand Down Expand Up @@ -355,15 +348,6 @@
#define NVOS_IS_INTEGRITY 0
#endif










#if defined(NVCPU_X86)
#define NVCPU_IS_X86 1
#else
Expand Down
106 changes: 26 additions & 80 deletions kernel-open/common/inc/nv-linux.h
Original file line number Diff line number Diff line change
Expand Up @@ -1037,6 +1037,32 @@ static inline vm_fault_t nv_insert_pfn(struct vm_area_struct *vma,
return VM_FAULT_SIGBUS;
}

/* Converts BAR index to Linux specific PCI BAR index */
static inline NvU8 nv_bar_index_to_os_bar_index
(
struct pci_dev *dev,
NvU8 nv_bar_index
)
{
NvU8 bar_index = 0;
NvU8 i;

BUG_ON(nv_bar_index >= NV_GPU_NUM_BARS);

for (i = 0; i < nv_bar_index; i++)
{
if (NV_PCI_RESOURCE_FLAGS(dev, bar_index) & PCI_BASE_ADDRESS_MEM_TYPE_64)
{
bar_index += 2;
}
else
{
bar_index++;
}
}

return bar_index;
}

#define NV_PAGE_MASK (NvU64)(long)PAGE_MASK

Expand Down Expand Up @@ -1161,16 +1187,6 @@ typedef struct nvidia_pte_s {
unsigned int page_count;
} nvidia_pte_t;











typedef struct nv_alloc_s {
struct nv_alloc_s *next;
struct device *dev;
Expand Down Expand Up @@ -1413,34 +1429,6 @@ struct os_wait_queue {
struct completion q;
};





























/*
* To report error in msi/msix when unhandled count reaches a threshold
*/
Expand All @@ -1464,19 +1452,6 @@ struct nv_dma_device {
NvBool nvlink;
};














/* linux-specific version of old nv_state_t */
/* this is a general os-specific state structure. the first element *must* be
the general state structure, for the generic unix-based code */
Expand All @@ -1492,11 +1467,6 @@ typedef struct nv_linux_state_s {
/* IBM-NPU info associated with this GPU */
nv_ibmnpu_info_t *npu;






/* NUMA node information for the platforms where GPU memory is presented
* as a NUMA node to the kernel */
struct {
Expand Down Expand Up @@ -1576,23 +1546,6 @@ typedef struct nv_linux_state_s {
/* Per-device notifier block for ACPI events */
struct notifier_block acpi_nb;


















/* Lock serializing ISRs for different SOC vectors */
nv_spinlock_t soc_isr_lock;

Expand Down Expand Up @@ -1760,12 +1713,10 @@ static inline struct kmem_cache *nv_kmem_cache_create(const char *name, unsigned
return cache;
}


#if defined(CONFIG_PCI_IOV)
#define NV_PCI_SRIOV_SUPPORT
#endif /* CONFIG_PCI_IOV */


#define NV_PCIE_CFG_MAX_OFFSET 0x1000

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

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






static inline void nv_mutex_destroy(struct mutex *lock)
{
mutex_destroy(lock);
Expand Down
Loading

0 comments on commit 90eb107

Please sign in to comment.