Skip to content

Commit 476bd34

Browse files
committed
550.54.14
1 parent 91676d6 commit 476bd34

File tree

186 files changed

+42493
-37613
lines changed

Some content is hidden

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

186 files changed

+42493
-37613
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
## Release 550 Entries
44

5+
### [550.54.14] 2024-02-23
6+
7+
#### Added
8+
9+
- Added vGPU Host and vGPU Guest support. For vGPU Host, please refer to the README.vgpu packaged in the vGPU Host Package for more details.
10+
511
### [550.40.07] 2024-01-24
612

713
#### Fixed

README.md

Lines changed: 18 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 550.40.07.
4+
version 550.54.14.
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-
550.40.07 driver release. This can be achieved by installing
20+
550.54.14 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

@@ -188,7 +188,10 @@ encountered specific to them.
188188
For details on feature support and limitations, see the NVIDIA GPU driver
189189
end user README here:
190190

191-
https://us.download.nvidia.com/XFree86/Linux-x86_64/550.40.07/README/kernel_open.html
191+
https://us.download.nvidia.com/XFree86/Linux-x86_64/550.54.14/README/kernel_open.html
192+
193+
For vGPU support, please refer to the README.vgpu packaged in the vGPU Host
194+
Package for more details.
192195

193196
In the below table, if three IDs are listed, the first is the PCI Device
194197
ID, the second is the PCI Subsystem Vendor ID, and the third is the PCI
@@ -650,7 +653,9 @@ Subsystem Device ID.
650653
| NVIDIA T400 4GB | 1FF2 103C 1613 |
651654
| NVIDIA T400 4GB | 1FF2 103C 8A80 |
652655
| NVIDIA T400 4GB | 1FF2 10DE 1613 |
656+
| NVIDIA T400E | 1FF2 10DE 18FF |
653657
| NVIDIA T400 4GB | 1FF2 17AA 1613 |
658+
| NVIDIA T400E | 1FF2 17AA 18FF |
654659
| Quadro T1000 | 1FF9 |
655660
| NVIDIA A100-SXM4-40GB | 20B0 |
656661
| NVIDIA A100-PG509-200 | 20B0 10DE 1450 |
@@ -746,12 +751,15 @@ Subsystem Device ID.
746751
| NVIDIA H800 PCIe | 2322 10DE 17A4 |
747752
| NVIDIA H800 | 2324 10DE 17A6 |
748753
| NVIDIA H800 | 2324 10DE 17A8 |
754+
| NVIDIA H20 | 2329 10DE 198B |
755+
| NVIDIA H20 | 2329 10DE 198C |
749756
| NVIDIA H100 80GB HBM3 | 2330 10DE 16C0 |
750757
| NVIDIA H100 80GB HBM3 | 2330 10DE 16C1 |
751758
| NVIDIA H100 PCIe | 2331 10DE 1626 |
752759
| NVIDIA H100 | 2339 10DE 17FC |
753760
| NVIDIA H800 NVL | 233A 10DE 183A |
754761
| NVIDIA GH200 120GB | 2342 10DE 16EB |
762+
| NVIDIA GH200 120GB | 2342 10DE 1805 |
755763
| NVIDIA GH200 480GB | 2342 10DE 1809 |
756764
| NVIDIA GeForce RTX 3060 Ti | 2414 |
757765
| NVIDIA GeForce RTX 3080 Ti Laptop GPU | 2420 |
@@ -805,6 +813,7 @@ Subsystem Device ID.
805813
| NVIDIA RTX A2000 12GB | 2571 10DE 1611 |
806814
| NVIDIA RTX A2000 12GB | 2571 17AA 1611 |
807815
| NVIDIA GeForce RTX 3050 | 2582 |
816+
| NVIDIA GeForce RTX 3050 | 2584 |
808817
| NVIDIA GeForce RTX 3050 Ti Laptop GPU | 25A0 |
809818
| NVIDIA GeForce RTX 3050Ti Laptop GPU | 25A0 103C 8928 |
810819
| NVIDIA GeForce RTX 3050Ti Laptop GPU | 25A0 103C 89F9 |
@@ -846,6 +855,7 @@ Subsystem Device ID.
846855
| NVIDIA RTX 5000 Ada Generation | 26B2 103C 17FA |
847856
| NVIDIA RTX 5000 Ada Generation | 26B2 10DE 17FA |
848857
| NVIDIA RTX 5000 Ada Generation | 26B2 17AA 17FA |
858+
| NVIDIA RTX 5880 Ada Generation | 26B3 1028 1934 |
849859
| NVIDIA RTX 5880 Ada Generation | 26B3 103C 1934 |
850860
| NVIDIA RTX 5880 Ada Generation | 26B3 10DE 1934 |
851861
| NVIDIA RTX 5880 Ada Generation | 26B3 17AA 1934 |
@@ -854,6 +864,7 @@ Subsystem Device ID.
854864
| NVIDIA L40S | 26B9 10DE 1851 |
855865
| NVIDIA L40S | 26B9 10DE 18CF |
856866
| NVIDIA L20 | 26BA 10DE 1957 |
867+
| NVIDIA GeForce RTX 4080 SUPER | 2702 |
857868
| NVIDIA GeForce RTX 4080 | 2704 |
858869
| NVIDIA GeForce RTX 4070 Ti SUPER | 2705 |
859870
| NVIDIA GeForce RTX 4090 Laptop GPU | 2717 |
@@ -891,6 +902,10 @@ Subsystem Device ID.
891902
| NVIDIA GeForce RTX 4060 | 2882 |
892903
| NVIDIA GeForce RTX 4060 Laptop GPU | 28A0 |
893904
| NVIDIA GeForce RTX 4050 Laptop GPU | 28A1 |
905+
| NVIDIA RTX 2000 Ada Generation | 28B0 1028 1870 |
906+
| NVIDIA RTX 2000 Ada Generation | 28B0 103C 1870 |
907+
| NVIDIA RTX 2000 Ada Generation | 28B0 10DE 1870 |
908+
| NVIDIA RTX 2000 Ada Generation | 28B0 17AA 1870 |
894909
| NVIDIA RTX 2000 Ada Generation Laptop GPU | 28B8 |
895910
| NVIDIA GeForce RTX 4060 Laptop GPU | 28E0 |
896911
| NVIDIA GeForce RTX 4050 Laptop GPU | 28E1 |

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=\"550.40.07\"
75+
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"550.54.14\"
7676

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

