# 40 — New-version triage (one command) > **Status: in development (2026-10-03).** Implemented, tested and measured on > the TU104 570.144 image; the measured value proof is section 5. Interfaces > and report fields may still change. Simulator-only: never touches hardware, > GPU, mdev, a kernel module or a guest; nothing is downloaded. > > **Audience:** agents and maintainers of risc-v-gsp-rm-debugger. > > This document is public-safe: it describes components, behaviour and > measured numbers only. --- ## 1. Why this exists (U46) The program has one goal: cut the time from a new NVIDIA RM driver / GSP firmware release to supported in `vgsp`. Today a new image is triaged by hand by reading docs/07 P1 and invoking four different tools in sequence (probe, native boot, A/B, version diff), then collecting session paths and writing a summary. `harness/triage.py` turns that into **one bounded command** that reuses the existing tools - it does not reimplement any of them: | Step | Reuses | Answers | |---|---|---| | `identity` | `greeneye.elf`, `sha256` | what is the image, which version, which baseline | | `probe` | `harness/sim_qemu_line.py:run_qemu_baseline` (the v0.1 probe path) | where does it first fault / first touch under QEMU | | `native_boot` | `python3 -m sim.gsp_boot` (S1 device model + boot ladder) | how far does the native ladder get (B0–B4) | | `ab_eval` | `harness/sim_qemu_line.py:run_harness` | QEMU vs native A/B, determinism, frozen thresholds | | `version_diff` | `harness/version_diff.py` (only with `--baseline`) | image/symbol/corpus/probe/behavior delta, RM 610 gate respected | | `features` | none (introspection) | hooks/watch/memory/session API, native sim, TCG plugin, MCP, demo | | `support_readiness` | derived | blockers and ordered next actions for `vgsp` support work | Every step is wrapped: a failing step is recorded as `status: error`, the remaining steps still run, and the report is still written. Every session a step used is listed with its sha256 hashes. --- ## 2. Usage Run from the tool root (`open-iov/debug/risc-v-gsp-rm-vm`): ```bash # Plan only (no targets opened, no --out created) python3 harness/triage.py \ --firmware ../../firmware/57X-GSP/570.144/gsp-570.144.fwimage.bin \ --version 570.144 --out dumps/triage-570.144 --dry-run # Single new image: identity + probe + bootstrap ladder + A/B + features python3 harness/triage.py \ --firmware --version