Conversation
CheckpointWalk<R, G> walks a device's BootCheckpoints in declaration order, polling an EvidenceReader at each step and judging per-checkpoint windows against caller-injected now_millis. Read errors are treated as silence (Booting), lapsed windows are timeouts with no last-chance read. The QEMU runtime itest (scenarios 1-2) now uses CheckpointWalk directly instead of the hand-rolled checkpoint loop, separating walk judgment from BootWatchdogs scheduling. Scenarios 3-5 (BootWatchdogs multiplexing and commit watchdog) are unchanged. The config crate's BootCheckpoint type gets a wiring example showing three GPIO checkpoints with pin bindings. Assisted-by: Claude (anthropic.com)
1 task
chrysh
added a commit
to 9elements/openprot
that referenced
this pull request
Sep 17, 2026
BmcBootReader dispatches BmcSignal::Bl1 to a GpioBootMonitor bound at bring-up to pin 42 (bank EH, bit 10, active-high). BMC_DEVICE holds the device table constant: one checkpoint, 500 ms window. The crate is host-testable against a mock GPIO port; 3 tests cover Booted/Booting dispatch and the device-table shape. The platform driver constructs the reader and hands it to CheckpointWalk at wiring time. Depends on OpenPRoT#471 (CheckpointWalk). Assisted-by: Claude (anthropic.com)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
CheckpointWalk<R, G>, the concreteBootWatchthat walks a device'sBootCheckpoints in declaration order, polling anEvidenceReaderat eachstep and judging per-checkpoint windows against caller-injected
now_millis.CheckpointWalkdirectly,separating walk judgment from
BootWatchdogsscheduling.BootCheckpoint's doc comment in the configcrate.
Read errors are silence (
Booting), lapsed windows are timeouts with nolast-chance read. 17 host unit tests cover happy path, timeout, device faults,
read errors, arm/re-arm, deadline arithmetic, and construction rejection.
Test plan
bazel test //services/orchestrator/adapters/walk:orchestrator_checkpoint_walk_test(17 host tests)bazel test //services/orchestrator/config:orchestrator_config_testbazel test --config=virt_ast10x0 //target/ast10x0/tests/orchestrator/runtime:runtime_test(5 QEMU scenarios)bazel test --config=virt_ast10x0 //target/ast10x0/tests/orchestrator/runtime:no_panics_test