From 13f46e60760cc0855484cc69de913ea34f55c24f Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Wed, 23 Sep 2026 12:11:10 -0400 Subject: 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. --- docs/09-reference/legal-and-licensing.md | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'docs/09-reference/legal-and-licensing.md') diff --git a/docs/09-reference/legal-and-licensing.md b/docs/09-reference/legal-and-licensing.md index 74f1363..57aad43 100644 --- a/docs/09-reference/legal-and-licensing.md +++ b/docs/09-reference/legal-and-licensing.md @@ -30,9 +30,12 @@ In this repository you will find: * **GSP firmware images** (`firmware/**/*.fwimage.bin`) — fetched from public distribution channels (e.g. `linux-firmware`); used to understand and - emulate the firmware interface. -* **Decompiled firmware artifacts** (`firmware/**/decompiled/`) — our own - analysis output; kept for study and cited in the wiki. + emulate the firmware interface. They are **not distributed in this + repository**: like all firmware blobs they are gitignored and kept only as + local study material. +* **Decompiled/disassembled artifacts** (`firmware/**/decompiled/`) — our own + analysis output, kept locally for study and cited in the wiki. They are + gitignored and never committed. * **Reformatted interface tables** — IDs, structures and message layouts that we derived, published in `wiki/` and in this documentation tree. @@ -42,13 +45,28 @@ do not point readers at material we cannot redistribute, and do not redistribute third-party binaries as project content beyond what their terms allow. +**CUDA-userspace (`libcuda`) analysis rules:** + +* Decompiled or disassembled output is never committed; it is gitignored study + material. +* Cite userspace locations as `libcuda+0x...` *file virtual addresses*. Note + the Ghidra image-base caveat: that library is loaded at **`0x100000`**, so a + decompilation produced without translating the offset refers to the wrong + function. +* Tracked docs state facts and evidence; conclusions cite numeric IDs, code + offsets and recorded observations, never source locations. +* Name maps and indexes (`userspace/cuda/*/annotations/`) are our own work + product and may be tracked. + ## 3. Adversarial interoperability and the law We implement the *interface contract* so that unmodified NVIDIA software can talk to our device. We do not: * copy NVIDIA driver code into our kernel module, -* patch NVIDIA drivers or firmware, +* patch the guest, runtime or host driver at run time. The only patch series + we carry is build glue for the optional OpenRM submodule (`install.sh`); the + deployment path uses the distribution's NVIDIA driver as shipped, * defeat licensing for NVIDIA's own products (our device is our device; no impersonation of a licensed product identity). @@ -68,8 +86,8 @@ open an issue: we would rather over-comply than argue. contribution does not contain third-party material under incompatible terms. * Write original code. Describe behaviour, cite the evidence, and reimplement interfaces from observation rather than copying anyone's source. -* Do not commit firmware or ISO images unless they are explicitly permitted and - listed in `.gitattributes`/LFS policy. +* Do not commit firmware or ISO images: they are local study/deployment + material and are gitignored (see §2). ## 5. Export, safety and platform notes -- cgit v1.2.3