diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-23 12:11:10 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-23 12:11:10 -0400 |
| commit | 13f46e60760cc0855484cc69de913ea34f55c24f (patch) | |
| tree | df67eb2dfc5afd2c56845e514624a4842152a1f1 /wiki/RPC-Message-Format.md | |
| parent | 21b8ebc9db1d0ae649d6406087ea22b54e3b5775 (diff) | |
| download | open-iov-13f46e60760cc0855484cc69de913ea34f55c24f.tar.gz open-iov-13f46e60760cc0855484cc69de913ea34f55c24f.zip | |
docs: refresh status, supersede stale material, link the CUDA analysis
* Status now matches the live state: guest driver probe and nvidia-smi work;
cuInit/device queries work; cuCtxCreate returns 999 because the emulated
engine list is missing the async copy engine (COPY14). The userspace
libcuda segfault is recorded as solved, with its mechanism (an RM
allocation reply must echo request parameters; zeroing them corrupted the
caller's saved frame pointer).
* Correct the emulation claims: only a subset of RM controls are
special-cased; the rest return a success reply with zeroed parameters whose
consumed fields are still being corrected; allocation replies are coherent
but no server-side object model exists.
* Add the eight-point emulation checklist and reply-fidelity ladder as
explicit gates, documented in userspace/cuda and linked from the
architecture, implementation and operations docs.
* Fix operational errors: build/test commands, module load order, mdev type
names, LFS references, debugfs claims, in-repo firmware claims, CI claims,
portability matrix (guest status, config layout, userspace driver facts).
* Mark historical material: one superseded banner per legacy document with a
pointer to its replacement; STATE.md marked as a 2026-09-21 snapshot.
* Wiki: fix the index, add status banners and in-place factual corrections
(msgq transport vs legacy mailbox, BAR definitions, error statuses,
migration, glossary), and note the archived 2023 imports.
Diffstat (limited to 'wiki/RPC-Message-Format.md')
| -rw-r--r-- | wiki/RPC-Message-Format.md | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/wiki/RPC-Message-Format.md b/wiki/RPC-Message-Format.md index e627871..baec760 100644 --- a/wiki/RPC-Message-Format.md +++ b/wiki/RPC-Message-Format.md @@ -1,5 +1,16 @@ # GSP RPC Message Format Specification +> **Historical document — superseded.** This page describes the legacy BAR0 +> mailbox RPC model: the 64-byte `GSPR` magic header and the 12-type model +> below are **not** the path the guest driver uses. The live GSP-RM path is a +> message queue in guest system memory with 4 KB queue elements and a 32-byte +> RPC header (signature `0x43505256`, header version `0x03000000`); functions +> are a flat enum (`SET_GUEST_SYSTEM_INFO` 1, `FREE` 10, +> `GET_GSP_STATIC_INFO` 65, `GSP_RM_CONTROL` 76, `GSP_RM_ALLOC` 103, ...). +> Canonical documentation: +> [`../docs/03-architecture/03-gsp-and-gsp-rm.md`](../docs/03-architecture/03-gsp-and-gsp-rm.md) +> and [`../docs/03-architecture/06-host-module-and-hybrid-model.md`](../docs/03-architecture/06-host-module-and-hybrid-model.md). + ## Overview The GSP firmware uses a dispatcher-based RPC system with two dispatchers: - **Primary** (0x057A1AC0): ALLOC, FREE, MAP, UNMAP, PIN, UNPIN, SCHEDULE, YIELD, NOTIFY, BAR_TRAP, MIGRATE, DEBUG @@ -191,6 +202,9 @@ typedef struct { ## Wire Format (Host → GSP) +> **Legacy BAR0 mailbox format — not used by the guest driver.** The current +> msgq header/element facts are in the note at the top of this page. + ### Message Header (64 bytes) ```c typedef struct { |
