2.5 KiB
Phase-1 hardware test plan
Preconditions
Every item must be complete before transfer:
- exact firmware is recorded and allowlisted for one artifact;
- the discovery-only capability probe has already completed on that firmware;
- source commit, SDK/SDL commits, artifact SHA-256, and static imports match the reviewed manifest;
- the console has no unsaved work and automatic retry/boot integration is off;
- an operator and observer have the redacted JSON-stage log visible;
- the bounded-wait blocker below has an accepted resolution.
Proposed timeline
- Verify digest again immediately before transfer.
- Transfer manually using an existing approved userland loader workflow.
- Start once, manually. No boot hook or retry.
- Require
firmware_gate,video_init,window_create,surface_acquire, andcpu_fillwithin five seconds total. - Permit exactly one
single_presentand a one-second hold. - Require
cleanupand process exit within five seconds after present. - Preserve logs and mark the firmware row pass, fail, or anomalous.
Watchdog and timeout
The application stages are bounded except the pinned SDL call
SDL_UpdateWindowSurface, whose backend waits for a flip event without a
publicly proven finite timeout. A cooperative application thread cannot safely
cancel it. Force-killing a thread while it owns VideoOut or direct-memory state
is prohibited.
Before authorization, one of these must be proven and separately reviewed:
- a public, licensed SDL/VideoOut change that supplies a bounded wait and returns control for cleanup; or
- a userland process supervisor whose termination semantics guarantee OS cleanup of VideoOut, equeue, and direct-memory ownership.
Until then, the operator wall-clock limit is a detection mechanism only, not a safe watchdog, and the hardware test remains blocked.
Cleanup, rollback, and emergency stop
Normal cleanup is SDL_DestroyWindow followed by SDL_Quit; the pinned
backend then closes VideoOut, releases direct memory, and deletes its equeue.
No second flip is attempted during cleanup.
On any error, missing stage, display anomaly, or deadline:
- do not retry;
- request normal userland process termination only if responsive;
- do not kill an individual worker thread;
- if display ownership does not return, use the console's normal controlled restart procedure; never patch firmware, registers, clocks, or fans;
- after restart, use the existing SDL software path and mark the artifact and firmware combination failed/unknown pending review.