Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Architecture
BR2_arm=y
BR2_cortex_a7=y
BR2_ARM_EABI=y
BR2_ARM_FPU_NEON_VFPV4=y
BR2_ARM_INSTRUCTIONS_THUMB2=y

# Toolchain
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-musleabi"
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y

# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/gk7202v300.generic.config"
BR2_LINUX_KERNEL_UIMAGE=y
BR2_LINUX_KERNEL_XZ=y

# Filesystem
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config"
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_ZLIB=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y

# OpenIPC
BR2_OPENIPC_SOC_VENDOR="goke"
BR2_OPENIPC_SOC_MODEL="gk7202v300"
BR2_OPENIPC_SOC_FAMILY="gk7205v200"
BR2_OPENIPC_VARIANT="lite"
BR2_OPENIPC_FLASH_SIZE="8"

# Packages
BR2_PACKAGE_DROPBEAR_OPENIPC=y
BR2_PACKAGE_GOKE_OSDRV_GK7205V200=y
BR2_PACKAGE_HISILICON_OPENSDK=y
BR2_PACKAGE_IPCTOOL=y
BR2_PACKAGE_JSONFILTER=y
BR2_PACKAGE_LIBCURL_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set
BR2_PACKAGE_LIBEVENT_OPENIPC=y
BR2_PACKAGE_LIBOGG_OPENIPC=y
BR2_PACKAGE_MAJESTIC_FONTS=y
BR2_PACKAGE_MAJESTIC_WEBUI=y
BR2_PACKAGE_MAJESTIC=y
BR2_PACKAGE_MBEDTLS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
BR2_PACKAGE_SSV635X_OPENIPC=y
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
[sensor]
Sensor_type=stSnsGc2053ForCarObj
Mode=WDR_MODE_NONE
DllFile=libsns_gc2053_forcar.so

[mode]
input_mode=INPUT_MODE_CMOS
raw_bitness=10

[mipi]
lane_id = 0|2|-1|-1|-1|-1|-1|-1| ;lane_id: -1 - disable

[isp_image]
Isp_FrameRate=25
Isp_Bayer=0

[vi_dev]
Input_mod=VI_MODE_DIGITAL_CAMERA
Work_mod =0 ;VI_WORK_MODE_1Multiplex = 0
;VI_WORK_MODE_2Multiplex,
;VI_WORK_MODE_4Multiplex
Combine_mode =0 ;Y/C composite or separation mode
;VI_COMBINE_COMPOSITE = 0 /*Composite mode */
;VI_COMBINE_SEPARATE, /*Separate mode */
Comp_mode =0 ;Component mode (single-component or dual-component)
;VI_COMP_MODE_SINGLE = 0, /*single component mode */
;VI_COMP_MODE_DOUBLE = 1, /*double component mode */
Clock_edge =1 ;Clock edge mode (sampling on the rising or falling edge)
;VI_CLK_EDGE_SINGLE_UP=0, /*rising edge */
;VI_CLK_EDGE_SINGLE_DOWN, /*falling edge */
Mask_num =2 ;Component mask
Mask_0 =0xFF300000
Mask_1 =0x0
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
Comment on lines +34 to +37

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

; VI_INPUT_DATA_VUVU = 0,
; VI_INPUT_DATA_UVUV,
;----input sequence for yuv
; VI_INPUT_DATA_UYVY = 0,
; VI_INPUT_DATA_VYUY,
; VI_INPUT_DATA_YUYV,
; VI_INPUT_DATA_YVYU

Vsync =0 ; vertical synchronization signal
;VI_VSYNC_FIELD = 0,
;VI_VSYNC_PULSE,
VsyncNeg=0 ;Polarity of the vertical synchronization signal
;VI_VSYNC_NEG_HIGH = 0,
;VI_VSYNC_NEG_LOW /*if VIU_VSYNC_E
Hsync =0 ;Attribute of the horizontal synchronization signal
;VI_HSYNC_VALID_SINGNAL = 0,
;VI_HSYNC_PULSE,
HsyncNeg =0 ;Polarity of the horizontal synchronization signal
;VI_HSYNC_NEG_HIGH = 0,
;VI_HSYNC_NEG_LOW
VsyncValid =1 ;Attribute of the valid vertical synchronization signal
;VI_VSYNC_NORM_PULSE = 0,
;VI_VSYNC_VALID_SINGAL,
VsyncValidNeg =0;Polarity of the valid vertical synchronization signal
;VI_VSYNC_VALID_NEG_HIGH = 0,
;VI_VSYNC_VALID_NEG_LOW
Timingblank_HsyncHfb =0 ;Horizontal front blanking width
Timingblank_HsyncAct =1920 ;Horizontal effetive width
Timingblank_HsyncHbb =0 ;Horizontal back blanking width
Timingblank_VsyncVfb =0 ;Vertical front blanking height
Timingblank_VsyncVact =1080 ;Vertical effetive width
Timingblank_VsyncVbb=0 ;Vertical back blanking height
Timingblank_VsyncVbfb =0 ;Even-field vertical front blanking height(interlace, invalid progressive)
Timingblank_VsyncVbact=0 ;Even-field vertical effetive width(interlace, invalid progressive)
Timingblank_VsyncVbbb =0 ;Even-field vertical back blanking height(interlace, invalid progressive)
InputDataType=1 ;VI_DATA_TYPE_YUV = 0,VI_DATA_TYPE_RGB = 1,
DataRev =FALSE ;Data reverse. FALSE = 0; TRUE = 1
DevRect_x=200
DevRect_y=20
DevRect_w=1920
DevRect_h=1080

;[vi_chn]
;CapRect_X =0
;CapRect_Y =0
;CapRect_Width=1920
;CapRect_Height=1080
;DestSize_Width=1920
;DestSize_Height=1080
;CapSel =2 ;Frame/field select. ONLY used in interlaced mode
;VI_CAPSEL_TOP = 0, /* top field */
;VI_CAPSEL_BOTTOM, /* bottom field */
;VI_CAPSEL_BOTH, /* top and bottom field */

