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 | 40f73e715240096758478dcfc08b44154ed46a93 (patch) | |
| tree | 34b45bad436384de881b12194903eb97dd9f93e2 /kernel/gsp_phys_booter.h | |
| parent | 441ed847ddc182c61fa636993d1baab3912da38e (diff) | |
| download | open-iov-40f73e715240096758478dcfc08b44154ed46a93.tar.gz open-iov-40f73e715240096758478dcfc08b44154ed46a93.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 |