kernel-open/common/inc/nv.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,14 @@ typedef enum
621621
#define NV_IS_DEVICE_IN_SURPRISE_REMOVAL(nv) \
622622
(((nv)->flags & NV_FLAG_IN_SURPRISE_REMOVAL) != 0)
623623

624+
/*
625+
* For console setup by EFI GOP, the base address is BAR1.
626+
* For console setup by VBIOS, the base address is BAR2 + 16MB.
627+
*/
628+
#define NV_IS_CONSOLE_MAPPED(nv, addr) \
629+
(((addr) == (nv)->bars[NV_GPU_BAR_INDEX_FB].cpu_address) || \
630+
((addr) == ((nv)->bars[NV_GPU_BAR_INDEX_IMEM].cpu_address + 0x1000000)))
631+
624632
#define NV_SOC_IS_ISO_IOMMU_PRESENT(nv) \
625633
((nv)->iommus.iso_iommu_present)
626634

@@ -878,6 +886,8 @@ NvBool NV_API_CALL nv_match_gpu_os_info(nv_state_t *, void *);
878886
NvU32 NV_API_CALL nv_get_os_type(void);
879887

880888
void NV_API_CALL nv_get_updated_emu_seg(NvU32 *start, NvU32 *end);
889+
void NV_API_CALL nv_get_screen_info(nv_state_t *, NvU64 *, NvU32 *, NvU32 *, NvU32 *, NvU32 *, NvU64 *);
890+
881891
struct dma_buf;
882892
typedef struct nv_dma_buf nv_dma_buf_t;
883893
struct drm_gem_object;

