From 600200dac2be27d0c91e111f29d5364b3e40a380 Mon Sep 17 00:00:00 2001
From: viktorxda <35473052+viktorxda@users.noreply.github.com>
Date: Fri, 9 May 2025 12:35:35 +0200
Subject: [PATCH] [no ci] Rockchip: add rv1103 configuration (#1813)

---
 .github/workflows/build.yml                   |  1 +
 Makefile                                      |  2 +-
 .../board/rv1106/rv1106.generic.config        |  1 +
 .../configs/rv1103_lite_defconfig             | 72 +++++++++++++++++++
 .../configs/rv1106_lite_defconfig             |  2 +-
 general/overlay/usr/sbin/sysupgrade           | 15 ++--
 .../files/script/load_rockchip                |  1 +
 7 files changed, 84 insertions(+), 10 deletions(-)
 create mode 100644 br-ext-chip-rockchip/configs/rv1103_lite_defconfig

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 90a94d14..3f3faec3 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -122,6 +122,7 @@ jobs:
           - nt98566_lite
 
           # Rockchip
+          - rv1103_lite
           - rv1106_lite
           - rv1109_lite
           - rv1126_lite
diff --git a/Makefile b/Makefile
index b1d9411a..f6cacd27 100644
--- a/Makefile
+++ b/Makefile
@@ -80,7 +80,7 @@ endif
 repack:
 ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS),y)
 ifeq ($(BR2_OPENIPC_SOC_VENDOR),"rockchip")
-	@$(call PREPARE_REPACK,zboot.img,4096,rootfs.squashfs,5120,nor)
+	@$(call PREPARE_REPACK,zboot.img,4096,rootfs.squashfs,8192,nor)
 else ifeq ($(BR2_OPENIPC_FLASH_SIZE),"8")
 	@$(call PREPARE_REPACK,uImage,2048,rootfs.squashfs,5120,nor)
 else
diff --git a/br-ext-chip-rockchip/board/rv1106/rv1106.generic.config b/br-ext-chip-rockchip/board/rv1106/rv1106.generic.config
index 88d55053..a5464610 100644
--- a/br-ext-chip-rockchip/board/rv1106/rv1106.generic.config
+++ b/br-ext-chip-rockchip/board/rv1106/rv1106.generic.config
@@ -2310,6 +2310,7 @@ CONFIG_VIDEO_RK_IRCUT=y
 # CONFIG_VIDEO_OV2680 is not set
 # CONFIG_VIDEO_OV2685 is not set
 # CONFIG_VIDEO_OV2718 is not set
+CONFIG_VIDEO_OV2740=m
 # CONFIG_VIDEO_OV4686 is not set
 # CONFIG_VIDEO_OV4688 is not set
 # CONFIG_VIDEO_OV4689 is not set
diff --git a/br-ext-chip-rockchip/configs/rv1103_lite_defconfig b/br-ext-chip-rockchip/configs/rv1103_lite_defconfig
new file mode 100644
index 00000000..2dc0f65d
--- /dev/null
+++ b/br-ext-chip-rockchip/configs/rv1103_lite_defconfig
@@ -0,0 +1,72 @@
+# Architecture
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_ARM_FPU_NEON_VFPV4=y
+
+# Toolchain
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM=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-gnueabihf"
+BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_10=y
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
+# BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
+BR2_TOOLCHAIN_EXTERNAL_OPENMP=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)/rv1106.generic.config"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_XZ=y
+BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="rv1103g-luckfox-pico-plus.img"
+BR2_LINUX_KERNEL_IMAGE_NAME="zboot.img"
+
+# Filesystem
+BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config"
+BR2_PACKAGE_MTD=y
+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_TARGET_ROOTFS_CPIO=y
+BR2_TARGET_ROOTFS_SQUASHFS=y
+BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
+BR2_TARGET_ROOTFS_UBI=y
+BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048
+BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG=y
+BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/scripts/ubifs/ubinize_rockchip.cfg"
+BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000
+
+# OpenIPC
+BR2_OPENIPC_SOC_VENDOR="rockchip"
+BR2_OPENIPC_SOC_MODEL="rv1103"
+BR2_OPENIPC_SOC_FAMILY="rv1106"
+BR2_OPENIPC_VARIANT="lite"
+BR2_OPENIPC_FLASH_SIZE="8"
+
+# Packages
+BR2_PACKAGE_ROCKCHIP_OSDRV_RV11XX=y
+BR2_PACKAGE_DROPBEAR_OPENIPC=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_VTUND_OPENIPC=y
+BR2_PACKAGE_YAML_CLI=y
diff --git a/br-ext-chip-rockchip/configs/rv1106_lite_defconfig b/br-ext-chip-rockchip/configs/rv1106_lite_defconfig
index 40897e8b..a5280710 100644
--- a/br-ext-chip-rockchip/configs/rv1106_lite_defconfig
+++ b/br-ext-chip-rockchip/configs/rv1106_lite_defconfig
@@ -23,7 +23,7 @@ BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/rv1106.generic.config"
 BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
 BR2_LINUX_KERNEL_XZ=y
-BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="rv1103g-luckfox-pico-plus.img"
+BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="rv1106g-luckfox-pico-pro.img"
 BR2_LINUX_KERNEL_IMAGE_NAME="zboot.img"
 
 # Filesystem
diff --git a/general/overlay/usr/sbin/sysupgrade b/general/overlay/usr/sbin/sysupgrade
index 7dd21438..13066629 100755
--- a/general/overlay/usr/sbin/sysupgrade
+++ b/general/overlay/usr/sbin/sysupgrade
@@ -1,6 +1,6 @@
 #!/bin/sh
 # OpenIPC.org | 2025
-scr_version=1.0.47
+scr_version=1.0.48
 
 args="$@"
 LOCK_FILE=/tmp/sysupgrade.lock
@@ -31,18 +31,17 @@ compare_versions() {
 
 do_update_kernel() {
 	local x=$1
-	[ -z "$x" ] && x="/tmp/uImage.$soc"
+	if [ -z "$x" ]; then
+		[ "$vendor" = "rockchip" ] && x="/tmp/zboot.img.$soc" || x="/tmp/uImage.$soc"
+	fi
 	echo_c 33 "\nKernel"
 	echo "Update kernel from $x"
 	[ ! -f "$x" ] && die "File $x not found"
 	if [ "1" != "$skip_soc" ]; then
 		local ksoc=$(od -j 32 -N 32 -S 1 -A n "$x" | cut -d- -f3)
-		# FIXME: Ingenic kernels do not include proper SoC identifiers.
-		case "$soc" in
-			t31) [ "t" != "$ksoc" ] && die "Wrong SoC!" ;;
-			t21) [ "" != "$ksoc" ] && die "Wrong SoC!" ;;
-			*) check_soc "$ksoc"
-		esac
+		if [ "$vendor" != "ingenic" ] && [ "$vendor" != "rockchip" ]; then
+			check_soc "$ksoc"
+		fi
 		compare_versions "$kernel_version" "$(get_kernel_version "$x")" && return 0
 	fi
 	set_progress flashcp -v "$x" "$kernel_device"
diff --git a/general/package/rockchip-osdrv-rv11xx/files/script/load_rockchip b/general/package/rockchip-osdrv-rv11xx/files/script/load_rockchip
index 02885505..f9621696 100755
--- a/general/package/rockchip-osdrv-rv11xx/files/script/load_rockchip
+++ b/general/package/rockchip-osdrv-rv11xx/files/script/load_rockchip
@@ -2,6 +2,7 @@
 MODULE=/lib/modules/5.10.160/rockchip
 
 modprobe mis5001
+modprobe ov2740
 modprobe sc3336
 
 modprobe video_rkcif