Add gk7202v300_lite_generic-w7 device profile (GK-W7, GC2053-DVP, SSV6006C Wi-Fi) (#119)
GK-W7 board (product string ipc533331a-W7-gc2053dvp-f8): GK7202V300, 8MB NOR, GC2053 wired in DVP/parallel mode with the SID strap high, iComm/SSV SSV6006C USB WiFi (8065:6000), no Ethernet PHY. Differs from the generic gk7202v300_lite target in two ways it cannot express without a profile. The sensor is on the DVP pads, so open_sys_config's MIPI arguments mux i2c to pads nothing is connected to and no sensor is ever detected; customizer.sh opts into the sensor_dvp / sensor_mclk gate added in OpenIPC/firmware#2276. And the Lite target ships only mt7601u, which will never bind an SSV part, so the defconfig selects BR2_PACKAGE_SSV635X_OPENIPC and the overlay adds the ssv6x5x-generic wlandev branch. Named generic-w7 rather than after a vendor: the board carries no identifiable vendor marking, and "gk" is Goke -- the SoC vendor, already encoded in the soc field -- not the board's. `generic` is the established token here (gk7205v200_otg_generic, ssc30kq_rubyfpv_generic). Verified: builds green, rootfs 5017600B with 220KB of headroom in the 5120KB partition; the baked load_goke is master's verbatim (md5 confirmed after normalising the build's comment stripping); customizer.sh carries both env vars and is sh/dash/ash clean; S30customizer runs it on first boot ahead of S70vendor, so the vars are set before load_goke reads them; and on hardware, master's load_goke driven only by those two vars brings up the DVP GC2053 at 1920x1080 @ 25 fps with i2c init failures 0 and ISP errors 0. Not verified: the conjunction of the above on a single unattended first boot from this image with no hand-set environment. Each link is independently evidenced; the composition is not. Follow-up expected on the PR. Headroom note for later: 220KB of rootfs headroom is about 4% of the partition, and this family has a history of profiles going over as majestic grows. gk7202v300_lite.list is the lever. Refs: OpenIPC/firmware#2074, OpenIPC/firmware#2276
This commit is contained in:
+69
@@ -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
|
||||
+97
@@ -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
|
||||
; 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
|
||||
@@ -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
|
||||
@@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# 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_generic-w7-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
|
||||
#
|
||||
# ...and 24 MHz MCLK. This is NOT optional on this board, and it is not
|
||||
# something the ini can supply: majestic's ini is read in userspace, while MCLK
|
||||
# is an SoC clock programmed from the CRG before any of that runs.
|
||||
#
|
||||
# parse_sensor_clock() maps gc2053 to 0x6, and PERI_CRG60 bits [5:2] = 0x6 is
|
||||
# 27 MHz. Measured on hardware: the register reads 0x00000019 at the moment
|
||||
# load_goke would write it — bits [5:2] = 0x6, i.e. exactly that 27 MHz default.
|
||||
# The GC2053 ForCar PLL tables this profile relies on are 24 MHz values, so
|
||||
# without this the sensor is clocked 12.5% fast against its own init table.
|
||||
#
|
||||
fw_setenv sensor_mclk 24
|
||||
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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user