Zephyr: Update to Zephyr 4.4#19807
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/19807
Note: Links to docs will display an error until the docs builds have been completed. ❗ 1 Active SEVsThere are 1 currently active SEVs. If your PR is affected, please view them below: ❌ 3 New Failures, 6 Pending, 1 Unrelated Failure, 3 Unclassified FailuresAs of commit a5e1281 with merge base 6795a41 ( NEW FAILURES - The following jobs have failed:
UNCLASSIFIED FAILURES - DrCI could not classify the following jobs because the workflow did not run on the merge base. The failures may be pre-existing on trunk or introduced by this PR:
FLAKY - The following job failed but was likely due to flakiness present on trunk:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
There was a problem hiding this comment.
Pull request overview
Updates the ExecuTorch Zephyr integration to target Zephyr v4.4.0, refreshes the Zephyr setup flow used by CI/docs, and adds out-of-the-box support for the ensemble_e8_dk Alif E8 board variants.
Changes:
- Bump Zephyr manifest revision to v4.4.0 and switch setup docs/CI to
west packages pip --install+west sdk install. - Update Zephyr sample docs (FVP + Alif E8) and tutorials for Python 3.12+, new board naming, and improved flashing/run instructions.
- Improve Zephyr CI setup: shared workspace directory (
zephyr_dev_root) and a local Zephyr SDK releases proxy fallback to mitigate rate limits/network flakiness.
Reviewed changes
Copilot reviewed 16 out of 17 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
zephyr/samples/mv2-ethosu/README.md |
Updates prerequisites (Python 3.12+), FVP env vars, and Alif E8 build/flash/run instructions. |
zephyr/samples/mv2-ethosu/boards/ensemble_e8_dk_ae822fa0e5597ls0_rtss_hp.overlay |
New DTS overlay to expose a larger contiguous SRAM region and enable Ethos-U for RTSS-HP. |
zephyr/samples/mv2-ethosu/boards/ensemble_e8_dk_ae822fa0e5597ls0_rtss_hp.conf |
New board config enabling Ethos-U and DMA-accessible PTE handling (HP). |
zephyr/samples/mv2-ethosu/boards/ensemble_e8_dk_ae822fa0e5597ls0_rtss_he.overlay |
New DTS overlay for RTSS-HE (larger SRAM + Ethos-U node). |
zephyr/samples/mv2-ethosu/boards/ensemble_e8_dk_ae822fa0e5597ls0_rtss_he.conf |
New board config enabling Ethos-U and DMA-accessible PTE handling (HE). |
zephyr/samples/mv2-ethosu/boards/alif_e8_dk_ae822fa0e5597xx0_rtss_hp.conf |
Removes old Alif E8 board config in favor of upstream ensemble_e8_dk. |
zephyr/samples/hello-executorch/README.md |
Adds safer LD_LIBRARY_PATH export for FVP usage. |
zephyr/README.md |
Updates to Zephyr 4.4 and adds explicit west packages + west sdk install steps (used by CI). |
docs/source/zephyr_alif_tutorial.md |
Updates Alif tutorial for Zephyr 4.4, Python 3.12+, new model naming, and expanded flashing guidance. |
backends/arm/test/test_github_trunk_zephyr.sh |
Adds --zephyr-dev-root and reuses a single setup across README runs. |
backends/arm/scripts/toolchain_utils.sh |
Updates Zephyr toolchain download URLs/checksums to SDK v1.0.1 assets. |
.gitignore |
Ignores the new zephyr_dev_root/ workspace and its backups. |
.github/workflows/trunk.yml |
Ensures Zephyr CI runs under Python 3.12 by creating/activating a dedicated conda env. |
.claude/skills/zephyr/SKILL.md |
Updates internal Zephyr skill doc to Zephyr 4.4 / west sdk install / west packages. |
.ci/scripts/zephyr_sdk_release_proxy.py |
Adds a local synthetic GitHub Releases API/proxy for Zephyr SDK assets with caching + checksum verification. |
.ci/scripts/test_zephyr.sh |
Refactors Zephyr setup to a configurable workspace, adds setup-only/skip-setup, and SDK proxy fallback. |
.ci/docker/common/install_zephyr.sh |
Removes pre-downloading Zephyr SDK from the image build step. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
It looks like there are a few zephyr jobs failing, can you take a look @zingo? Also, I'd like to get a better understanding for the rationale behind the SDK caching/proxying. In general, I'd like to minimize downloads in CI (causes flakes), but to me the ideal is caching most downloads in the docker image. |
11b9daa to
29b2a0c
Compare
ecc361e to
95e8d70
Compare
|
Seem to run into this problem #20092 |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 18 out of 19 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
docs/source/zephyr_alif_tutorial.md:391
- The text after the output block still claims all predictions show
0.0000becausemv2_untrainedhas random weights, but the tutorial now exports--model_name=mv2and the example output shows non-zero scores. Update this paragraph to describe themv2_untrainedbehavior without contradicting the current instructions/output.
I [executorch:main.cpp] Inference time: 30 ms
I [executorch:main.cpp] ========================================
All predictions show 0.0000 because mv2_untrained has random weights.
</details>
Update CI install and testing, samples and docs Zephyr 4.4 also added support for ensemble_e8_dk so it can be used out of the box instead of the alif zephyr git fork. Signed-off-by: Zingo Andersen <Zingo.Andersen@arm.com> Change-Id: Iddebc0516933be3136aefbf28e6fa74e033a76f8
Signed-off-by: Zingo Andersen <Zingo.Andersen@arm.com> Change-Id: I071cc0d1332f27b326792e93e2a81fb30502a6b6
Signed-off-by: Zingo Andersen <Zingo.Andersen@arm.com> Change-Id: I9e0bbd7bdb2abc3eef6daeba1ae04babde7d80b8
Signed-off-by: Zingo Andersen <Zingo.Andersen@arm.com> Change-Id: I8ddcae1b95e948336ead54bb307f202b1fa927ce
Signed-off-by: Zingo Andersen <Zingo.Andersen@arm.com> Change-Id: Ic0e1724409ca976375f54b1bf2dfd8badbb3f582
Signed-off-by: Zingo Andersen <Zingo.Andersen@arm.com> Change-Id: Iaeb5cd988a3e3d091179c11dd6667479a412acd5
86976ac to
dfcaa7d
Compare
Signed-off-by: Zingo Andersen <Zingo.Andersen@arm.com> Change-Id: I8fc09f92447475f0735686f1e29d9040f796b73f
24ef605 to
bcf5480
Compare
Signed-off-by: Zingo Andersen <Zingo.Andersen@arm.com> Change-Id: I6e7f8d3ac08f8e557a131a5371c4b2dcbcda6ce9
The Zephyr CI image sets LD_LIBRARY_PATH globally to include host system library directories. When Zephyr SDK host tools such as dtc are launched, this can make the SDK dynamic loader resolve libraries from the host instead of the SDK hosttools sysroot. Sanitize LD_LIBRARY_PATH for Zephyr west build commands so SDK host tools use their intended runtime libraries, while preserving sample-specific entries such as FVP paths. Signed-off-by: Zingo Andersen <Zingo.Andersen@arm.com> Change-Id: I036dd0ae732bbfe20c8e6c41831692a3bb7c6f60
9e66501 to
a5e1281
Compare
Update CI install and testing, samples and docs
Zephyr 4.4 also added support for ensemble_e8_dk
so it can be used out of the box instead of the
alif zephyr git fork.
Test plan
Mosted tested by Github CI , Alif readme tested by hand.
cc @digantdesai @freddan80 @per @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani