dev-qemu: Update HAL and use custom QEMU#28
Merged
Conversation
f338560 to
a6c8a6d
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the dev-qemu platform to use an updated QEMU HAL and switches execution to a custom ODP QEMU build (with the ec machine), fetched from GHCR and cached locally, so developers/CI can use socket-backed virtual I2C/GPIO going forward.
Changes:
- Add a unified
qemu-ec.shlauncher that resolves a customqemu-system-riscv32from GHCR (or$QEMU) and is used as the Cargo runner. - Update CI and integration-test flow to use the new runner and pre-warm the QEMU cache to avoid startup timeouts.
- Refresh
dev-qemudocs and lockfile to reflect the updated HAL dependency set.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/integration-test.sh | Prepares (warms) the custom QEMU cache before launching dev-qemu in headless CI mode. |
| platform/dev-qemu/README.md | Documents the custom ec machine behavior, Docker/GHCR-based QEMU provisioning, sockets, and configuration knobs. |
| platform/dev-qemu/qemu-ec.sh | New single-source runner: pulls/caches custom QEMU and launches with ec machine + socket chardevs + defmt routing. |
| platform/dev-qemu/Cargo.lock | Updates embassy-qemu-riscv git rev and lockfile dependency graph for the new HAL. |
| platform/dev-qemu/.cargo/config.toml | Switches Cargo runner to ./qemu-ec.sh and simplifies the run-headless alias. |
| .github/workflows/check.yml | Updates integration-test job env/pkgs to align with GHCR-provided QEMU instead of apt-installed QEMU. |
RobertZ2011
approved these changes
Jun 16, 2026
philgweber
approved these changes
Jun 18, 2026
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.
This updates the
qemu-riscv-haldep so we get access to the new HAL which makes use of the new custom socket-backed virtual I2C controller/target and gpio.Because this now requires a custom QEMU build, also added a script to pull our custom build from our odp-qemu-builder repo. Now,
cargo runwill automatically use that, and it is also used by CI/integration tests.dev-qemudoesn't currently make use of the new HAL, this is just to get everything in place for folks to start using it to test and develop with.Resolves #27