hi3516cv6xx: add Hi3516CV610/Hi3516CV608 family support#2167
Merged
Conversation
3086433 to
89b1e18
Compare
Source: third-party fork dimerr/firmware:hi3516cv610. Companion kernel
branch hisilicon-hi3516cv6xx was pushed to OpenIPC/linux (orphan ref,
following the per-vendor BSP convention used by hisilicon-hi3516cv500
etc.).
Modern HiSilicon IP-camera platform: Cortex-A7, kernel 5.10.221, ot_*.ko
vendor module naming, FIT-image packaging. Hi3516CV608 and Hi3516CV610
share the same kernel binary (both ARCH_HI3516CV{08,10} enabled, runtime
chip detection), toolchain, osdrv, and board files — one CI target
(hi3516cv6xx_lite) covers the family.
Changes:
- br-ext-chip-hisilicon/board/hi3516cv6xx/: unified kernel config
(regenerated from hisilicon-hi3516cv6xx:arch/arm/configs/hi3516cv610_defconfig
with CONFIG_ARCH_HI3516CV608=y added, plus OpenIPC overlay-fs /
namespaces / cgroups / KoL firmware tweaks), FIT image source,
post-image.sh that concatenates the FIT and squashfs into a monolithic
firmware.bin (NOR 8 MB cap).
- br-ext-chip-hisilicon/configs/hi3516cv6xx_lite_defconfig: ARM EABI,
NEON+VFP4, GCC 13, musl, kernel 5.10.221.
- general/package/hisilicon-osdrv-hi3516cv6xx/: vendor osdrv with 33
ot_*.ko kernel modules, 6 sensor blobs (gc4023, os04d10, sc431hai,
sc4336p, sc450ai, sc500ai), load_hisilicon (with PR #2060 os_mem_size
validation block) + set_allocator scripts.
- general/openipc.fragment: enable host uboot-tools (with FIT support)
needed by post-image.sh mkimage step. Harmless for non-FIT boards.
- general/package/Config.in: register the new osdrv package.
- Makefile: extend repack: target to package firmware.bin when present
(guarded by wildcard, no regression for boards without firmware.bin).
- .github/workflows/{toolchain,build}.yml: add hi3516cv6xx_lite to the
matrices so the cross-toolchain release asset gets built once for the
family.
Co-Authored-By: Dmitry Ermakov <ermakovdmitry8@gmail.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
89b1e18 to
a23b5c3
Compare
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
Add OpenIPC support for the HiSilicon Hi3516CV6XX family (lead chip Hi3516CV610, binned variant Hi3516CV608) — a modern HiSilicon IP-camera platform (Cortex-A7, kernel 5.10.221,
ot_*.kovendor module naming, FIT-image packaging). No trace of CV610/CV608 existed in this repo before this PR.Sourced from third-party fork dimerr/firmware:hi3516cv610 (4 commits by Dmitry Ermakov on top of
8f513084, 2026-03-05). The fork was reviewed against PR #2143 fork-drift anti-pattern; four issues corrected before landing:OPENIPC_REPO_OWNER/_TOOLCHAIN_OWNER/_KERNEL_OWNERGitHub-probe additions togeneral/external.mk(same anti-pattern as PR Remove duplicated rtl8188fu Config.in #2143). Both defconfigs use the standard hardcodedopenipcorg.*.generic.configfromhisilicon-hi3516cv6xx:arch/arm/configs/hi3516cv{608,610}_defconfig— the fork's saved configs were from a 4.9.37-era tree but the BSP is 5.10.221.$(INSTALL)lines fromhisilicon-osdrv-hi3516cv6xx.mk(62 lines vs 132).BR2_PACKAGE_HOST_UBOOT_TOOLS=yparent for the existingBR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=yingeneral/openipc.fragment(the FIT line was being silently dropped because its Kconfig parent wasn't enabled).Companion repo
Kernel branch
OpenIPC/linux:hisilicon-hi3516cv6xx(orphan ref, sha533467722c14, kernel 5.10.221).str_firmware.bin(KoL suspend-to-RAM blob) ships at branch root, matchingCONFIG_EXTRA_FIRMWARE="str_firmware.bin"in both*.generic.configfiles.Family naming
SOC_FAMILY="hi3516cv6xx"covers both CV610 (lead) and CV608 (binned). Sharing the family identifier means:toolchain.hisilicon-hi3516cv6xx.tgzhi3516cv6xx_litehisilicon-hi3516cv6xxbr-ext-chip-hisilicon/board/hi3516cv6xx/general/package/hisilicon-osdrv-hi3516cv6xx/SOC_MODELdiffers:hi3516cv610(lead) vshi3516cv608(binned). Kernel configs differ only inCONFIG_ARCH_HI3516CV{08,10}=y.Local verification (Arch + HOSTCC=gcc-13)
Built end-to-end from scratch:
str_firmware.binresolved viadrivers/base/firmware_loader/builtin/hi3516cv610-demb.dtbfirmware.bin10 MiB)Note:
firmware.bincurrently overshoots the 8 MiB NOR cap (BR2_OPENIPC_FLASH_SIZE="8"); follow-up will either rebalance to 16 MiB or trim rootfs. Out of scope for this scaffolding PR.CI on Ubuntu 22 (GCC 11) will exercise the full toolchain matrix.
Test plan
feat/hi3516cv6xx-family(toolchain.yml matrix triggershi3516cv6xx_lite; build.yml auto-discovers bothhi3516cv6xx_lite_defconfigandhi3516cv608_lite_defconfig)toolchain.hisilicon-hi3516cv6xx.tgz, retry full firmware build for both defconfigshi3516cv500_liteandhi3518ev300_litecontinue to build (Makefilefirmware.binguard iswildcard-gated)Co-Authored-By: Dmitry Ermakov ermakovdmitry8@gmail.com
🤖 Generated with Claude Code