Skip to content

Commit e1b8c95

Browse files
widgetiiVixandclaude
authored
ci: add cv200_neo + av100_neo qemu-boot matrix rows (closes #2123 from firmware) (#181)
Now that the firmware nightly publishes openipc.hi3516cv200-nor-neo.tgz and openipc.hi3516av100-nor-neo.tgz (after OpenIPC/firmware#2124 added both boards to the firmware build.yml matrix), wire two new rows into the qemu-boot job. Each row downloads the appropriate -nor-neo.tgz from the latest firmware release and runs the same boot smoke as the lite rows. Local pre-merge validation against the published nightly tarballs: hi3516cv200_neo: [PASS] login (openipc-hi3516cv200 login:) [PASS] IP (10.0.2.15 via SLIRP DHCP) [PASS] ping 10.0.2.2 hi3516av100_neo: [PASS] login (openipc-hi3516av100 login:) [PASS] IP (10.0.2.15 via SLIRP DHCP) [PASS] ping 10.0.2.2 Both also clean on Oops/panic/BUG/Call Trace patterns. Row mechanics — new optional `variant:` field: - Defaults to lite. Rows that don't set it stay byte-equivalent (download URL becomes openipc.X-nor-lite.tgz, row name unchanged). - When `variant: neo`: * row name becomes "QEMU boot (<machine>_neo)" * download URL becomes openipc.<machine>-nor-neo.tgz * upload-artifact name becomes "qemu-boot-<machine>_neo" Both new rows are real gates (no allow-failure: true). load_hisilicon on neo doesn't load HiSi blobs (kernel-version path mismatch — separate firmware follow-up to teach it the /lib/modules/7.0 path), so neither row sets min_modules; the assertion is "login reached + no error patterns". That's what the local DoD test exercises and what the CI will exercise. Co-authored-by: Vasiliy Yakovlev <vixand@openipc.org> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 29562b9 commit e1b8c95

1 file changed

Lines changed: 29 additions & 3 deletions

File tree

.github/workflows/build.yml

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -822,7 +822,7 @@ jobs:
822822
# Each platform uses its own QEMU machine model from qemu-hisilicon.
823823
#
824824
qemu-boot:
825-
name: QEMU boot (${{ matrix.machine }})
825+
name: QEMU boot (${{ matrix.machine }}${{ matrix.variant && format('_{0}', matrix.variant) || '' }})
826826
runs-on: ubuntu-latest
827827
# Per-row continue-on-error so we can keep platforms in the matrix that
828828
# currently surface pre-existing firmware-side bugs (av100 module-name
@@ -900,6 +900,32 @@ jobs:
900900
mem: 128M
901901
min_modules: 5
902902
append: "console=ttyAMA0,115200 panic=20 mem=128M root=/dev/ram0 rootfstype=squashfs mmz_allocator=cma mmz=anonymous,0,0x42000000,96M"
903+
# cv200_neo (V2 / ARM926EJ-S, Linux 7.0). Builds from
904+
# openhisilicon main carrying the open_v2_shim re-exports
905+
# (do_gettimeofday, init_timer_key, register_sysctl_table,
906+
# printk, etc.) for the 4.9-compiled blobs. Tarball
907+
# `openipc.hi3516cv200-nor-neo.tgz` is published by the
908+
# firmware nightly (OpenIPC/firmware#2124). Boots to login,
909+
# eth0 gets DHCP from SLIRP, no Oops/panic. load_hisilicon
910+
# doesn't load HiSi blobs on neo (kernel-version path
911+
# mismatch — separate firmware-side follow-up), so we don't
912+
# set min_modules here.
913+
- machine: hi3516cv200
914+
firmware: hi3516cv200
915+
variant: neo
916+
mem: 64M
917+
append: "console=ttyAMA0,115200 mem=32M root=/dev/ram0 rootfstype=squashfs"
918+
# av100_neo (V2A / Cortex-A7, Linux 7.0). Same shape as
919+
# cv200_neo but using mainline hi3516av100 SoC support +
920+
# hisi_higmac ethernet driver from openipc/linux#44.
921+
# Tarball `openipc.hi3516av100-nor-neo.tgz` from firmware
922+
# nightly. Same login + DHCP + ping coverage; no module
923+
# count assertion (same reason as cv200_neo).
924+
- machine: hi3516av100
925+
firmware: hi3516av100
926+
variant: neo
927+
mem: 256M
928+
append: "console=ttyAMA0,115200 mem=32M root=/dev/ram0 rootfstype=squashfs"
903929

904930
steps:
905931
- uses: actions/checkout@v4
@@ -936,7 +962,7 @@ jobs:
936962
mkdir -p /tmp/openipc
937963
cd /tmp/openipc
938964
curl -sSLf -o fw.tgz \
939-
https://github.com/OpenIPC/firmware/releases/download/latest/openipc.${{ matrix.firmware }}-nor-lite.tgz
965+
https://github.com/OpenIPC/firmware/releases/download/latest/openipc.${{ matrix.firmware }}-nor-${{ matrix.variant || 'lite' }}.tgz
940966
tar xzf fw.tgz
941967
ls uImage.${{ matrix.firmware }}
942968
@@ -1081,7 +1107,7 @@ jobs:
10811107
if: always()
10821108
uses: actions/upload-artifact@v4
10831109
with:
1084-
name: qemu-boot-${{ matrix.machine }}
1110+
name: qemu-boot-${{ matrix.machine }}${{ matrix.variant && format('_{0}', matrix.variant) || '' }}
10851111
path: qemu-output.txt
10861112
retention-days: 7
10871113

0 commit comments

Comments
 (0)