kernel-open/common/inc/nv_uvm_interface.h

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -956,12 +956,20 @@ NV_STATUS nvUvmInterfaceGetNonReplayableFaults(UvmGpuFaultInfo *pFaultInfo,
956956
- This function should not be called when interrupts are disabled.
957957
958958
Arguments:
959-
device[IN] - Device handle associated with the gpu
959+
pFaultInfo[IN] - information provided by RM for fault handling.
960+
used for obtaining the device handle without locks.
961+
bCopyAndFlush[IN] - Instructs RM to perform the flush in the Copy+Flush mode.
962+
In this mode, RM will perform a copy of the packets from
963+
the HW buffer to UVM's SW buffer as part of performing
964+
the flush. This mode gives UVM the opportunity to observe
965+
the packets contained within the HW buffer at the time
966+
of issuing the call.
960967
961968
Error codes:
962969
NV_ERR_INVALID_ARGUMENT
963970
*/
964-
NV_STATUS nvUvmInterfaceFlushReplayableFaultBuffer(uvmGpuDeviceHandle device);
971+
NV_STATUS nvUvmInterfaceFlushReplayableFaultBuffer(UvmGpuFaultInfo *pFaultInfo,
972+
NvBool bCopyAndFlush);
965973

966974
/*******************************************************************************
967975
nvUvmInterfaceTogglePrefetchFaults
@@ -982,7 +990,8 @@ NV_STATUS nvUvmInterfaceFlushReplayableFaultBuffer(uvmGpuDeviceHandle device);
982990
Error codes:
983991
NV_ERR_INVALID_ARGUMENT
984992
*/
985-
NV_STATUS nvUvmInterfaceTogglePrefetchFaults(UvmGpuFaultInfo *pFaultInfo, NvBool bEnable);
993+
NV_STATUS nvUvmInterfaceTogglePrefetchFaults(UvmGpuFaultInfo *pFaultInfo,
994+
NvBool bEnable);
986995

987996
/*******************************************************************************
988997
nvUvmInterfaceInitAccessCntrInfo

kernel-open/common/inc/nv_uvm_types.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -700,8 +700,10 @@ typedef struct UvmGpuInfo_tag
700700
// local EGM properties
701701
// NV_TRUE if EGM is enabled
702702
NvBool egmEnabled;
703+
703704
// Peer ID to reach local EGM when EGM is enabled
704705
NvU8 egmPeerId;
706+
705707
// EGM base address to offset in the GMMU PTE entry for EGM mappings
706708
NvU64 egmBaseAddr;
707709
} UvmGpuInfo;
@@ -712,9 +714,10 @@ typedef struct UvmGpuFbInfo_tag
712714
// RM regions that are not registered with PMA either.
713715
NvU64 maxAllocatableAddress;
714716

715-
NvU32 heapSize; // RAM in KB available for user allocations
716-
NvU32 reservedHeapSize; // RAM in KB reserved for internal RM allocation
717-
NvBool bZeroFb; // Zero FB mode enabled.
717+
NvU32 heapSize; // RAM in KB available for user allocations
718+
NvU32 reservedHeapSize; // RAM in KB reserved for internal RM allocation
719+
NvBool bZeroFb; // Zero FB mode enabled.
720+
NvU64 maxVidmemPageSize; // Largest GPU page size to access vidmem.
718721
} UvmGpuFbInfo;
719722

720723
typedef struct UvmGpuEccInfo_tag

kernel-open/common/inc/os-interface.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: Copyright (c) 1999-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
* SPDX-FileCopyrightText: Copyright (c) 1999-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
33
* SPDX-License-Identifier: MIT
44
*
55
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -160,10 +160,9 @@ NvBool NV_API_CALL os_is_vgx_hyper (void);
160160
NV_STATUS NV_API_CALL os_inject_vgx_msi (NvU16, NvU64, NvU32);
161161
NvBool NV_API_CALL os_is_grid_supported (void);
162162
NvU32 NV_API_CALL os_get_grid_csp_support (void);
163-
void NV_API_CALL os_get_screen_info (NvU64 *, NvU32 *, NvU32 *, NvU32 *, NvU32 *, NvU64, NvU64);
164163
void NV_API_CALL os_bug_check (NvU32, const char *);
165164
NV_STATUS NV_API_CALL os_lock_user_pages (void *, NvU64, void **, NvU32);
166-
NV_STATUS NV_API_CALL os_lookup_user_io_memory (void *, NvU64, NvU64 **, void**);
165+
NV_STATUS NV_API_CALL os_lookup_user_io_memory (void *, NvU64, NvU64 **);
167166
NV_STATUS NV_API_CALL os_unlock_user_pages (NvU64, void *);
168167
NV_STATUS NV_API_CALL os_match_mmap_offset (void *, NvU64, NvU64 *);
169168
NV_STATUS NV_API_CALL os_get_euid (NvU32 *);
@@ -198,6 +197,8 @@ nv_cap_t* NV_API_CALL os_nv_cap_create_file_entry (nv_cap_t *, const char *,
198197
void NV_API_CALL os_nv_cap_destroy_entry (nv_cap_t *);
199198
int NV_API_CALL os_nv_cap_validate_and_dup_fd(const nv_cap_t *, int);
200199
void NV_API_CALL os_nv_cap_close_fd (int);
200+
NvS32 NV_API_CALL os_imex_channel_get (NvU64);
201+
NvS32 NV_API_CALL os_imex_channel_count (void);
201202

202203
enum os_pci_req_atomics_type {
203204
OS_INTF_PCIE_REQ_ATOMICS_32BIT,
@@ -219,6 +220,7 @@ extern NvU8 os_page_shift;
219220
extern NvBool os_cc_enabled;
220221
extern NvBool os_cc_tdx_enabled;
221222
extern NvBool os_dma_buf_enabled;
223+
extern NvBool os_imex_channel_is_supported;
222224

223225
/*
224226
* ---------------------------------------------------------------------------

kernel-open/common/inc/rm-gpu-ops.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ NV_STATUS NV_API_CALL rm_gpu_ops_own_page_fault_intr(nvidia_stack_t *, nvgpuDevi
7575
NV_STATUS NV_API_CALL rm_gpu_ops_init_fault_info(nvidia_stack_t *, nvgpuDeviceHandle_t, nvgpuFaultInfo_t);
7676
NV_STATUS NV_API_CALL rm_gpu_ops_destroy_fault_info(nvidia_stack_t *, nvgpuDeviceHandle_t, nvgpuFaultInfo_t);
7777
NV_STATUS NV_API_CALL rm_gpu_ops_get_non_replayable_faults(nvidia_stack_t *, nvgpuFaultInfo_t, void *, NvU32 *);
78-
NV_STATUS NV_API_CALL rm_gpu_ops_flush_replayable_fault_buffer(nvidia_stack_t *, nvgpuDeviceHandle_t);
78+
NV_STATUS NV_API_CALL rm_gpu_ops_flush_replayable_fault_buffer(nvidia_stack_t *, nvgpuFaultInfo_t, NvBool);
7979
NV_STATUS NV_API_CALL rm_gpu_ops_toggle_prefetch_faults(nvidia_stack_t *, nvgpuFaultInfo_t, NvBool);
8080
NV_STATUS NV_API_CALL rm_gpu_ops_has_pending_non_replayable_faults(nvidia_stack_t *, nvgpuFaultInfo_t, NvBool *);
8181
NV_STATUS NV_API_CALL rm_gpu_ops_init_access_cntr_info(nvidia_stack_t *, nvgpuDeviceHandle_t, nvgpuAccessCntrInfo_t, NvU32);

kernel-open/header-presence-tests.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,5 +96,6 @@ NV_HEADER_PRESENCE_TESTS = \
9696
soc/tegra/bpmp.h \
9797
linux/sync_file.h \
9898
linux/cc_platform.h \
99-
asm/cpufeature.h
99+
asm/cpufeature.h \
100+
linux/mpi.h
100101

0 commit comments

Comments
 (0)