Skip to content

ci: build and publish u-boot artifacts to OpenIPC/firmware - #2

Merged
widgetii merged 3 commits into
masterfrom
ci/publish-uboot-to-firmware
May 6, 2026
Merged

ci: build and publish u-boot artifacts to OpenIPC/firmware#2
widgetii merged 3 commits into
masterfrom
ci/publish-uboot-to-firmware

Conversation

@widgetii

@widgetii widgetii commented May 5, 2026

Copy link
Copy Markdown
Member

Summary

Adds CI mirroring what OpenIPC/u-boot-hi3519v101 has, adapted for the arm-hisiv510-linux toolchain:

  • Cached toolchain from OpenIPC/toolchains release v1.
  • Runs the existing build.sh under OUTPUTDIR=$PWD/out.
  • On push to master, uploads u-boot-hi3518ev200-universal.bin and u-boot-hi3516cv200-universal.bin to the latest release in OpenIPC/firmware, with retry on transient 5xx.

Required setup before merge

Org-level Actions secret FIRMWARE_RELEASE_TOKEN covering 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

  • PR build is green; u-boot-binaries artifact contains both .bin files.
  • After merge, publish uploads both assets to OpenIPC/firmware latest.
  • Compare new vs prior asset sizes.

@widgetii

widgetii commented May 5, 2026

Copy link
Copy Markdown
Member Author

Same toolchain/multilib issue as OpenIPC/u-boot-hi3516cv300#1arm-hisiv510-linux-ld: cannot find -lgcc. The hisiv510 toolchain in OpenIPC/toolchains v1 doesn't ship the multilib these repos' CFLAGS request. Pausing here while we work out the systemic fix; see cv300#1 for the full diagnosis.

@widgetii
widgetii force-pushed the ci/publish-uboot-to-firmware branch 2 times, most recently from c87d0c5 to fa46f79 Compare May 5, 2026 19:11
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
widgetii force-pushed the ci/publish-uboot-to-firmware branch from fa46f79 to fc01a31 Compare May 5, 2026 20:04
John-1 and others added 2 commits May 6, 2026 14:13
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.
@widgetii
widgetii merged commit c51f37e into master May 6, 2026
5 checks passed
@widgetii
widgetii deleted the ci/publish-uboot-to-firmware branch May 6, 2026 13:08
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.

2 participants