# Isolated 32 KiB USB recovery software candidate

Status: complete
Type: evidence
Updated: 2026-08-01
Next Action: none; USB09 and broad-matrix qualification passed and this candidate is retained as historical software evidence

Project Map: work/maps/map-smi-firmware-stabilization-and-qualification.md
Workpackage: work/wp/completed/wp-restore-broad-usb-compatibility-baseline.md
Incident: work/incidents/incident-usb09-false-write-failure-and-usb-compatibility-architecture-correction.md

## Outcome

The isolated 32 KiB recovery discriminator is software-complete. Relative to
the deployed session-recovery candidate, the only firmware behavior change is
`HPT_USB_FILE_WRITE_CHUNK_BYTES`, from 1 KiB to 32 KiB. The v00.04.11 USBX,
FileX, USB configuration, application-session recovery, publication ordering,
and no-VBUS production lifecycle remain unchanged. No drive identity,
specimen rule, transport retry, timeout replay, optional SCSI command, VBUS
action, or controller power action was added.

The change is a qualification candidate, not a production compatibility
claim. USB09 and the broad drive matrix must pass before promotion.

## Source and software gates

- Source commit: `8fa1479b6b942f72f18ff4ed2cb1a5c73ddc2501`.
- `script/check-hpt-customer-export.ps1`: PASS, 34/34.
- `script/check-usb-mass-storage-workflows.ps1`: PASS.
- `script/check-usb-transaction-inventory.ps1`: PASS.
- `script/test-usb-mass-storage-workflows.py`: PASS, 9/9.
- `script/check-usb-write-size-diagnostic.ps1`: PASS, 9/9.
- `script/check-code-review-mitigations.ps1`: PASS, 15/15.
- Canonical managed Debug rebuild: PASS.
- Canonical managed Release rebuild: PASS.
- Debug and Release packaging: PASS; stable and versioned ELF/S-record hashes
  match within each configuration.

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

## Exact candidate artifacts

| Artifact | Bytes | SHA-256 |
| --- | ---: | --- |
| `work/evidence/generated/usb-32k-recovery-candidate-20260731/7520553_SMI_FW-Debug.elf` | 14,688,888 | `42E9698C93E61A794BB25E33BD72585CF622925B2C98ABA3C12C915D737B0F58` |
| `work/evidence/generated/usb-32k-recovery-candidate-20260731/7520553_SMI_FW-Debug.srec` | 8,640,666 | `D6ADED5FC883B1B2F175C6E8648C0620495A6D17937893F3CF1D0E1455A31124` |
| `work/evidence/generated/usb-32k-recovery-candidate-20260731/7520553_SMI_FW-Release.elf` | 11,358,056 | `6A2D8F79D72387311C83599663B192FCF764F53AB3E0926E3B917F3746B426CA` |
| `work/evidence/generated/usb-32k-recovery-candidate-20260731/7520553_SMI_FW-Release.srec` | 8,640,666 | `82A277EEBBED0CC4FBDDCC848ACEFD43E706849803673C4920E7851FC2ACABB5` |

The generated directory is intentionally ignored. Repository-tracked build
outputs were restored to their pre-build versions after exact hash capture so
that generated binaries are not included in the source checkpoint. Deployment
must use the explicit generated ELF and S-record paths above, not the default
tracked Release paths.

## Deployment and remaining gate

Deployment passed Controller B first and Controller A second with exact
full-flash readback, hardware identity, zero-error state, and complete
post-reboot SD CID/detection/representative-sector evidence. See
`work/evidence/usb-32k-recovery-controller-deployment-20260731.md`.

USB09 requires a newly clean FAT32 baseline before its controller retest;
preserving or erasing its current failed filesystem is a separate
operator-authorized media action.
