nvgpu driver
The nvgpu driver is used mainly/almost exclusively on NVIDIA Tegra SoCs. It's a GPU – as in accelerator block – only driver that doesn't handle display management – as that's handled by separate display hardware.
This driver is available at
https://nv-tegra.nvidia.com/r/gitweb?p=linux-nvgpu.git;a=summary under MIT license, except a few files, which are licensed as GPLv2.
drivers/gpu/nvgpu/common/gsp/gsp_test.c
drivers/gpu/nvgpu/include/nvgpu/gsp/gsp_test.h
drivers/gpu/nvgpu/os/linux/debug_gsp.h
drivers/gpu/nvgpu/os/linux/module.c
drivers/gpu/nvgpu/os/linux/debug_gsp.c
For a Tegra integrated GPUs, nvgpu isn't a standalone driver: it relies on the nvmap and host1x drivers for memory mapping and communication respectively.
For dedicated GPUs, unified memory isn't supported with this driver. NVIDIA also doesn't redistribute a firmware set for this driver for dedicated GPUs.
nvgpu supports multiple operating systems. It runs on Linux, QNX and Nintendo Horizon. This drivers supports Functional Safety (FUSA) requirements for automotive use.
This driver doesn't require the usage of the GPU System Processor present on Turing and later, and supports earlier GPUs.
Supported iGPUs by this driver: GM20B, GP10B, GV11B, GA10B
Supported dGPUs by this driver: GP106, GV100, TU104, GA100