Skip to content

hisilicon-ev200 / goke-gk7205v200: IMX307 high-fps presets#2093

Merged
widgetii merged 1 commit into
masterfrom
imx307-high-fps-presets
May 13, 2026
Merged

hisilicon-ev200 / goke-gk7205v200: IMX307 high-fps presets#2093
widgetii merged 1 commit into
masterfrom
imx307-high-fps-presets

Conversation

@widgetii
Copy link
Copy Markdown
Member

Summary

Companion to OpenIPC/openhisilicon#104 (merged as 5b1aa42). Ships four IMX307 high-fps INI presets under /etc/sensors/high-fps/ for both V4 osdrv packages — hisilicon-osdrv-hi3516ev200 and goke-osdrv-gk7205v200 — mirroring the existing IMX335 high-fps preset layout.

Bumps HISILICON_OPENSDK_VERSION from 8b5e47f to 5b1aa42 to pull in the IMX307 Isp_SnsMode flex-mode dispatch added by openhisilicon#104.

Presets

Preset Sensor mode Selected by Tested wire fps (h.265 @ 4 Mbps)
imx307_1920x1080_60fps.ini 1080p60 boost (FRSEL=1h auto-promotion) Isp_FrameRate=60 44 fps — encoder-bound at 1080p; real benefit is latency (sensor readout 33→16.7 ms)
imx307_1280x720_60fps.ini 720p sub-readout (WINMODE=1h) Isp_SnsMode=1 60 fps — sensor matches wire
imx307_640x480_130fps.ini VGA flex window-crop (WINMODE=4h) Isp_SnsMode=4 + Isp_W/Isp_H 130 fps — encoder ceiling
imx307_368x304_200fps.ini smallest datasheet-allowed flex crop Isp_SnsMode=4 + Isp_W/Isp_H 200 fps — encoder ceiling band 200-219

All four follow the existing IMX335 high-fps INI structure: minimal [sensor] / [mode] / [mipi] / [isp_image] / [vi_dev] sections, no vendor boilerplate.

Verified on real hardware

openipc-gk7205v200.dlab.doty.ru board, sony_imx307_2L driver loaded with openhisilicon master after #104. Wire fps measured from /proc/umap/venc SEND counter delta over a 5 s window after a 6 s warm-up. ISP IntRat confirms sensor delivers exactly the requested rate at each measurement; encoder is the wire-fps ceiling above sub-1080p modes.

ev200 (Hisilicon-side, same silicon family) expected to behave identically — not separately verified on the Hisi board (re-uses the shared sensor driver source). 4-lane variant (sony_imx307) not exposed by these presets (only sony_imx307_2L is shipped today); upstream driver carries the matching dispatch but is untested.

gk7205v200 specifics

The gk-side INIs carry the clock=37.125MHz override in [mode] — same as the IMX335 high-fps gk presets. Without it the gk vendor blob defaults to 27 MHz INCK and the delivered rate is ~73% of nominal.

Notable INI update

imx307_1280x720_60fps.ini on the gk-side is replaced (not merely modified). The prior file was a bloated stock-style INI with vendor boilerplate that never engaged the WINMODE=1h hardware path; majestic capped it at 45 fps via the V200 clamp and the sensor ran at 30 fps internally with VPSS downscale-from-1080p. The new file uses Isp_SnsMode=1 to dispatch to the dedicated 720p sub-readout path landed in openhisilicon#104.

Dependency on majestic

Requires majestic >= widgetii/majestic#77 (V200 chip_id 45 fps clamp removed, already merged on master). Without that, 1080p60 + any preset with Isp_FrameRate > 45 silently caps at 45 fps on V200 silicon — same gotcha as the existing IMX335 high-fps presets had before #77.

Test plan

  • CI build green (firmware builds for hi3516ev200_lite, gk7205v200_lite, hi3516ev300_neo, gk7205v300_lite)
  • Verified IMX307 720p60 / VGA130 / CIF200 / 1080p60 wire fps on gk7205v200 (sweep results in commit message)
  • Smoke-test on ev200 dev board (same silicon, expected identical)
  • Backwards-compat: existing stock IMX307 1080p30 path remains the default; users explicitly opt in to high-fps via cli -s .isp.sensorConfig /etc/sensors/high-fps/...

🤖 Generated with Claude Code

… to openhisilicon)

Mirrors the IMX335 high-fps preset layout for IMX307 (2-lane MIPI
variant, sony_imx307_2L driver). Bumps openhisilicon to 5b1aa42
which lands the IMX307 Isp_SnsMode flex-mode dispatch in
libraries/sensor/hi3516ev200/sony_imx307_2L/.

New / updated presets shipped under /etc/sensors/high-fps/ in both
the hisilicon-osdrv-hi3516ev200 and goke-osdrv-gk7205v200 packages:

- imx307_1920x1080_60fps.ini: boost-rate 1080p mode (Isp_FrameRate
  auto-promotion). Wire fps ~44 at h.265 4 Mbps (encoder pixel-rate
  ceiling); real benefit is latency — sensor readout drops from
  ~33 ms to ~16.7 ms, encoder picks frames from a 60 fps stream.
- imx307_1280x720_60fps.ini: 720p sub-readout via WINMODE=1h
  (Isp_SnsMode=1). Replaces the prior bloated stock-style preset
  on the gk side with the IMX335-style minimal INI; the prior
  preset never actually engaged the 720p hardware path. Wire fps
  60 (matches sensor).
- imx307_640x480_130fps.ini: VGA flex window-crop (Isp_SnsMode=4).
  Wire fps 130 (encoder ceiling at 640x480 h.265 4 Mbps).
- imx307_368x304_200fps.ini: smallest datasheet-allowed crop
  (WINWH>=368 mult-of-4, WINWV>=304). Wire fps 200, encoder
  ceiling band 200-219.

All presets follow the existing IMX335 high-fps INI structure:
minimal [sensor] / [mode] / [mipi] / [isp_image] / [vi_dev]
sections, no vendor boilerplate. gk7205v200 variants carry the
clock=37.125MHz [mode] override (vendor blob defaults to 27 MHz
INCK; without it the rate is ~73% of nominal) — same gotcha as
existing IMX335 gk-side presets.

Wire-fps numbers verified on real hardware (gk7205v200 dev board,
openipc-gk7205v200.dlab.doty.ru) via /proc/umap/venc SEND counter
delta over a 5 s window. ev200 (Hisilicon-side, same silicon)
expected to behave identically; not separately verified.

Requires majestic >= widgetii/majestic#77 (V200 chip_id 45 fps
clamp removed, already in master). Without that, 1080p60 and any
preset with Isp_FrameRate>45 silently caps at 45 fps on V200.

Install rules already glob *.ini under high-fps/ in both .mk
files; new INIs ship without further packaging changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@widgetii widgetii merged commit f5aa791 into master May 13, 2026
95 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.

1 participant