diff --git a/README.md b/README.md index 588a4ea1b..c9f378ffd 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,7 @@ Cootli CAMV0103 GK7202V300 SC223A SSV6355_USB NOR_8M in pr CP Plus CP-UNC-TA21L2C GK7205V200 SC223A - NOR_16M video-ok, ir-cut-no, audio-no Emax Wyvern Link SSC338Q IMX415 NOR_16M done Foscam X5 SSC337DE GC4653 RTL8188FU_USB NOR_16M done +GARUS GSL-5030X-30AP-NM HI3516EV200 SC2315E? - NOR_8M done G.Craftsman GCA50 T31ZX GC4653 - NOR_16M done EC37-T11 T20L SC2232 RTL8188FU_USB MOR_16M in progress H3C TC2101 SSC337 JXQ03 RTL8188FU_USB NOR_16M done diff --git a/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/br-ext-chip-hisilicon/board/hi3516ev200/garus-gsl-5030x-30ap-nm.fragment b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/br-ext-chip-hisilicon/board/hi3516ev200/garus-gsl-5030x-30ap-nm.fragment new file mode 100644 index 000000000..bafe5d563 --- /dev/null +++ b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/br-ext-chip-hisilicon/board/hi3516ev200/garus-gsl-5030x-30ap-nm.fragment @@ -0,0 +1,28 @@ +# GARUS: wired, fixed-lens, NOR-only 1080p camera; no USB/SD peripherals. +# Merge into hi3516ev200.generic.config, never replace the common config. +# Keep the NOR/FMC controller, MIPI/I2C, GPIO, UART, MMZ/CMA and recovery stack. + +# No wireless adapter, USB devices/gadgets, modem or SD card in this target. +# CONFIG_WIRELESS is not set +# CONFIG_WLAN is not set +# CONFIG_CFG80211 is not set +# CONFIG_MAC80211 is not set +# CONFIG_MT7601U is not set +# CONFIG_USB_SUPPORT is not set +# CONFIG_USB is not set +# CONFIG_USB_GADGET is not set +# CONFIG_PHY_HISI_XVP_USB2 is not set +# CONFIG_MMC is not set +# CONFIG_VFAT_FS is not set +# CONFIG_FAT_FS is not set + +# This image boots SquashFS on SPI NOR with a JFFS2 writable overlay. +# CONFIG_MTD_NAND is not set +# CONFIG_MTD_SPI_NAND_HISI_BVT is not set +# CONFIG_MTD_SPI_NAND_HIFMC100 is not set +# CONFIG_MTD_UBI is not set +# CONFIG_UBIFS_FS is not set +# CONFIG_YAFFS_FS is not set + +# No bundled VPN client on this 8 MiB profile. +# CONFIG_TUN is not set diff --git a/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/br-ext-chip-hisilicon/configs/hi3516ev200_lite_garus-gsl-5030x-30ap-nm_defconfig b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/br-ext-chip-hisilicon/configs/hi3516ev200_lite_garus-gsl-5030x-30ap-nm_defconfig new file mode 100644 index 000000000..6aedade54 --- /dev/null +++ b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/br-ext-chip-hisilicon/configs/hi3516ev200_lite_garus-gsl-5030x-30ap-nm_defconfig @@ -0,0 +1,66 @@ +# 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)/hi3516ev200.generic.config" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/garus-gsl-5030x-30ap-nm.fragment" +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 is not set +# BR2_PACKAGE_WIREGUARD_TOOLS is not set +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_SQUASHFS=y +BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="hisilicon" +BR2_OPENIPC_SOC_MODEL="hi3516ev200" +BR2_OPENIPC_SOC_FAMILY="hi3516ev200" +BR2_OPENIPC_VARIANT="lite" +BR2_OPENIPC_FLASH_SIZE="8" + +# Packages +BR2_PACKAGE_DROPBEAR_OPENIPC=y +BR2_PACKAGE_HISILICON_OPENSDK=y +BR2_PACKAGE_HISILICON_OSDRV_HI3516EV200=y +BR2_PACKAGE_IPCTOOL=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_MAJESTIC_AF is not set +BR2_PACKAGE_MBEDTLS_OPENIPC=y +# BR2_PACKAGE_MOTORS is not set +BR2_PACKAGE_OPUS_OPENIPC=y +BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y +# BR2_PACKAGE_VTUND_OPENIPC is not set +BR2_PACKAGE_YAML_CLI=y diff --git a/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/overlay/etc/modules b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/overlay/etc/modules new file mode 100644 index 000000000..c2e4da3cb --- /dev/null +++ b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/overlay/etc/modules @@ -0,0 +1,2 @@ +# GARUS GSL-5030X-30AP-NM has no removable storage. +# Override the common vfat/exfat module list; load nothing here. diff --git a/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/overlay/usr/share/openipc/customizer.sh b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/overlay/usr/share/openipc/customizer.sh new file mode 100644 index 000000000..6ef3fe0b4 --- /dev/null +++ b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/overlay/usr/share/openipc/customizer.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# +# OpenIPC profile for GARUS GSL-5030X-30AP-NM +# Board: BLK16EV2-4339P-38X38 +# SoC: HiSilicon Hi3516EV200 +# Sensor path: SC2315E, MIPI 1080p +# +# GPIO15 is the external day/night status input. GPIO8/9 drive the bistable +# IR-cut filter. The IR illuminator board is autonomous, so no backlight GPIO +# is configured here. +# + +fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/hi3516ev200_lite_garus-gsl-5030x-30ap-nm-nor.tgz' +fw_setenv sensor sc2315e + +cli -s .isp.sensorConfig /etc/sensors/sc2315e_i2c_1080p.ini +cli -s .nightMode.lightMonitor true +cli -s .nightMode.lightSensorPin 15 +cli -s .nightMode.irCutPin1 8 +cli -s .nightMode.irCutPin2 9 +# The filter needs a short mechanical settle time to avoid a purple cast. +cli -s .nightMode.transitionDelayMs 150 + +exit 0 diff --git a/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/overlay/usr/share/openipc/muxes.sh b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/overlay/usr/share/openipc/muxes.sh new file mode 100644 index 000000000..294415fc2 --- /dev/null +++ b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/overlay/usr/share/openipc/muxes.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# +# GARUS GSL-5030X-30AP-NM: GPIO15 is GPIO1_7. +# Make it an input before switching the pad to GPIO mode. Preserve all +# unrelated direction and pad-control bits. +# + +set -e + +direction=$(devmem 0x120B1400 32) +devmem 0x120B1400 32 $((direction & 0xffffff7f)) + +pinmux=$(devmem 0x120C001C 32) +devmem 0x120C001C 32 $(((pinmux & 0xfffffff0) | 0x2)) diff --git a/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/scripts/excludes/hi3516ev200_lite.list b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/scripts/excludes/hi3516ev200_lite.list new file mode 100644 index 000000000..4e8ad1fd6 --- /dev/null +++ b/devices/hi3516ev200_lite_garus-gsl-5030x-30ap-nm/general/scripts/excludes/hi3516ev200_lite.list @@ -0,0 +1,67 @@ +# GARUS GSL-5030X-30AP-NM: keep the SC2315E 1080p path. +# Keep iq/default.ini and its imx307.ini target. +/etc/sensors/5M_imx335.ini +/etc/sensors/WDR/5M_imx335.ini +/etc/sensors/WDR/imx335_i2c_4M.ini +/etc/sensors/camhi_imx307_i2c_4l_1080p.ini +/etc/sensors/gc2053_i2c_1080p.ini +/etc/sensors/gc4653_i2c_4M.ini +/etc/sensors/high-fps/imx307_1280x720_60fps.ini +/etc/sensors/high-fps/imx307_1920x1080_60fps.ini +/etc/sensors/high-fps/imx307_368x304_200fps.ini +/etc/sensors/high-fps/imx307_640x480_130fps.ini +/etc/sensors/high-fps/imx335_1280x720_120fps.ini +/etc/sensors/high-fps/imx335_1296x972_64fps.ini +/etc/sensors/high-fps/imx335_1920x1080_55fps.ini +/etc/sensors/high-fps/imx335_2592x1944_45fps.ini +/etc/sensors/high-fps/imx335_800x480_240fps.ini +/etc/sensors/imx307_i2c_2l_1080p.ini +/etc/sensors/imx335_i2c_4M.ini +/etc/sensors/iq/f23.ini +/etc/sensors/iq/imx335.ini +/etc/sensors/jxf22_i2c_1080p.ini +/etc/sensors/jxf23_i2c_1080p.ini +/etc/sensors/jxf37_i2c_1080p.ini +/etc/sensors/sc2231_i2c_1080p.ini +/etc/sensors/sc2232h_i2c_1080p.ini +/etc/sensors/sc2239_i2c_1080p.ini +/etc/sensors/sc3235_i2c_3M.ini +/etc/sensors/sc3335_i2c_3M.ini +/etc/sensors/sc4236_i2c_3M.ini +/etc/sensors/sp2305_i2c_1080p.ini +/etc/sensors/sp2308_i2c_1080p.ini +/lib/modules/4.9.37/hisilicon/camhi-motor.ko +/usr/bin/ircut_demo +/usr/lib/sensors/libsns_ar0237.so +/usr/lib/sensors/libsns_bt656.so +/usr/lib/sensors/libsns_f22.so +/usr/lib/sensors/libsns_f23.so +/usr/lib/sensors/libsns_f37.so +/usr/lib/sensors/libsns_gc2053.so +/usr/lib/sensors/libsns_gc2053_forcar.so +/usr/lib/sensors/libsns_gc4023.so +/usr/lib/sensors/libsns_gc4653_2l.so +/usr/lib/sensors/libsns_gc5603.so +/usr/lib/sensors/libsns_imx290.so +/usr/lib/sensors/libsns_imx307.so +/usr/lib/sensors/libsns_imx307_2l.so +/usr/lib/sensors/libsns_imx327.so +/usr/lib/sensors/libsns_imx327_2l.so +/usr/lib/sensors/libsns_imx335.so +/usr/lib/sensors/libsns_imx335_2l.so +/usr/lib/sensors/libsns_mis2008.so +/usr/lib/sensors/libsns_os02g10.so +/usr/lib/sensors/libsns_os05a.so +/usr/lib/sensors/libsns_ov2718.so +/usr/lib/sensors/libsns_sc2231.so +/usr/lib/sensors/libsns_sc2232h.so +/usr/lib/sensors/libsns_sc2235.so +/usr/lib/sensors/libsns_sc2239.so +/usr/lib/sensors/libsns_sc223a.so +/usr/lib/sensors/libsns_sc3235.so +/usr/lib/sensors/libsns_sc3335.so +/usr/lib/sensors/libsns_sc3336.so +/usr/lib/sensors/libsns_sc4236.so +/usr/lib/sensors/libsns_sc500ai.so +/usr/lib/sensors/libsns_sp2305.so +/usr/lib/sensors/libsns_sp2308.so