# USB session-recovery controller deployment

Status: complete
Type: evidence
Updated: 2026-08-01
Next Action: none; recovery coverage and the complete successor qualification sequence passed

Project Map: work/maps/map-smi-firmware-stabilization-and-qualification.md
Workpackage: work/wp/completed/wp-restore-broad-usb-compatibility-baseline.md
Checklist: work/checklists/checklist-stage-1b-four-drive-usb-compatibility-baseline.md

## Authorized candidate

- Owner authorization for controller programming remained in scope.
- Source commit: `96b8ab4b87e438c41370b24001a5ef00bcd93492`.
- Frozen-candidate manifest commit: `b860a39e`.
- Release S-record SHA-256:
  `0FE12FCE02C411378D1AF45EB11C1AC27694A5D69613830FD970865518C72B3F`.
- Release ELF SHA-256:
  `FEABA960AFD9A55C4BE742C69974D9FE2369D99B20E663975AB5F320F78416FC`.
- Expanded 4 MiB candidate internal-flash SHA-256:
  `429D5B2FFE72148288FAD79D8E7DDE160F74A5C0F6325439E44B1EDE42152C1A`.
- The exact generated candidate artifacts were used directly; tracked build
  outputs were not substituted.

## Rollback capture

Before programming, both controllers were captured independently across the
complete 4 MiB internal-flash range. Both captures matched the previously
running Stage 1 S-record after expansion.

| Controller | Assembly | J-Link | Bytes | Captured SHA-256 | Prior S-record match |
| --- | --- | --- | ---: | --- | --- |
| A | `1751136` | `69664082` | 4,194,304 | `8B21A60AEDCB69FBD6236B3C2971E3D4743C4CBB2B20AFF584891470737A3861` | PASS |
| B | `1751219` | `69660123` | 4,194,304 | `8B21A60AEDCB69FBD6236B3C2971E3D4743C4CBB2B20AFF584891470737A3861` | PASS |

The prior Release S-record was
`713B60D7D5B58E55FB6979FCAAC5E0BE551E4ECA5D6D637EA06B4768F4E90655`.
These captures preserve exact rollback images for both physical controllers.

## Serial-bound deployment and readback

Controller B was programmed and verified first. It passed complete flash
readback and post-reboot health before the identical candidate was programmed
to Controller A.

| Controller | Hardware variant | Program-and-verify | Full readback | Candidate match |
| --- | ---: | --- | --- | --- |
| B | 1 | PASS | `429D5B2F...42152C1A` | PASS |
| A | 0 | PASS | `429D5B2F...42152C1A` | PASS |

## Post-reboot controller and SD identity

| Gate | Controller A | Controller B |
| --- | --- | --- |
| Complete raw CID | `035344535330384780976F0084018559` | `035344535330384780976F0085018507` |
| CID available / driver status | `1 / 0` | `1 / 0` |
| MID / OEM / product | `03 / SD / SS08G` | `03 / SD / SS08G` |
| Revision / serial | `8.0 / 2540634244` | `8.0 / 2540634245` |
| Manufacturing date | `2024-05`, valid | `2024-05`, valid |
| SD state / identity / sector read | `5 / 1 / 1` | `5 / 1 / 1` |
| HPT state / status / SSP status | `5 / 0 / 0` | `5 / 0 / 0` |
| HPT mismatch / lost / replace-media | `0 / 0 / 0` | `0 / 0 / 0` |
| System errors / USB application errors | `0 / 0` | `0 / 0` |
| USB mounted / attached | `0 / 0` | `0 / 0` |
| Pending storage / FileX media pointer | `0 / 0` | `0 / 0` |

No SD card was removed or inserted. Programming reset each controller, so the
post-reboot CID and representative-sector evidence is a fresh identity gate.
The application-session diagnostic is present in the candidate and remained
zero-initialized because no USB session had yet begun.

## Evidence locations

Raw captures remain in ignored controller-specific directories:

- `work/evidence/hpt-log-store-circular-mirror/controller-a/usb-session-recovery-deployment-20260731/pre-deploy/`
- `work/evidence/hpt-log-store-circular-mirror/controller-a/usb-session-recovery-deployment-20260731/post-deploy/`
- `work/evidence/hpt-log-store-circular-mirror/controller-b/usb-session-recovery-deployment-20260731/pre-deploy/`
- `work/evidence/hpt-log-store-circular-mirror/controller-b/usb-session-recovery-deployment-20260731/post-deploy/`

## Disposition

The exact session-recovery candidate is deployed identically and passes the
controller, full-flash, and SD baseline gates on both hardware variants. This
clears focused USB insertion/recovery testing. It does not yet close the
Stage 1B failure, qualify USB09, or authorize Stage 2.
