Skip to content

dev-qemu: Update HAL and use custom QEMU#28

Merged
kurtjd merged 3 commits into
OpenDevicePartnership:mainfrom
kurtjd:update-qemu-ec
Jun 18, 2026
Merged

dev-qemu: Update HAL and use custom QEMU#28
kurtjd merged 3 commits into
OpenDevicePartnership:mainfrom
kurtjd:update-qemu-ec

Conversation

@kurtjd

@kurtjd kurtjd commented Jun 15, 2026

Copy link
Copy Markdown
Member

This updates the qemu-riscv-hal dep 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 run will automatically use that, and it is also used by CI/integration tests.

dev-qemu doesn'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

@kurtjd kurtjd self-assigned this Jun 15, 2026
@kurtjd kurtjd force-pushed the update-qemu-ec branch 4 times, most recently from f338560 to a6c8a6d Compare June 16, 2026 03:44
@kurtjd kurtjd marked this pull request as ready for review June 16, 2026 03:51
@kurtjd kurtjd requested a review from a team as a code owner June 16, 2026 03:51

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.sh launcher that resolves a custom qemu-system-riscv32 from 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-qemu docs 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.

Comment thread platform/dev-qemu/qemu-ec.sh
Comment thread platform/dev-qemu/.cargo/config.toml
Comment thread platform/dev-qemu/README.md Outdated
@kurtjd kurtjd merged commit 8705e32 into OpenDevicePartnership:main Jun 18, 2026
40 checks passed
@kurtjd kurtjd deleted the update-qemu-ec branch June 18, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

dev-qemu: Introduce emulated I2C peripheral

4 participants