Skip to content

Add gk7202v300_lite_w7_8m device profile (GK-W7, GC2053-DVP, SSV6006C Wi-Fi) - #119

Open
bneigher wants to merge 1 commit into
OpenIPC:masterfrom
bneigher:gk7202v300-lite-w7-8m
Open

Add gk7202v300_lite_w7_8m device profile (GK-W7, GC2053-DVP, SSV6006C Wi-Fi)#119
bneigher wants to merge 1 commit into
OpenIPC:masterfrom
bneigher:gk7202v300-lite-w7-8m

Conversation

@bneigher

Copy link
Copy Markdown

Add gk7202v300_lite_w7_8m device profile (GK-W7, GC2053-DVP, SSV6006C Wi-Fi)

Adds a device profile for the GK-W7 board — GK7202V300, 8 MB NOR, product string
ipc533331a-W7-gc2053dvp-f8. Answers OpenIPC/firmware#2074, where @widgetii asked
for this as a builder profile rather than a change to the generic targets.

Hardware, and how it differs from the generic gk7202v300_lite target:

  • GC2053 wired in DVP (parallel) mode, SID strapped HIGH (7-bit i2c 0x3f).
    The generic target assumes MIPI + SID=0, so out of the box the i2c controller
    is muxed to pads that are not connected to the sensor: every address NACKs, no
    chip ID, no video.
  • iComm/SSV SSV6006C USB Wi-Fi, USB ID 8065:6000. The generic Lite target
    ships only mt7601u, which is MediaTek silicon and will never bind this part —
    ip link shows lo and nothing else.
  • No Ethernet PHY (femac ... connect to PHY failed in dmesg is expected here).

What is in the profile

  • br-ext-chip-goke/configs/gk7202v300_lite_w7_8m_defconfig — mirrors
    gk7202v300_lite_cootli_camv0103 (same SoC, same Wi-Fi family) with
    BR2_PACKAGE_SSV635X_OPENIPC=y. Drops BR2_PACKAGE_MOTORS — W7 is fixed-lens.
  • general/overlay/usr/share/openipc/customizer.shwlandev ssv6x5x-generic,
    sensor gc2053, opt-in sensor_dvp=1 / sensor_mclk=24, and pins
    .isp.sensorConfig to the DVP ini explicitly rather than relying on ini-glob
    ordering.
  • general/overlay/etc/wireless/usb — the ssv6x5x-generic branch.
  • general/overlay/etc/sensors/gc2053_i2c_dc_1080p.ini — DVP variant
    (input_mode=INPUT_MODE_CMOS, Input_mod=VI_MODE_DIGITAL_CAMERA, Isp_Bayer=0
    RGGB). The shipped gc2053_i2c_1080p.ini declares MIPI input.

Companion PR

The pad-routing selector lives in load_goke in the firmware tree, so this
profile depends on OpenIPC/firmware#2276, which adds the sensor_dvp env-var
gate. Per @widgetii's review note that is opt-in and keyed off an env var, not
off $CHIP_TYPE
— MIPI-wired gk7202v300 boards exist and testing the SoC name
would fix this board by breaking those.

Status: Wi-Fi and video both verified

Verified on three boards: wlan0 up and associating, and 1920x1080 H.264 over
RTSP with FrmErrCnt 0 at 25 fps.

