diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-01 17:24:46 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-01 17:24:46 -0400 |
| commit | 3d960c88f6167aad599a2921c0cf2fa635d0484d (patch) | |
| tree | 63139ded3a49b9f3f11c07d233e2da5c497b0b66 /kernel/gsp_phys_booter.h | |
| parent | 6076a58e85168b2cdd7efbde2e226708f5c5c5b0 (diff) | |
| download | open-iov-3d960c88f6167aad599a2921c0cf2fa635d0484d.tar.gz open-iov-3d960c88f6167aad599a2921c0cf2fa635d0484d.zip | |
gsp-phys: add the host RM-client ladder (gsp-phys-rm-call) for real object allocation and a first real copy
Diffstat (limited to 'kernel/gsp_phys_booter.h')
| -rw-r--r-- | kernel/gsp_phys_booter.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/gsp_phys_booter.h b/kernel/gsp_phys_booter.h index 7ed1635..935777f 100644 --- a/kernel/gsp_phys_booter.h +++ b/kernel/gsp_phys_booter.h @@ -138,6 +138,23 @@ int gsp_phys_boot_rm_unload(void __iomem *bar0); * sends when init-done was not observed and never touches WPR2. The * static-info reply is decoded into dmesg (internal handles, split-VA * flag, BAR1/2 PDE bases, FB geometry, engine caps, SRIOV/board fields). + * - "gsp-phys-rm-call" (write-only, mode 0200): writing N (1..4) runs the + * host RM client ladder cumulatively through stage N on a live, init-done + * claim and remembers the reached stage for the rest of the session: + * stage 1 allocates NV01_ROOT -> NV01_DEVICE_0 -> NV20_SUBDEVICE_0 + * (function 103); stage 2 allocates and registers the nine DMA buffers + * (function 4, NV01_MEMORY_LIST_SYSTEM with real PFNs); stage 3 allocates + * KEPLER_CHANNEL_GROUP_A (COPY0) and TURING_CHANNEL_GPFIFO_A with the + * physical instance/userd/ramfc/mthdbuf descriptors then requests the + * work-submit token (function 76); stage 4 schedules the channel, writes + * the CE method block plus GPFIFO entry and USERD GP_PUT, rings the PF + * channel doorbell and polls the sysmem semaphore for a real 4 KB + * sysmem-to-sysmem copy (function 76 + the CE doorbell path). Serialised + * with the other triggers by gsp_phys_rm_lock, per-RPC bounded + * (2000 ms), aborts at the first failure with no object teardown (UNLOAD + * + rmmod is the fail-safe), never touches WPR2, and is inert until the + * file is written. Ladder buffers are freed by + * gsp_phys_boot_staging_free() on release. * - "gsp-phys-state" (read-only, mode 0444): seq_file snapshot of the * claimed/booted state (falcon registers, scratch14, both queue TX * headers, a bounded read-only status-ring walk, the stage flags and the |