;PixFormat =26;PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 26 ...etc
;CompressMode =0 ;COMPRESS_MODE_NONE = 0
;COMPRESS_MODE_SEG =1 ...etc

SrcFrameRate=30 ;Source frame rate. -1: not controll
FrameRate =30 ;Target frame rate. -1: not controll
13 changes: 13 additions & 0 deletions devices/gk7202v300_lite_w7_8m/general/overlay/etc/wireless/usb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/sh

set_gpio() {
[ "$2" -eq 1 ] && gpio set $1 || gpio clear $1
sleep 1
}

if [ "$1" = "ssv6x5x-generic" ]; then
modprobe ssv6x5x
exit 0
fi

exit 1
Original file line number Diff line number Diff line change
@@ -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

#
# Perform basic settings on a known IP camera
#
# GK-W7 (product string ipc533331a-W7-gc2053dvp-f8): GK7202V300, 8MB NOR,
# GC2053 wired in DVP/parallel mode with the SID strap HIGH, and an
# iComm/SSV SSV6006C USB Wi-Fi part (USB ID 8065:6000).
#
# Set custom upgrade url
#
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/gk7202v300_lite_w7_8m-nor.tgz'
#
# Set wlan device and credentials if need
#
fw_setenv wlandev ssv6x5x-generic
#fw_setenv wlanssid Router
#fw_setenv wlanpass 12345678
#
# DVP SENSOR BRING-UP.
#
# This board routes the GC2053's parallel data, sync, PCLK and i2c to the
# SoC's DVP pads, not its MIPI lanes. open_sys_config picks the pad routing
# from its insmod arguments, and the generic gk7202v300 arguments select the
# MIPI path — which muxes the i2c controller to pads that are not connected
# to anything here, so every address NACKs and no sensor is ever found.
#
# sensor_dvp tells load_goke to take the DVP branch. It is read as an
# opt-in env var rather than keyed off the SoC name, because MIPI-wired
# gk7202v300 boards exist and must keep the current behaviour.
#
fw_setenv sensor_dvp 1
fw_setenv sensor gc2053
#
# The shipped gc2053_i2c_1080p.ini declares MIPI input. Pin the DVP variant
# explicitly rather than relying on ini-glob ordering.
#
cli -s .isp.sensorConfig /etc/sensors/gc2053_i2c_dc_1080p.ini
#
# Set majestic settings
#
cli -s .audio.enabled true
cli -s .audio.outputEnabled true

exit 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/etc/sensors/4l_sc223a_i2c_1080p.ini
/etc/sensors/60fps/720p_imx307_i2c_2l.ini
/etc/sensors/WDR/5M_imx335.ini
/etc/sensors/WDR/imx335_i2c_4M.ini
/etc/sensors/5M_imx335.ini
/etc/sensors/bt656_720p.ini
/etc/sensors/gc2053_i2c_1080p.ini
/etc/sensors/gc4653_i2c_4M.ini
/etc/sensors/imx307_i2c_2l_1080p.ini
/etc/sensors/imx335_i2c_4M.ini
/etc/sensors/jxf23_i2c_1080p.ini
/etc/sensors/jxf23_i2c_dc_1080p.ini
/etc/sensors/sc200ai_i2c_1080p.ini
/etc/sensors/sc2232h_i2c_1080p.ini
/etc/sensors/sc2239_i2c_1080p.ini
/etc/sensors/sc2335_i2c_1080p.ini
/etc/sensors/smtsec_imx307_i2c_4l_1080p.ini
/etc/sensors/jxh63_i2c_720p.ini
#
/etc/sensors/iq/f23.ini
/etc/sensors/iq/gc2053.ini
/etc/sensors/iq/imx335.ini
/etc/sensors/iq/sc2232.ini
/etc/sensors/iq/sc2335.ini
#
/usr/lib/sensors/libsns_bt656.so
/usr/lib/sensors/libsns_f23.so
/usr/lib/sensors/libsns_f37.so
/usr/lib/sensors/libsns_gc2053.so
/usr/lib/sensors/libsns_gc4653_2l.so
/usr/lib/sensors/libsns_imx307.so
/usr/lib/sensors/libsns_imx307_2l.so
/usr/lib/sensors/libsns_imx335.so
/usr/lib/sensors/libsns_sc200ai.so
/usr/lib/sensors/libsns_sc223a_4l.so
/usr/lib/sensors/libsns_sc2239.so
/usr/lib/sensors/libsns_sc2335.so
/usr/lib/sensors/libsns_sc2232h.so
/usr/lib/sensors/libsns_sc3235.so
/usr/lib/sensors/libsns_sc3335.so
/usr/lib/sensors/libsns_h63.so
#
/lib/modules/4.9.37/kernel/drivers/i2c/*/*.ko
/lib/modules/4.9.37/kernel/drivers/scsi/*.ko
/lib/modules/4.9.37/kernel/fs/f2fs/*.ko