# USB Stage 1 software baseline

Status: complete
Type: evidence
Updated: 2026-08-01
Next Action: none; retain as historical Stage 1 software evidence for the completed broad baseline

Project Map: work/maps/map-smi-firmware-stabilization-and-qualification.md
Workpackage: work/wp/completed/wp-restore-broad-usb-compatibility-baseline.md

## Outcome

Stage 1 is software-complete. It restores the v00.04.11 common-denominator USB
storage behavior and approximately 1 KiB production write baseline without
rolling back current HPT 2.0, export, firmware-update, graph, warning,
calibration, or recovery work.

This is build and static/host evidence only. No controller was programmed and
no USB specimen was qualified by this stage.

## Source comparison and classification

References:

- Released baseline: `v00.04.11` / `38611bcc`.
- Immediate pre-compatibility checkpoint: `ecea1c35`.
- Prior compatibility implementation: `e31e0198`.

| Classification | Stage 1 disposition |
| --- | --- |
| Restore | The nine modified vendored USBX storage files match the pre-compatibility/v00.04.11 source behavior; USBX pool, storage buffer, maximum transfer, and USBHS bulk payload configuration return to the 4.11 values. |
| Preserve | Current application-level HPT 2.0 export phases, retained-range selection, CSV completion marker and size verification, firmware-update validation, WAV handling, graph, warning, calibration, and recovery behavior remain. |
| Remove from production | Mandatory post-publication SYNCHRONIZE CACHE, START STOP UNIT durability lifecycle, controller VBUS cycle, re-enumeration/remount, and full-file reread are not required for normal IMX, PID, or HPT publication. |
| Qualification-only | Explicit VBUS and USB write-size diagnostics remain isolated from customer publication workflows. |
| Separately review | Stage 2 may change only the HPT FileX maximum write to 32 KiB after Stage 1B hardware acceptance. Optional durability behavior and any standards-based MBR correction require separate evidence and review. |

The restored USBX/configuration set has no substantive diff from `ecea1c35`
when whitespace-only differences are ignored. The remaining USB-thread delta
contains retained current product behavior plus the Stage 1 removal of the
mandatory production durability sequence.

## Software gates

| Gate | Result |
| --- | --- |
| `script/check-hpt-customer-export.ps1` | PASS, 34/34 |
| `script/check-usb-mass-storage-workflows.ps1` | PASS |
| `script/test-usb-mass-storage-workflows.py` | PASS, 9/9 |
| `script/check-usb-transaction-inventory.ps1` | PASS |
| `script/check-usb-write-size-diagnostic.ps1` | PASS, 9/9 |
| `script/check-code-review-mitigations.ps1` | PASS, 15/15 |
| Managed Debug rebuild | PASS |
| Managed Release rebuild | PASS |

Both managed builds completed with the repository's existing warning set and
no build failure.

## Exact build artifacts

| Artifact | Bytes | SHA-256 |
| --- | ---: | --- |
| `work/evidence/generated/usb-stage-1-software-baseline-20260731/7520553_SMI_FW-Debug.elf` | 14,716,220 | `94F0BB6C4FFC3AE1ABB321A453ED68D7795C849B33563CFB6B2EF2C6850582E9` |
| `work/evidence/generated/usb-stage-1-software-baseline-20260731/7520553_SMI_FW-Debug.srec` | 8,641,706 | `E027BC6278AA10794B4C20EECE9E670E76F7CB4C31D30186047B805256E4B3B6` |
| `work/evidence/generated/usb-stage-1-software-baseline-20260731/7520553_SMI_FW-Release.elf` | 11,376,216 | `0732D5E08B18AA0FAF939871147A1DF6744CE994DEE4C675E5F3695E69849E10` |
| `work/evidence/generated/usb-stage-1-software-baseline-20260731/7520553_SMI_FW-Release.srec` | 8,641,706 | `713B60D7D5B58E55FB6979FCAAC5E0BE551E4ECA5D6D637EA06B4768F4E90655` |

The generated artifact directory is intentionally Git-ignored under the
workspace evidence policy. The small hash manifest above is versioned; rebuild
from the committed source before any later deployment if the local generated
payload is unavailable.

## Remaining gate

Stage 1 does not establish broad compatibility until the exact candidate passes
Stage 1B. The owner selected `USB01_2G`, `USB05_4G`, `USB02_8G`, and
`USB03_32G` as the upfront matrix after their Windows-format Pi health check.
Cover each on Controllers A and B, then test USB09 without specimen-specific mitigation.
Record exact export size, completion marker, independent host readability, FAT
state, and candidate identity. Do not begin the isolated 32 KiB Stage 2 change
until Stage 1B is accepted.
