Skip to content

dev-qemu: select MCTP medium via sp-serial feature#3

Open
dymk wants to merge 1 commit into
mainfrom
dymk/dev-qemu-serial-medium-feature
Open

dev-qemu: select MCTP medium via sp-serial feature#3
dymk wants to merge 1 commit into
mainfrom
dymk/dev-qemu-serial-medium-feature

Conversation

@dymk

@dymk dymk commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Adds an off-by-default sp-serial cargo feature to dev-qemu.

  • Default build keeps SmbusEspiMedium (default_smbusespi), so ec-test-cli and the in-repo integration-test job keep working.
  • sp-serial selects MctpSerialMedium via uart_service::default_mctp_serial for the two-QEMU SP↔EC serial link. Both arms are one-liners over uart-service's per-medium constructors — dev-qemu holds no wire addressing and needs no direct mctp-rs dep.
  • Enabling serial pulls in crc + crc-catalog (DSP0253 FCS-16); cargo-vet exemptions added.

Depends on the uart_service::default_mctp_serial constructor (dymk/embedded-services#12).

TEMPORARY [patch]: pins embedded-services crates to a dymk fork commit = the EC's current pin (62d4ea9) + only the default_mctp_serial constructor, so this builds with zero platform-common churn. Remove once the constructor merges upstream and the EC is modernized to embedded-services main (tracked as a separate epic — the EC is currently 8 commits behind, and bumping requires a battery-service Registration-model migration).

Verification: all build/lint/supply-chain gates green in both feature configs (fmt, clippy ×2, build ×2, check --all-features, feature-powerset ×4, machete, deny). The two-QEMU SP↔EC e2e (test-sp-ec-link) is pending devcontainer verification. (cargo +1.83 MSRV and the local cargo-vet store-format error are pre-existing on main, unrelated to this change.)

Fork PR for review before promoting upstream.

Assisted-by: GitHub Copilot:claude-opus-4.8

Add an off-by-default sp-serial cargo feature to dev-qemu. The default
build keeps SmbusEspiMedium (default_smbusespi), so ec-test-cli and the
in-repo integration-test job keep working; sp-serial selects
MctpSerialMedium via uart_service::default_mctp_serial for the two-QEMU
SP<->EC serial link. Both arms are one-liners over uart-service's
per-medium constructors, so dev-qemu holds no wire addressing and needs
no direct mctp-rs dependency. Enabling serial pulls in crc + crc-catalog
(DSP0253 FCS-16); add the cargo-vet exemptions.

TEMPORARY: a [patch] block pins the embedded-services crates to a dymk
fork commit = the EC's current pin (62d4ea9) + only the
default_mctp_serial constructor, so this builds with zero platform-common
churn. Remove the [patch] once default_mctp_serial merges upstream and
the EC is modernized to embedded-services main (separate epic).

Assisted-by: GitHub Copilot:claude-opus-4.8
@dymk

dymk commented Jun 26, 2026

Copy link
Copy Markdown
Owner Author

E2E verified green. The serial change was proven end-to-end on the two-QEMU SP↔EC harness.

Because EC OpenDevicePartnership#28 (current main) migrated dev-qemu off the QEMU virt machine onto a custom ec machine that the qemu-sbsa harness doesn't yet launch, the current-main EC can't be exercised on the harness directly (orthogonal blocker, tracked separately). So this exact serial change was cherry-picked onto the last virt-based main (f311134, branch dymk/verify-serial-on-virt = eba2ac6), built --features sp-serial, and run through make -C e2e-tests test-sp-ec-link:

=== Running two-QEMU Thermal e2e ===
[PASS] ffa_version
[PASS] ffa_id_get
[PASS] partition_discovery
[PASS] thermal_get_temperature
RESULT: ALL TESTS PASSED

The EC-origin DeciKelvin round-tripped through the real SP↔EC MCTP-over-serial link — confirming default_mctp_serial / MctpSerialMedium is wired correctly.

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.

1 participant