silicon: NUCLEO-G474RE anchor protocol scaffolding (board-prep)#37
Open
silicon: NUCLEO-G474RE anchor protocol scaffolding (board-prep)#37
Conversation
CI = Renode (deterministic, parallel-safe). Silicon captures are
manual, periodic, and shared across one board per architecture.
Recorded captures live in the repo as immutable evidence, citeable
from any blog post via stable git URLs. This commit is the
scaffolding — protocol doc, build wrapper, board overlay, capture
script — that makes a silicon capture a flash-and-go operation
the moment hardware is in hand.
Files:
silicon/README.md
Protocol: why we silicon-anchor, the recorded-run-in-git
convention, the capture procedure for the NUCLEO-G474RE, the
comparison workflow against Renode CI, anchor cadence, and
the don't-do-this list (overwriting, mixing pre/post-overhead-
compensation captures, claiming WCET).
silicon/capture.sh
Build + flash + capture + tag + manifest, in one invocation.
--board nucleo_g474re --variant {baseline,gale} [--sweep ...].
Auto-detects the serial port on macOS / Linux. Refuses to
overwrite an existing dated dir.
silicon/capture.py
Cross-platform pyserial UART capture. Reads until '=== END ===',
times out at the wall clock, writes the raw stream to a file.
silicon/boards/nucleo_g474re/{README.md,prj.conf}
Board notes + (currently empty) Kconfig overlay. Cortex-M4F + FPU
@ 170 MHz, ST-Link/V3E with VCP at 115200, DWT_CYCCNT works
identically to stm32f4_disco. Closest production-shape silicon
to our existing Renode target.
silicon/runs/.gitkeep
Placeholder; first dated capture goes in here.
Each captured run will commit:
- output.csv (raw firmware UART)
- events.csv (tagged through tag_events.py)
- firmware.elf + firmware.elf.sha256
- manifest.txt (board, MCU, gale_sha, rustc, west, zephyr_sha,
ELF sha256, capture timestamp, port, timeout)
Manual flow only — no CI changes. README updated to point at
silicon/ from the methodology section.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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
Scaffolding for the silicon-anchor protocol so that when the
NUCLEO-G474RE arrives this week, taking a capture is a single
`bash silicon/capture.sh --board nucleo_g474re --variant baseline --sweep long`
away. No firmware code touched; no CI changes. Manual-flow only,
recorded directly into the repo.
Companion to PR #36 (overhead compensation + SCOPE.md). Composes
cleanly on top — when #36 lands, silicon captures will already
emit the `overhead_cycles,` metadata and be apples-to-apples
with the post-compensation Renode CI numbers.
Architecture
team, recorded as immutable evidence in `silicon/runs//`.
Citeable from any blog post via stable git URL.
The relationship `silicon_median / renode_median` per RPM step is
what the anchor establishes. Once consistent across multiple
captures it can be cited as the Renode-silicon multiplier for that
bench/board combination.
What's in this PR
Each captured run will commit:
CSV row counts are small (~50–500 KB per long-sweep run). At one
capture per board per major bench-relevant commit, repo growth is
modest.
Test plan
arrives — that's the validation that matters; this PR is
preparation only.
Out of scope
Renode equivalent built first (RISC-V port of engine_control)
before silicon makes sense. Tracked separately.
side-by-side rendering: deferred until the first capture exists
to test against.
🤖 Generated with Claude Code