Skip to content

Bump embedded-services, EC_TEST_CLI_REV, and embassy-time pins#19

Merged
jerrysxie merged 3 commits into
OpenDevicePartnership:mainfrom
dymk:dymk/bump-embedded-services-and-ec-test-cli
May 21, 2026
Merged

Bump embedded-services, EC_TEST_CLI_REV, and embassy-time pins#19
jerrysxie merged 3 commits into
OpenDevicePartnership:mainfrom
dymk:dymk/bump-embedded-services-and-ec-test-cli

Conversation

@dymk
Copy link
Copy Markdown
Contributor

@dymk dymk commented May 20, 2026

Summary

Atomic pin bump to pick up two coordinated upstream changes:

  1. embedded-services v0.2.0 branch HEAD → f1f1e087 (includes PR Make uart-service::Service generic over MctpMedium; delete fake-PEC strips embedded-services#852: uart-service::Service<R, M> generic over MctpMedium, spec-compliant SmbusEspiMedium with PEC)
  2. EC_TEST_CLI_REVd705cd4f (includes PR Add SMBus PEC byte to ec-test-lib serial transport odp-platform-common#92: ec-test-cli serial transport now emits + verifies SMBus PEC byte)

These two changes MUST land together — if only one pin is bumped, the integration-test: CI job fails because the EC and host disagree on whether the SMBus PEC byte is present.

Changes

  • .github/workflows/check.yml: EC_TEST_CLI_REV: e674ca93d705cd4f
  • platform/{dev-imxrt,dev-mcxa,dev-npcx,dev-qemu}/src/main.rs: migrate uart_service::Service::new(relay)uart_service::DefaultService::default_smbusespi(relay) (required by PR #852's API change from Service<R> to Service<R, M>)
  • platform/{dev-imxrt,dev-mcxa,dev-qemu}/Cargo.lock: cargo update to pick up new embedded-services SHA
  • platform/dev-npcx/Cargo.toml: bump embassy-time 0.5.0 → 0.5.1, embassy-time-driver 0.2.1 → 0.2.2 (required by transitive deps from the updated embedded-services v0.2.0 mergeback)
  • platform/dev-npcx/Cargo.lock: updated accordingly

Validation

All 4 platforms (dev-imxrt, dev-mcxa, dev-npcx, dev-qemu) pass cargo check locally.

Update the embedded-services lockfile pins across all platforms to
pick up the v0.2.0 branch HEAD (f1f1e087), which includes:
- PR #852: uart-service Service<R, M> generic over MctpMedium
- PR #854: v0.2.0 mergeback (heapless 0.9.2, embassy-time 0.5.1)

Migrate all platforms from the removed Service::new(relay) API to
DefaultService::default_smbusespi(relay), which preserves the
SmbusEspi wire format used by existing hardware platforms.

Bump EC_TEST_CLI_REV from e674ca93 to d705cd4f to pick up
odp-platform-common PR #92, which adds SMBus PEC byte support to
ec-test-cli's serial transport — required by the post-#852
SmbusEspiMedium.

Bump dev-npcx embassy-time pins from 0.5.0 to 0.5.1 and
embassy-time-driver from 0.2.1 to 0.2.2, matching the transitive
requirements from the updated embedded-services.

Assisted-by: GitHub Copilot CLI:claude-opus-4.6-1m-internal
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 20, 2026

Cargo Vet Audit Passed

cargo vet has passed in this PR. No new unvetted dependencies were found.

@dymk
Copy link
Copy Markdown
Contributor Author

dymk commented May 20, 2026

1. What crates (with version) need to be audited?

18 crates total (union across all 4 platforms):

Crate Version Platform(s)
cc 1.2.62 all
defmt 1.1.0 all
defmt-macros 1.1.0 all
defmt-rtt 1.2.0 dev-npcx
device-driver 1.0.9 all
either 1.16.0 dev-imxrt
embassy-hal-internal 0.5.0 (git) dev-npcx
embassy-imxrt 0.1.0 (git) dev-imxrt
embassy-time 0.5.1 dev-npcx
embassy-time-driver 0.2.2 dev-npcx
embassy-time-queue-utils 0.3.2 dev-npcx
hashbrown 0.17.1 dev-npcx
heapless 0.9.3 all
libc 0.2.186 all
pin-project 1.1.13 dev-imxrt, dev-npcx
pin-project-internal 1.1.13 dev-imxrt, dev-npcx
subenum 1.2.0 all
typenum 1.20.0 dev-imxrt

2. How many of the crates are version updates vs new dependencies?

  • 17 are version updates of already-included crates (minor or patch bumps)
  • 1 is new: hashbrown 0.17.1 — new transitive dependency pulled in by heapless 0.9 (which replaced its internal hash map implementation with hashbrown)

3. To confirm none of the already included crates serve your needs, please provide a brief description of the purpose of the new crates.

hashbrown is a transitive dependency of heapless 0.9.3 (the upstream embedded-services v0.2.0 mergeback bumped heapless from 0.8 to 0.9 in PR OpenDevicePartnership/embedded-services#819). It is not a direct dependency of this repo. No other new crates were added.

4. Any extra notes to the auditors to help with their audits.

All 18 unvetted crates are the result of cargo update picking up the latest embedded-services v0.2.0 branch HEAD, which includes a mergeback commit (OpenDevicePartnership/embedded-services#854) that bumped heapless 0.8→0.9, embassy-time 0.5.0→0.5.1, and defmt 1.0→1.1. None of these version bumps were introduced by this PR's code changes — they're transitive dep resolution from the upstream pin advancement. The version deltas are all minor/patch bumps of crates already in the audited supply chain.

Add safe-to-deploy exemptions for crate versions pulled in by the
embedded-services v0.2.0 pin advancement. All are minor/patch version
bumps of existing dependencies, except hashbrown 0.17.1 (new transitive
from heapless 0.9).

Assisted-by: GitHub Copilot CLI:claude-opus-4.6-1m-internal
@dymk dymk marked this pull request as ready for review May 20, 2026 23:17
@dymk dymk requested a review from a team as a code owner May 20, 2026 23:17
@dymk dymk requested review from kurtjd and tullom May 20, 2026 23:19
Copy link
Copy Markdown

Copilot AI left a comment

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 performs an atomic dependency/pin bump across the embedded controller platforms so the firmware’s UART/SMBus-eSPI transport and the ec-test-cli host tooling stay in sync after upstream changes (notably SMBus PEC handling and uart-service API updates).

Changes:

  • Bump embedded-services (v0.2.0 branch HEAD) and refresh per-platform lockfiles/supply-chain exemptions accordingly.
  • Update platform UART service initialization to use uart_service::DefaultService::default_smbusespi(...) (new upstream API/medium behavior).
  • Bump EC_TEST_CLI_REV in CI and update dev-npcx Embassy time crate pins to match updated transitive requirements.

Reviewed changes

Copilot reviewed 10 out of 14 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.github/workflows/check.yml Updates the pinned ec-test-cli revision used by the integration-test job.
platform/dev-imxrt/src/main.rs Migrates UART service setup to the new uart-service default SMBus/eSPI service constructor.
platform/dev-imxrt/Cargo.lock Updates locked dependency SHAs/versions to the new embedded-services commit and related transitive updates.
platform/dev-imxrt/supply-chain/config.toml Adds cargo-vet exemptions for newly introduced crate versions from the lockfile refresh.
platform/dev-mcxa/src/main.rs Migrates UART service setup to the new uart-service default SMBus/eSPI service constructor.
platform/dev-mcxa/Cargo.lock Updates locked dependency SHAs/versions to the new embedded-services commit and related transitive updates.
platform/dev-mcxa/supply-chain/config.toml Adds cargo-vet exemptions for newly introduced crate versions from the lockfile refresh.
platform/dev-npcx/src/main.rs Migrates UART service setup to the new uart-service default SMBus/eSPI service constructor.
platform/dev-npcx/Cargo.toml Bumps embassy-time / embassy-time-driver versions and patch pins.
platform/dev-npcx/Cargo.lock Updates locked dependency SHAs/versions to the new embedded-services commit and related transitive updates.
platform/dev-npcx/supply-chain/config.toml Adds cargo-vet exemptions for newly introduced crate versions (and Embassy rev-related entries).
platform/dev-qemu/src/main.rs Migrates UART service setup to the new uart-service default SMBus/eSPI service constructor.
platform/dev-qemu/Cargo.lock Updates locked dependency SHAs/versions to the new embedded-services commit and related transitive updates.
platform/dev-qemu/supply-chain/config.toml Adds cargo-vet exemptions for newly introduced crate versions from the lockfile refresh.

Comment thread platform/dev-npcx/supply-chain/config.toml
Replace the rev-pinned policy key for embassy-sync with a generic
[policy.embassy-sync] entry (matching dev-imxrt's approach), and add
an exemption for the new git rev. The old rev (c8715fc1) no longer
matches the lockfile (e9c32931) after the embedded-services bump.

Assisted-by: GitHub Copilot CLI:claude-opus-4.6-1m-internal
Copy link
Copy Markdown
Contributor

@jerrysxie jerrysxie left a comment

Choose a reason for hiding this comment

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

We added a lot of exemption for cargo vet. Okay for now, we will audit the exemption later as an ODP wide exemption audit.

@jerrysxie jerrysxie merged commit d3ae374 into OpenDevicePartnership:main May 21, 2026
40 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants