summaryrefslogtreecommitdiffstats
path: root/firmware
Commit message (Collapse)AuthorAge
* Make repo fully path-portable and add reproducible installerArthur Hanson Rasmusson2026-09-21
| | | | | | | | | | | | | | | | | | | - 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.
* repo: Untrack binaries/vendor/wrapper layers, add .gitignore + NVIDIA patchesArthur Hanson Rasmusson2026-09-21
| | | | | | | | | | | | | | | | | | | | | Restructure for clean mirroring to git.vgpu.io/open-iov.git: - Untrack GSP firmware blobs and decompiled output (firmware/**/*.bin, firmware/**/decompiled/) - large, license-restricted NVIDIA binaries. Analysis scripts, docs, and address maps remain tracked. - Untrack nvidia-open-gpu-kernel-modules submodule; our delta against upstream tag 610.57.04 is now tracked as a patch series in patches/nvidia/ and applied by install.sh after cloning. - Untrack kernel build artifacts (*.o, *.ko, Module.symvers, ...). - Untrack Ghidra project databases (*.rep/, *.gpr) - scripts remain. - Untrack VM images (*.iso, *.img, *.qcow2) and compiled helper binaries. - Drop git-lfs (.gitattributes) - no large objects remain in git. - Local QEMU-wrapper layers (scripts/vgpu_vm.py, qemu_control.py, qemu_harness.sh) are gitignored: the repo is hypervisor-management neutral (libvirt, raw QEMU all work). All files remain on disk; only git tracking changes. No source code modified.
* VFIO device registration fix + IOMMUFD callbacks + VFIO ioctl handlersArthur Hanson Rasmusson2026-09-14
- Removed IOMMU group addition before vfio_register_emulated_iommu_dev() in nv_vgpu_mdev_create() - Added IOMMUFD callbacks (bind_iommufd, unbind_iommufd, attach_ioas, detach_ioas) using kernel's vfio_iommufd_emulated_* functions - Implemented VFIO ioctl handlers: GET_INFO, GET_REGION_INFO, GET_IRQ_INFO, SET_IRQS, MMAP - Added config space read/write handlers at offset 0x70000000000 - Mmap handler for config space, BAR0 (emulation shadow), BAR1-5 (physical VRAM/registers) - Interrupt handler for VFIO_DEVICE_SET_IRQS (DATA_EVENTFD, DATA_NONE, DATA_BOOL) - Added udev rules for vfio group permissions - Created stack_manager.sh unified tool - Fixed mdev remove crash with deferred cleanup in vfio_device_release callback - Kernel 6.8+ IOMMUFD compatibility - QEMU launches successfully with vGPU passthrough