ci: build u-boot-z.bin with hi_gzip's 8 KiB-window encoder (fixes hardware regression) - #14
Merged
Merged
Conversation
Real Goke V4 silicon's HW gzip decompressor only parses streams compressed with WSIZE=8 KiB; system gzip emits 32 KiB-window streams that the decompressor rejects with "Uncompress Fail!". The QEMU model is more permissive (accepted both), so the qemu_smoke gate didn't catch this on PR #10. User reported the May 8 gk7205v300 binary fails this way on real hardware (vs the May 6 raw 500 KiB baseline that booted cleanly). Test on real hi3516ev300 silicon confirms ev200's wrapped binary (uses hi_gzip) boots — Goke is a HiSilicon clone with the same source tree, so the same compression tool applies. Changes: * Import tools/hi_gzip/ from u-boot-hi3516ev200. Same gzip-1.8 + HiSi window-size patch ev200 has shipped for years; not Goke-specific. * arch/arm/cpu/armv7/<soc>/Makefile (4 SoCs): use ./gzip (the staged hi_gzip binary) instead of system gzip, mirroring ev200's hw_compressed/Makefile pattern. * CI: build hi_gzip and stage it at arch/arm/cpu/armv7/<soc>/gzip before make u-boot-z.bin. The recipe's existing cp -raf carries it into the sub-make work dir as ./gzip. Same pattern u-boot- hi3516ev200's CI uses. Verified locally with arm-hisiv300-linux: produces 252 KiB u-boot-gk7205v200.bin (within 256 KiB partition gate). On-hardware verification still TODO (user has the rig). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 8, 2026
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
Fixes a hardware regression introduced by PR #10. Real Goke V4
silicon's HW gzip decompressor only parses streams compressed
with WSIZE=8 KiB (HiSilicon's hi_gzip patch); system gzip's
32 KiB-window output trips
Uncompress Fail!on real silicon.The QEMU model accepted both, so the
qemu_smokegate didn'tcatch the regression.
User reported the May 8
gk7205v300binary fails on actualcamera hardware. The May 6 raw 500 KiB baseline booted, but PR #10
switched gk to publish the wrapped
u-boot-z.binartifact (~250KiB) without bringing along the
hi_gziptool that the wrapformat requires.
User confirmed
u-boot-hi3516ev300-universal.bin(which useshi_gzip) boots cleanly on real hi3516ev300 silicon. Goke is aHiSilicon clone with the same source tree, so the same compression
tool applies.
Changes
tools/hi_gzip/: imported fromu-boot-hi3516ev200. Samegzip-1.8 + HiSi 8 KiB-window patch that repo has shipped for
years; not Goke-specific.
arch/arm/cpu/armv7/<soc>/Makefile(4 SoCs): use./gzip(the staged hi_gzip binary) instead of system
gzip, mirroringu-boot-hi3516ev200/arch/.../hw_compressed/Makefile..github/workflows/build.yml: build hi_gzip and stage it atarch/arm/cpu/armv7/<soc>/gzipbeforemake u-boot-z.bin.The existing
cp -rafin the recipe carries it into thesub-make work dir as
./gzip.Test plan
u-boot-gk7205v200.bin(within the 256 KiB partition gate).buildandqemu_smoke(4 SoCs each) green.boots on real Goke V4 silicon (gk7205v300 was the failing
case in the original report).
🤖 Generated with Claude Code