hisilicon-ev200 / goke-gk7205v200: IMX335 companion to openhisilicon #99#2090
Merged
Conversation
Bumps hisilicon-opensdk to 8b5e47f (PR #99 merged) and applies the firmware-side companion changes that PR #99 referenced but were never landed: 1. **Bump `HISILICON_OPENSDK_VERSION` b2db4db → 8b5e47f.** Pulls in the merged openhisilicon PR #99 (fuse sony_imx335 + sony_imx335_fpv into one driver) along with the M7 flex-crop dispatch. 2. **Drop sony_imx335_fpv from the install manifest.** PR #99 deleted the source directory; without removing this line the SDK build fails on missing target. (`hisilicon-opensdk.mk`) 3. **Fix gk7205v200 IMX335 sensor INCK = 27 MHz → 37.125 MHz.** The vendor `gk7205v200_vi.ko` blob programs PERI_CRG60 to feed the sensor a 27 MHz reference clock at module_init; the Hisilicon counterpart leaves it at the SoC default 37.125 MHz. Without this INI override, gk's pixel rate is ~73% of ev's across every IMX335 mode. Applied to all 4 gk7205v200 IMX335 INIs (linear + WDR × 4M + 5M). 4. **Add `high-fps/` preset directory** with one INI per mode that PR #99 verified, naming pattern `<sensor>_<width>x<height>_<fps>fps.ini`. Each INI is minimal (~30 lines); full per-mode notes live in `openhisilicon/docs/imx335-v4-high-fps.md`. IMX335 presets (both ev200 and gk7205v200): | File | Mode | Dispatch | Wire fps | |------|------|----------|----------| | `imx335_800x480_240fps.ini` | M7 flex-crop showcase | `Isp_SnsMode=4` | ~185 | | `imx335_1280x720_120fps.ini` | M7 flex-crop 720p | `Isp_SnsMode=4` | ~115 | | `imx335_1296x972_64fps.ini` | 2x2 binning | DevRect=1296×972 | 64 | | `imx335_1920x1080_55fps.ini` | Cropped 1080p (1.5× zoom) | DevRect=1920×1080 | 55 | | `imx335_2592x1944_45fps.ini` | Boost full-frame | `Isp_SnsMode=6` | 45 (ev), ~39 (gk pre-fix) | IMX307 preset (gk7205v200 only): | File | Mode | Wire fps | |------|------|----------| | `imx307_1280x720_60fps.ini` | 2-lane 720p (renamed from `60fps/720p_imx307_i2c_2l.ini`) | 60 | Lifted from the freed flash budget after PR #99 removed the `libsns_imx335_fpv.so` (~50 KB). Total INI footprint added: ~7 KB across both platforms. Also consolidates gk7205v200's `60fps/` (single IMX307 file) into `high-fps/` — same purpose, single directory. The two commented-out `cli` references in `rubyfpv/files/tweaksys` and `legacy/datalink/files/tweaksys` updated accordingly. ## Verified UDP-RTP push from camera → measurement host, h.265 at 4 Mbps target: - hi3516ev300 + IMX335 at 800×480 @240 → 185 fps wire (3-min soak, stable) - gk7205v300 + IMX335 at 800×480 @240 → 185 fps wire (3-min soak, stable) - hi3516ev300 + IMX335 at 1280×720 @100 → 98 fps wire - gk7205v300 + IMX335 at 1280×720 @100 → 98 fps wire - Binning / 1080p / boost-1944p modes verified by PR #99 directly on both V4 boards (numbers from PR #99's README table) Both boards run identically once `clock=37.125MHz` is applied to gk (same silicon per openhisilicon PR #99/100 CRG decode; see kaeru `imx335-ev-vs-gk-crg-decode-2026-05-12`). ## References - openhisilicon PR #99 (merged) — adds M7 flex-crop dispatch + mode roster - openhisilicon PR #100 (open) — HMAX=0x0100 patch on top of M7 - openhisilicon `docs/imx335-v4-high-fps.md` — full technical walkthrough - kaeru `v4-gk7205v200-imx335-sensor-inck-bug` — root cause of the 27 MHz / 37.125 MHz mismatch
efe2d45 to
8f22f6c
Compare
This was referenced May 13, 2026
This was referenced May 24, 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
Bumps hisilicon-opensdk to
8b5e47f(openipc/openhisilicon PR #99 merged) and applies four firmware-side companion changes that PR #99 referenced but were never landed.Bump
HISILICON_OPENSDK_VERSIONb2db4db→8b5e47f. Pulls in the merged openhisilicon PR #99 (fusesony_imx335+sony_imx335_fpvinto one driver) along with the M7 flex-crop dispatch.Drop
sony_imx335_fpvfrom the install manifest. PR #99 deleted the source directory; without removing this line the SDK build fails on missing target. (hisilicon-opensdk.mk)Fix gk7205v200 IMX335 sensor INCK = 27 MHz → 37.125 MHz. The vendor
gk7205v200_vi.koblob programs PERI_CRG60 to feed the sensor a 27 MHz reference clock atmodule_init; the Hisilicon counterpart leaves it at the SoC default 37.125 MHz. Without this INI override, gk's pixel rate is ~73% of ev's across every IMX335 mode. Applied to all 4 gk7205v200 IMX335 INIs (linear + WDR × 4M + 5M).Add
high-fps/preset directory with M7 flex-crop example INIs for the V4 boards (ev200 + gk7205v200), naming pattern<sensor>_<width>x<height>_<fps>fps.ini:imx335_800x480_240fps.iniimx335_1280x720_120fps.iniimx307_1280x720_60fps.iniBoth IMX335 presets use
Isp_SnsMode=4(M7 flex-crop, added by PR #99). The 1280×720 entry gives an apples-to-apples view next to the existing IMX307 720p preset.Also consolidates gk7205v200's
60fps/(single IMX307 file) intohigh-fps/— same purpose, single directory. The two commented-outclireferences inrubyfpv/files/tweaksysandlegacy/datalink/files/tweaksysupdated to the new path.INIs are minimal (≈30 lines); full per-crop fps table + tuning guide lives in
openhisilicon/docs/imx335-v4-high-fps.md(linked from each INI header) to keep flash footprint small.Verified
UDP-RTP push from camera → measurement host, h.265 at 4 Mbps target, fresh-booted boards:
Both boards run identically once
clock=37.125MHzis applied to gk — same silicon per the openhisilicon PR #99/100 CRG decode (see kaeruimx335-ev-vs-gk-crg-decode-2026-05-12).Test plan
make BOARD=hi3516ev200_lite allmake BOARD=gk7205v200_lite allclock=change (verified on gk)References
docs/imx335-v4-high-fps.md— full technical walkthroughv4-gk7205v200-imx335-sensor-inck-bug— root cause of the 27 MHz / 37.125 MHz mismatch🤖 Generated with Claude Code