Skip to content

feat: add hi3516cv500 SoC family support#36

Merged
widgetii merged 1 commit intomainfrom
add-hi3516cv500
Apr 9, 2026
Merged

feat: add hi3516cv500 SoC family support#36
widgetii merged 1 commit intomainfrom
add-hi3516cv500

Conversation

@widgetii
Copy link
Copy Markdown
Member

@widgetii widgetii commented Apr 9, 2026

Summary

  • Adds hi3516cv500 (+ hi3516dv300, hi3516av300) as a third CHIPARCH target
  • Uses vendor SDK V2.0.2.1 with pre-built .o blobs and SDK init wrappers directly
  • CV500 build path is completely separate from EV200/GK7205V200 — different type system (hi_ snake_case vs GK_ CamelCase), different OSAL, different ISP source
  • All 27 kernel modules compile successfully, locally verified
  • EV200/GK7205V200 builds verified unaffected

Architecture

The CV500 uses kernel/hi3516cv500.kbuild which routes to:

  • kernel/obj/hi3516cv500/ — 31 pre-built vendor .o blobs
  • kernel/init/hi3516cv500/ — 32 SDK init wrapper sources
  • kernel/include/hi3516cv500/ — SDK headers (hi_type.h, hi_comm_*.h, etc.)
  • kernel/osal/hi3516cv500/ — vendor OSAL source
  • kernel/isp/arch/hi3516cv500/ — full ISP source (HAL + mkp + init)
  • kernel/sys_config/hi3516cv500/ — sys_config with CV500 register addresses
  • kernel/mipi_rx/hi3516cv500/ — MIPI RX driver source

Built modules (27)

osal, sys_config, mipi_rx, base, sys, vi, vpss, venc, vedu, h264e, h265e, jpege, rc, rgn, vgs, ive, chnl, aio, ai, ao, aenc, adec, acodec, gdc, dis, nnie, isp

Test plan

  • CI: hi3516cv500_lite build on 4.9 kernel
  • CI: existing hi3516ev200, gk7205v200, hi3516ev300 builds still pass
  • Hardware: insmod on CV500 board, load full pipeline

🤖 Generated with Claude Code

widgetii pushed a commit to OpenIPC/firmware that referenced this pull request Apr 9, 2026
- Add SDK_CODE 0x3516C500 for hi3516cv500 SoC family
- Replace hardcoded sensor install list with wildcard glob that
  installs all built libsns_*.so files for the target platform
- Works for all existing platforms (hi3516ev200, gk7205v200) and
  new hi3516cv500 without maintaining per-platform sensor lists

Companion PR: OpenIPC/openhisilicon#36

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
widgetii pushed a commit to OpenIPC/firmware that referenced this pull request Apr 9, 2026
- Add SDK_CODE 0x3516C500 for hi3516cv500 SoC family
- Replace hardcoded sensor install list with wildcard glob that
  installs all built libsns_*.so files for the target platform
- Works for all existing platforms (hi3516ev200, gk7205v200) and
  new hi3516cv500 without maintaining per-platform sensor lists

Companion PR: OpenIPC/openhisilicon#36

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
widgetii pushed a commit to OpenIPC/firmware that referenced this pull request Apr 9, 2026
- Add SDK_CODE 0x3516C500 for hi3516cv500 SoC family
- Replace hardcoded sensor install list with wildcard glob that
  installs all built libsns_*.so files for the target platform
- Works for all existing platforms (hi3516ev200, gk7205v200) and
  new hi3516cv500 without maintaining per-platform sensor lists

Companion PR: OpenIPC/openhisilicon#36

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add hi3516cv500 (+ hi3516dv300, hi3516av300) using vendor SDK V2.0.2.1.
Verified on hi3516av300 + imx415 camera — Majestic serves video with
both open kernel modules and open libisp.so replacing vendor binaries.

Kernel modules (38, built via kernel/hi3516cv500.kbuild):
  From source (9): osal, sys_config, mipi_rx, mipi_tx, wdt, isp,
    cipher, ir, hi_user
  From vendor blob + init wrapper (29): base, sys, vi, vpss, venc,
    vedu, h264e, h265e, jpege, jpegd, rc, rgn, vgs, ive, chnl, tde,
    vo, hdmi, vdec, vfmw, aio, ai, ao, aenc, adec, acodec, gdc,
    dis, nnie

Userspace libraries from source:
  libisp.so — full ISP library (56 source files, 641 functions)
  20 sensor drivers (gc2053, imx307, imx307_2L, imx327, imx327_2L,
    imx335, imx335_ForCar, imx390, imx415, imx458, mn34220, os04b10,
    os05a, os05a_2L, os08a10, ov12870, ov2775, ov9284, ps5260_2L,
    sc4210)

Source drivers from SDK interdrv/:
  cipher (AES/RSA/SHA/SM3/SM4 with MbedTLS), watchdog, IR, hi_user,
  MIPI RX, MIPI TX, sys_config

Layout: CV500 build is fully separate from EV200/GK7205V200 — own
headers (kernel/include/hi3516cv500/), own OSAL (kernel/osal/hi3516cv500/),
own ISP (kernel/isp/arch/hi3516cv500/), own init wrappers
(kernel/init/hi3516cv500/). No changes to existing EV200 code paths.

CI: hi3516cv500_lite target added to build matrix (4.9 kernel).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@widgetii widgetii merged commit 6fe935a into main Apr 9, 2026
17 of 18 checks passed
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