summaryrefslogtreecommitdiffstats
path: root/tools
Commit message (Collapse)AuthorAge
* 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
* Initial commit: Open-IOV vGPU-IO complete stackArthur Hanson Rasmusson2026-09-13
- Firmware decompilation: GSP 570.144W (28.5MB ELF, RV64IMAC), 132 decompiled C files - Kernel modules: nvidia.ko (34MB, OpenRM), open-iov-vfio.ko (2.8MB, VFIO mdev), gsp-vgpu.ko (1.8MB, guest driver) - Userspace: libiov.so/libvgpu.so (76KB), example_vgpu (28KB), rpc_emulator.c - PCI config space emulation (256B with PM, MSI, MSI-X, PCIe caps) - 12 RPC types fully mapped from firmware decompilation - BAR trap, WPR, scheduling, notification, migration emulation - Helper scripts: load_vgpu_stack, create_mdev, launch_qemu_vgpu, test_vgpu_stack, setup_guest_driver, unload_vgpu_stack - Architecture documentation - Wiki: 10 technical documents - Git LFS for large binaries (.ko, .bin, .iso, .img, .o, ghidra repos) - nvidia-open-gpu-kernel-modules as submodule