Skip to content

kernel: bring up hi3519dv500 (V5 aarch64) — open_*.ko from vendor SDK#204

Merged
widgetii merged 1 commit into
mainfrom
feat/hi3519dv500-kernel
Jun 23, 2026
Merged

kernel: bring up hi3519dv500 (V5 aarch64) — open_*.ko from vendor SDK#204
widgetii merged 1 commit into
mainfrom
feat/hi3519dv500-kernel

Conversation

@widgetii

Copy link
Copy Markdown
Member

Ports the Hi3519DV500 / Hi3516DV500 (V5/SS626, aarch64 Cortex-A55) kernel modules, mirroring the hi3516cv6xx (V5 armv7) bring-up (#202). Builds on the sensor drivers from #203.

Result

53 open_*.ko build clean against openipc/linux 5.10.0 with aarch64-openipc-linux-musl (verified locally; all ELF aarch64, no warnings/undefined symbols):

  • OSAL / MMZ / sys_config — full vendor source
  • 42 blob modules — vendor closed .o payloads (obj/hi3519dv500/hi_*.o) + vendor init wrappers (init/hi3519dv500/*_init.c): base, sys, vb, vca, vi, vpss, vpp, vo, vo_dev, vgs, venc, venc_svr, vdec, vfmw, h264e, h265e, jpege, jpegd, isp, rgn, rc, chnl, dis, gyrodis, gdc, tde, mcf, motionfusion, dpu_match, dpu_rect, ive, svp_npu, aiisp, aio/ai/ao/aenc/adec/acodec, pm, uvc, smmz_agent
  • Peripherals from source — wdt, adc, sensor_i2c, sensor_spi, pwm, piris, user, mipi_rx

aarch64 specifics

  • kernel/Kbuild sets -DUSER_BIT_64/-DKERNEL_BIT_64 for hi3519dv500 (32-bit families keep the default)
  • mipi_rx_hal.c: renamed a file-local static set_bit() that clashed with arm64 asm/bitops.h

Notes

  • sensor_i2c/spi/pwm/piris aren't standalone .ko in the vendor SDK; made standalone via init wrappers shared with cv6xx (same V5 driver API).
  • Deferred (match cv6xx): cipher/km/otp/hardware_cryptodev/gfbg/mipi_tx.
  • Vendor .o blobs are force-added (.gitignore excludes *.o).

Not yet added to the CI Build SDK matrix — that needs the firmware side wired (hisilicon-opensdk DV500 deps + a board build); proposed as a follow-up.

Port the Hi3519DV500/Hi3516DV500 (V5/SS626, aarch64 Cortex-A55) kernel
modules, mirroring the hi3516cv6xx (V5 armv7) bring-up. 53 open_*.ko build
against openipc/linux 5.10.0 with the aarch64-openipc-linux-musl toolchain:

- OSAL, MMZ, sys_config: full vendor source.
- 42 blob modules: vendor closed .o payloads (obj/hi3519dv500/hi_*.o from
  out/obj/mod_*.o) + vendor init wrappers (init/hi3519dv500/*_init.c).
- Peripherals from source: wdt, adc, sensor_i2c, sensor_spi, pwm, piris,
  user, mipi_rx.

aarch64 specifics:
- kernel/Kbuild sets -DUSER_BIT_64/-DKERNEL_BIT_64 for hi3519dv500 (the
  32-bit families keep the historical default).
- mipi_rx_hal.c: rename the file-local static set_bit() that clashed with
  the arm64 asm/bitops.h set_bit().

sensor_i2c/spi/pwm/piris aren't standalone .ko in the vendor SDK; they are
made standalone via init wrappers shared with cv6xx (same V5 driver API).
Deferred (match cv6xx): cipher/km/otp/hardware_cryptodev/gfbg/mipi_tx.

Vendor .o blobs are force-added (.gitignore excludes *.o).
@widgetii widgetii merged commit 666a095 into main Jun 23, 2026
34 checks passed
@widgetii widgetii deleted the feat/hi3519dv500-kernel branch June 23, 2026 17:45
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.

1 participant