Two caveats worth stating plainly rather than discovering after merge:

  1. The SSV driver needs patches this profile does not carry. Enabling the
    package is necessary but not sufficient — the chip enumerates, but reliable
    cold boot and AP mode needed six patches to the SMAC tree (a duplicate
    tu_ssv6xxx_init_mac() in probe that forces Jump-to-ROM and breaks RF under
    OpenIPC's xHCI, plus an EP2 IN drain before the ROM-ready poll). Those belong
    in the ssv6x5x tree and are offered separately; see the issue.
  2. The sensor library needs a register-level fix that is not in this PR.
    galaxycore_gc2053_ForCar in OpenIPC/openhisilicon programs i2c address
    0x6e (SID low), so on a SID-high board every register write silently
    no-ops while still reporting Init_OK; and reg 0x3e yields ValidWidth 1244
    instead of 1920, which VI counts as a frame error, starving VPSS and timing
    out VENC. Where those should live — profile-local patch vs upstreamed to
    openhisilicon — is the open question in the issue.

So: this profile gets the board to a working Wi-Fi and a correctly-routed,
correctly-addressed sensor bus. The two items above are what stand between that
and a stock build producing video unaided.

Refs: OpenIPC/firmware#2074

GK7202V300, 8MB NOR, product string ipc533331a-W7-gc2053dvp-f8.

Two things differ from the generic gk7202v300_lite target:

- GC2053 wired in DVP (parallel) mode with the SID strap HIGH (i2c 0x3f).
  The generic target assumes MIPI + SID=0, so the i2c controller is muxed to
  pads that are not connected to the sensor and nothing is ever detected.
- iComm/SSV SSV6006C USB Wi-Fi, USB ID 8065:6000. The generic Lite target
  ships only mt7601u, which is MediaTek silicon and will never bind it.

Mirrors gk7202v300_lite_cootli_camv0103 (same SoC, same Wi-Fi family), minus
BR2_PACKAGE_MOTORS since W7 is fixed-lens.

Depends on OpenIPC/firmware#2276 for the opt-in sensor_dvp gate.

Refs: OpenIPC/firmware#2074
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Add GK-W7 (gk7202v300_lite_w7_8m) device profile with DVP GC2053 + SSV6006C Wi‑Fi

✨ Enhancement ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Add a dedicated GK-W7 Buildroot defconfig with SSV6x5x Wi‑Fi enabled.
• Configure first-boot env defaults for GC2053 DVP routing and explicit sensor INI.
• Ship a GC2053 DVP-mode sensor INI plus per-target rootfs exclude list.
Diagram

graph TD
A["gk7202v300_lite_w7_8m_defconfig"] --> B["Device rootfs overlay"] --> C(["customizer.sh"]) --> D[("U-Boot env")] --> E{{"load_goke / open_sys_config"}} --> F["GC2053 DVP INI"]
E --> G(["/etc/wireless/usb"]) --> H["ssv6x5x module"]
subgraph Legend
  direction LR
  _cfg["Config/File"] ~~~ _scr(["Script"]) ~~~ _env[("Env store")] ~~~ _ext{{"External component"}}
end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Fold into generic gk7202v300_lite with env-gated DVP/Wi‑Fi paths
  • ➕ Fewer board profiles to maintain
  • ➕ One place to document/ship DVP + SSV6x5x defaults
  • ➖ Risk of changing behavior for existing MIPI-wired boards
  • ➖ Generic target would accumulate board-specific quirks quickly
2. Derive from an existing similar profile via shared include/overlay fragments
  • ➕ Reduces duplication across gk7202v300_lite_* profiles
  • ➕ Encourages consistent Wi‑Fi and sensor bring-up patterns
  • ➖ Requires repo-level refactor of profile layout/conventions
  • ➖ Harder for builders to reason about final merged overlay content
3. Upstream sensor/driver fixes first, keep profile minimal
  • ➕ Profile can avoid compensating for known upstream issues
  • ➕ Improves out-of-box behavior for other GC2053/SSV boards
  • ➖ Blocks the immediate need for a builder-ready profile
  • ➖ Depends on coordination across other repos/trees

Recommendation: Keep the dedicated GK-W7 profile as implemented: it localizes board-specific DVP routing and SSV6x5x enablement without risking regressions on other gk7202v300_lite boards. Consider a later follow-up to factor common pieces (e.g., SSV6x5x hook and DVP sensor INI selection) into shared overlay fragments once a few similar profiles exist.

Files changed (5) +268 / -0

Other (5) +268 / -0
gk7202v300_lite_w7_8m_defconfigAdd Buildroot defconfig for GK7202V300 Lite W7 (8MB NOR) +69/-0

Add Buildroot defconfig for GK7202V300 Lite W7 (8MB NOR)

• Introduces a new device defconfig for the GK-W7 variant: goke gk7202v300, lite, 8MB flash. Enables the SSV635X/SSV6x5x Wi‑Fi package and standard OpenIPC userspace components (majestic, dropbear, wireguard).

devices/gk7202v300_lite_w7_8m/br-ext-chip-goke/configs/gk7202v300_lite_w7_8m_defconfig

gc2053_i2c_dc_1080p.iniAdd GC2053 DVP-mode 1080p sensor configuration INI +97/-0

Add GC2053 DVP-mode 1080p sensor configuration INI

• Adds a dedicated GC2053 configuration targeting digital camera (DVP/parallel) input mode rather than MIPI. Sets VI device parameters and frame sizing consistent with 1920x1080 capture.

devices/gk7202v300_lite_w7_8m/general/overlay/etc/sensors/gc2053_i2c_dc_1080p.ini

usbAdd USB Wi‑Fi hook for ssv6x5x-generic +13/-0

Add USB Wi‑Fi hook for ssv6x5x-generic

• Adds a wireless selector script branch for 'ssv6x5x-generic' that loads the 'ssv6x5x' kernel module. Returns failure for unknown Wi‑Fi selectors.

devices/gk7202v300_lite_w7_8m/general/overlay/etc/wireless/usb

customizer.shProvision GK-W7 defaults (upgrade URL, SSV Wi‑Fi, DVP sensor routing) +44/-0

Provision GK-W7 defaults (upgrade URL, SSV Wi‑Fi, DVP sensor routing)

• Adds a GK-W7-specific customizer that sets the upgrade URL and selects 'ssv6x5x-generic' Wi‑Fi. Opts into DVP pad routing via 'sensor_dvp=1', sets 'sensor=gc2053', and pins '.isp.sensorConfig' to the new DVP INI; also enables audio output.

devices/gk7202v300_lite_w7_8m/general/overlay/usr/share/openipc/customizer.sh

gk7202v300_lite.listAdd per-target exclude list for gk7202v300_lite image trimming +45/-0

Add per-target exclude list for gk7202v300_lite image trimming

• Introduces a gk7202v300_lite exclude list to drop unused sensor INIs/libs and selected kernel modules from the final image. Mirrors existing exclude patterns used by other gk7202v300_lite device profiles.

devices/gk7202v300_lite_w7_8m/general/scripts/excludes/gk7202v300_lite.list

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (1) 📜 Skill insights (0)

Grey Divider


Action required

1. Device dir name uses underscores 📘 Rule violation ⚙ Maintainability
Description
The new device directory devices/gk7202v300_lite_w7_8m/ does not follow the required
<soc>_<flavor>_<vendor>-<model>[-<version>] format (missing vendor-model hyphenated segment and
uses underscore tokens instead). This can break expected device discoverability/mapping conventions
for BOARD naming and CI artifact layout.
Code

devices/gk7202v300_lite_w7_8m/general/overlay/usr/share/openipc/customizer.sh[1]

+#!/bin/sh
Evidence
PR Compliance ID 1 requires any new device directory under devices/ to follow
<soc>_<flavor>_<vendor>-<model>[-<version>] with hyphen-separated vendor/model. The PR adds files
under devices/gk7202v300_lite_w7_8m/, whose directory name lacks the required vendor-model
hyphenated component and uses underscores instead.

CLAUDE.md: Device Directory Name Must Follow Standard <soc><flavor><vendor>-<model>[-<version>] Format
devices/gk7202v300_lite_w7_8m/general/overlay/usr/share/openipc/customizer.sh[1-1]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The device directory name `gk7202v300_lite_w7_8m` does not comply with the required `<soc>_<flavor>_<vendor>-<model>[-<version>]` naming convention (vendor/model must be hyphen-separated and present).

## Issue Context
Compliance requires consistent device directory naming under `devices/` so that BOARD naming, CI artifact naming, and repository layout stay predictable.

## Fix Focus Areas
- devices/gk7202v300_lite_w7_8m/general/overlay/usr/share/openipc/customizer.sh[1-1]
- devices/gk7202v300_lite_w7_8m/br-ext-chip-goke/configs/gk7202v300_lite_w7_8m_defconfig[1-1]
- devices/gk7202v300_lite_w7_8m/general/scripts/excludes/gk7202v300_lite.list[1-1]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. Data_seq constant mismatch 🐞 Bug ⚙ Maintainability
Description
gc2053_i2c_dc_1080p.ini sets Data_seq = VI_DATA_SEQ_YUYV, but the same file documents
VI_INPUT_DATA_* values for Data_seq, making the configuration internally inconsistent. This
obscures the intended pixel ordering and makes future adjustments/troubleshooting of VI settings
error-prone.
Code

devices/gk7202v300_lite_w7_8m/general/overlay/etc/sensors/gc2053_i2c_dc_1080p.ini[R34-37]

+Scan_mode    = 1;VI_SCAN_INTERLACED = 0
+                ;VI_SCAN_PROGRESSIVE,
+Data_seq     = VI_DATA_SEQ_YUYV ;data sequence (ONLY for YUV format)
+                ;----2th component U/V sequence in bt1120
Evidence
The new INI uses a Data_seq token that does not match the enum names documented immediately below
it, while other sensor INIs in this repo use numeric values alongside the same VI_INPUT_DATA_*
documentation, indicating the expected naming/value set for Data_seq.

devices/gk7202v300_lite_w7_8m/general/overlay/etc/sensors/gc2053_i2c_dc_1080p.ini[34-44]
devices/hi3516ev300_ultimate_rvi-1ncmw2028/general/package/hisilicon-osdrv-hi3516ev200/files/sensor/config/sc2330_i2c_1080p.ini[34-44]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`Data_seq` is set to `VI_DATA_SEQ_YUYV`, but the INI’s own inline documentation lists the acceptable symbolic values as `VI_INPUT_DATA_{UYVY,VYUY,YUYV,YVYU}` (and other shipped configs use numeric equivalents). This makes the configuration internally inconsistent and harder to maintain.

### Issue Context
This INI is explicitly pinned by the device’s `customizer.sh`, so it becomes the board’s authoritative VI/sensor configuration.

### Fix Focus Areas
- devices/gk7202v300_lite_w7_8m/general/overlay/etc/sensors/gc2053_i2c_dc_1080p.ini[34-44]

### What to change
- Replace `Data_seq = VI_DATA_SEQ_YUYV` with a documented/consistent value, e.g. `Data_seq = 2` (matching other configs) or `Data_seq = VI_INPUT_DATA_YUYV`.
- Alternatively (if this config path is strictly RAW/RGB), remove `Data_seq` entirely to avoid implying it is relevant here.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Tip of the day
💡 Did you know, you can add REVIEW.md to your repo root and Qodo follows it on every PR

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@@ -0,0 +1,44 @@
#!/bin/sh

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Device dir name uses underscores 📘 Rule violation ⚙ Maintainability

The new device directory devices/gk7202v300_lite_w7_8m/ does not follow the required
<soc>_<flavor>_<vendor>-<model>[-<version>] format (missing vendor-model hyphenated segment and
uses underscore tokens instead). This can break expected device discoverability/mapping conventions
for BOARD naming and CI artifact layout.
Agent Prompt
## Issue description
The device directory name `gk7202v300_lite_w7_8m` does not comply with the required `<soc>_<flavor>_<vendor>-<model>[-<version>]` naming convention (vendor/model must be hyphen-separated and present).

## Issue Context
Compliance requires consistent device directory naming under `devices/` so that BOARD naming, CI artifact naming, and repository layout stay predictable.

## Fix Focus Areas
- devices/gk7202v300_lite_w7_8m/general/overlay/usr/share/openipc/customizer.sh[1-1]
- devices/gk7202v300_lite_w7_8m/br-ext-chip-goke/configs/gk7202v300_lite_w7_8m_defconfig[1-1]
- devices/gk7202v300_lite_w7_8m/general/scripts/excludes/gk7202v300_lite.list[1-1]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +34 to +37
Scan_mode = 1;VI_SCAN_INTERLACED = 0
;VI_SCAN_PROGRESSIVE,
Data_seq = VI_DATA_SEQ_YUYV ;data sequence (ONLY for YUV format)
;----2th component U/V sequence in bt1120

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remediation recommended

2. Data_seq constant mismatch 🐞 Bug ⚙ Maintainability

gc2053_i2c_dc_1080p.ini sets Data_seq = VI_DATA_SEQ_YUYV, but the same file documents
VI_INPUT_DATA_* values for Data_seq, making the configuration internally inconsistent. This
obscures the intended pixel ordering and makes future adjustments/troubleshooting of VI settings
error-prone.
Agent Prompt
### Issue description
`Data_seq` is set to `VI_DATA_SEQ_YUYV`, but the INI’s own inline documentation lists the acceptable symbolic values as `VI_INPUT_DATA_{UYVY,VYUY,YUYV,YVYU}` (and other shipped configs use numeric equivalents). This makes the configuration internally inconsistent and harder to maintain.

### Issue Context
This INI is explicitly pinned by the device’s `customizer.sh`, so it becomes the board’s authoritative VI/sensor configuration.

### Fix Focus Areas
- devices/gk7202v300_lite_w7_8m/general/overlay/etc/sensors/gc2053_i2c_dc_1080p.ini[34-44]

### What to change
- Replace `Data_seq = VI_DATA_SEQ_YUYV` with a documented/consistent value, e.g. `Data_seq = 2` (matching other configs) or `Data_seq = VI_INPUT_DATA_YUYV`.
- Alternatively (if this config path is strictly RAW/RGB), remove `Data_seq` entirely to avoid implying it is relevant here.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

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