summaryrefslogtreecommitdiffstats
path: root/patches/nvidia/README.md
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-21 11:09:36 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-21 11:09:36 -0400
commitad1f7a6a3cd262cc084673ec5cf0c561328ec7c7 (patch)
treee3369e40b8f36345911091b542021a4899bb474d /patches/nvidia/README.md
parent0ca41da65d675b624fb6389da1f488a24ea416e1 (diff)
downloadopen-iov-ad1f7a6a3cd262cc084673ec5cf0c561328ec7c7.tar.gz
open-iov-ad1f7a6a3cd262cc084673ec5cf0c561328ec7c7.zip
Make repo fully path-portable and add reproducible installer
- install.sh: one-command fresh-Ubuntu reproduction (deps, NVIDIA clone + patch, GSP firmware fetch from linux-firmware.git with objcopy .fwimage extraction + MD5 verify, ordered build, host config, load, mdev creation). Wrapper-neutral: works with libvirt/raw QEMU. - patches/nvidia: regenerated path-independent patch (KBUILD_EXTRA_SYMBOLS resolved via $(src)/$(CURDIR) relative to the NVIDIA tree). - scripts/stack_manager.sh and helper scripts auto-detect repo root (OPEN_IOV_ROOT override); no hardcoded developer paths anywhere. - firmware analysis scripts use script-relative paths (also fixes stale firmware/570-GSP references); docs/wiki updated to $OPEN_IOV_ROOT. - .github/workflows/ci.yml updated for standalone repo layout; firmware fetched from linux-firmware in CI. - Untrack remaining kbuild artifacts (Module.symvers, modules.order, *.o.d); gitignore them. - STATE.md: live project state, limitations, fixed/open bugs. - README.md: rewritten for clone-and-run reproducibility.
Diffstat (limited to 'patches/nvidia/README.md')
-rw-r--r--patches/nvidia/README.md45
1 files changed, 45 insertions, 0 deletions
diff --git a/patches/nvidia/README.md b/patches/nvidia/README.md
new file mode 100644
index 0000000..9c74f75
--- /dev/null
+++ b/patches/nvidia/README.md
@@ -0,0 +1,45 @@
+# NVIDIA open-gpu-kernel-modules Patches
+
+Open-IOV does **not** vendor the NVIDIA OpenRM source tree. Instead, the
+installer clones upstream at a pinned tag and applies this patch series.
+
+## Pinned upstream
+
+- Repository: <https://github.com/NVIDIA/open-gpu-kernel-modules.git>
+- Tag: `610.57.04`
+- Pristine-tree SHA256 of the delta base: tag `610.57.04`
+
+## Applying
+
+```bash
+git clone --depth 1 --branch 610.57.04 \
+ https://github.com/NVIDIA/open-gpu-kernel-modules.git
+cd open-gpu-kernel-modules
+git apply /path/to/open-iov/patches/nvidia/*.patch
+```
+
+(`install.sh` does this automatically.)
+
+## Regenerating the series
+
+If you modify the NVIDIA tree, regenerate the patches with:
+
+```bash
+cd nvidia-open-gpu-kernel-modules
+git format-patch 610.57.04..HEAD -o ../patches/nvidia/
+```
+
+## What the series does
+
+`0001-Build-fixes-and-vGPU-VFIO-interface-integration.patch`:
+
+- Adds the vGPU VFIO interface headers (`nv-vgpu-vfio-interface.h`,
+ `nv-vgpu-vfio-interface-nvidia.h`) that `open-iov-vfio.ko` and
+ `nvidia.ko` share.
+- Exports the vGPU VFIO symbols from `nvidia.ko`
+ (`nvidia_vgpu_vfio_probe/remove`, `nvidia_vgpu_vfio_get_ops/set_ops`,
+ `nv_vgpu_mdev_register_parent/unregister_parent`, ...).
+- Reports version `570.144` to match the GSP firmware the guest driver
+ stack is validated against.
+- Build fixes for kernel 6.8 out-of-tree builds and the
+ `Module.symvers.open-iov` reference list.