ci: build and publish u-boot artifacts to OpenIPC/firmware - #2
Merged
Conversation
Member
Author
|
Same toolchain/multilib issue as OpenIPC/u-boot-hi3516cv300#1 — |
widgetii
force-pushed
the
ci/publish-uboot-to-firmware
branch
2 times, most recently
from
May 5, 2026 19:11
c87d0c5 to
fa46f79
Compare
Mirrors the CI added to OpenIPC/u-boot-hi3519v101: per-SoC matrix
(hi3518ev200, hi3516cv200), cached arm-hisiv510-linux toolchain from
OpenIPC/toolchains v1, and a publish job that uploads
u-boot-<soc>-universal.bin to the 'latest' release in
OpenIPC/firmware on push to master (with retry on transient 5xx).
Also: Hi3518EV200 / Hi3516CV200 are Cortex-A7 (ARMv7-A); the cpu and
board config.mk + compressed Makefile were forcing -march=armv5te as
a historical workaround for old toolchains that didn't ship an armv7
multilib. The hisiv510 toolchain shipped in OpenIPC/toolchains only
provides the armv7 multilib, so the armv5te flag broke the
linker's libgcc lookup. Bump to -march=armv7-a in:
- arch/arm/cpu/hi3518ev200/{config.mk, compressed/Makefile}
- board/hi3516cv300/config.mk
- board/hi3518ev200/config.mk
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
widgetii
force-pushed
the
ci/publish-uboot-to-firmware
branch
from
May 5, 2026 20:04
fa46f79 to
fc01a31
Compare
Drop the ill-conceived -march=armv7-a from this branch. Hi3518EV200 and Hi3516CV200 are ARM926EJ-S (ARMv5TEJ), not Cortex-A7 — confirmed by widgetii/qemu-hisilicon's machine model and the kernel CPU detection. Restore -march=armv5te in the cpu, compressed Makefile, and both board config.mk files. Local rebuild produces a 135,420-byte mini-boot.bin tagged Tag_CPU_arch: v5TE (vs 2022 baseline 135,432, within noise). The CI workflow added in this PR is unaffected and stays. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Same shape as the smoke test added in OpenIPC/u-boot-hi3516cv300: build qemu-system-arm from widgetii/qemu-hisilicon (cached by HEAD SHA), then run each matrix board's freshly-built u-boot in `-M hi3516cv200` (the ARM926EJ-S V2 family machine; both Hi3518EV200 and Hi3516CV200 binaries boot in the cv200 model since they share the SoC). Asserts u-boot prints past "System startup" — catches the class of regression where the binary's CFLAGS or TEXT_BASE don't match the silicon. publish now needs both build and qemu_smoke green.
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.
Summary
Adds CI mirroring what OpenIPC/u-boot-hi3519v101 has, adapted for the
arm-hisiv510-linuxtoolchain:OpenIPC/toolchainsreleasev1.build.shunderOUTPUTDIR=$PWD/out.u-boot-hi3518ev200-universal.binandu-boot-hi3516cv200-universal.binto thelatestrelease inOpenIPC/firmware, with retry on transient 5xx.Required setup before merge
Org-level Actions secret
FIRMWARE_RELEASE_TOKENcovering this repo (or a repo-level secret of the same name). Without it, build still passes but publish fails with a clear 401.Test plan
u-boot-binariesartifact contains both.binfiles.publishuploads both assets toOpenIPC/firmwarelatest.