summaryrefslogtreecommitdiffstats
path: root/docs/05-operations/02-debugging-and-maintenance-workflows.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/05-operations/02-debugging-and-maintenance-workflows.md')
-rw-r--r--docs/05-operations/02-debugging-and-maintenance-workflows.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/docs/05-operations/02-debugging-and-maintenance-workflows.md b/docs/05-operations/02-debugging-and-maintenance-workflows.md
index 8d711c6..cfc452d 100644
--- a/docs/05-operations/02-debugging-and-maintenance-workflows.md
+++ b/docs/05-operations/02-debugging-and-maintenance-workflows.md
@@ -322,6 +322,34 @@ version × each hardware family, run the step-5 bring-up sequence. When adding
a version, extend the matrix rather than replacing the old column —
regressions across versions are the cheapest bugs to catch.
+### 4.1.1 Green-eye-assisted upgrade/porting workflow (experimental)
+
+<!-- change (2026-10-02): add the green-eye probe -> symbols -> version diff ->
+portability matrix -> decide pipeline to the upgrade runbook, with pointers to
+the new RUNBOOK and green-eye user guide; additive only. -->
+
+For firmware-side questions the experimental green-eye tooling (see
+[`03-risc-v-gsp-rm-vm.md`](03-risc-v-gsp-rm-vm.md)) turns steps 3–5 above into
+a repeatable pipeline that produces attachable evidence before any emulation
+change. It never replaces the physical backend when silicon truth is required,
+and it never touches a guest, a kernel module or the installed driver.
+
+| Rung | Command (from `debug/risc-v-gsp-rm-vm/`) | Output |
+|---|---|---|
+| Probe | `./greeneye.sh probe <new.fwimage> --symbols symbols-<ver>.json --record` | first-divergence report; first-touch map |
+| Symbols | `./greeneye.sh symbols export --index <export.tsv> --bias 0 -o symbols-<ver>.json` | runtime-address symbol DB with provenance |
+| Version diff | `python3 harness/version_diff.py --old <old> --new <new> --out dumps/vdiff-<ver>` | shape/symbol/corpus/probe/behavior diff plus the M1–M6 skeleton |
+| Portability matrix | `python3 harness/portability_matrix.py --target <old> --target <new> --out dumps/matrix-<ver>` | per-target sessions and per-pair `compare` reports |
+| Decide | `./greeneye.sh compare dumps/<old-run> dumps/<new-run> --symbols` | symbol-attributed deltas; a product change only after physical confirmation |
+
+Decision discipline: verify the pairing first; behaviour that moved without a
+code change is usually a state/ordering fix; changed code on a live path is
+prioritised; a symbol never hit in either run is a coverage gap, not dead code.
+The full incident procedures (symptoms, evidence, response order, rollback) are
+in the [Open-IOV Defensive Operations Runbook](../RUNBOOK.md) S1 and its OODA
+ordering; the quickstart and tool chooser are in the
+[green-eye user guide](04-green-eye-user-guide.md).
+
### 4.2 New guest driver version
1. Install the stock driver in a guest (no patches).