# Controller A USB Write-Size Diagnostic Deployment — 2026-07-28

Status: complete
Type: evidence
Updated: 2026-08-01
Next Action: none; retain as predecessor deployment evidence for the qualified 32 KiB baseline
Parent: work/wp/completed/wp-characterize-usb-filex-write-size-durability.md

## Build

- Builder: isolated managed e2 headless clean Debug build, project `SMI/Debug`
- Repository checks: 23/23 passed
- Preserved artifact stem:
  `Debug/7520553_SMI_FW_USB_WRITE_SIZE_DIAG_20260728`
- ELF SHA-256:
  `FD9B30BD30CA3C3163A0551CC9491744895CAA3AC5D98E937CB81262A4D5CEC5`
- S-record SHA-256:
  `772773E39DF0F58396175E85A3FE25878F5F1036D2F39711913387D45EF105EF`
- map SHA-256:
  `8AE5578C92D4734AFE3CFDA1AB442C19F7A7C6C4C297E21CAA6634EBA9DF3E23`

The ELF exposes a 4-byte command and `0xD0`-byte result structure. The
diagnostic command is zero after boot and cannot run without an exact guarded
RAM command.

## Fixed Configuration

- USBX BOT maximum phase: 128 KiB
- FileX media buffer: 8 KiB
- USBHS payload/FIFO: 2 KiB
- external-SDRAM sequential buffer: 128 KiB
- IMX chunk: 32 KiB
- diagnostic FileX limits: 16, 32, and 64 KiB

The normal HPT export remains separately capped at 1 KiB in this diagnostic
image. Only the synthetic diagnostic varies the requested FileX call size.

## Output Contract

- 1 MiB: `U16K1M.CSV`, `U32K1M.CSV`, `U64K1M.CSV`
- 7 MiB: `U16K7M.CSV`, `U32K7M.CSV`, `U64K7M.CSV`
- Every file repeats the same exact 64-byte CSV row to the exact target size,
  so all three files within a tier must have identical host hashes.
- Publication uses temporary creation, bounded writes, close, media flush,
  rename, second flush, exact-size verification, and first/last-row
  verification.

## Rollback

The complete 4 MiB Controller A internal flash immediately before deployment:

`work/evidence/hpt-log-store-circular-mirror/controller-a/usb-write-size-diagnostic-20260728/rollback-pre-deploy/internal-flash.bin`

- SHA-256:
  `F6CFD8FAC0EA9C8F25D04A21B0F418B1B05BD4FC1750FBECFD347D470D1F5C7E`
- Pre-deployment application: exact B profile, S-record SHA-256
  `486B048B65BCE801CA26DD6B4448F11B92F6B4C815DAFE082E48CBD4F170CCF9`

## Deployment Verification

- Controller A assembly/J-Link: `1751136 / 69664082`
- Program and verify: passed; VTref 3.283 V
- Deployed S-record:
  `772773E39DF0F58396175E85A3FE25878F5F1036D2F39711913387D45EF105EF`
- Diagnostic command/state after boot: `0 / idle`
- USB mounted: `0`; no specimen test ran
- System errors, HPT media status, mismatch/lost records: `0 / 0 / 0 / 0`

Post-reboot SD identity:

- protocol/CID-valid/representative-read status: `6 / 1 / 0`
- SanDisk/WD, MID `0x03`, OEM `SD`, product `SS08G`, revision `8.0`
- serial `2540634244`, manufactured `2024-05`
- raw CID: `035344535330384780976F0084018559`

Raw captures remain in the ignored generated-evidence directory beneath
`work/evidence/hpt-log-store-circular-mirror/controller-a/usb-write-size-diagnostic-20260728/`.

The separately gated A-2 physical execution and Pi verification passed. See
`work/evidence/controller-a-a2-usb-write-size-qualification-20260728.md`.
