Skip to content
Merged
Changes from all commits
Commits
Show all changes
1727 commits
Select commit Hold shift + click to select a range
f5e1048
perf: walk-free NXP Kinetis I2C via held-level re-pend; flip FRDM-KW41Z
w1ne Jul 12, 2026
9cf70a3
Merge pull request #523 from w1ne/perf/walk-free-stm32-dma-i2c
w1ne Jul 12, 2026
3f8485d
fix(wasm): read SSD1306 framebuffer from the ESP32-S3 I2C controller
w1ne Jul 12, 2026
c922303
Merge pull request #524 from w1ne/fix/esp32s3-oled-fb-readback
w1ne Jul 12, 2026
fa2337d
perf: walk-free ESP32-C3 I2C0 via self-perpetuating module-tick events
w1ne Jul 12, 2026
a7c67b3
chore(validation): drift_ack esp32c3 for byte-identical i2c0 walk-fre…
w1ne Jul 12, 2026
4302c68
Merge pull request #525 from w1ne/c3-i2c-scheduler
w1ne Jul 12, 2026
3d10e2e
perf: walk-free ESP32-C3 spi2 + apb_saradc via level-only matrix export
w1ne Jul 12, 2026
5e387ca
feat(esp32s3): attach SSD1306 OLED @ 0x3C to I2C0 for the S3 OLED lab
w1ne Jul 12, 2026
00d4b9c
Merge pull request #527 from w1ne/feat/esp32s3-oled-i2c-attach
w1ne Jul 12, 2026
bdafddb
style: rustfmt the c3 level-peripheral test blocks
w1ne Jul 12, 2026
4242ff3
Merge pull request #526 from w1ne/c3-spi-adc-scheduler
w1ne Jul 12, 2026
b5f0fc3
jit: ISA-agnostic universal-dispatch JIT framework scaffold (Phase 2)
w1ne Jul 12, 2026
b9466bb
esp32c3: migrate LEDC off the per-cycle walk (timer port)
w1ne Jul 12, 2026
76d890a
Merge pull request #528 from w1ne/c3-ledc-scheduler
w1ne Jul 12, 2026
15151c0
refactor(cli): extract artifact serialization
w1ne Jul 12, 2026
79a0612
Merge pull request #529 from w1ne/agent/extract-cli-artifacts
w1ne Jul 12, 2026
1cb99fb
esp32c3: migrate wifi_mac off the per-cycle walk (last C3 pinner)
w1ne Jul 12, 2026
05faabb
Merge pull request #530 from w1ne/c3-wifi-mac-walk-free
w1ne Jul 12, 2026
7ff5cf4
jit(riscv): all-bail RV32IMC frontend + JitHost adapter + differentia…
w1ne Jul 12, 2026
05a92a2
Merge pull request #532 from w1ne/riscv-jit-foundation
w1ne Jul 12, 2026
c6b0be0
feat(peripherals): model SH1107 128x128 I2C OLED (#531)
w1ne Jul 12, 2026
4aab7a7
jit(riscv): wasm emit skeleton + integer-ALU codegen (chunk C)
w1ne Jul 12, 2026
6f4fe03
jit(riscv): branch/jump codegen (chunk D)
w1ne Jul 13, 2026
a6a6eab
jit(riscv): load/store codegen (chunk E)
w1ne Jul 13, 2026
2a29e2b
Merge pull request #533 from w1ne/riscv-jit-alu
w1ne Jul 13, 2026
711ab25
Merge pull request #534 from w1ne/riscv-jit-branches
w1ne Jul 13, 2026
531e132
Merge jit-framework-scaffold (C+D) into riscv-jit-memory (C+E)
w1ne Jul 13, 2026
8b19b13
Merge pull request #535 from w1ne/riscv-jit-memory
w1ne Jul 13, 2026
df7439c
test(riscv-jit): whole-program combined ALU+mem+branch MIPS bench
w1ne Jul 13, 2026
6df36e8
Merge pull request #536 from w1ne/riscv-jit-bench
w1ne Jul 13, 2026
fcf92f6
jit(riscv): wire JIT into Machine<RiscV> dispatch, off-by-default + S…
w1ne Jul 13, 2026
706a09e
Merge pull request #537 from w1ne/riscv-jit-activate
w1ne Jul 13, 2026
3204698
Merge remote-tracking branch 'origin/main' into scaffold-to-main
w1ne Jul 13, 2026
5ee9d1b
jit(riscv): match interpreter tick cadence (fix merge interaction wit…
w1ne Jul 13, 2026
c263f52
style: rustfmt after removing RISCV_JIT_BATCH_CAP
w1ne Jul 13, 2026
44e9861
Merge pull request #538 from w1ne/scaffold-to-main
w1ne Jul 13, 2026
67c8cff
fix(logic): drain acknowledged analyzer edges
w1ne Jul 13, 2026
6fd58f2
fix: ESP32-C3 I2C multi-chunk burst delivery (SSD1306 OLED black)
w1ne Jul 13, 2026
3dc5669
docs(validation): drift_ack for ESP32-C3 I2C underrun fix + regen status
w1ne Jul 13, 2026
902d0e4
Merge pull request #539 from w1ne/fix/esp32c3-i2c-burst-delivery
w1ne Jul 13, 2026
78b8561
feat(cli): serialize deterministic logic-analyzer edges into result.json
w1ne Jul 13, 2026
9e0959b
style(cli): cargo fmt logic-edges serialization
w1ne Jul 14, 2026
56287f4
Merge pull request #540 from w1ne/feat/logic-edges-cli-serialize
w1ne Jul 14, 2026
732a7f6
Remove avoidable thunks/cheats so fake state can't reach a run path
w1ne Jul 14, 2026
d085095
validation: drift_ack esp32s3 for wifi_thunks feature-gate
w1ne Jul 14, 2026
ea7092d
Merge pull request #541 from w1ne/chore/remove-avoidable-thunks
w1ne Jul 14, 2026
e75db76
feat(ci): publish versioned runner image
w1ne Jul 14, 2026
24b0fd3
test(ci): protect release archive and runner contracts
w1ne Jul 14, 2026
926ced2
ci(core): run release runner contract
w1ne Jul 14, 2026
0d0b02c
fix(ci): backfill public runner safely
w1ne Jul 14, 2026
3d1e966
docs(ci): use public core action
w1ne Jul 14, 2026
a7d8e79
Merge pull request #542 from w1ne/fix/easy-ci-runner-and-uds-embed
w1ne Jul 14, 2026
6dffd41
feat(ci): publish report-producing test action
w1ne Jul 14, 2026
9bb7294
fix(ci): bound report renderer inputs
w1ne Jul 14, 2026
02fb338
docs(ci): pin public action source
w1ne Jul 14, 2026
3a13349
fix(ci): retain totals beyond report cap
w1ne Jul 14, 2026
1b43bfc
docs(ci): repin public action source
w1ne Jul 14, 2026
f892a94
Merge pull request #543 from w1ne/fix/uds-ci-report-proof
w1ne Jul 14, 2026
5352366
docs: design released multi-node UDS runner
w1ne Jul 14, 2026
9fdfe37
docs: harden multi-node runner design
w1ne Jul 14, 2026
93bc3b6
docs: specify multi-node CI runner contracts
w1ne Jul 14, 2026
8077d75
feat(config): parse multi-node environment test scripts
w1ne Jul 14, 2026
812af28
fix(ci): enforce multi-node test-script boundaries
w1ne Jul 14, 2026
b6f2ae4
fix(config): reject explicit unsupported test fields
w1ne Jul 14, 2026
fac263c
fix(config): reject explicit unsupported env fields
w1ne Jul 14, 2026
67d0922
fix(config): preserve invalid environment script contracts
w1ne Jul 14, 2026
5b22c18
feat(esp32c3): exact-cycle event delivery + HW-measured RTC slow-clock
w1ne Jul 14, 2026
253c31a
fix(config): preserve explicit null memory nodes
w1ne Jul 14, 2026
5d0176e
style(esp32c3): cargo fmt clamped full-state differential test
w1ne Jul 14, 2026
1d88d57
Merge pull request #544 from w1ne/feat/esp32c3-event-exact-clock-hw-f…
w1ne Jul 14, 2026
a8e3e33
fix(config): keep memory-node provenance private
w1ne Jul 14, 2026
4d94894
feat(core): wire deterministic multi-node CAN environments
w1ne Jul 14, 2026
4481342
test(core): cover manifest-wired CAN topology
w1ne Jul 14, 2026
fb15db5
validation(esp32c3): optional bench clock-rate capture (not a PR gate)
w1ne Jul 14, 2026
f8edb87
Merge pull request #545 from w1ne/feat/esp32c3-hw-clock-validation-op…
w1ne Jul 14, 2026
12a542e
fix(core): make manifest CAN ordering deterministic
w1ne Jul 14, 2026
b6ff4a1
feat(cli): run multi-node environment test scripts
w1ne Jul 14, 2026
e7e504f
fix(cli): harden environment artifact contract
w1ne Jul 14, 2026
c47c6ed
fix(cli): clarify environment runner contracts
w1ne Jul 14, 2026
aef7548
feat(esp32c3): add JTAG watch fidelity fixture
w1ne Jul 14, 2026
aaf9ca9
fix(esp32c3): satisfy GPIO lint checks
w1ne Jul 14, 2026
16b8f47
Merge pull request #546 from w1ne/agent/c3-jtag-watch-fidelity-core
w1ne Jul 14, 2026
0e64a4e
feat(ci): release multi-node YAML runner
w1ne Jul 14, 2026
a0039dd
merge: reconcile current main before CI runner release
w1ne Jul 14, 2026
53777ca
fix(cli): meter environment test runs
w1ne Jul 14, 2026
c6f8c68
fix(ci): enforce environment runner contracts
w1ne Jul 14, 2026
0e1ca83
docs(ci): pin released environment runner contract
w1ne Jul 14, 2026
a268169
fix(ci): close environment world contract gaps
w1ne Jul 14, 2026
f6836be
docs(ci): pin hardened environment runner source
w1ne Jul 14, 2026
63a1e50
test(cli): remove metering API deadline race
w1ne Jul 14, 2026
a740858
test(cli): join metering API helper on panic
w1ne Jul 14, 2026
82c6c78
fix(ci): make action artifacts invocation-unique
w1ne Jul 14, 2026
6fbdea8
docs(ci): pin invocation-safe action source
w1ne Jul 14, 2026
2fc783f
test(release): exercise action artifact uniqueness
w1ne Jul 14, 2026
c16720e
Merge pull request #547 from w1ne/feat/released-multinode-uds-runner
w1ne Jul 14, 2026
21caaaa
docs(plan): define environment assertion completion
w1ne Jul 14, 2026
65315fe
fix(environment): stop durable worlds on assertions
w1ne Jul 14, 2026
40539dd
fix(ci): smoke runner image before release
w1ne Jul 14, 2026
fda6a7b
ci(action): default to v0.19.1
w1ne Jul 14, 2026
b8ecdc7
release: prepare v0.19.1 runner contract
w1ne Jul 14, 2026
64a829b
docs(ci): clarify environment completion precedence
w1ne Jul 14, 2026
017825c
fix(esp32c3): use Arduino clock in display workshop
w1ne Jul 14, 2026
62f3222
fix(esp32c3): document workshop build prerequisites
w1ne Jul 14, 2026
240fff7
test(config): preserve explicit environment completion limits
w1ne Jul 14, 2026
5d74b1d
Merge pull request #549 from w1ne/fix/c3-workshop-hardware-clock
w1ne Jul 14, 2026
2206501
Merge pull request #548 from w1ne/fix/environment-world-early-stop
w1ne Jul 15, 2026
75151eb
fix(release): preserve smoke artifact ownership
w1ne Jul 15, 2026
5c565e9
docs(ci): preserve bind-mounted artifact ownership
w1ne Jul 15, 2026
f1edb89
ci(action): default to v0.19.2
w1ne Jul 15, 2026
0cadd18
docs(action): align v0.19.2 release contract
w1ne Jul 15, 2026
ffbbe9e
release: prepare v0.19.2 runner contract
w1ne Jul 15, 2026
ac306ed
Merge pull request #550 from w1ne/fix/release-smoke-output-ownership
w1ne Jul 15, 2026
9b6afd4
fix(c3): enforce physical i2c routes
w1ne Jul 15, 2026
cec18e9
docs(validation): acknowledge c3 route drift
w1ne Jul 15, 2026
fbc1553
Merge pull request #551 from w1ne/feat/physical-i2c-route
w1ne Jul 15, 2026
549a991
fix ESP32-C3 timer CSR profile
w1ne Jul 15, 2026
7e47be9
Merge core main for SuperMini workshop profile
w1ne Jul 15, 2026
d864c61
style: format RISC-V CSR handling
w1ne Jul 15, 2026
53704bf
fix: satisfy RISC-V profile lints
w1ne Jul 15, 2026
9e1a154
test: gate wasm-only fast-start test
w1ne Jul 15, 2026
971263e
Merge pull request #552 from w1ne/agent/esp32c3-timer-profile
w1ne Jul 15, 2026
e6297a1
perf: optimize ESP32-S3 OLED profile path (#553)
w1ne Jul 15, 2026
654d3dd
feat(sim): count idle fast-forward cycles for browser perf HUD (#554)
w1ne Jul 15, 2026
a949b9d
perf(esp32): speed C3 model via XIP fetch fast path
w1ne Jul 15, 2026
6700108
perf(esp32): page-mirror + RV fetch window for C3 model speed
w1ne Jul 16, 2026
6def7fc
fix: restore docs accidentally deleted in page-mirror commit
w1ne Jul 16, 2026
67b3f1a
docs: move C3 XIP fetch notes to parent monorepo
w1ne Jul 16, 2026
da08e19
docs: remove superpowers plans/specs and fix docs URL
w1ne Jul 16, 2026
ff2c07e
perf(bus): O(1) last-window route + extra_mem word path
w1ne Jul 16, 2026
e287355
fix(clippy): drop unnecessary u32 cast in XIP translate
w1ne Jul 16, 2026
0916ae1
Merge pull request #556 from w1ne/chore/remove-superpowers-docs
w1ne Jul 16, 2026
6da1c0c
Merge pull request #555 from w1ne/perf/c3-xip-fetch-fastpath
w1ne Jul 16, 2026
781ed26
perf(bus): skip walk-tick refresh on walk-deleted C3 writes
w1ne Jul 16, 2026
b38c670
perf(sim): tick-512 + deadline-clamped batches toward native feel
w1ne Jul 16, 2026
fefb771
test: sim serial report for live C3 silicon cross-check
w1ne Jul 16, 2026
9754eb1
style: rustfmt for tick-512 / silicon report changes
w1ne Jul 16, 2026
a65d22a
perf(sim): O(1) scheduler deadline peek + gen scratch
w1ne Jul 16, 2026
5fe668e
fix(bus): gate earliest_pending_deadline on event-scheduler
w1ne Jul 16, 2026
de552ee
fix(clippy): question_mark on deadline peek; add browser-path smoke
w1ne Jul 16, 2026
ab7e555
Merge pull request #557 from w1ne/perf/c3-model-speed-next
w1ne Jul 16, 2026
a8eab38
perf(sim): coalesce millis/SYSTIMER busy-polls under idle FF (#558)
w1ne Jul 16, 2026
3075478
docs: design unified machine advance
w1ne Jul 16, 2026
a1a4232
docs: plan unified machine advance implementation
w1ne Jul 16, 2026
0251816
test(core): characterize machine execution paths
w1ne Jul 16, 2026
3d8f01c
test(core): exercise profile reset characterization
w1ne Jul 16, 2026
02d424f
test(core): harden execution characterization
w1ne Jul 16, 2026
2102b15
test(riscv): align idle fast-forward feature contract
w1ne Jul 16, 2026
9561f5a
fix(riscv): model c3 ustatus csr
w1ne Jul 16, 2026
e11a912
fix(riscv): accept c3 rom init csrs
w1ne Jul 16, 2026
0854170
test(cli): gate jit differential on feature
w1ne Jul 16, 2026
0f58b12
docs: tighten advance request contract
w1ne Jul 16, 2026
b49d6a1
fix(riscv): expose single-hart id csr
w1ne Jul 16, 2026
a4b5c22
feat(core): define machine advance contract
w1ne Jul 16, 2026
dde51e6
refactor(core): route single steps through machine advance
w1ne Jul 16, 2026
cbb6886
docs: clarify advance boundary semantics
w1ne Jul 16, 2026
cb54cbe
refactor(core): unify batched machine execution
w1ne Jul 16, 2026
e0581bd
refactor(cli): use unified machine advance
w1ne Jul 16, 2026
a6ddc9c
refactor(wasm): use unified machine advance
w1ne Jul 16, 2026
4456bcc
docs(core): establish authoritative advance lifecycle
w1ne Jul 16, 2026
87544eb
docs: make fidelity gates substantive
w1ne Jul 16, 2026
505b5c4
docs: clarify direct-step inventory scope
w1ne Jul 16, 2026
80957fb
docs: align final verification with repository gates
w1ne Jul 16, 2026
14eec7c
refactor(core): remove legacy execution loops
w1ne Jul 16, 2026
ce64393
test(cli): isolate asset import binary
w1ne Jul 16, 2026
87edb1b
test(core): make batched dwt gate non-vacuous
w1ne Jul 16, 2026
ff0f58d
fix(hw-oracle): use authoritative machine advance
w1ne Jul 16, 2026
5b269e2
fix(hw-oracle): preserve frozen peripheral settle
w1ne Jul 16, 2026
0ef5da0
fix(ci): acknowledge frozen oracle DMA drift
w1ne Jul 16, 2026
a2d3b9f
Merge pull request #559 from w1ne/refactor/unified-machine-advance
w1ne Jul 16, 2026
749bf45
perf(esp32c3): stop uart0 waking the scheduler every cycle (12.2x on …
w1ne Jul 17, 2026
d8c0c7a
chore(validation): ack stm32h563 shared-uart.rs drift for the irq_wir…
w1ne Jul 17, 2026
fc58931
Merge pull request #560 from w1ne/refactor/unified-machine-advance
w1ne Jul 17, 2026
0cca318
docs: remove stale docs and fix drifted references
w1ne Jul 17, 2026
40728ac
Merge pull request #561 from w1ne/docs/cleanup-stale
w1ne Jul 17, 2026
6f7014a
perf(bus): negative route cache for peripheral-miss addresses
w1ne Jul 17, 2026
99e6318
Merge pull request #562 from w1ne/perf/bus-negative-route-cache
w1ne Jul 17, 2026
3390ab4
perf(peripherals): O(1) register lookup in GenericPeripheral
w1ne Jul 17, 2026
c85ac77
perf(sim): reuse scratch buffers on the per-tick/per-event hot path
w1ne Jul 17, 2026
c67bddf
Merge pull request #563 from w1ne/perf/peripheral-o1-register-lookup
w1ne Jul 17, 2026
6d3518c
Merge pull request #564 from w1ne/perf/interp-alloc-clean
w1ne Jul 17, 2026
d62db7e
refactor(bus): consolidate duplicate SystemBus access methods to one …
w1ne Jul 17, 2026
54b7d72
Merge remote-tracking branch 'origin/main' into agent-consolidate-bus…
w1ne Jul 17, 2026
99b5941
validation: drift_ack C3+S3 for the byte-identical bus consolidation
w1ne Jul 17, 2026
b37e289
Merge pull request #565 from w1ne/agent-consolidate-bus-access
w1ne Jul 17, 2026
3368ddf
perf(memory): one bounds check per word access in LinearMemory
w1ne Jul 18, 2026
0eb1e4b
fix(esp32c3): classify GPIO input reads as side-effect-free for idle FF
w1ne Jul 18, 2026
fb055bc
style: rustfmt the systimer idle-FF repro test
w1ne Jul 18, 2026
615b962
Merge pull request #566 from w1ne/fix/c3-systimer-freeze
w1ne Jul 18, 2026
1cba2d9
Merge pull request #567 from w1ne/perf/linear-mem-single-deref-iso
w1ne Jul 18, 2026
2290d9f
perf(bus): reuse scratch buffer for per-batch matrix IRQ-source poll
w1ne Jul 18, 2026
9ddefce
perf(sched): drain due events into retained scratch instead of a fres…
w1ne Jul 18, 2026
b9da08f
Merge pull request #568 from w1ne/perf/interp-m3-profile
w1ne Jul 18, 2026
909066e
Merge pull request #569 from w1ne/perf/interp-m3-draindue
w1ne Jul 18, 2026
e62ced1
perf(bus): make AFIO walk-deletable (no-op register bank)
w1ne Jul 18, 2026
c4dd85e
perf(bus): make bxCAN walk-deletable when no interconnect is wired
w1ne Jul 18, 2026
b8828a0
perf(bus): make STM32 F1/L4 I2C event-schedulable (walk-free)
w1ne Jul 18, 2026
254824c
perf(bus): make STM32 EXTI event-schedulable (walk-free)
w1ne Jul 18, 2026
bf70bcb
perf(bus): make STM32 ADC event-schedulable (walk-free) — full L476 flip
w1ne Jul 18, 2026
166ee76
test(bus): L476 auto-derivation now flips walk-free under event-sched…
w1ne Jul 18, 2026
5e4c460
fix(sched): dedupe identical wake events to kill O(n²) sim slowdown
w1ne Jul 18, 2026
8bfd66b
test(bus): gate invaders full-flip assertion on event-scheduler feature
w1ne Jul 18, 2026
87be5d5
Merge pull request #570 from w1ne/fix/c3-i2c-transfer-oN2
w1ne Jul 18, 2026
95d33b3
docs(validation): drift_ack the I2C/EXTI/ADC walk-free migration (202…
w1ne Jul 18, 2026
4bb5c57
perf(bus): make STM32F1 RTC walk-deletable (no-op register bank)
w1ne Jul 18, 2026
0dbb4a9
test(bus): pin the full f103 lab-bus walk-deletion flip + rtc drift note
w1ne Jul 18, 2026
3575872
Merge pull request #571 from w1ne/perf/stm32f103-walk-delete
w1ne Jul 18, 2026
5164c51
test(coverage): add board-coverage ratchet gate
w1ne Jul 18, 2026
6887f41
test(rp2040): reset conformance + timer execution oracle
w1ne Jul 18, 2026
e221977
test(rp2040): PIO onboarding executing-fidelity golden test
w1ne Jul 18, 2026
87be45e
test(core): executing walk-vs-scheduler fidelity gates for f401/l073/…
w1ne Jul 18, 2026
c2982b9
test(perf): generalize shipped-lab batch gate over a committed budget
w1ne Jul 18, 2026
adeb5e1
ci(core-integrity): wire the board-coverage ratchet static scan
w1ne Jul 18, 2026
72ce3bc
test(esp32s3): add executing I2C+SSD1306, GDMA, and GPSPI oracles
w1ne Jul 18, 2026
8a993c7
test(nrf52): add executing SPIM EasyDMA oracle
w1ne Jul 18, 2026
7c18874
test(display): add PCD8544 and SSD1680 framebuffer fidelity different…
w1ne Jul 18, 2026
ba68d19
test(core): executing DMA1 walk-vs-scheduler gate on the real F103 bus
w1ne Jul 18, 2026
cbfd103
Merge pull request #573 from w1ne/test/board-coverage-ratchet
w1ne Jul 18, 2026
4a6724c
Merge remote-tracking branch 'origin/main' into test/rp2040-fidelity
w1ne Jul 18, 2026
03ffa7d
test(rp2040): drop rp2040 exec KNOWN_GAPS row — now covered
kaustubhmulay Jul 18, 2026
191229f
Merge remote-tracking branch 'origin/main' into test/stm32-fidelity
w1ne Jul 18, 2026
3ee6b12
test: drop stm32f401 exec KNOWN_GAPS row — now covered by walk differ…
kaustubhmulay Jul 18, 2026
11d76a4
Merge remote-tracking branch 'origin/main' into test/esp32s3-nrf52-di…
w1ne Jul 18, 2026
c829340
Merge pull request #572 from w1ne/test/rp2040-fidelity
w1ne Jul 18, 2026
8c20546
Merge pull request #574 from w1ne/test/esp32s3-nrf52-display-fidelity
w1ne Jul 18, 2026
fefebf0
Merge remote-tracking branch 'origin/main' into test/stm32-fidelity
kaustubhmulay Jul 18, 2026
9c93169
Add OpenAI Deck ESP32-S3 example + Potentiometer stimulus device
w1ne Jul 18, 2026
7f4a161
rustfmt: collapse set_potentiometer signature
w1ne Jul 18, 2026
fb165e8
Merge pull request #575 from w1ne/test/stm32-fidelity
w1ne Jul 18, 2026
285e5fc
Merge pull request #579 from w1ne/feat/openai-deck
w1ne Jul 18, 2026
bac9940
RP2040 DMA controller model (datasheet §2.5)
w1ne Jul 18, 2026
3750eb2
Add RP2040 DMA silicon-style exec oracle
w1ne Jul 18, 2026
393c535
Add STM32F4 FLASH/PWR reset models and fix RCC_CR HSITRIM default
w1ne Jul 18, 2026
66c2e96
Point F401 flash/pwr at F4 models, add GPIOA/B SWD reset defaults
w1ne Jul 18, 2026
889cf97
Add STM32F401 cold-reset conformance test
w1ne Jul 18, 2026
7d4b959
Model STM32F407 stream-based DMA controllers (DMA1/DMA2)
w1ne Jul 18, 2026
3953d28
Merge remote-tracking branch 'origin/main' into feat/rp2040-dma
w1ne Jul 18, 2026
8d956d8
docs: regenerate validation status for the RP2040 DMA model
kaustubhmulay Jul 18, 2026
d5e27ca
Merge remote-tracking branch 'origin/main' into fix/stm32f401-reset-v…
w1ne Jul 18, 2026
adcd019
validation: drift_ack l073 for the F4-only RCC reset fix
kaustubhmulay Jul 18, 2026
e03f509
Merge pull request #582 from w1ne/feat/stm32f407-dma
w1ne Jul 18, 2026
9203e3c
Merge pull request #580 from w1ne/feat/rp2040-dma
w1ne Jul 18, 2026
e11652d
Merge pull request #581 from w1ne/fix/stm32f401-reset-values
w1ne Jul 18, 2026
da3bbe8
Wire manifest external_devices on ESP32-S3 (I2C OLED); render SH1107 …
w1ne Jul 18, 2026
7e04a0a
Merge remote-tracking branch 'origin/main' into fix/s3-external-devic…
w1ne Jul 18, 2026
9856eb3
Merge pull request #583 from w1ne/fix/s3-external-devices-oled
w1ne Jul 18, 2026
4b2828d
labwired test: fast-boot ESP32-S3 from the manifest (not classic ESP32)
w1ne Jul 18, 2026
44d5e34
labwired test: fast-boot ESP32-S3 from the manifest (not classic ESP32)
w1ne Jul 18, 2026
088a72c
Merge remote-tracking branch 'origin/main' into fix/s3-test-path-boot
w1ne Jul 18, 2026
adfae61
Merge remote-tracking branch 'origin/fix/s3-test-path-boot' into fix/…
w1ne Jul 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions crates/cli/src/commands/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,77 @@ pub(crate) fn run_test(args: TestArgs) -> ExitCode {
// No load_firmware / set_pc: the CPU resets at 0x40000400 and
// the mapped ROM boots the app from flash exactly like silicon.
machine
} else if is_esp32s3 {
// ── ESP32-S3 (Xtensa LX7) fast-boot from the manifest ──────────
// `build_esp32_system_from_manifest` builds a CLASSIC ESP32 (LX6)
// memory map, which cannot load an S3 XIP ELF (its .rodata/.text
// land in the 0x3C00_0000 / 0x4200_0000 cache windows). S3 gets
// its own branch here — the SAME wiring the `run` command and the
// wasm/playground twin use: configure_xtensa_esp32s3 + wire the
// manifest's external_devices + fast_boot.
use labwired_core::boot::esp32s3::{fast_boot, BootOpts};
use labwired_core::peripherals::esp32s3::usb_serial_jtag::UsbSerialJtag;
use labwired_core::system::xtensa::{configure_xtensa_esp32s3, Esp32s3Opts};

let mut bus = labwired_core::bus::SystemBus::new();
let wiring = configure_xtensa_esp32s3(&mut bus, &Esp32s3Opts::default());
// Wire the manifest's declared external devices (e.g. the SH1107
// OLED on i2c0) through the generic factory.
if let Err(e) =
labwired_core::system::xtensa::attach_esp32_external_devices(&mut bus, manifest)
{
let msg = format!("{:#}", e);
error!("{}", msg);
write_config_error_outputs(
&args,
Some(&firmware_path),
system_path.as_ref(),
Some(&firmware_bytes),
Some(&resolved_limits),
msg,
);
return ExitCode::from(EXIT_CONFIG_ERROR);
}
bus.refresh_peripheral_index();

// S3 esp-hal serial goes through USB_SERIAL_JTAG, not UART0.
for p in bus.peripherals.iter_mut() {
if p.name == "usb_serial_jtag" {
if let Some(any) = p.dev.as_any_mut() {
if let Some(jtag) = any.downcast_mut::<UsbSerialJtag>() {
jtag.set_sink(Some(uart_tx.clone()), !args.no_uart_stdout);
}
}
}
}
bus.attach_uart_tx_sink(uart_tx.clone(), !args.no_uart_stdout);

let mut cpu = wiring.cpu;
if let Err(e) = fast_boot(
&firmware_bytes,
&mut bus,
&mut cpu,
&BootOpts {
stack_top_fallback: 0x3FCD_FFF0,
icache_backing: Some(wiring.icache_backing),
dcache_backing: Some(wiring.dcache_backing),
},
) {
let msg = format!("ESP32-S3 fast_boot: {e}");
error!("{}", msg);
write_config_error_outputs(
&args,
Some(&firmware_path),
system_path.as_ref(),
Some(&firmware_bytes),
Some(&resolved_limits),
msg,
);
return ExitCode::from(EXIT_RUNTIME_ERROR);
}
let mut machine = labwired_core::Machine::new(cpu, bus);
machine.observers.push(metrics.clone());
machine
} else {
let (mut esp_bus, esp_cpu) =
match labwired_core::system::builder::build_esp32_system_from_manifest(
Expand Down
Loading