diff --git a/build/Makefile b/build/Makefile
index 183ff14ea..d67488d03 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -1,6 +1,4 @@
.PHONY: FORCE
-.PHONY: bld bld-clean
-.PHONY: arm-trusted-firmware arm-trusted-firmware-clean
.PHONY: u-boot u-boot-clean
.PHONY: rtos rtos-clean
@@ -33,21 +31,10 @@ qstrip = $(strip $(subst ",,$(1)))
# Default actions
################################################################################
NPROC := $(shell nproc)
-FTP_SRV := ftp://10.58.65.3
export CHIP_ARCH_L := $(shell echo $(CHIP_ARCH) | tr A-Z a-z)
export BORAD_FOLDER_PATH := ${BUILD_PATH}/boards/${CHIP_ARCH_L}/${PROJECT_FULLNAME}
-export KEYSERVER := 10.18.98.102
-export KEYSERVER_SSHKEY_PATH := ${ATF_PATH}/tools/build_script/service_sign@cvi_keyserver.pem
-
-export RELEASE_BIN_DIR := $(TOP_DIR)/rel_bin
-export RELEASE_BIN_LICENSE_DIR := ${RELEASE_BIN_DIR}/release_bin_license
-export RELEASE_BIN_ATF_DIR := ${RELEASE_BIN_DIR}/release_bin_atf
-export RELEASE_BIN_BLD_DIR := ${RELEASE_BIN_DIR}/release_bin_bld
-export RELEASE_BIN_BLDP_DIR := ${RELEASE_BIN_DIR}/release_bin_bldp
-export RELEASE_BIN_BLP_DIR := ${RELEASE_BIN_DIR}/release_bin_blp
-
ifneq ($(origin OUTPUT_DIR),environment)
$(error Please execute defconfig/menuconfig/oldconfig first)
endif
@@ -69,11 +56,6 @@ ${OUTPUT_DIR}/elf:
################################################################################
include scripts/mmap.mk
-################################################################################
-# arm-trusted-firmware and bld
-################################################################################
-include scripts/atf.mk
-
################################################################################
# rtos targets
################################################################################
@@ -224,7 +206,7 @@ u-boot-clean: export KBUILD_OUTPUT=${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}
u-boot-clean:
$(call print_target)
${Q}$(MAKE) -j${NPROC} -C ${UBOOT_PATH} distclean
- ${Q}rm -f ${OUTPUT_DIR}/fip.bin ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/u-boot.bin.lzma
+ ${Q}rm -f ${OUTPUT_DIR}/fip.bin ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/u-boot.bin.lzma ${UBOOT_CVIPART_DEP}
################################################################################
@@ -254,14 +236,20 @@ define copy_ko_action
${Q}find ${1} -name '*.ko' -exec cp -f {} ${SYSTEM_OUT_DIR}/ko/ \;
endef
-ifeq ($(CHIP_ARCH),$(filter $(CHIP_ARCH),CV181X CV180X))
+ifeq ($(CHIP_ARCH),$(filter $(CHIP_ARCH),CV181X CV180X ATHENA2))
define copy_header_action
+ ${Q}cp -r ${OSDRV_PATH}/interdrv/${MW_VER}/include/chip/$(shell echo $(CHIP_ARCH) | tr A-Z a-z)/uapi/linux/* ${1}/linux/
+ ${Q}cp -r ${OSDRV_PATH}/interdrv/${MW_VER}/include/common/uapi/linux/* ${1}/linux/
${Q}cp ${KERNEL_PATH}/drivers/staging/android/uapi/ion.h ${1}/linux/
${Q}cp ${KERNEL_PATH}/drivers/staging/android/uapi/ion_cvitek.h ${1}/linux/
${Q}cp ${KERNEL_PATH}/include/uapi/linux/dma-buf.h ${1}/linux/
endef
else
define copy_header_action
+ ${Q}cp -r ${OSDRV_PATH}/interdrv/${MW_VER}/vip/chip/$(shell echo $(CHIP_ARCH) | tr A-Z a-z)/uapi/* ${1}/linux/
+ ${Q}cp -r ${OSDRV_PATH}/interdrv/${MW_VER}/base/uapi/* ${1}/linux/
+ ${Q}cp -r ${OSDRV_PATH}/interdrv/${MW_VER}/include/uapi/* ${1}/linux/
+ ${Q}cp ${OSDRV_PATH}/interdrv/${MW_VER}/usb/gadget/function/f_cvg.h ${1}/linux/
${Q}cp ${KERNEL_PATH}/drivers/staging/android/uapi/ion.h ${1}/linux/
${Q}cp ${KERNEL_PATH}/drivers/staging/android/uapi/ion_cvitek.h ${1}/linux/
${Q}cp ${KERNEL_PATH}/include/uapi/linux/dma-buf.h ${1}/linux/
diff --git a/build/boards/chip_list.json b/build/boards/chip_list.json
index 2de7196c1..726472d1e 100644
--- a/build/boards/chip_list.json
+++ b/build/boards/chip_list.json
@@ -1,6 +1,6 @@
{
"cv181x": {
- "cv181x": ["cv181x", "cv1811h", "cv1811c", "cv1810c", "cv1810h", "cv1812cp", "cv1812h", "cv1813h"]
+ "cv181x": ["cv181x", "cv1811h", "cv1811c", "cv1810c", "cv1810h", "cv1812cp", "cv1812h", "cv1813h", "sg2000", "sg2002"]
},
"cv180x": {
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/config.json b/build/boards/cv180x/cv1800b_sophpi_duo_sd/config.json
deleted file mode 100644
index 7062d994a..000000000
--- a/build/boards/cv180x/cv1800b_sophpi_duo_sd/config.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "ddr_cfg_list": [
- "ddr2_1333_x16"
- ],
- "board_information": "C906B + SD + QFN SIP 64MB"
-}
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/cv1800b_sophpi_duo_sd_defconfig b/build/boards/cv180x/cv1800b_sophpi_duo_sd/cv1800b_sophpi_duo_sd_defconfig
deleted file mode 100644
index 3670f038f..000000000
--- a/build/boards/cv180x/cv1800b_sophpi_duo_sd/cv1800b_sophpi_duo_sd_defconfig
+++ /dev/null
@@ -1,40 +0,0 @@
-CONFIG_CHIP_cv1800b=y
-CONFIG_BOARD_sophpi_duo_sd=y
-CONFIG_DDR_CFG_ddr2_1333_x16=y
-CONFIG_ARCH="riscv"
-CONFIG_CROSS_COMPILE="riscv64-unknown-linux-musl-"
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_KERNEL_ENTRY_HACK=y
-CONFIG_KERNEL_ENTRY_HACK_ADDR="0x80200000"
-CONFIG_TOOLCHAIN_MUSL_RISCV64=y
-CONFIG_FLASH_SIZE_SHRINK=y
-CONFIG_NO_FB=y
-CONFIG_NO_TP=y
-CONFIG_DDR_64MB_SIZE=y
-CONFIG_BOOT_IMAGE_SINGLE_DTB=y
-CONFIG_STORAGE_TYPE_sd=y
-CONFIG_SENSOR_TUNING_PARAM_cv180x_src_sms_sc200ai=y
-CONFIG_SENSOR_SMS_SC200AI=y
-CONFIG_SENSOR_GCORE_GC2053=y
-CONFIG_UBOOT_2021_10=y
-CONFIG_KERNEL_SRC_5.10=y
-CONFIG_KERNEL_LZMA=y
-CONFIG_SKIP_RAMDISK=y
-# CONFIG_ROOTFS_OVERLAYFS is not set
-# CONFIG_TARGET_PACKAGE_CVITRACER is not set
-# CONFIG_TARGET_PACKAGE_GDBSERVER is not set
-# CONFIG_TARGET_PACKAGE_LIBCRYPTO is not set
-# CONFIG_TARGET_PACKAGE_LIBZ is not set
-# CONFIG_TARGET_PACKAGE_OTASERVER is not set
-# CONFIG_TARGET_PACKAGE_RSYSLOG is not set
-CONFIG_TARGET_PACKAGE_CRONTABS=y
-# CONFIG_TARGET_PACKAGE_GATORD is not set
-CONFIG_TARGET_PACKAGE_WIFI=y
-CONFIG_TARGET_PACKAGE_DROPBEAR=y
-CONFIG_TARGET_PACKAGE_NTP=y
-CONFIG_ENABLE_FREERTOS=y
-CONFIG_ENABLE_RTOS_DUMP_PRINT=y
-CONFIG_DUMP_PRINT_SZ_IDX=17
-CONFIG_USE_4K_ERASE_SIZE_FOR_JFFS2=y
-CONFIG_USB_OSDRV_CVITEK_GADGET=n
-CONFIG_BUILD_FOR_DEBUG=y
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/dts_riscv/cv1800b_sophpi_duo_sd.dts b/build/boards/cv180x/cv1800b_sophpi_duo_sd/dts_riscv/cv1800b_sophpi_duo_sd.dts
deleted file mode 100644
index 8f66e40d8..000000000
--- a/build/boards/cv180x/cv1800b_sophpi_duo_sd/dts_riscv/cv1800b_sophpi_duo_sd.dts
+++ /dev/null
@@ -1,14 +0,0 @@
-/dts-v1/;
-#include "cv180x_base_riscv.dtsi"
-#include "cv180x_asic_qfn.dtsi"
-#include "cv180x_asic_sd.dtsi"
-#include "cv180x_default_memmap.dtsi"
-
-&mipi_rx{
- snsr-reset = <&portc 8 GPIO_ACTIVE_LOW>, <&portc 8 GPIO_ACTIVE_LOW>, <&portc 8 GPIO_ACTIVE_LOW>;
-};
-
-/ {
-
-};
-
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/linux/cvitek_cv1800b_sophpi_duo_sd_rls_defconfig b/build/boards/cv180x/cv1800b_sophpi_duo_sd/linux/cvitek_cv1800b_sophpi_duo_sd_rls_defconfig
deleted file mode 120000
index b77bc93de..000000000
--- a/build/boards/cv180x/cv1800b_sophpi_duo_sd/linux/cvitek_cv1800b_sophpi_duo_sd_rls_defconfig
+++ /dev/null
@@ -1 +0,0 @@
-../../cv1800b_wdmb_0008a_spinor/u-boot/cvitek_cv1800b_wdmb_0008a_spinor_rls_defconfig
\ No newline at end of file
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/rootfs_script/clean_rootfs.sh b/build/boards/cv180x/cv1800b_sophpi_duo_sd/rootfs_script/clean_rootfs.sh
deleted file mode 100755
index 85bf2408f..000000000
--- a/build/boards/cv180x/cv1800b_sophpi_duo_sd/rootfs_script/clean_rootfs.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-
-SYSTEM_DIR=$1
-rm -rf $SYSTEM_DIR/mnt/system/usr
-rm -rf $SYSTEM_DIR/mnt/system/lib
-
-rm -rf $SYSTEM_DIR/etc/init.d/S01syslogd
-rm -rf $SYSTEM_DIR/etc/init.d/S02klogd
-rm -rf $SYSTEM_DIR/etc/init.d/S02sysctl
-rm -rf $SYSTEM_DIR/etc/init.d/S20urandom
-rm -rf $SYSTEM_DIR/etc/init.d/S40network
-rm -rf $SYSTEM_DIR/etc/init.d/S23ntp
-
-rm -rf $SYSTEM_DIR/bin/ntpd
-rm -rf $SYSTEM_DIR/mnt/cfg/secure.img
-
-#del cv181x_mipi_tx.ko
-rm -rf $SYSTEM_DIR/mnt/system/ko/cv181x_mipi_tx.ko
-sed -i "/cv181x_mipi_tx.ko/d" $SYSTEM_DIR/mnt/system/ko/loadsystemko.sh
-
-if [ $BUILD_FOR_DEBUG != "y" ]
-then
-#del dmesg cmd if CONFIG_PRINTK=n
-#sed -i "/dmesg/d" $SYSTEM_DIR/mnt/system/ko/loadsystemko.sh
-
-#del debugfs node
-sed -i "/debugfs/d" $SYSTEM_DIR/etc/fstab
-fi
-
-du -sh $SYSTEM_DIR/* |sort -rh
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvi_board_init.c b/build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvi_board_init.c
deleted file mode 100644
index 25c95da75..000000000
--- a/build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvi_board_init.c
+++ /dev/null
@@ -1,32 +0,0 @@
-int cvi_board_init(void)
-{
- // sensor i2c1 reset mclk
- PINMUX_CONFIG(PAD_MIPIRX0P, CAM_MCLK0); // MCLK0
- PINMUX_CONFIG(PAD_MIPIRX1P, IIC1_SDA); // I2C 2
- PINMUX_CONFIG(PAD_MIPIRX0N, IIC1_SCL);
- PINMUX_CONFIG(PAD_MIPIRX1N, XGPIOC_8);
-
- // all default gpio
- PINMUX_CONFIG(SPINOR_HOLD_X, XGPIOA_26);
- PINMUX_CONFIG(SPINOR_SCK, XGPIOA_22);
- PINMUX_CONFIG(SPINOR_MOSI, XGPIOA_25);
- PINMUX_CONFIG(SPINOR_WP_X, XGPIOA_27);
- PINMUX_CONFIG(SPINOR_MISO, XGPIOA_23);
- PINMUX_CONFIG(SPINOR_CS_X, XGPIOA_24);
- PINMUX_CONFIG(IIC0_SDA, XGPIOA_29);
- PINMUX_CONFIG(IIC0_SCL, XGPIOA_28);
- // sd1
- PINMUX_CONFIG(SD1_D3, PWR_GPIO_18);
- PINMUX_CONFIG(SD1_D2, PWR_GPIO_19);
- PINMUX_CONFIG(SD1_D1, PWR_GPIO_20);
- PINMUX_CONFIG(SD1_D0, PWR_GPIO_21);
- PINMUX_CONFIG(SD1_CMD, PWR_GPIO_22);
- PINMUX_CONFIG(SD1_CLK, PWR_GPIO_23);
-
- //default to gpio
- PINMUX_CONFIG(PAD_MIPIRX1P, XGPIOC_9);
- PINMUX_CONFIG(PAD_MIPIRX0N, XGPIOC_10);
- PINMUX_CONFIG(USB_VBUS_DET, XGPIOB_6);
- PINMUX_CONFIG(PWR_SEQ2, PWR_GPIO_4);
- return 0;
-}
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvitek_cv1800b_sophpi_duo_sd_defconfig b/build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvitek_cv1800b_sophpi_duo_sd_defconfig
deleted file mode 100644
index 3c1957882..000000000
--- a/build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvitek_cv1800b_sophpi_duo_sd_defconfig
+++ /dev/null
@@ -1,83 +0,0 @@
-CONFIG_RISCV=y
-CONFIG_SYS_MALLOC_F_LEN=0x2000
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_DEFAULT_DEVICE_TREE="cv180x_asic"
-CONFIG_IDENT_STRING="cvitek_cv180x"
-CONFIG_ARCH_RV64I=y
-CONFIG_RISCV_SMODE=y
-CONFIG_TARGET_CVITEK_CV180X=y
-# CONFIG_CVITEK_SPI_FLASH is not set
-CONFIG_FIT=y
-# CONFIG_FIT_PRINT is not set
-# CONFIG_LEGACY_IMAGE_FORMAT is not set
-# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
-CONFIG_BOOTDELAY=1
-CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="run distro_bootcmd"
-CONFIG_HUSH_PARSER=y
-# CONFIG_CMDLINE_EDITING is not set
-# CONFIG_AUTO_COMPLETE is not set
-# CONFIG_SYS_LONGHELP is not set
-CONFIG_SYS_PROMPT="cv180x_c906# "
-# CONFIG_SYS_XTRACE is not set
-# CONFIG_CMD_BDI is not set
-# CONFIG_CMD_CONSOLE is not set
-# CONFIG_CMD_CPU is not set
-# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTI is not set
-# CONFIG_BOOTM_NETBSD is not set
-CONFIG_BOOTM_OPENRTOS=y
-# CONFIG_BOOTM_PLAN9 is not set
-# CONFIG_BOOTM_RTEMS is not set
-# CONFIG_BOOTM_VXWORKS is not set
-# CONFIG_CMD_ELF is not set
-# CONFIG_CMD_FDT is not set
-# CONFIG_CMD_GO is not set
-# CONFIG_CMD_IMI is not set
-# CONFIG_CMD_XIMG is not set
-# CONFIG_CMD_EXPORTENV is not set
-# CONFIG_CMD_IMPORTENV is not set
-# CONFIG_CMD_EDITENV is not set
-# CONFIG_CMD_ENV_EXISTS is not set
-# CONFIG_CMD_CRC32 is not set
-CONFIG_CMD_MEMORY=y
-# CONFIG_CMD_FLASH is not set
-# CONFIG_CMD_LOADB is not set
-# CONFIG_CMD_LOADS is not set
-# CONFIG_CMD_SAVEENV is not set
-CONFIG_CMD_MMC=y
-CONFIG_CMD_PART=y
-CONFIG_CMD_ECHO=y
-# CONFIG_CMD_ITEST is not set
-# CONFIG_CMD_SOURCE is not set
-# CONFIG_CMD_SETEXPR is not set
-# CONFIG_CMD_BOOTP is not set
-# CONFIG_CMD_TFTPBOOT is not set
-# CONFIG_CMD_NFS is not set
-# CONFIG_CMD_BLOCK_CACHE is not set
-# CONFIG_CMD_SLEEP is not set
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
-# CONFIG_ENV_IS_IN_SPI_FLASH is not set
-CONFIG_NET_RANDOM_ETHADDR=y
-CONFIG_MMC=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_SDMA=y
-CONFIG_MMC_SDHCI_CVITEK=y
-CONFIG_MTD=y
-# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
-CONFIG_PHY_CVITEK=y
-CONFIG_PHY_CVITEK_CV182XA=y
-CONFIG_DM_ETH=y
-CONFIG_ETH_DESIGNWARE=y
-CONFIG_SYS_NS16550=y
-CONFIG_SPI=y
-CONFIG_FAT_WRITE=y
-# CONFIG_REGEX is not set
-CONFIG_LZMA=y
-# CONFIG_GZIP is not set
-# CONFIG_EFI_LOADER is not set
-# CONFIG_TOOLS_LIBCRYPTO is not set
-# CONFIG_ENV_SUPPORT is not set
-# CONFIG_ENV_OVERWRITE is not set
-CONFIG_ENV_IS_NOWHERE=y
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvitek_cv1800b_sophpi_duo_sd_rls_defconfig b/build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvitek_cv1800b_sophpi_duo_sd_rls_defconfig
deleted file mode 100644
index 61f2e6492..000000000
--- a/build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvitek_cv1800b_sophpi_duo_sd_rls_defconfig
+++ /dev/null
@@ -1,82 +0,0 @@
-CONFIG_RISCV=y
-CONFIG_SYS_MALLOC_F_LEN=0x2000
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_DEFAULT_DEVICE_TREE="cv180x_asic"
-CONFIG_IDENT_STRING="cvitek_cv180x"
-CONFIG_ARCH_RV64I=y
-CONFIG_RISCV_SMODE=y
-CONFIG_TARGET_CVITEK_CV180X=y
-# CONFIG_CVITEK_SPI_FLASH is not set
-CONFIG_FIT=y
-# CONFIG_FIT_PRINT is not set
-# CONFIG_LEGACY_IMAGE_FORMAT is not set
-# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
-CONFIG_BOOTDELAY=1
-CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="run distro_bootcmd"
-CONFIG_HUSH_PARSER=y
-# CONFIG_CMDLINE_EDITING is not set
-# CONFIG_AUTO_COMPLETE is not set
-# CONFIG_SYS_LONGHELP is not set
-CONFIG_SYS_PROMPT="cv180x_c906# "
-# CONFIG_SYS_XTRACE is not set
-# CONFIG_CMD_BDI is not set
-# CONFIG_CMD_CONSOLE is not set
-# CONFIG_CMD_CPU is not set
-# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTI is not set
-# CONFIG_BOOTM_NETBSD is not set
-CONFIG_BOOTM_OPENRTOS=y
-# CONFIG_BOOTM_PLAN9 is not set
-# CONFIG_BOOTM_RTEMS is not set
-# CONFIG_BOOTM_VXWORKS is not set
-# CONFIG_CMD_ELF is not set
-# CONFIG_CMD_FDT is not set
-# CONFIG_CMD_GO is not set
-# CONFIG_CMD_IMI is not set
-# CONFIG_CMD_XIMG is not set
-# CONFIG_CMD_EXPORTENV is not set
-# CONFIG_CMD_IMPORTENV is not set
-# CONFIG_CMD_EDITENV is not set
-# CONFIG_CMD_ENV_EXISTS is not set
-# CONFIG_CMD_CRC32 is not set
-CONFIG_CMD_MEMORY=y
-# CONFIG_CMD_FLASH is not set
-# CONFIG_CMD_LOADB is not set
-# CONFIG_CMD_LOADS is not set
-# CONFIG_CMD_SAVEENV is not set
-CONFIG_CMD_MMC=y
-CONFIG_CMD_PART=y
-CONFIG_CMD_ECHO=y
-# CONFIG_CMD_ITEST is not set
-# CONFIG_CMD_SOURCE is not set
-# CONFIG_CMD_SETEXPR is not set
-# CONFIG_CMD_BOOTP is not set
-# CONFIG_CMD_TFTPBOOT is not set
-# CONFIG_CMD_NFS is not set
-# CONFIG_CMD_BLOCK_CACHE is not set
-# CONFIG_CMD_SLEEP is not set
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
-# CONFIG_ENV_IS_IN_SPI_FLASH is not set
-CONFIG_NET_RANDOM_ETHADDR=y
-CONFIG_MMC=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_SDMA=y
-CONFIG_MMC_SDHCI_CVITEK=y
-CONFIG_MTD=y
-# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
-CONFIG_PHY_CVITEK_CV182XA=y
-CONFIG_DM_ETH=y
-CONFIG_ETH_DESIGNWARE=y
-CONFIG_SYS_NS16550=y
-CONFIG_SPI=y
-CONFIG_FAT_WRITE=y
-# CONFIG_REGEX is not set
-CONFIG_LZMA=y
-# CONFIG_GZIP is not set
-# CONFIG_EFI_LOADER is not set
-# CONFIG_TOOLS_LIBCRYPTO is not set
-# CONFIG_ENV_SUPPORT is not set
-# CONFIG_ENV_OVERWRITE is not set
-CONFIG_ENV_IS_NOWHERE=y
diff --git a/build/boards/cv180x/cv1801b_wevb_0008a_spinor/linux/cvitek_cv1801b_wevb_0008a_spinor_defconfig b/build/boards/cv180x/cv1801b_wevb_0008a_spinor/linux/cvitek_cv1801b_wevb_0008a_spinor_defconfig
index 3744b0b21..d3434852b 100644
--- a/build/boards/cv180x/cv1801b_wevb_0008a_spinor/linux/cvitek_cv1801b_wevb_0008a_spinor_defconfig
+++ b/build/boards/cv180x/cv1801b_wevb_0008a_spinor/linux/cvitek_cv1801b_wevb_0008a_spinor_defconfig
@@ -10,8 +10,14 @@ CONFIG_LOG_BUF_SHIFT=15
CONFIG_BLK_DEV_INITRD=y
# CONFIG_SYSFS_SYSCALL is not set
# CONFIG_FHANDLE is not set
+# CONFIG_BUG is not set
# CONFIG_BASE_FULL is not set
+# CONFIG_EPOLL is not set
+# CONFIG_SIGNALFD is not set
+# CONFIG_TIMERFD is not set
# CONFIG_AIO is not set
+# CONFIG_IO_URING is not set
+# CONFIG_ADVISE_SYSCALLS is not set
CONFIG_EMBEDDED=y
# CONFIG_SLUB_DEBUG is not set
CONFIG_FORCE_MAX_ZONEORDER=10
diff --git a/build/boards/cv180x/cv1801c_wdmb_0009a_spinor/linux/cvitek_cv1801c_wdmb_0009a_spinor_defconfig b/build/boards/cv180x/cv1801c_wdmb_0009a_spinor/linux/cvitek_cv1801c_wdmb_0009a_spinor_defconfig
index 4bea98264..fa1fc6da3 100644
--- a/build/boards/cv180x/cv1801c_wdmb_0009a_spinor/linux/cvitek_cv1801c_wdmb_0009a_spinor_defconfig
+++ b/build/boards/cv180x/cv1801c_wdmb_0009a_spinor/linux/cvitek_cv1801c_wdmb_0009a_spinor_defconfig
@@ -14,6 +14,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_BUG is not set
# CONFIG_BASE_FULL is not set
# CONFIG_AIO is not set
+# CONFIG_KALLSYMS is not set
CONFIG_EMBEDDED=y
# CONFIG_SLUB_DEBUG is not set
CONFIG_FORCE_MAX_ZONEORDER=10
diff --git a/build/boards/cv180x/cv1801c_wevb_0009a_spinand/linux/cvitek_cv1801c_wevb_0009a_spinand_defconfig b/build/boards/cv180x/cv1801c_wevb_0009a_spinand/linux/cvitek_cv1801c_wevb_0009a_spinand_defconfig
index b55a3ade2..0e7ff533c 100644
--- a/build/boards/cv180x/cv1801c_wevb_0009a_spinand/linux/cvitek_cv1801c_wevb_0009a_spinand_defconfig
+++ b/build/boards/cv180x/cv1801c_wevb_0009a_spinand/linux/cvitek_cv1801c_wevb_0009a_spinand_defconfig
@@ -13,6 +13,7 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_BUG is not set
# CONFIG_BASE_FULL is not set
# CONFIG_AIO is not set
+# CONFIG_KALLSYMS is not set
CONFIG_EMBEDDED=y
# CONFIG_SLUB_DEBUG is not set
CONFIG_FORCE_MAX_ZONEORDER=10
diff --git a/build/boards/cv180x/cv1801c_wevb_0009a_spinor/linux/cvitek_cv1801c_wevb_0009a_spinor_defconfig b/build/boards/cv180x/cv1801c_wevb_0009a_spinor/linux/cvitek_cv1801c_wevb_0009a_spinor_defconfig
index 283e4e3f4..0fd12fd32 100644
--- a/build/boards/cv180x/cv1801c_wevb_0009a_spinor/linux/cvitek_cv1801c_wevb_0009a_spinor_defconfig
+++ b/build/boards/cv180x/cv1801c_wevb_0009a_spinor/linux/cvitek_cv1801c_wevb_0009a_spinor_defconfig
@@ -13,6 +13,7 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_BUG is not set
# CONFIG_BASE_FULL is not set
# CONFIG_AIO is not set
+# CONFIG_KALLSYMS is not set
CONFIG_EMBEDDED=y
# CONFIG_SLUB_DEBUG is not set
CONFIG_FORCE_MAX_ZONEORDER=10
diff --git a/build/boards/cv181x/cv1810c_wdmb_0006a_spinor/partition/partition_spinor.xml b/build/boards/cv181x/cv1810c_wdmb_0006a_spinor/partition/partition_spinor.xml
index a9f9e47fc..ee588d23a 100644
--- a/build/boards/cv181x/cv1810c_wdmb_0006a_spinor/partition/partition_spinor.xml
+++ b/build/boards/cv181x/cv1810c_wdmb_0006a_spinor/partition/partition_spinor.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/build/boards/cv181x/cv1810c_wdmb_0006a_spinor/partition/partition_spinor_rls.xml b/build/boards/cv181x/cv1810c_wdmb_0006a_spinor/partition/partition_spinor_rls.xml
index 16ed4ca84..bc6f87566 100644
--- a/build/boards/cv181x/cv1810c_wdmb_0006a_spinor/partition/partition_spinor_rls.xml
+++ b/build/boards/cv181x/cv1810c_wdmb_0006a_spinor/partition/partition_spinor_rls.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/build/boards/cv181x/cv1810h_wevb_0007a_spinor/partition/partition_spinor.xml b/build/boards/cv181x/cv1810h_wevb_0007a_spinor/partition/partition_spinor.xml
index a9f9e47fc..ee588d23a 100644
--- a/build/boards/cv181x/cv1810h_wevb_0007a_spinor/partition/partition_spinor.xml
+++ b/build/boards/cv181x/cv1810h_wevb_0007a_spinor/partition/partition_spinor.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/build/boards/cv181x/cv1810h_wevb_0007a_spinor/partition/partition_spinor_rls.xml b/build/boards/cv181x/cv1810h_wevb_0007a_spinor/partition/partition_spinor_rls.xml
index 16ed4ca84..bc6f87566 100644
--- a/build/boards/cv181x/cv1810h_wevb_0007a_spinor/partition/partition_spinor_rls.xml
+++ b/build/boards/cv181x/cv1810h_wevb_0007a_spinor/partition/partition_spinor_rls.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/build/boards/cv181x/cv1811h_wevb_0007a_spinand/cv1811h_wevb_0007a_spinand_defconfig b/build/boards/cv181x/cv1811h_wevb_0007a_spinand/cv1811h_wevb_0007a_spinand_defconfig
index 756e7dfa2..5700ec993 100644
--- a/build/boards/cv181x/cv1811h_wevb_0007a_spinand/cv1811h_wevb_0007a_spinand_defconfig
+++ b/build/boards/cv181x/cv1811h_wevb_0007a_spinand/cv1811h_wevb_0007a_spinand_defconfig
@@ -2,11 +2,11 @@ CONFIG_CHIP_cv1811h=y
CONFIG_BOARD_wevb_0007a_spinand=y
CONFIG_DDR_CFG_ddr3_1866_x16=y
CONFIG_ARCH="riscv"
-CONFIG_CROSS_COMPILE="riscv64-unknown-linux-gnu-"
+CONFIG_CROSS_COMPILE="riscv64-unknown-linux-musl-"
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_KERNEL_ENTRY_HACK=y
CONFIG_KERNEL_ENTRY_HACK_ADDR="0x80200000"
-CONFIG_TOOLCHAIN_GLIBC_RISCV64=y
+CONFIG_TOOLCHAIN_MUSL_RISCV64=y
CONFIG_FLASH_SIZE_SHRINK=y
CONFIG_BOOT_IMAGE_SINGLE_DTB=y
CONFIG_STORAGE_TYPE_spinand=y
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_emmc/dts_riscv/cv1812h_wevb_0007a_emmc.dts b/build/boards/cv181x/cv1812h_wevb_0007a_emmc/dts_riscv/cv1812h_wevb_0007a_emmc.dts
index 58d754bd9..199f63ee4 100644
--- a/build/boards/cv181x/cv1812h_wevb_0007a_emmc/dts_riscv/cv1812h_wevb_0007a_emmc.dts
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_emmc/dts_riscv/cv1812h_wevb_0007a_emmc.dts
@@ -4,7 +4,8 @@
#include "cv181x_asic_emmc.dtsi"
#include "cv181x_default_memmap.dtsi"
-/ {
-
+&vo {
+ reset-gpio = <&porte 13 GPIO_ACTIVE_LOW>;
+ pwm-gpio = <&porta 30 GPIO_ACTIVE_HIGH>;
+ power-ct-gpio = <&portb 3 GPIO_ACTIVE_HIGH>;
};
-
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_emmc/linux/cv1812h_wevb_0007a_emmc_defconfig b/build/boards/cv181x/cv1812h_wevb_0007a_emmc/linux/cv1812h_wevb_0007a_emmc_defconfig
new file mode 100644
index 000000000..2b0826974
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_emmc/linux/cv1812h_wevb_0007a_emmc_defconfig
@@ -0,0 +1,465 @@
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=15
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_BASE_FULL is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+# CONFIG_SLUB_DEBUG is not set
+CONFIG_FORCE_MAX_ZONEORDER=10
+CONFIG_ARCH_CVITEK=y
+CONFIG_SOC_THEAD=y
+# CONFIG_RISCV_SWIOTLB is not set
+CONFIG_VECTOR=y
+CONFIG_VECTOR_0_7=y
+# CONFIG_COMPAT is not set
+CONFIG_ARCH_CVITEK_CHIP="mars"
+CONFIG_ARCH_CV181X_ASIC=y
+CONFIG_POWER_RESET=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_STRICT_KERNEL_RWX=n
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_MQ_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_KYBER is not set
+# CONFIG_COREDUMP is not set
+CONFIG_CMA=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
+CONFIG_CFG80211=m
+CONFIG_RFKILL=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_NETDEVICES=y
+# CONFIG_NET_CORE is not set
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_STMMAC_ETH=y
+# CONFIG_DWMAC_GENERIC is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_CVITEK_PHY=y
+CONFIG_CVITEK_PHY_UAPS=y
+# CONFIG_USB_NET_DRIVERS is not set
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_RTL8188FU is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+CONFIG_INPUT=y
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=5
+CONFIG_SERIAL_8250_RUNTIME_UARTS=5
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PINCTRL=y
+CONFIG_CVITEK_PINCTRL_CV1835=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_WATCHDOG=y
+CONFIG_MEDIA_SUPPORT=n
+CONFIG_VIDEO_V4L2_SUBDEV_API=n
+CONFIG_V4L_PLATFORM_DRIVERS=n
+CONFIG_V4L_MEM2MEM_DRIVERS=n
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=n
+CONFIG_VIDEO_CVITEK=m
+CONFIG_VIDEO_CVITEK_CIF=m
+CONFIG_VIDEO_CVITEK_SNS_I2C=m
+CONFIG_VIDEO_CVITEK_MIPI_TX=m
+#
+# Media SPI Adapters
+#
+# CONFIG_CXD2880_SPI_DRV is not set
+# end of Media SPI Adapters
+#
+# Customize TV tuners
+#
+# CONFIG_MEDIA_TUNER_SIMPLE is not set
+# CONFIG_MEDIA_TUNER_TDA18250 is not set
+# CONFIG_MEDIA_TUNER_TDA8290 is not set
+# CONFIG_MEDIA_TUNER_TDA827X is not set
+# CONFIG_MEDIA_TUNER_TDA18271 is not set
+# CONFIG_MEDIA_TUNER_TDA9887 is not set
+# CONFIG_MEDIA_TUNER_TEA5761 is not set
+# CONFIG_MEDIA_TUNER_TEA5767 is not set
+# CONFIG_MEDIA_TUNER_MSI001 is not set
+# CONFIG_MEDIA_TUNER_MT20XX is not set
+# CONFIG_MEDIA_TUNER_MT2060 is not set
+# CONFIG_MEDIA_TUNER_MT2063 is not set
+# CONFIG_MEDIA_TUNER_MT2266 is not set
+# CONFIG_MEDIA_TUNER_MT2131 is not set
+# CONFIG_MEDIA_TUNER_QT1010 is not set
+# CONFIG_MEDIA_TUNER_XC2028 is not set
+# CONFIG_MEDIA_TUNER_XC5000 is not set
+# CONFIG_MEDIA_TUNER_XC4000 is not set
+# CONFIG_MEDIA_TUNER_MXL5005S is not set
+# CONFIG_MEDIA_TUNER_MXL5007T is not set
+# CONFIG_MEDIA_TUNER_MC44S803 is not set
+# CONFIG_MEDIA_TUNER_MAX2165 is not set
+# CONFIG_MEDIA_TUNER_TDA18218 is not set
+# CONFIG_MEDIA_TUNER_FC0011 is not set
+# CONFIG_MEDIA_TUNER_FC0012 is not set
+# CONFIG_MEDIA_TUNER_FC0013 is not set
+# CONFIG_MEDIA_TUNER_TDA18212 is not set
+# CONFIG_MEDIA_TUNER_E4000 is not set
+# CONFIG_MEDIA_TUNER_FC2580 is not set
+# CONFIG_MEDIA_TUNER_M88RS6000T is not set
+# CONFIG_MEDIA_TUNER_TUA9001 is not set
+# CONFIG_MEDIA_TUNER_SI2157 is not set
+# CONFIG_MEDIA_TUNER_IT913X is not set
+# CONFIG_MEDIA_TUNER_R820T is not set
+# CONFIG_MEDIA_TUNER_MXL301RF is not set
+# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set
+# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set
+# end of Customize TV tuners
+#
+# Customise DVB Frontends
+#
+
+#
+# Multistandard (satellite) frontends
+#
+# CONFIG_DVB_STB0899 is not set
+# CONFIG_DVB_STB6100 is not set
+# CONFIG_DVB_STV090x is not set
+# CONFIG_DVB_STV0910 is not set
+# CONFIG_DVB_STV6110x is not set
+# CONFIG_DVB_STV6111 is not set
+# CONFIG_DVB_MXL5XX is not set
+# CONFIG_DVB_M88DS3103 is not set
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+# CONFIG_DVB_DRXK is not set
+# CONFIG_DVB_TDA18271C2DD is not set
+# CONFIG_DVB_SI2165 is not set
+# CONFIG_DVB_MN88472 is not set
+# CONFIG_DVB_MN88473 is not set
+
+#
+# DVB-S (satellite) frontends
+#
+# CONFIG_DVB_CX24110 is not set
+# CONFIG_DVB_CX24123 is not set
+# CONFIG_DVB_MT312 is not set
+# CONFIG_DVB_ZL10036 is not set
+# CONFIG_DVB_ZL10039 is not set
+# CONFIG_DVB_S5H1420 is not set
+# CONFIG_DVB_STV0288 is not set
+# CONFIG_DVB_STB6000 is not set
+# CONFIG_DVB_STV0299 is not set
+# CONFIG_DVB_STV6110 is not set
+# CONFIG_DVB_STV0900 is not set
+# CONFIG_DVB_TDA8083 is not set
+# CONFIG_DVB_TDA10086 is not set
+# CONFIG_DVB_TDA8261 is not set
+# CONFIG_DVB_VES1X93 is not set
+# CONFIG_DVB_TUNER_ITD1000 is not set
+# CONFIG_DVB_TUNER_CX24113 is not set
+# CONFIG_DVB_TDA826X is not set
+# CONFIG_DVB_TUA6100 is not set
+# CONFIG_DVB_CX24116 is not set
+# CONFIG_DVB_CX24117 is not set
+# CONFIG_DVB_CX24120 is not set
+# CONFIG_DVB_SI21XX is not set
+# CONFIG_DVB_TS2020 is not set
+# CONFIG_DVB_DS3000 is not set
+# CONFIG_DVB_MB86A16 is not set
+# CONFIG_DVB_TDA10071 is not set
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+# CONFIG_DVB_S5H1432 is not set
+# CONFIG_DVB_DRXD is not set
+# CONFIG_DVB_L64781 is not set
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_ZL10353 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+# CONFIG_DVB_DIB7000M is not set
+# CONFIG_DVB_DIB7000P is not set
+# CONFIG_DVB_DIB9000 is not set
+# CONFIG_DVB_TDA10048 is not set
+# CONFIG_DVB_AF9013 is not set
+# CONFIG_DVB_EC100 is not set
+# CONFIG_DVB_STV0367 is not set
+# CONFIG_DVB_CXD2820R is not set
+# CONFIG_DVB_CXD2841ER is not set
+# CONFIG_DVB_RTL2830 is not set
+# CONFIG_DVB_RTL2832 is not set
+# CONFIG_DVB_RTL2832_SDR is not set
+# CONFIG_DVB_SI2168 is not set
+# CONFIG_DVB_ZD1301_DEMOD is not set
+# CONFIG_DVB_CXD2880 is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_VES1820 is not set
+# CONFIG_DVB_TDA10021 is not set
+# CONFIG_DVB_TDA10023 is not set
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+# CONFIG_DVB_NXT200X is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+# CONFIG_DVB_BCM3510 is not set
+# CONFIG_DVB_LGDT330X is not set
+# CONFIG_DVB_LGDT3305 is not set
+# CONFIG_DVB_LGDT3306A is not set
+# CONFIG_DVB_LG2160 is not set
+# CONFIG_DVB_S5H1409 is not set
+# CONFIG_DVB_AU8522_DTV is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_S5H1411 is not set
+
+#
+# ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_S921 is not set
+# CONFIG_DVB_DIB8000 is not set
+# CONFIG_DVB_MB86A20S is not set
+
+#
+# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_TC90522 is not set
+# CONFIG_DVB_MN88443X is not set
+
+#
+# Digital terrestrial only tuners/PLL
+#
+# CONFIG_DVB_PLL is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+#
+# SEC control devices for DVB-S
+#
+# CONFIG_DVB_DRX39XYJ is not set
+# CONFIG_DVB_LNBH25 is not set
+# CONFIG_DVB_LNBH29 is not set
+# CONFIG_DVB_LNBP21 is not set
+# CONFIG_DVB_LNBP22 is not set
+# CONFIG_DVB_ISL6405 is not set
+# CONFIG_DVB_ISL6421 is not set
+# CONFIG_DVB_ISL6423 is not set
+# CONFIG_DVB_A8293 is not set
+# CONFIG_DVB_LGS8GL5 is not set
+# CONFIG_DVB_LGS8GXX is not set
+# CONFIG_DVB_ATBM8830 is not set
+# CONFIG_DVB_TDA665x is not set
+# CONFIG_DVB_IX2505V is not set
+# CONFIG_DVB_M88RS2000 is not set
+# CONFIG_DVB_AF9033 is not set
+# CONFIG_DVB_HORUS3A is not set
+# CONFIG_DVB_ASCOT2E is not set
+# CONFIG_DVB_HELENE is not set
+#
+# Common Interface (EN50221) controller drivers
+#
+# CONFIG_DVB_CXD2099 is not set
+# CONFIG_DVB_SP2 is not set
+# end of Customise DVB Frontends
+#
+# Digital TV options
+#
+# CONFIG_DVB_NET is not set
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+# end of Digital TV options
+
+CONFIG_FB=y
+CONFIG_FB_CVITEK=m
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_PROC_FS is not set
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=1
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_CV182XA_CV182XAADC=y
+CONFIG_SND_SOC_CV182XA_CV182XADAC=y
+CONFIG_SND_CV1835_I2S=y
+CONFIG_SND_SOC_CV182XAADC=y
+CONFIG_SND_SOC_CV182XADAC=y
+CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
+CONFIG_CV1835_I2S_SUBSYS=y
+CONFIG_USB=m
+CONFIG_USB_DWC2=m
+CONFIG_USB_GADGET=m
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_CVI=y
+CONFIG_BLK_CMDLINE_PARSER=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_EFI_PARTITION=n
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_EXT4_FS=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC_CVITEK=y
+CONFIG_RTC_CLASS=y
+# CONFIG_VIRTIO_MENU is not set
+CONFIG_STAGING=y
+CONFIG_ION=y
+CONFIG_ION_SYSTEM_HEAP=y
+CONFIG_ION_CARVEOUT_HEAP=y
+CONFIG_ION_CMA_HEAP=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_CV1835_SYSDMA_REMAP=y
+CONFIG_PWM=y
+CONFIG_SIFIVE_PLIC=y
+CONFIG_ANDROID=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_ZLIB is not set
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=0
+CONFIG_PRINTK_TIME=y
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO=n
+CONFIG_DEBUG_INFO_DWARF4=n
+CONFIG_GDB_SCRIPTS=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_DEBUG_FS=y
+CONFIG_BLK_DEV_INITRD=n
+CONFIG_KALLSYMS=y
+CONFIG_FRAME_POINTER=n
+CONFIG_DEBUG_MISC=n
+CONFIG_RCU_TRACE=n
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=y
+CONFIG_USB_U_SERIAL=y
+CONFIG_USB_U_ETHER=y
+CONFIG_USB_U_AUDIO=y
+CONFIG_USB_F_SERIAL=y
+CONFIG_USB_F_ECM=y
+CONFIG_USB_F_EEM=y
+CONFIG_USB_F_RNDIS=y
+CONFIG_USB_F_MASS_STORAGE=y
+CONFIG_USB_F_FS=y
+CONFIG_USB_F_UAC1=y
+CONFIG_USB_F_UVC=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+CONFIG_BUG=n
+CONFIG_IO_URING=n
+CONFIG_ADVISE_SYSCALLS=n
+CONFIG_SIGNALFD=n
+CONFIG_TIMERFD=n
+CONFIG_EPOLL=n
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_emmc/u-boot/cv1812h_wevb_0007a_emmc_defconfig b/build/boards/cv181x/cv1812h_wevb_0007a_emmc/u-boot/cv1812h_wevb_0007a_emmc_defconfig
new file mode 100644
index 000000000..e33110df0
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_emmc/u-boot/cv1812h_wevb_0007a_emmc_defconfig
@@ -0,0 +1,43 @@
+CONFIG_RISCV=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="cv181x_asic"
+CONFIG_IDENT_STRING=" cvitek_cv181x"
+CONFIG_ARCH_RV64I=y
+CONFIG_RISCV_SMODE=y
+CONFIG_TARGET_CVITEK_CV181X=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_BOOTDELAY=1
+CONFIG_SYS_PROMPT="cv181x_c906# "
+# CONFIG_CMD_CONSOLE is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_CRC32 is not set
+# CONFIG_CMD_LZMADEC is not set
+# CONFIG_CMD_UNLZ4 is not set
+# CONFIG_CMD_UNZIP is not set
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_MMC=y
+# CONFIG_CMD_ITEST is not set
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_CVI_SD_UPDATE=y
+# CONFIG_ISO_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_CVITEK=y
+CONFIG_MTD=y
+# CONFIG_PHY_SMSC is not set
+CONFIG_DM_ETH=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_PHY_CVITEK=y
+CONFIG_SYS_NS16550=y
+CONFIG_SPI=y
+CONFIG_LZ4=y
+CONFIG_LZMA=y
+# CONFIG_TOOLS_LIBCRYPTO is not set
+CONFIG_ENV_IS_IN_MMC=y
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinand/linux/cv1812h_wevb_0007a_spinand_defconfig b/build/boards/cv181x/cv1812h_wevb_0007a_spinand/linux/cv1812h_wevb_0007a_spinand_defconfig
new file mode 100644
index 000000000..07f751007
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinand/linux/cv1812h_wevb_0007a_spinand_defconfig
@@ -0,0 +1,489 @@
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=15
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_BASE_FULL is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+# CONFIG_SLUB_DEBUG is not set
+CONFIG_FORCE_MAX_ZONEORDER=10
+CONFIG_ARCH_CVITEK=y
+CONFIG_SOC_THEAD=y
+# CONFIG_RISCV_SWIOTLB is not set
+CONFIG_VECTOR=y
+CONFIG_VECTOR_0_7=y
+# CONFIG_COMPAT is not set
+CONFIG_ARCH_CVITEK_CHIP="mars"
+CONFIG_ARCH_CV181X_ASIC=y
+CONFIG_POWER_RESET=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_STRICT_KERNEL_RWX=n
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_MQ_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_KYBER is not set
+# CONFIG_COREDUMP is not set
+CONFIG_CMA=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
+CONFIG_CFG80211=m
+CONFIG_RFKILL=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_MTD_NAND_PLATFORM=y
+CONFIG_MTD_NAND_CVSNFC=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_SPI_CVI_SPIF=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_NETDEVICES=y
+# CONFIG_NET_CORE is not set
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_STMMAC_ETH=y
+# CONFIG_DWMAC_GENERIC is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_CVITEK_PHY=y
+CONFIG_CVITEK_PHY_UAPS=y
+# CONFIG_USB_NET_DRIVERS is not set
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_RTL8188FU is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+CONFIG_INPUT=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_EVDEV=y
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=5
+CONFIG_SERIAL_8250_RUNTIME_UARTS=5
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_SPI=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PINCTRL=y
+CONFIG_CVITEK_PINCTRL_CV1835=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_WATCHDOG=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=y
+CONFIG_VIDEO_CVITEK=m
+CONFIG_VIDEO_CVITEK_CIF=m
+CONFIG_VIDEO_CVITEK_SNS_I2C=m
+CONFIG_VIDEO_CVITEK_MIPI_TX=m
+#
+# Media SPI Adapters
+#
+# CONFIG_CXD2880_SPI_DRV is not set
+# end of Media SPI Adapters
+#
+# Customize TV tuners
+#
+# CONFIG_MEDIA_TUNER_SIMPLE is not set
+# CONFIG_MEDIA_TUNER_TDA18250 is not set
+# CONFIG_MEDIA_TUNER_TDA8290 is not set
+# CONFIG_MEDIA_TUNER_TDA827X is not set
+# CONFIG_MEDIA_TUNER_TDA18271 is not set
+# CONFIG_MEDIA_TUNER_TDA9887 is not set
+# CONFIG_MEDIA_TUNER_TEA5761 is not set
+# CONFIG_MEDIA_TUNER_TEA5767 is not set
+# CONFIG_MEDIA_TUNER_MSI001 is not set
+# CONFIG_MEDIA_TUNER_MT20XX is not set
+# CONFIG_MEDIA_TUNER_MT2060 is not set
+# CONFIG_MEDIA_TUNER_MT2063 is not set
+# CONFIG_MEDIA_TUNER_MT2266 is not set
+# CONFIG_MEDIA_TUNER_MT2131 is not set
+# CONFIG_MEDIA_TUNER_QT1010 is not set
+# CONFIG_MEDIA_TUNER_XC2028 is not set
+# CONFIG_MEDIA_TUNER_XC5000 is not set
+# CONFIG_MEDIA_TUNER_XC4000 is not set
+# CONFIG_MEDIA_TUNER_MXL5005S is not set
+# CONFIG_MEDIA_TUNER_MXL5007T is not set
+# CONFIG_MEDIA_TUNER_MC44S803 is not set
+# CONFIG_MEDIA_TUNER_MAX2165 is not set
+# CONFIG_MEDIA_TUNER_TDA18218 is not set
+# CONFIG_MEDIA_TUNER_FC0011 is not set
+# CONFIG_MEDIA_TUNER_FC0012 is not set
+# CONFIG_MEDIA_TUNER_FC0013 is not set
+# CONFIG_MEDIA_TUNER_TDA18212 is not set
+# CONFIG_MEDIA_TUNER_E4000 is not set
+# CONFIG_MEDIA_TUNER_FC2580 is not set
+# CONFIG_MEDIA_TUNER_M88RS6000T is not set
+# CONFIG_MEDIA_TUNER_TUA9001 is not set
+# CONFIG_MEDIA_TUNER_SI2157 is not set
+# CONFIG_MEDIA_TUNER_IT913X is not set
+# CONFIG_MEDIA_TUNER_R820T is not set
+# CONFIG_MEDIA_TUNER_MXL301RF is not set
+# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set
+# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set
+# end of Customize TV tuners
+#
+# Customise DVB Frontends
+#
+
+#
+# Multistandard (satellite) frontends
+#
+# CONFIG_DVB_STB0899 is not set
+# CONFIG_DVB_STB6100 is not set
+# CONFIG_DVB_STV090x is not set
+# CONFIG_DVB_STV0910 is not set
+# CONFIG_DVB_STV6110x is not set
+# CONFIG_DVB_STV6111 is not set
+# CONFIG_DVB_MXL5XX is not set
+# CONFIG_DVB_M88DS3103 is not set
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+# CONFIG_DVB_DRXK is not set
+# CONFIG_DVB_TDA18271C2DD is not set
+# CONFIG_DVB_SI2165 is not set
+# CONFIG_DVB_MN88472 is not set
+# CONFIG_DVB_MN88473 is not set
+
+#
+# DVB-S (satellite) frontends
+#
+# CONFIG_DVB_CX24110 is not set
+# CONFIG_DVB_CX24123 is not set
+# CONFIG_DVB_MT312 is not set
+# CONFIG_DVB_ZL10036 is not set
+# CONFIG_DVB_ZL10039 is not set
+# CONFIG_DVB_S5H1420 is not set
+# CONFIG_DVB_STV0288 is not set
+# CONFIG_DVB_STB6000 is not set
+# CONFIG_DVB_STV0299 is not set
+# CONFIG_DVB_STV6110 is not set
+# CONFIG_DVB_STV0900 is not set
+# CONFIG_DVB_TDA8083 is not set
+# CONFIG_DVB_TDA10086 is not set
+# CONFIG_DVB_TDA8261 is not set
+# CONFIG_DVB_VES1X93 is not set
+# CONFIG_DVB_TUNER_ITD1000 is not set
+# CONFIG_DVB_TUNER_CX24113 is not set
+# CONFIG_DVB_TDA826X is not set
+# CONFIG_DVB_TUA6100 is not set
+# CONFIG_DVB_CX24116 is not set
+# CONFIG_DVB_CX24117 is not set
+# CONFIG_DVB_CX24120 is not set
+# CONFIG_DVB_SI21XX is not set
+# CONFIG_DVB_TS2020 is not set
+# CONFIG_DVB_DS3000 is not set
+# CONFIG_DVB_MB86A16 is not set
+# CONFIG_DVB_TDA10071 is not set
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+# CONFIG_DVB_S5H1432 is not set
+# CONFIG_DVB_DRXD is not set
+# CONFIG_DVB_L64781 is not set
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_ZL10353 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+# CONFIG_DVB_DIB7000M is not set
+# CONFIG_DVB_DIB7000P is not set
+# CONFIG_DVB_DIB9000 is not set
+# CONFIG_DVB_TDA10048 is not set
+# CONFIG_DVB_AF9013 is not set
+# CONFIG_DVB_EC100 is not set
+# CONFIG_DVB_STV0367 is not set
+# CONFIG_DVB_CXD2820R is not set
+# CONFIG_DVB_CXD2841ER is not set
+# CONFIG_DVB_RTL2830 is not set
+# CONFIG_DVB_RTL2832 is not set
+# CONFIG_DVB_RTL2832_SDR is not set
+# CONFIG_DVB_SI2168 is not set
+# CONFIG_DVB_ZD1301_DEMOD is not set
+# CONFIG_DVB_CXD2880 is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_VES1820 is not set
+# CONFIG_DVB_TDA10021 is not set
+# CONFIG_DVB_TDA10023 is not set
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+# CONFIG_DVB_NXT200X is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+# CONFIG_DVB_BCM3510 is not set
+# CONFIG_DVB_LGDT330X is not set
+# CONFIG_DVB_LGDT3305 is not set
+# CONFIG_DVB_LGDT3306A is not set
+# CONFIG_DVB_LG2160 is not set
+# CONFIG_DVB_S5H1409 is not set
+# CONFIG_DVB_AU8522_DTV is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_S5H1411 is not set
+
+#
+# ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_S921 is not set
+# CONFIG_DVB_DIB8000 is not set
+# CONFIG_DVB_MB86A20S is not set
+
+#
+# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_TC90522 is not set
+# CONFIG_DVB_MN88443X is not set
+
+#
+# Digital terrestrial only tuners/PLL
+#
+# CONFIG_DVB_PLL is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+#
+# SEC control devices for DVB-S
+#
+# CONFIG_DVB_DRX39XYJ is not set
+# CONFIG_DVB_LNBH25 is not set
+# CONFIG_DVB_LNBH29 is not set
+# CONFIG_DVB_LNBP21 is not set
+# CONFIG_DVB_LNBP22 is not set
+# CONFIG_DVB_ISL6405 is not set
+# CONFIG_DVB_ISL6421 is not set
+# CONFIG_DVB_ISL6423 is not set
+# CONFIG_DVB_A8293 is not set
+# CONFIG_DVB_LGS8GL5 is not set
+# CONFIG_DVB_LGS8GXX is not set
+# CONFIG_DVB_ATBM8830 is not set
+# CONFIG_DVB_TDA665x is not set
+# CONFIG_DVB_IX2505V is not set
+# CONFIG_DVB_M88RS2000 is not set
+# CONFIG_DVB_AF9033 is not set
+# CONFIG_DVB_HORUS3A is not set
+# CONFIG_DVB_ASCOT2E is not set
+# CONFIG_DVB_HELENE is not set
+#
+# Common Interface (EN50221) controller drivers
+#
+# CONFIG_DVB_CXD2099 is not set
+# CONFIG_DVB_SP2 is not set
+# end of Customise DVB Frontends
+#
+# Digital TV options
+#
+# CONFIG_DVB_NET is not set
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+# end of Digital TV options
+
+CONFIG_FB=y
+CONFIG_FB_CVITEK=m
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_PROC_FS is not set
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=1
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_CV182XA_CV182XAADC=y
+CONFIG_SND_SOC_CV182XA_CV182XADAC=y
+CONFIG_SND_CV1835_I2S=y
+CONFIG_SND_SOC_CV182XAADC=y
+CONFIG_SND_SOC_CV182XADAC=y
+CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
+CONFIG_CV1835_I2S_SUBSYS=y
+CONFIG_USB=y
+CONFIG_USB_DWC2=m
+CONFIG_USB_GADGET=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_CVI=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC_CVITEK=y
+CONFIG_RTC_CLASS=y
+# CONFIG_VIRTIO_MENU is not set
+CONFIG_STAGING=y
+CONFIG_ION=y
+CONFIG_ION_SYSTEM_HEAP=y
+CONFIG_ION_CARVEOUT_HEAP=y
+CONFIG_ION_CMA_HEAP=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_CV1835_SYSDMA_REMAP=y
+CONFIG_PWM=y
+CONFIG_SIFIVE_PLIC=y
+CONFIG_ANDROID=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_VFAT_FS=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_WBUF_VERIFY=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_ZLIB is not set
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=0
+CONFIG_PRINTK_TIME=y
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO=n
+CONFIG_DEBUG_INFO_DWARF4=n
+CONFIG_GDB_SCRIPTS=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_DEBUG_FS=y
+CONFIG_BLK_DEV_INITRD=n
+CONFIG_KALLSYMS=y
+CONFIG_FRAME_POINTER=n
+CONFIG_DEBUG_MISC=n
+CONFIG_RCU_TRACE=n
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_U_AUDIO=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_UAC1=m
+CONFIG_USB_F_UVC=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+# CONFIG_USB_CONFIGFS_OBEX is not set
+# CONFIG_USB_CONFIGFS_NCM is not set
+CONFIG_USB_CONFIGFS_ECM=y
+# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+# CONFIG_USB_CONFIGFS_F_LB_SS is not set
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_UEVENT=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONFIGFS_F_UAC2 is not set
+# CONFIG_USB_CONFIGFS_F_MIDI is not set
+# CONFIG_USB_CONFIGFS_F_HID is not set
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_BUG=n
+CONFIG_IO_URING=n
+CONFIG_ADVISE_SYSCALLS=n
+CONFIG_SIGNALFD=n
+CONFIG_TIMERFD=n
+CONFIG_EPOLL=n
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinand/u-boot/cv1812h_wevb_0007a_spinand_defconfig b/build/boards/cv181x/cv1812h_wevb_0007a_spinand/u-boot/cv1812h_wevb_0007a_spinand_defconfig
new file mode 100644
index 000000000..e3b5bd385
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinand/u-boot/cv1812h_wevb_0007a_spinand_defconfig
@@ -0,0 +1,47 @@
+CONFIG_RISCV=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="cv181x_asic"
+CONFIG_IDENT_STRING=" cvitek_cv181x"
+CONFIG_ARCH_RV64I=y
+CONFIG_RISCV_SMODE=y
+CONFIG_TARGET_CVITEK_CV181X=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_BOOTDELAY=1
+CONFIG_SYS_PROMPT="cv181x_c906# "
+# CONFIG_CMD_CONSOLE is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_CRC32 is not set
+# CONFIG_CMD_LZMADEC is not set
+# CONFIG_CMD_UNLZ4 is not set
+# CONFIG_CMD_UNZIP is not set
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_MMC=y
+# CONFIG_CMD_ITEST is not set
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_CVI_SD_UPDATE=y
+# CONFIG_ISO_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_CVITEK=y
+CONFIG_MTD=y
+# CONFIG_SPI_FLASH is not set
+# CONFIG_PHY_SMSC is not set
+CONFIG_DM_ETH=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_PHY_CVITEK=y
+CONFIG_SYS_NS16550=y
+CONFIG_SPI=y
+CONFIG_LZ4=y
+CONFIG_LZMA=y
+# CONFIG_TOOLS_LIBCRYPTO is not set
+
+CONFIG_MTD_RAW_NAND=y
+CONFIG_NAND_FLASH_CVSNFC_V3=y
+CONFIG_ENV_IS_IN_NAND=y
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinor/linux/cv1812h_wevb_0007a_spinor_defconfig b/build/boards/cv181x/cv1812h_wevb_0007a_spinor/linux/cv1812h_wevb_0007a_spinor_defconfig
new file mode 100644
index 000000000..071f20b77
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor/linux/cv1812h_wevb_0007a_spinor_defconfig
@@ -0,0 +1,489 @@
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=15
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_BASE_FULL is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+# CONFIG_SLUB_DEBUG is not set
+CONFIG_FORCE_MAX_ZONEORDER=10
+CONFIG_ARCH_CVITEK=y
+CONFIG_SOC_THEAD=y
+# CONFIG_RISCV_SWIOTLB is not set
+CONFIG_VECTOR=y
+CONFIG_VECTOR_0_7=y
+# CONFIG_COMPAT is not set
+CONFIG_ARCH_CVITEK_CHIP="mars"
+CONFIG_ARCH_CV181X_ASIC=y
+CONFIG_POWER_RESET=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_STRICT_KERNEL_RWX=n
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_MQ_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_KYBER is not set
+# CONFIG_COREDUMP is not set
+CONFIG_CMA=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
+CONFIG_CFG80211=y
+CONFIG_RFKILL=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_RAW_NAND=n
+CONFIG_MTD_NAND_PLATFORM=n
+CONFIG_MTD_NAND_CVSNFC=n
+CONFIG_MTD_SPI_NOR=y
+CONFIG_SPI_CVI_SPIF=y
+CONFIG_MTD_UBI=n
+CONFIG_MTD_UBI_BLOCK=n
+CONFIG_NETDEVICES=y
+# CONFIG_NET_CORE is not set
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_STMMAC_ETH=y
+# CONFIG_DWMAC_GENERIC is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_CVITEK_PHY=y
+CONFIG_CVITEK_PHY_UAPS=y
+# CONFIG_USB_NET_DRIVERS is not set
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_RTL8188FU is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+CONFIG_WLAN_VENDOR_REALTEK=y
+CONFIG_RTL8189FS=m
+CONFIG_INPUT=y
+CONFIG_INPUT_EVDEV=y
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=5
+CONFIG_SERIAL_8250_RUNTIME_UARTS=5
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_I2C_GPIO=y
+CONFIG_SPI=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PINCTRL=y
+CONFIG_CVITEK_PINCTRL_CV1835=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_WATCHDOG=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
+CONFIG_VIDEO_CVITEK=m
+CONFIG_VIDEO_CVITEK_CIF=m
+CONFIG_VIDEO_CVITEK_SNS_I2C=m
+CONFIG_VIDEO_CVITEK_MIPI_TX=m
+#
+# Media SPI Adapters
+#
+# CONFIG_CXD2880_SPI_DRV is not set
+# end of Media SPI Adapters
+#
+# Customize TV tuners
+#
+# CONFIG_MEDIA_TUNER_SIMPLE is not set
+# CONFIG_MEDIA_TUNER_TDA18250 is not set
+# CONFIG_MEDIA_TUNER_TDA8290 is not set
+# CONFIG_MEDIA_TUNER_TDA827X is not set
+# CONFIG_MEDIA_TUNER_TDA18271 is not set
+# CONFIG_MEDIA_TUNER_TDA9887 is not set
+# CONFIG_MEDIA_TUNER_TEA5761 is not set
+# CONFIG_MEDIA_TUNER_TEA5767 is not set
+# CONFIG_MEDIA_TUNER_MSI001 is not set
+# CONFIG_MEDIA_TUNER_MT20XX is not set
+# CONFIG_MEDIA_TUNER_MT2060 is not set
+# CONFIG_MEDIA_TUNER_MT2063 is not set
+# CONFIG_MEDIA_TUNER_MT2266 is not set
+# CONFIG_MEDIA_TUNER_MT2131 is not set
+# CONFIG_MEDIA_TUNER_QT1010 is not set
+# CONFIG_MEDIA_TUNER_XC2028 is not set
+# CONFIG_MEDIA_TUNER_XC5000 is not set
+# CONFIG_MEDIA_TUNER_XC4000 is not set
+# CONFIG_MEDIA_TUNER_MXL5005S is not set
+# CONFIG_MEDIA_TUNER_MXL5007T is not set
+# CONFIG_MEDIA_TUNER_MC44S803 is not set
+# CONFIG_MEDIA_TUNER_MAX2165 is not set
+# CONFIG_MEDIA_TUNER_TDA18218 is not set
+# CONFIG_MEDIA_TUNER_FC0011 is not set
+# CONFIG_MEDIA_TUNER_FC0012 is not set
+# CONFIG_MEDIA_TUNER_FC0013 is not set
+# CONFIG_MEDIA_TUNER_TDA18212 is not set
+# CONFIG_MEDIA_TUNER_E4000 is not set
+# CONFIG_MEDIA_TUNER_FC2580 is not set
+# CONFIG_MEDIA_TUNER_M88RS6000T is not set
+# CONFIG_MEDIA_TUNER_TUA9001 is not set
+# CONFIG_MEDIA_TUNER_SI2157 is not set
+# CONFIG_MEDIA_TUNER_IT913X is not set
+# CONFIG_MEDIA_TUNER_R820T is not set
+# CONFIG_MEDIA_TUNER_MXL301RF is not set
+# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set
+# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set
+# end of Customize TV tuners
+#
+# Customise DVB Frontends
+#
+
+#
+# Multistandard (satellite) frontends
+#
+# CONFIG_DVB_STB0899 is not set
+# CONFIG_DVB_STB6100 is not set
+# CONFIG_DVB_STV090x is not set
+# CONFIG_DVB_STV0910 is not set
+# CONFIG_DVB_STV6110x is not set
+# CONFIG_DVB_STV6111 is not set
+# CONFIG_DVB_MXL5XX is not set
+# CONFIG_DVB_M88DS3103 is not set
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+# CONFIG_DVB_DRXK is not set
+# CONFIG_DVB_TDA18271C2DD is not set
+# CONFIG_DVB_SI2165 is not set
+# CONFIG_DVB_MN88472 is not set
+# CONFIG_DVB_MN88473 is not set
+
+#
+# DVB-S (satellite) frontends
+#
+# CONFIG_DVB_CX24110 is not set
+# CONFIG_DVB_CX24123 is not set
+# CONFIG_DVB_MT312 is not set
+# CONFIG_DVB_ZL10036 is not set
+# CONFIG_DVB_ZL10039 is not set
+# CONFIG_DVB_S5H1420 is not set
+# CONFIG_DVB_STV0288 is not set
+# CONFIG_DVB_STB6000 is not set
+# CONFIG_DVB_STV0299 is not set
+# CONFIG_DVB_STV6110 is not set
+# CONFIG_DVB_STV0900 is not set
+# CONFIG_DVB_TDA8083 is not set
+# CONFIG_DVB_TDA10086 is not set
+# CONFIG_DVB_TDA8261 is not set
+# CONFIG_DVB_VES1X93 is not set
+# CONFIG_DVB_TUNER_ITD1000 is not set
+# CONFIG_DVB_TUNER_CX24113 is not set
+# CONFIG_DVB_TDA826X is not set
+# CONFIG_DVB_TUA6100 is not set
+# CONFIG_DVB_CX24116 is not set
+# CONFIG_DVB_CX24117 is not set
+# CONFIG_DVB_CX24120 is not set
+# CONFIG_DVB_SI21XX is not set
+# CONFIG_DVB_TS2020 is not set
+# CONFIG_DVB_DS3000 is not set
+# CONFIG_DVB_MB86A16 is not set
+# CONFIG_DVB_TDA10071 is not set
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+# CONFIG_DVB_S5H1432 is not set
+# CONFIG_DVB_DRXD is not set
+# CONFIG_DVB_L64781 is not set
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_ZL10353 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+# CONFIG_DVB_DIB7000M is not set
+# CONFIG_DVB_DIB7000P is not set
+# CONFIG_DVB_DIB9000 is not set
+# CONFIG_DVB_TDA10048 is not set
+# CONFIG_DVB_AF9013 is not set
+# CONFIG_DVB_EC100 is not set
+# CONFIG_DVB_STV0367 is not set
+# CONFIG_DVB_CXD2820R is not set
+# CONFIG_DVB_CXD2841ER is not set
+# CONFIG_DVB_RTL2830 is not set
+# CONFIG_DVB_RTL2832 is not set
+# CONFIG_DVB_RTL2832_SDR is not set
+# CONFIG_DVB_SI2168 is not set
+# CONFIG_DVB_ZD1301_DEMOD is not set
+# CONFIG_DVB_CXD2880 is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_VES1820 is not set
+# CONFIG_DVB_TDA10021 is not set
+# CONFIG_DVB_TDA10023 is not set
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+# CONFIG_DVB_NXT200X is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+# CONFIG_DVB_BCM3510 is not set
+# CONFIG_DVB_LGDT330X is not set
+# CONFIG_DVB_LGDT3305 is not set
+# CONFIG_DVB_LGDT3306A is not set
+# CONFIG_DVB_LG2160 is not set
+# CONFIG_DVB_S5H1409 is not set
+# CONFIG_DVB_AU8522_DTV is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_S5H1411 is not set
+
+#
+# ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_S921 is not set
+# CONFIG_DVB_DIB8000 is not set
+# CONFIG_DVB_MB86A20S is not set
+
+#
+# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_TC90522 is not set
+# CONFIG_DVB_MN88443X is not set
+
+#
+# Digital terrestrial only tuners/PLL
+#
+# CONFIG_DVB_PLL is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+#
+# SEC control devices for DVB-S
+#
+# CONFIG_DVB_DRX39XYJ is not set
+# CONFIG_DVB_LNBH25 is not set
+# CONFIG_DVB_LNBH29 is not set
+# CONFIG_DVB_LNBP21 is not set
+# CONFIG_DVB_LNBP22 is not set
+# CONFIG_DVB_ISL6405 is not set
+# CONFIG_DVB_ISL6421 is not set
+# CONFIG_DVB_ISL6423 is not set
+# CONFIG_DVB_A8293 is not set
+# CONFIG_DVB_LGS8GL5 is not set
+# CONFIG_DVB_LGS8GXX is not set
+# CONFIG_DVB_ATBM8830 is not set
+# CONFIG_DVB_TDA665x is not set
+# CONFIG_DVB_IX2505V is not set
+# CONFIG_DVB_M88RS2000 is not set
+# CONFIG_DVB_AF9033 is not set
+# CONFIG_DVB_HORUS3A is not set
+# CONFIG_DVB_ASCOT2E is not set
+# CONFIG_DVB_HELENE is not set
+#
+# Common Interface (EN50221) controller drivers
+#
+# CONFIG_DVB_CXD2099 is not set
+# CONFIG_DVB_SP2 is not set
+# end of Customise DVB Frontends
+#
+# Digital TV options
+#
+# CONFIG_DVB_NET is not set
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+# end of Digital TV options
+
+CONFIG_FB=y
+CONFIG_FB_CVITEK=m
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_PROC_FS is not set
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=1
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_CV182XA_CV182XAADC=y
+CONFIG_SND_SOC_CV182XA_CV182XADAC=y
+CONFIG_SND_CV1835_I2S=y
+CONFIG_SND_SOC_CV182XAADC=y
+CONFIG_SND_SOC_CV182XADAC=y
+CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
+CONFIG_CV1835_I2S_SUBSYS=y
+CONFIG_USB=y
+CONFIG_USB_DWC2=m
+CONFIG_USB_GADGET=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_CVI=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC_CVITEK=y
+CONFIG_RTC_CLASS=y
+# CONFIG_VIRTIO_MENU is not set
+CONFIG_STAGING=y
+CONFIG_ION=y
+CONFIG_ION_SYSTEM_HEAP=n
+CONFIG_ION_CARVEOUT_HEAP=y
+CONFIG_ION_CMA_HEAP=n
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_CV1835_SYSDMA_REMAP=y
+CONFIG_PWM=y
+CONFIG_SIFIVE_PLIC=y
+CONFIG_ANDROID=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_WBUF_VERIFY=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_ZLIB is not set
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=n
+CONFIG_NFS_V2=n
+CONFIG_NFS_V3=n
+CONFIG_ROOT_NFS=n
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=0
+CONFIG_PRINTK_TIME=y
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO=n
+CONFIG_DEBUG_INFO_DWARF4=n
+CONFIG_GDB_SCRIPTS=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_DEBUG_FS=y
+CONFIG_BLK_DEV_INITRD=n
+CONFIG_KALLSYMS=y
+CONFIG_FRAME_POINTER=n
+CONFIG_DEBUG_MISC=n
+CONFIG_RCU_TRACE=n
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_U_AUDIO=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_UAC1=m
+CONFIG_USB_F_UVC=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+# CONFIG_USB_CONFIGFS_OBEX is not set
+# CONFIG_USB_CONFIGFS_NCM is not set
+CONFIG_USB_CONFIGFS_ECM=y
+# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+# CONFIG_USB_CONFIGFS_F_LB_SS is not set
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_UEVENT=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONFIGFS_F_UAC2 is not set
+# CONFIG_USB_CONFIGFS_F_MIDI is not set
+# CONFIG_USB_CONFIGFS_F_HID is not set
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_BUG=n
+CONFIG_IO_URING=n
+CONFIG_ADVISE_SYSCALLS=n
+CONFIG_SIGNALFD=n
+CONFIG_TIMERFD=n
+CONFIG_EPOLL=n
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinor/u-boot/cv1812h_wevb_0007a_spinor_defconfig b/build/boards/cv181x/cv1812h_wevb_0007a_spinor/u-boot/cv1812h_wevb_0007a_spinor_defconfig
new file mode 120000
index 000000000..9c0c8b867
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor/u-boot/cv1812h_wevb_0007a_spinor_defconfig
@@ -0,0 +1 @@
+../../../default/u-boot/cv181x_wevb_riscv_spinor_defconfig
\ No newline at end of file
diff --git a/build/boards/cv181x/cv1813h_wevb_0007a_emmc/linux/cv1813h_wevb_0007a_emmc_defconfig b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/linux/cv1813h_wevb_0007a_emmc_defconfig
new file mode 100644
index 000000000..2b0826974
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/linux/cv1813h_wevb_0007a_emmc_defconfig
@@ -0,0 +1,465 @@
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=15
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_BASE_FULL is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+# CONFIG_SLUB_DEBUG is not set
+CONFIG_FORCE_MAX_ZONEORDER=10
+CONFIG_ARCH_CVITEK=y
+CONFIG_SOC_THEAD=y
+# CONFIG_RISCV_SWIOTLB is not set
+CONFIG_VECTOR=y
+CONFIG_VECTOR_0_7=y
+# CONFIG_COMPAT is not set
+CONFIG_ARCH_CVITEK_CHIP="mars"
+CONFIG_ARCH_CV181X_ASIC=y
+CONFIG_POWER_RESET=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_STRICT_KERNEL_RWX=n
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_MQ_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_KYBER is not set
+# CONFIG_COREDUMP is not set
+CONFIG_CMA=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
+CONFIG_CFG80211=m
+CONFIG_RFKILL=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_NETDEVICES=y
+# CONFIG_NET_CORE is not set
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_STMMAC_ETH=y
+# CONFIG_DWMAC_GENERIC is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_CVITEK_PHY=y
+CONFIG_CVITEK_PHY_UAPS=y
+# CONFIG_USB_NET_DRIVERS is not set
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_RTL8188FU is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+CONFIG_INPUT=y
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=5
+CONFIG_SERIAL_8250_RUNTIME_UARTS=5
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PINCTRL=y
+CONFIG_CVITEK_PINCTRL_CV1835=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_WATCHDOG=y
+CONFIG_MEDIA_SUPPORT=n
+CONFIG_VIDEO_V4L2_SUBDEV_API=n
+CONFIG_V4L_PLATFORM_DRIVERS=n
+CONFIG_V4L_MEM2MEM_DRIVERS=n
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=n
+CONFIG_VIDEO_CVITEK=m
+CONFIG_VIDEO_CVITEK_CIF=m
+CONFIG_VIDEO_CVITEK_SNS_I2C=m
+CONFIG_VIDEO_CVITEK_MIPI_TX=m
+#
+# Media SPI Adapters
+#
+# CONFIG_CXD2880_SPI_DRV is not set
+# end of Media SPI Adapters
+#
+# Customize TV tuners
+#
+# CONFIG_MEDIA_TUNER_SIMPLE is not set
+# CONFIG_MEDIA_TUNER_TDA18250 is not set
+# CONFIG_MEDIA_TUNER_TDA8290 is not set
+# CONFIG_MEDIA_TUNER_TDA827X is not set
+# CONFIG_MEDIA_TUNER_TDA18271 is not set
+# CONFIG_MEDIA_TUNER_TDA9887 is not set
+# CONFIG_MEDIA_TUNER_TEA5761 is not set
+# CONFIG_MEDIA_TUNER_TEA5767 is not set
+# CONFIG_MEDIA_TUNER_MSI001 is not set
+# CONFIG_MEDIA_TUNER_MT20XX is not set
+# CONFIG_MEDIA_TUNER_MT2060 is not set
+# CONFIG_MEDIA_TUNER_MT2063 is not set
+# CONFIG_MEDIA_TUNER_MT2266 is not set
+# CONFIG_MEDIA_TUNER_MT2131 is not set
+# CONFIG_MEDIA_TUNER_QT1010 is not set
+# CONFIG_MEDIA_TUNER_XC2028 is not set
+# CONFIG_MEDIA_TUNER_XC5000 is not set
+# CONFIG_MEDIA_TUNER_XC4000 is not set
+# CONFIG_MEDIA_TUNER_MXL5005S is not set
+# CONFIG_MEDIA_TUNER_MXL5007T is not set
+# CONFIG_MEDIA_TUNER_MC44S803 is not set
+# CONFIG_MEDIA_TUNER_MAX2165 is not set
+# CONFIG_MEDIA_TUNER_TDA18218 is not set
+# CONFIG_MEDIA_TUNER_FC0011 is not set
+# CONFIG_MEDIA_TUNER_FC0012 is not set
+# CONFIG_MEDIA_TUNER_FC0013 is not set
+# CONFIG_MEDIA_TUNER_TDA18212 is not set
+# CONFIG_MEDIA_TUNER_E4000 is not set
+# CONFIG_MEDIA_TUNER_FC2580 is not set
+# CONFIG_MEDIA_TUNER_M88RS6000T is not set
+# CONFIG_MEDIA_TUNER_TUA9001 is not set
+# CONFIG_MEDIA_TUNER_SI2157 is not set
+# CONFIG_MEDIA_TUNER_IT913X is not set
+# CONFIG_MEDIA_TUNER_R820T is not set
+# CONFIG_MEDIA_TUNER_MXL301RF is not set
+# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set
+# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set
+# end of Customize TV tuners
+#
+# Customise DVB Frontends
+#
+
+#
+# Multistandard (satellite) frontends
+#
+# CONFIG_DVB_STB0899 is not set
+# CONFIG_DVB_STB6100 is not set
+# CONFIG_DVB_STV090x is not set
+# CONFIG_DVB_STV0910 is not set
+# CONFIG_DVB_STV6110x is not set
+# CONFIG_DVB_STV6111 is not set
+# CONFIG_DVB_MXL5XX is not set
+# CONFIG_DVB_M88DS3103 is not set
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+# CONFIG_DVB_DRXK is not set
+# CONFIG_DVB_TDA18271C2DD is not set
+# CONFIG_DVB_SI2165 is not set
+# CONFIG_DVB_MN88472 is not set
+# CONFIG_DVB_MN88473 is not set
+
+#
+# DVB-S (satellite) frontends
+#
+# CONFIG_DVB_CX24110 is not set
+# CONFIG_DVB_CX24123 is not set
+# CONFIG_DVB_MT312 is not set
+# CONFIG_DVB_ZL10036 is not set
+# CONFIG_DVB_ZL10039 is not set
+# CONFIG_DVB_S5H1420 is not set
+# CONFIG_DVB_STV0288 is not set
+# CONFIG_DVB_STB6000 is not set
+# CONFIG_DVB_STV0299 is not set
+# CONFIG_DVB_STV6110 is not set
+# CONFIG_DVB_STV0900 is not set
+# CONFIG_DVB_TDA8083 is not set
+# CONFIG_DVB_TDA10086 is not set
+# CONFIG_DVB_TDA8261 is not set
+# CONFIG_DVB_VES1X93 is not set
+# CONFIG_DVB_TUNER_ITD1000 is not set
+# CONFIG_DVB_TUNER_CX24113 is not set
+# CONFIG_DVB_TDA826X is not set
+# CONFIG_DVB_TUA6100 is not set
+# CONFIG_DVB_CX24116 is not set
+# CONFIG_DVB_CX24117 is not set
+# CONFIG_DVB_CX24120 is not set
+# CONFIG_DVB_SI21XX is not set
+# CONFIG_DVB_TS2020 is not set
+# CONFIG_DVB_DS3000 is not set
+# CONFIG_DVB_MB86A16 is not set
+# CONFIG_DVB_TDA10071 is not set
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+# CONFIG_DVB_S5H1432 is not set
+# CONFIG_DVB_DRXD is not set
+# CONFIG_DVB_L64781 is not set
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_ZL10353 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+# CONFIG_DVB_DIB7000M is not set
+# CONFIG_DVB_DIB7000P is not set
+# CONFIG_DVB_DIB9000 is not set
+# CONFIG_DVB_TDA10048 is not set
+# CONFIG_DVB_AF9013 is not set
+# CONFIG_DVB_EC100 is not set
+# CONFIG_DVB_STV0367 is not set
+# CONFIG_DVB_CXD2820R is not set
+# CONFIG_DVB_CXD2841ER is not set
+# CONFIG_DVB_RTL2830 is not set
+# CONFIG_DVB_RTL2832 is not set
+# CONFIG_DVB_RTL2832_SDR is not set
+# CONFIG_DVB_SI2168 is not set
+# CONFIG_DVB_ZD1301_DEMOD is not set
+# CONFIG_DVB_CXD2880 is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_VES1820 is not set
+# CONFIG_DVB_TDA10021 is not set
+# CONFIG_DVB_TDA10023 is not set
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+# CONFIG_DVB_NXT200X is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+# CONFIG_DVB_BCM3510 is not set
+# CONFIG_DVB_LGDT330X is not set
+# CONFIG_DVB_LGDT3305 is not set
+# CONFIG_DVB_LGDT3306A is not set
+# CONFIG_DVB_LG2160 is not set
+# CONFIG_DVB_S5H1409 is not set
+# CONFIG_DVB_AU8522_DTV is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_S5H1411 is not set
+
+#
+# ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_S921 is not set
+# CONFIG_DVB_DIB8000 is not set
+# CONFIG_DVB_MB86A20S is not set
+
+#
+# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_TC90522 is not set
+# CONFIG_DVB_MN88443X is not set
+
+#
+# Digital terrestrial only tuners/PLL
+#
+# CONFIG_DVB_PLL is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+#
+# SEC control devices for DVB-S
+#
+# CONFIG_DVB_DRX39XYJ is not set
+# CONFIG_DVB_LNBH25 is not set
+# CONFIG_DVB_LNBH29 is not set
+# CONFIG_DVB_LNBP21 is not set
+# CONFIG_DVB_LNBP22 is not set
+# CONFIG_DVB_ISL6405 is not set
+# CONFIG_DVB_ISL6421 is not set
+# CONFIG_DVB_ISL6423 is not set
+# CONFIG_DVB_A8293 is not set
+# CONFIG_DVB_LGS8GL5 is not set
+# CONFIG_DVB_LGS8GXX is not set
+# CONFIG_DVB_ATBM8830 is not set
+# CONFIG_DVB_TDA665x is not set
+# CONFIG_DVB_IX2505V is not set
+# CONFIG_DVB_M88RS2000 is not set
+# CONFIG_DVB_AF9033 is not set
+# CONFIG_DVB_HORUS3A is not set
+# CONFIG_DVB_ASCOT2E is not set
+# CONFIG_DVB_HELENE is not set
+#
+# Common Interface (EN50221) controller drivers
+#
+# CONFIG_DVB_CXD2099 is not set
+# CONFIG_DVB_SP2 is not set
+# end of Customise DVB Frontends
+#
+# Digital TV options
+#
+# CONFIG_DVB_NET is not set
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+# end of Digital TV options
+
+CONFIG_FB=y
+CONFIG_FB_CVITEK=m
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_PROC_FS is not set
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=1
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_CV182XA_CV182XAADC=y
+CONFIG_SND_SOC_CV182XA_CV182XADAC=y
+CONFIG_SND_CV1835_I2S=y
+CONFIG_SND_SOC_CV182XAADC=y
+CONFIG_SND_SOC_CV182XADAC=y
+CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
+CONFIG_CV1835_I2S_SUBSYS=y
+CONFIG_USB=m
+CONFIG_USB_DWC2=m
+CONFIG_USB_GADGET=m
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_CVI=y
+CONFIG_BLK_CMDLINE_PARSER=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_EFI_PARTITION=n
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_EXT4_FS=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC_CVITEK=y
+CONFIG_RTC_CLASS=y
+# CONFIG_VIRTIO_MENU is not set
+CONFIG_STAGING=y
+CONFIG_ION=y
+CONFIG_ION_SYSTEM_HEAP=y
+CONFIG_ION_CARVEOUT_HEAP=y
+CONFIG_ION_CMA_HEAP=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_CV1835_SYSDMA_REMAP=y
+CONFIG_PWM=y
+CONFIG_SIFIVE_PLIC=y
+CONFIG_ANDROID=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_ZLIB is not set
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=0
+CONFIG_PRINTK_TIME=y
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO=n
+CONFIG_DEBUG_INFO_DWARF4=n
+CONFIG_GDB_SCRIPTS=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_DEBUG_FS=y
+CONFIG_BLK_DEV_INITRD=n
+CONFIG_KALLSYMS=y
+CONFIG_FRAME_POINTER=n
+CONFIG_DEBUG_MISC=n
+CONFIG_RCU_TRACE=n
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=y
+CONFIG_USB_U_SERIAL=y
+CONFIG_USB_U_ETHER=y
+CONFIG_USB_U_AUDIO=y
+CONFIG_USB_F_SERIAL=y
+CONFIG_USB_F_ECM=y
+CONFIG_USB_F_EEM=y
+CONFIG_USB_F_RNDIS=y
+CONFIG_USB_F_MASS_STORAGE=y
+CONFIG_USB_F_FS=y
+CONFIG_USB_F_UAC1=y
+CONFIG_USB_F_UVC=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+CONFIG_BUG=n
+CONFIG_IO_URING=n
+CONFIG_ADVISE_SYSCALLS=n
+CONFIG_SIGNALFD=n
+CONFIG_TIMERFD=n
+CONFIG_EPOLL=n
diff --git a/build/boards/cv181x/cv1813h_wevb_0007a_emmc/u-boot/cv1813h_wevb_0007a_emmc_defconfig b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/u-boot/cv1813h_wevb_0007a_emmc_defconfig
new file mode 100644
index 000000000..e33110df0
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/u-boot/cv1813h_wevb_0007a_emmc_defconfig
@@ -0,0 +1,43 @@
+CONFIG_RISCV=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="cv181x_asic"
+CONFIG_IDENT_STRING=" cvitek_cv181x"
+CONFIG_ARCH_RV64I=y
+CONFIG_RISCV_SMODE=y
+CONFIG_TARGET_CVITEK_CV181X=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_BOOTDELAY=1
+CONFIG_SYS_PROMPT="cv181x_c906# "
+# CONFIG_CMD_CONSOLE is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_CRC32 is not set
+# CONFIG_CMD_LZMADEC is not set
+# CONFIG_CMD_UNLZ4 is not set
+# CONFIG_CMD_UNZIP is not set
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_MMC=y
+# CONFIG_CMD_ITEST is not set
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_CVI_SD_UPDATE=y
+# CONFIG_ISO_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_CVITEK=y
+CONFIG_MTD=y
+# CONFIG_PHY_SMSC is not set
+CONFIG_DM_ETH=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_PHY_CVITEK=y
+CONFIG_SYS_NS16550=y
+CONFIG_SPI=y
+CONFIG_LZ4=y
+CONFIG_LZMA=y
+# CONFIG_TOOLS_LIBCRYPTO is not set
+CONFIG_ENV_IS_IN_MMC=y
diff --git a/build/boards/cv181x/cv1813h_wevb_0007a_spinand/linux/cv1813h_wevb_0007a_spinand_defconfig b/build/boards/cv181x/cv1813h_wevb_0007a_spinand/linux/cv1813h_wevb_0007a_spinand_defconfig
new file mode 100644
index 000000000..945d901de
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_spinand/linux/cv1813h_wevb_0007a_spinand_defconfig
@@ -0,0 +1,488 @@
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=15
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_BASE_FULL is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+# CONFIG_SLUB_DEBUG is not set
+CONFIG_FORCE_MAX_ZONEORDER=10
+CONFIG_ARCH_CVITEK=y
+CONFIG_SOC_THEAD=y
+# CONFIG_RISCV_SWIOTLB is not set
+CONFIG_VECTOR=y
+CONFIG_VECTOR_0_7=y
+# CONFIG_COMPAT is not set
+CONFIG_ARCH_CVITEK_CHIP="mars"
+CONFIG_ARCH_CV181X_ASIC=y
+CONFIG_POWER_RESET=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_STRICT_KERNEL_RWX=n
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_MQ_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_KYBER is not set
+# CONFIG_COREDUMP is not set
+CONFIG_CMA=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
+CONFIG_CFG80211=m
+CONFIG_RFKILL=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_MTD_NAND_PLATFORM=y
+CONFIG_MTD_NAND_CVSNFC=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_SPI_CVI_SPIF=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_NETDEVICES=y
+# CONFIG_NET_CORE is not set
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_STMMAC_ETH=y
+# CONFIG_DWMAC_GENERIC is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_CVITEK_PHY=y
+# CONFIG_USB_NET_DRIVERS is not set
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_RTL8188FU is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+CONFIG_INPUT=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_EVDEV=y
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=5
+CONFIG_SERIAL_8250_RUNTIME_UARTS=5
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_SPI=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PINCTRL=y
+CONFIG_CVITEK_PINCTRL_CV1835=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_WATCHDOG=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=y
+CONFIG_VIDEO_CVITEK=m
+CONFIG_VIDEO_CVITEK_CIF=m
+CONFIG_VIDEO_CVITEK_SNS_I2C=m
+CONFIG_VIDEO_CVITEK_MIPI_TX=m
+#
+# Media SPI Adapters
+#
+# CONFIG_CXD2880_SPI_DRV is not set
+# end of Media SPI Adapters
+#
+# Customize TV tuners
+#
+# CONFIG_MEDIA_TUNER_SIMPLE is not set
+# CONFIG_MEDIA_TUNER_TDA18250 is not set
+# CONFIG_MEDIA_TUNER_TDA8290 is not set
+# CONFIG_MEDIA_TUNER_TDA827X is not set
+# CONFIG_MEDIA_TUNER_TDA18271 is not set
+# CONFIG_MEDIA_TUNER_TDA9887 is not set
+# CONFIG_MEDIA_TUNER_TEA5761 is not set
+# CONFIG_MEDIA_TUNER_TEA5767 is not set
+# CONFIG_MEDIA_TUNER_MSI001 is not set
+# CONFIG_MEDIA_TUNER_MT20XX is not set
+# CONFIG_MEDIA_TUNER_MT2060 is not set
+# CONFIG_MEDIA_TUNER_MT2063 is not set
+# CONFIG_MEDIA_TUNER_MT2266 is not set
+# CONFIG_MEDIA_TUNER_MT2131 is not set
+# CONFIG_MEDIA_TUNER_QT1010 is not set
+# CONFIG_MEDIA_TUNER_XC2028 is not set
+# CONFIG_MEDIA_TUNER_XC5000 is not set
+# CONFIG_MEDIA_TUNER_XC4000 is not set
+# CONFIG_MEDIA_TUNER_MXL5005S is not set
+# CONFIG_MEDIA_TUNER_MXL5007T is not set
+# CONFIG_MEDIA_TUNER_MC44S803 is not set
+# CONFIG_MEDIA_TUNER_MAX2165 is not set
+# CONFIG_MEDIA_TUNER_TDA18218 is not set
+# CONFIG_MEDIA_TUNER_FC0011 is not set
+# CONFIG_MEDIA_TUNER_FC0012 is not set
+# CONFIG_MEDIA_TUNER_FC0013 is not set
+# CONFIG_MEDIA_TUNER_TDA18212 is not set
+# CONFIG_MEDIA_TUNER_E4000 is not set
+# CONFIG_MEDIA_TUNER_FC2580 is not set
+# CONFIG_MEDIA_TUNER_M88RS6000T is not set
+# CONFIG_MEDIA_TUNER_TUA9001 is not set
+# CONFIG_MEDIA_TUNER_SI2157 is not set
+# CONFIG_MEDIA_TUNER_IT913X is not set
+# CONFIG_MEDIA_TUNER_R820T is not set
+# CONFIG_MEDIA_TUNER_MXL301RF is not set
+# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set
+# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set
+# end of Customize TV tuners
+#
+# Customise DVB Frontends
+#
+
+#
+# Multistandard (satellite) frontends
+#
+# CONFIG_DVB_STB0899 is not set
+# CONFIG_DVB_STB6100 is not set
+# CONFIG_DVB_STV090x is not set
+# CONFIG_DVB_STV0910 is not set
+# CONFIG_DVB_STV6110x is not set
+# CONFIG_DVB_STV6111 is not set
+# CONFIG_DVB_MXL5XX is not set
+# CONFIG_DVB_M88DS3103 is not set
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+# CONFIG_DVB_DRXK is not set
+# CONFIG_DVB_TDA18271C2DD is not set
+# CONFIG_DVB_SI2165 is not set
+# CONFIG_DVB_MN88472 is not set
+# CONFIG_DVB_MN88473 is not set
+
+#
+# DVB-S (satellite) frontends
+#
+# CONFIG_DVB_CX24110 is not set
+# CONFIG_DVB_CX24123 is not set
+# CONFIG_DVB_MT312 is not set
+# CONFIG_DVB_ZL10036 is not set
+# CONFIG_DVB_ZL10039 is not set
+# CONFIG_DVB_S5H1420 is not set
+# CONFIG_DVB_STV0288 is not set
+# CONFIG_DVB_STB6000 is not set
+# CONFIG_DVB_STV0299 is not set
+# CONFIG_DVB_STV6110 is not set
+# CONFIG_DVB_STV0900 is not set
+# CONFIG_DVB_TDA8083 is not set
+# CONFIG_DVB_TDA10086 is not set
+# CONFIG_DVB_TDA8261 is not set
+# CONFIG_DVB_VES1X93 is not set
+# CONFIG_DVB_TUNER_ITD1000 is not set
+# CONFIG_DVB_TUNER_CX24113 is not set
+# CONFIG_DVB_TDA826X is not set
+# CONFIG_DVB_TUA6100 is not set
+# CONFIG_DVB_CX24116 is not set
+# CONFIG_DVB_CX24117 is not set
+# CONFIG_DVB_CX24120 is not set
+# CONFIG_DVB_SI21XX is not set
+# CONFIG_DVB_TS2020 is not set
+# CONFIG_DVB_DS3000 is not set
+# CONFIG_DVB_MB86A16 is not set
+# CONFIG_DVB_TDA10071 is not set
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+# CONFIG_DVB_S5H1432 is not set
+# CONFIG_DVB_DRXD is not set
+# CONFIG_DVB_L64781 is not set
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_ZL10353 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+# CONFIG_DVB_DIB7000M is not set
+# CONFIG_DVB_DIB7000P is not set
+# CONFIG_DVB_DIB9000 is not set
+# CONFIG_DVB_TDA10048 is not set
+# CONFIG_DVB_AF9013 is not set
+# CONFIG_DVB_EC100 is not set
+# CONFIG_DVB_STV0367 is not set
+# CONFIG_DVB_CXD2820R is not set
+# CONFIG_DVB_CXD2841ER is not set
+# CONFIG_DVB_RTL2830 is not set
+# CONFIG_DVB_RTL2832 is not set
+# CONFIG_DVB_RTL2832_SDR is not set
+# CONFIG_DVB_SI2168 is not set
+# CONFIG_DVB_ZD1301_DEMOD is not set
+# CONFIG_DVB_CXD2880 is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_VES1820 is not set
+# CONFIG_DVB_TDA10021 is not set
+# CONFIG_DVB_TDA10023 is not set
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+# CONFIG_DVB_NXT200X is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+# CONFIG_DVB_BCM3510 is not set
+# CONFIG_DVB_LGDT330X is not set
+# CONFIG_DVB_LGDT3305 is not set
+# CONFIG_DVB_LGDT3306A is not set
+# CONFIG_DVB_LG2160 is not set
+# CONFIG_DVB_S5H1409 is not set
+# CONFIG_DVB_AU8522_DTV is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_S5H1411 is not set
+
+#
+# ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_S921 is not set
+# CONFIG_DVB_DIB8000 is not set
+# CONFIG_DVB_MB86A20S is not set
+
+#
+# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_TC90522 is not set
+# CONFIG_DVB_MN88443X is not set
+
+#
+# Digital terrestrial only tuners/PLL
+#
+# CONFIG_DVB_PLL is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+#
+# SEC control devices for DVB-S
+#
+# CONFIG_DVB_DRX39XYJ is not set
+# CONFIG_DVB_LNBH25 is not set
+# CONFIG_DVB_LNBH29 is not set
+# CONFIG_DVB_LNBP21 is not set
+# CONFIG_DVB_LNBP22 is not set
+# CONFIG_DVB_ISL6405 is not set
+# CONFIG_DVB_ISL6421 is not set
+# CONFIG_DVB_ISL6423 is not set
+# CONFIG_DVB_A8293 is not set
+# CONFIG_DVB_LGS8GL5 is not set
+# CONFIG_DVB_LGS8GXX is not set
+# CONFIG_DVB_ATBM8830 is not set
+# CONFIG_DVB_TDA665x is not set
+# CONFIG_DVB_IX2505V is not set
+# CONFIG_DVB_M88RS2000 is not set
+# CONFIG_DVB_AF9033 is not set
+# CONFIG_DVB_HORUS3A is not set
+# CONFIG_DVB_ASCOT2E is not set
+# CONFIG_DVB_HELENE is not set
+#
+# Common Interface (EN50221) controller drivers
+#
+# CONFIG_DVB_CXD2099 is not set
+# CONFIG_DVB_SP2 is not set
+# end of Customise DVB Frontends
+#
+# Digital TV options
+#
+# CONFIG_DVB_NET is not set
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+# end of Digital TV options
+
+CONFIG_FB=y
+CONFIG_FB_CVITEK=m
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_PROC_FS is not set
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=1
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_CV182XA_CV182XAADC=y
+CONFIG_SND_SOC_CV182XA_CV182XADAC=y
+CONFIG_SND_CV1835_I2S=y
+CONFIG_SND_SOC_CV182XAADC=y
+CONFIG_SND_SOC_CV182XADAC=y
+CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
+CONFIG_CV1835_I2S_SUBSYS=y
+CONFIG_USB=y
+CONFIG_USB_DWC2=m
+CONFIG_USB_GADGET=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_CVI=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC_CVITEK=y
+CONFIG_RTC_CLASS=y
+# CONFIG_VIRTIO_MENU is not set
+CONFIG_STAGING=y
+CONFIG_ION=y
+CONFIG_ION_SYSTEM_HEAP=y
+CONFIG_ION_CARVEOUT_HEAP=y
+CONFIG_ION_CMA_HEAP=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_CV1835_SYSDMA_REMAP=y
+CONFIG_PWM=y
+CONFIG_SIFIVE_PLIC=y
+CONFIG_ANDROID=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_VFAT_FS=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_WBUF_VERIFY=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_ZLIB is not set
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=0
+CONFIG_PRINTK_TIME=y
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO=n
+CONFIG_DEBUG_INFO_DWARF4=n
+CONFIG_GDB_SCRIPTS=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_DEBUG_FS=y
+CONFIG_BLK_DEV_INITRD=n
+CONFIG_KALLSYMS=y
+CONFIG_FRAME_POINTER=n
+CONFIG_DEBUG_MISC=n
+CONFIG_RCU_TRACE=n
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_U_AUDIO=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_UAC1=m
+CONFIG_USB_F_UVC=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+# CONFIG_USB_CONFIGFS_OBEX is not set
+# CONFIG_USB_CONFIGFS_NCM is not set
+CONFIG_USB_CONFIGFS_ECM=y
+# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+# CONFIG_USB_CONFIGFS_F_LB_SS is not set
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_UEVENT=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONFIGFS_F_UAC2 is not set
+# CONFIG_USB_CONFIGFS_F_MIDI is not set
+# CONFIG_USB_CONFIGFS_F_HID is not set
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_BUG=n
+CONFIG_IO_URING=n
+CONFIG_ADVISE_SYSCALLS=n
+CONFIG_SIGNALFD=n
+CONFIG_TIMERFD=n
+CONFIG_EPOLL=n
diff --git a/build/boards/cv181x/cv1813h_wevb_0007a_spinand/u-boot/cv1813h_wevb_0007a_spinand_defconfig b/build/boards/cv181x/cv1813h_wevb_0007a_spinand/u-boot/cv1813h_wevb_0007a_spinand_defconfig
new file mode 100644
index 000000000..e3b5bd385
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_spinand/u-boot/cv1813h_wevb_0007a_spinand_defconfig
@@ -0,0 +1,47 @@
+CONFIG_RISCV=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="cv181x_asic"
+CONFIG_IDENT_STRING=" cvitek_cv181x"
+CONFIG_ARCH_RV64I=y
+CONFIG_RISCV_SMODE=y
+CONFIG_TARGET_CVITEK_CV181X=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_BOOTDELAY=1
+CONFIG_SYS_PROMPT="cv181x_c906# "
+# CONFIG_CMD_CONSOLE is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_CRC32 is not set
+# CONFIG_CMD_LZMADEC is not set
+# CONFIG_CMD_UNLZ4 is not set
+# CONFIG_CMD_UNZIP is not set
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_MMC=y
+# CONFIG_CMD_ITEST is not set
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_CVI_SD_UPDATE=y
+# CONFIG_ISO_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_CVITEK=y
+CONFIG_MTD=y
+# CONFIG_SPI_FLASH is not set
+# CONFIG_PHY_SMSC is not set
+CONFIG_DM_ETH=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_PHY_CVITEK=y
+CONFIG_SYS_NS16550=y
+CONFIG_SPI=y
+CONFIG_LZ4=y
+CONFIG_LZMA=y
+# CONFIG_TOOLS_LIBCRYPTO is not set
+
+CONFIG_MTD_RAW_NAND=y
+CONFIG_NAND_FLASH_CVSNFC_V3=y
+CONFIG_ENV_IS_IN_NAND=y
diff --git a/build/boards/cv181x/cv1813h_wevb_0007a_spinor/linux/cv1813h_wevb_0007a_spinor_defconfig b/build/boards/cv181x/cv1813h_wevb_0007a_spinor/linux/cv1813h_wevb_0007a_spinor_defconfig
new file mode 100644
index 000000000..b23ca8b1b
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_spinor/linux/cv1813h_wevb_0007a_spinor_defconfig
@@ -0,0 +1,488 @@
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=15
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_BASE_FULL is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+# CONFIG_SLUB_DEBUG is not set
+CONFIG_FORCE_MAX_ZONEORDER=10
+CONFIG_ARCH_CVITEK=y
+CONFIG_SOC_THEAD=y
+# CONFIG_RISCV_SWIOTLB is not set
+CONFIG_VECTOR=y
+CONFIG_VECTOR_0_7=y
+# CONFIG_COMPAT is not set
+CONFIG_ARCH_CVITEK_CHIP="mars"
+CONFIG_ARCH_CV181X_ASIC=y
+CONFIG_POWER_RESET=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_STRICT_KERNEL_RWX=n
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_MQ_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_KYBER is not set
+# CONFIG_COREDUMP is not set
+CONFIG_CMA=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
+CONFIG_CFG80211=y
+CONFIG_RFKILL=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_RAW_NAND=n
+CONFIG_MTD_NAND_PLATFORM=n
+CONFIG_MTD_NAND_CVSNFC=n
+CONFIG_MTD_SPI_NOR=y
+CONFIG_SPI_CVI_SPIF=y
+CONFIG_MTD_UBI=n
+CONFIG_MTD_UBI_BLOCK=n
+CONFIG_NETDEVICES=y
+# CONFIG_NET_CORE is not set
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_STMMAC_ETH=y
+# CONFIG_DWMAC_GENERIC is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_CVITEK_PHY=y
+CONFIG_CVITEK_PHY_UAPS=y
+# CONFIG_USB_NET_DRIVERS is not set
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_RTL8188FU is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+CONFIG_WLAN_VENDOR_REALTEK=y
+CONFIG_RTL8189FS=m
+CONFIG_INPUT=y
+CONFIG_INPUT_EVDEV=y
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=5
+CONFIG_SERIAL_8250_RUNTIME_UARTS=5
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_I2C_GPIO=y
+CONFIG_SPI=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PINCTRL=y
+CONFIG_CVITEK_PINCTRL_CV1835=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_WATCHDOG=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
+CONFIG_VIDEO_CVITEK=m
+CONFIG_VIDEO_CVITEK_CIF=m
+CONFIG_VIDEO_CVITEK_SNS_I2C=m
+CONFIG_VIDEO_CVITEK_MIPI_TX=m
+#
+# Media SPI Adapters
+#
+# CONFIG_CXD2880_SPI_DRV is not set
+# end of Media SPI Adapters
+#
+# Customize TV tuners
+#
+# CONFIG_MEDIA_TUNER_SIMPLE is not set
+# CONFIG_MEDIA_TUNER_TDA18250 is not set
+# CONFIG_MEDIA_TUNER_TDA8290 is not set
+# CONFIG_MEDIA_TUNER_TDA827X is not set
+# CONFIG_MEDIA_TUNER_TDA18271 is not set
+# CONFIG_MEDIA_TUNER_TDA9887 is not set
+# CONFIG_MEDIA_TUNER_TEA5761 is not set
+# CONFIG_MEDIA_TUNER_TEA5767 is not set
+# CONFIG_MEDIA_TUNER_MSI001 is not set
+# CONFIG_MEDIA_TUNER_MT20XX is not set
+# CONFIG_MEDIA_TUNER_MT2060 is not set
+# CONFIG_MEDIA_TUNER_MT2063 is not set
+# CONFIG_MEDIA_TUNER_MT2266 is not set
+# CONFIG_MEDIA_TUNER_MT2131 is not set
+# CONFIG_MEDIA_TUNER_QT1010 is not set
+# CONFIG_MEDIA_TUNER_XC2028 is not set
+# CONFIG_MEDIA_TUNER_XC5000 is not set
+# CONFIG_MEDIA_TUNER_XC4000 is not set
+# CONFIG_MEDIA_TUNER_MXL5005S is not set
+# CONFIG_MEDIA_TUNER_MXL5007T is not set
+# CONFIG_MEDIA_TUNER_MC44S803 is not set
+# CONFIG_MEDIA_TUNER_MAX2165 is not set
+# CONFIG_MEDIA_TUNER_TDA18218 is not set
+# CONFIG_MEDIA_TUNER_FC0011 is not set
+# CONFIG_MEDIA_TUNER_FC0012 is not set
+# CONFIG_MEDIA_TUNER_FC0013 is not set
+# CONFIG_MEDIA_TUNER_TDA18212 is not set
+# CONFIG_MEDIA_TUNER_E4000 is not set
+# CONFIG_MEDIA_TUNER_FC2580 is not set
+# CONFIG_MEDIA_TUNER_M88RS6000T is not set
+# CONFIG_MEDIA_TUNER_TUA9001 is not set
+# CONFIG_MEDIA_TUNER_SI2157 is not set
+# CONFIG_MEDIA_TUNER_IT913X is not set
+# CONFIG_MEDIA_TUNER_R820T is not set
+# CONFIG_MEDIA_TUNER_MXL301RF is not set
+# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set
+# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set
+# end of Customize TV tuners
+#
+# Customise DVB Frontends
+#
+
+#
+# Multistandard (satellite) frontends
+#
+# CONFIG_DVB_STB0899 is not set
+# CONFIG_DVB_STB6100 is not set
+# CONFIG_DVB_STV090x is not set
+# CONFIG_DVB_STV0910 is not set
+# CONFIG_DVB_STV6110x is not set
+# CONFIG_DVB_STV6111 is not set
+# CONFIG_DVB_MXL5XX is not set
+# CONFIG_DVB_M88DS3103 is not set
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+# CONFIG_DVB_DRXK is not set
+# CONFIG_DVB_TDA18271C2DD is not set
+# CONFIG_DVB_SI2165 is not set
+# CONFIG_DVB_MN88472 is not set
+# CONFIG_DVB_MN88473 is not set
+
+#
+# DVB-S (satellite) frontends
+#
+# CONFIG_DVB_CX24110 is not set
+# CONFIG_DVB_CX24123 is not set
+# CONFIG_DVB_MT312 is not set
+# CONFIG_DVB_ZL10036 is not set
+# CONFIG_DVB_ZL10039 is not set
+# CONFIG_DVB_S5H1420 is not set
+# CONFIG_DVB_STV0288 is not set
+# CONFIG_DVB_STB6000 is not set
+# CONFIG_DVB_STV0299 is not set
+# CONFIG_DVB_STV6110 is not set
+# CONFIG_DVB_STV0900 is not set
+# CONFIG_DVB_TDA8083 is not set
+# CONFIG_DVB_TDA10086 is not set
+# CONFIG_DVB_TDA8261 is not set
+# CONFIG_DVB_VES1X93 is not set
+# CONFIG_DVB_TUNER_ITD1000 is not set
+# CONFIG_DVB_TUNER_CX24113 is not set
+# CONFIG_DVB_TDA826X is not set
+# CONFIG_DVB_TUA6100 is not set
+# CONFIG_DVB_CX24116 is not set
+# CONFIG_DVB_CX24117 is not set
+# CONFIG_DVB_CX24120 is not set
+# CONFIG_DVB_SI21XX is not set
+# CONFIG_DVB_TS2020 is not set
+# CONFIG_DVB_DS3000 is not set
+# CONFIG_DVB_MB86A16 is not set
+# CONFIG_DVB_TDA10071 is not set
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+# CONFIG_DVB_S5H1432 is not set
+# CONFIG_DVB_DRXD is not set
+# CONFIG_DVB_L64781 is not set
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_ZL10353 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+# CONFIG_DVB_DIB7000M is not set
+# CONFIG_DVB_DIB7000P is not set
+# CONFIG_DVB_DIB9000 is not set
+# CONFIG_DVB_TDA10048 is not set
+# CONFIG_DVB_AF9013 is not set
+# CONFIG_DVB_EC100 is not set
+# CONFIG_DVB_STV0367 is not set
+# CONFIG_DVB_CXD2820R is not set
+# CONFIG_DVB_CXD2841ER is not set
+# CONFIG_DVB_RTL2830 is not set
+# CONFIG_DVB_RTL2832 is not set
+# CONFIG_DVB_RTL2832_SDR is not set
+# CONFIG_DVB_SI2168 is not set
+# CONFIG_DVB_ZD1301_DEMOD is not set
+# CONFIG_DVB_CXD2880 is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_VES1820 is not set
+# CONFIG_DVB_TDA10021 is not set
+# CONFIG_DVB_TDA10023 is not set
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+# CONFIG_DVB_NXT200X is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+# CONFIG_DVB_BCM3510 is not set
+# CONFIG_DVB_LGDT330X is not set
+# CONFIG_DVB_LGDT3305 is not set
+# CONFIG_DVB_LGDT3306A is not set
+# CONFIG_DVB_LG2160 is not set
+# CONFIG_DVB_S5H1409 is not set
+# CONFIG_DVB_AU8522_DTV is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_S5H1411 is not set
+
+#
+# ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_S921 is not set
+# CONFIG_DVB_DIB8000 is not set
+# CONFIG_DVB_MB86A20S is not set
+
+#
+# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_TC90522 is not set
+# CONFIG_DVB_MN88443X is not set
+
+#
+# Digital terrestrial only tuners/PLL
+#
+# CONFIG_DVB_PLL is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+#
+# SEC control devices for DVB-S
+#
+# CONFIG_DVB_DRX39XYJ is not set
+# CONFIG_DVB_LNBH25 is not set
+# CONFIG_DVB_LNBH29 is not set
+# CONFIG_DVB_LNBP21 is not set
+# CONFIG_DVB_LNBP22 is not set
+# CONFIG_DVB_ISL6405 is not set
+# CONFIG_DVB_ISL6421 is not set
+# CONFIG_DVB_ISL6423 is not set
+# CONFIG_DVB_A8293 is not set
+# CONFIG_DVB_LGS8GL5 is not set
+# CONFIG_DVB_LGS8GXX is not set
+# CONFIG_DVB_ATBM8830 is not set
+# CONFIG_DVB_TDA665x is not set
+# CONFIG_DVB_IX2505V is not set
+# CONFIG_DVB_M88RS2000 is not set
+# CONFIG_DVB_AF9033 is not set
+# CONFIG_DVB_HORUS3A is not set
+# CONFIG_DVB_ASCOT2E is not set
+# CONFIG_DVB_HELENE is not set
+#
+# Common Interface (EN50221) controller drivers
+#
+# CONFIG_DVB_CXD2099 is not set
+# CONFIG_DVB_SP2 is not set
+# end of Customise DVB Frontends
+#
+# Digital TV options
+#
+# CONFIG_DVB_NET is not set
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+# end of Digital TV options
+
+CONFIG_FB=y
+CONFIG_FB_CVITEK=m
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_PROC_FS is not set
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=1
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_CV182XA_CV182XAADC=y
+CONFIG_SND_SOC_CV182XA_CV182XADAC=y
+CONFIG_SND_CV1835_I2S=y
+CONFIG_SND_SOC_CV182XAADC=y
+CONFIG_SND_SOC_CV182XADAC=y
+CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
+CONFIG_CV1835_I2S_SUBSYS=y
+CONFIG_USB=y
+CONFIG_USB_DWC2=m
+CONFIG_USB_GADGET=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_CVI=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC_CVITEK=y
+CONFIG_RTC_CLASS=y
+# CONFIG_VIRTIO_MENU is not set
+CONFIG_STAGING=y
+CONFIG_ION=y
+CONFIG_ION_SYSTEM_HEAP=n
+CONFIG_ION_CARVEOUT_HEAP=y
+CONFIG_ION_CMA_HEAP=n
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_CV1835_SYSDMA_REMAP=y
+CONFIG_PWM=y
+CONFIG_SIFIVE_PLIC=y
+CONFIG_ANDROID=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_WBUF_VERIFY=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_ZLIB is not set
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=0
+CONFIG_PRINTK_TIME=y
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO=n
+CONFIG_DEBUG_INFO_DWARF4=n
+CONFIG_GDB_SCRIPTS=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_DEBUG_FS=y
+CONFIG_BLK_DEV_INITRD=n
+CONFIG_KALLSYMS=y
+CONFIG_FRAME_POINTER=n
+CONFIG_DEBUG_MISC=n
+CONFIG_RCU_TRACE=n
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_U_AUDIO=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_UAC1=m
+CONFIG_USB_F_UVC=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+# CONFIG_USB_CONFIGFS_OBEX is not set
+# CONFIG_USB_CONFIGFS_NCM is not set
+CONFIG_USB_CONFIGFS_ECM=y
+# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+# CONFIG_USB_CONFIGFS_F_LB_SS is not set
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_UEVENT=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONFIGFS_F_UAC2 is not set
+# CONFIG_USB_CONFIGFS_F_MIDI is not set
+# CONFIG_USB_CONFIGFS_F_HID is not set
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_BUG=n
+CONFIG_IO_URING=n
+CONFIG_ADVISE_SYSCALLS=n
+CONFIG_SIGNALFD=n
+CONFIG_TIMERFD=n
+CONFIG_EPOLL=n
diff --git a/build/boards/cv181x/cv1813h_wevb_0007a_spinor/u-boot/cv1813h_wevb_0007a_spinor_defconfig b/build/boards/cv181x/cv1813h_wevb_0007a_spinor/u-boot/cv1813h_wevb_0007a_spinor_defconfig
new file mode 120000
index 000000000..9c0c8b867
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_spinor/u-boot/cv1813h_wevb_0007a_spinor_defconfig
@@ -0,0 +1 @@
+../../../default/u-boot/cv181x_wevb_riscv_spinor_defconfig
\ No newline at end of file
diff --git a/build/boards/cv181x/sg2000_wevb_arm64_sd/config.json b/build/boards/cv181x/sg2000_wevb_arm64_sd/config.json
new file mode 100644
index 000000000..7bc49dc92
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_arm64_sd/config.json
@@ -0,0 +1,8 @@
+{
+ "ddr_cfg_list": [
+ "ddr3_1866_x16",
+ "ddr3_2133_x16",
+ "ddr_auto_x16"
+ ],
+ "board_information": "CA53 + SPINOR 16MB + BGA SIP 128MB"
+}
diff --git a/build/boards/cv181x/sg2000_wevb_arm64_sd/dts_arm64/sg2000_wevb_arm64_sd.dts b/build/boards/cv181x/sg2000_wevb_arm64_sd/dts_arm64/sg2000_wevb_arm64_sd.dts
new file mode 100644
index 000000000..0eac8fbd4
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_arm64_sd/dts_arm64/sg2000_wevb_arm64_sd.dts
@@ -0,0 +1,13 @@
+/dts-v1/;
+#include "cv181x_base_arm.dtsi"
+#include "cv181x_asic_bga.dtsi"
+#include "cv181x_asic_sd.dtsi"
+#include "cv181x_default_memmap.dtsi"
+
+/ {
+
+ sd:cv-sd@4310000 {
+ max-frequency = <10000000>;
+ };
+};
+
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/linux/cvitek_cv1800b_sophpi_duo_sd_defconfig b/build/boards/cv181x/sg2000_wevb_arm64_sd/linux/cvitek_sg2000_wevb_arm64_sd_defconfig
similarity index 71%
rename from build/boards/cv180x/cv1800b_sophpi_duo_sd/linux/cvitek_cv1800b_sophpi_duo_sd_defconfig
rename to build/boards/cv181x/sg2000_wevb_arm64_sd/linux/cvitek_sg2000_wevb_arm64_sd_defconfig
index f30468dd2..7a0fce9ec 100644
--- a/build/boards/cv180x/cv1800b_sophpi_duo_sd/linux/cvitek_cv1800b_sophpi_duo_sd_defconfig
+++ b/build/boards/cv181x/sg2000_wevb_arm64_sd/linux/cvitek_sg2000_wevb_arm64_sd_defconfig
@@ -1,37 +1,45 @@
+CONFIG_KERNEL_XZ=y
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
+CONFIG_FRAME_WARN=2048
CONFIG_PREEMPT=y
-CONFIG_IKCONFIG=n
-CONFIG_IKCONFIG_PROC=n
CONFIG_LOG_BUF_SHIFT=15
CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_UID16 is not set
# CONFIG_SYSFS_SYSCALL is not set
-CONFIG_INITRAMFS_SOURCE=""
# CONFIG_FHANDLE is not set
# CONFIG_BASE_FULL is not set
# CONFIG_AIO is not set
CONFIG_EMBEDDED=y
# CONFIG_SLUB_DEBUG is not set
+CONFIG_ARM_LPAE=y
+CONFIG_SWP_EMULATE=y
+# CONFIG_VDSO is not set
+CONFIG_HAVE_ARM_ARCH_TIMER=y
+CONFIG_ARM_PSCI=y
+CONFIG_THUMB2_KERNEL=y
CONFIG_FORCE_MAX_ZONEORDER=10
+# CONFIG_ATAGS is not set
+CONFIG_VFP=y
+CONFIG_NEON=y
+# CONFIG_SUSPEND is not set
CONFIG_ARCH_CVITEK=y
-CONFIG_SOC_THEAD=y
-# CONFIG_RISCV_SWIOTLB is not set
-CONFIG_VECTOR=y
-CONFIG_VECTOR_0_7=y
-# CONFIG_COMPAT is not set
-CONFIG_ARCH_CV180X=y
-CONFIG_ARCH_CVITEK_CHIP="cv180x"
-CONFIG_ARCH_CV180X_ASIC=y
-CONFIG_COMPAT_32BIT_TIME=y
-# CONFIG_STRICT_KERNEL_RWX is not set
+CONFIG_ARCH_CV181X=y
+CONFIG_ARCH_CVITEK_CHIP="cv181x"
+CONFIG_ARCH_CV181X_ASIC=y
+CONFIG_POWER_RESET=y
+# CONFIG_STACKPROTECTOR is not set
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
+# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
# CONFIG_MQ_IOSCHED_DEADLINE is not set
# CONFIG_MQ_IOSCHED_KYBER is not set
# CONFIG_COREDUMP is not set
@@ -40,20 +48,30 @@ CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
# CONFIG_IPV6 is not set
-CONFIG_CFG80211=y
+CONFIG_CFG80211=m
CONFIG_RFKILL=y
-CONFIG_UEVENT_HELPER=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_ALLOW_DEV_COREDUMP is not set
+CONFIG_DMA_CMA=n
+CONFIG_CMA_SIZE_MBYTES=0
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_OF_PARTS is not set
CONFIG_MTD_BLOCK=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_MTD_NAND_PLATFORM=y
+CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_SPI_NOR=y
CONFIG_SPI_CVI_SPIF=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_BLOCK=y
CONFIG_NETDEVICES=y
# CONFIG_NET_CORE is not set
# CONFIG_NET_VENDOR_ALACRITECH is not set
@@ -64,11 +82,15 @@ CONFIG_NETDEVICES=y
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_CADENCE is not set
# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_HISILICON is not set
# CONFIG_NET_VENDOR_HUAWEI is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MELLANOX is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set
@@ -81,13 +103,14 @@ CONFIG_NETDEVICES=y
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_STMMAC_ETH=y
# CONFIG_DWMAC_GENERIC is not set
# CONFIG_NET_VENDOR_SYNOPSYS is not set
# CONFIG_NET_VENDOR_VIA is not set
# CONFIG_NET_VENDOR_WIZNET is not set
-CONFIG_CV182XA_PHY=y
+CONFIG_CVITEK_PHY=y
# CONFIG_USB_NET_DRIVERS is not set
# CONFIG_WLAN_VENDOR_ADMTEK is not set
# CONFIG_WLAN_VENDOR_ATH is not set
@@ -99,10 +122,13 @@ CONFIG_CV182XA_PHY=y
# CONFIG_WLAN_VENDOR_MARVELL is not set
# CONFIG_WLAN_VENDOR_MEDIATEK is not set
# CONFIG_WLAN_VENDOR_RALINK is not set
+CONFIG_RTL8188FU=m
# CONFIG_WLAN_VENDOR_RSI is not set
# CONFIG_WLAN_VENDOR_ST is not set
# CONFIG_WLAN_VENDOR_TI is not set
# CONFIG_WLAN_VENDOR_ZYDAS is not set
+CONFIG_INPUT=y
+# CONFIG_SERIO is not set
# CONFIG_VT is not set
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_8250=y
@@ -110,45 +136,36 @@ CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=5
CONFIG_SERIAL_8250_RUNTIME_UARTS=5
CONFIG_SERIAL_8250_DW=y
-CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
CONFIG_HW_RANDOM=y
CONFIG_I2C=y
+CONFIG_I2C_SMBUS=y
CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MUX=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SPI=y
# CONFIG_PTP_1588_CLOCK is not set
-CONFIG_PINCTRL=y
CONFIG_CVITEK_PINCTRL_CV1835=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
-CONFIG_POWER_RESET=y
CONFIG_THERMAL=y
CONFIG_THERMAL_NETLINK=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_EMULATION=y
-CONFIG_CV180X_THERMAL=m
CONFIG_WATCHDOG=y
CONFIG_MEDIA_SUPPORT=n
-CONFIG_VIDEO_V4L2_SUBDEV_API=n
-# CONFIG_DVB_NET is not set
-# CONFIG_DVB_DYNAMIC_MINORS is not set
-CONFIG_V4L_PLATFORM_DRIVERS=n
-CONFIG_V4L_MEM2MEM_DRIVERS=n
-CONFIG_VIDEO_MEM2MEM_DEINTERLACE=n
+CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
+CONFIG_VIDEO_CVITEK_MIPI_TX=m
CONFIG_FB=y
CONFIG_FB_CVITEK=m
-CONFIG_FB_TFT=y
-CONFIG_FB_TFT_SSD1306=m
CONFIG_SOUND=y
CONFIG_SND=y
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_PROC_FS is not set
# CONFIG_SND_DRIVERS is not set
-CONFIG_SND_HDA_PREALLOC_SIZE=1
+CONFIG_SND_HDA_PREALLOC_SIZE=n
+# CONFIG_SND_ARM is not set
# CONFIG_SND_SPI is not set
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=y
@@ -157,11 +174,84 @@ CONFIG_SND_SOC_CV182XA_CV182XADAC=y
CONFIG_SND_CV1835_I2S=y
CONFIG_SND_SOC_CV182XAADC=y
CONFIG_SND_SOC_CV182XADAC=y
+# CONFIG_SND_SOC_CV182X_CV182XPDM is not set
+# CONFIG_SND_SOC_CV1835PDM is not set
+# CONFIG_SND_SOC_CV1835_CONCURRENT_I2S is not set
CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
CONFIG_CV1835_I2S_SUBSYS=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_CVI=y
+CONFIG_DMADEVICES=n
+CONFIG_DW_DMAC_CVITEK=n
+# CONFIG_VIRTIO_MENU is not set
+CONFIG_STAGING=y
+CONFIG_ION=y
+CONFIG_ION_SYSTEM_HEAP=y
+CONFIG_ION_CARVEOUT_HEAP=y
+CONFIG_ION_CMA_HEAP=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_CV1835_SYSDMA_REMAP=n
+CONFIG_PWM=y
+CONFIG_ANDROID=y
+# CONFIG_TEE=y
+# CONFIG_OPTEE=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT4_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_WBUF_VERIFY=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_SQUASHFS_FILE_DIRECT=y
+# CONFIG_SQUASHFS_ZLIB is not set
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_EMBEDDED=y
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=1
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+# CONFIG_CRYPTO_ECHAINIV is not set
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_PRINTK_TIME=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+
+CONFIG_RTC_CLASS=y
+
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_SG=y
CONFIG_USB=y
-CONFIG_USB_DWC2=y
-CONFIG_USB_GADGET=y
+CONFIG_USB_OTG=y
+CONFIG_USB_OTG_FSM=y
+CONFIG_USB_STORAGE=y
CONFIG_USB_LIBCOMPOSITE=y
CONFIG_USB_F_ACM=y
CONFIG_USB_U_SERIAL=y
@@ -172,94 +262,24 @@ CONFIG_USB_F_ECM=y
CONFIG_USB_F_EEM=y
CONFIG_USB_F_RNDIS=y
CONFIG_USB_F_MASS_STORAGE=y
-CONFIG_USB_F_FS=y
CONFIG_USB_F_UAC1=y
CONFIG_USB_F_UVC=y
+CONFIG_USB_UAS=y
+CONFIG_USB_DWC2=m
+CONFIG_USB_DWC2_DUAL_ROLE=y
+CONFIG_USB_GADGET=y
+CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=y
CONFIG_USB_CONFIGFS_SERIAL=y
-CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_ACM=y
-CONFIG_MMC=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_PLTFM=y
-CONFIG_MMC_SDHCI_CVI=y
-CONFIG_RTC_CLASS=y
-CONFIG_DMADEVICES=y
-CONFIG_DW_DMAC_CVITEK=y
-# CONFIG_VIRTIO_MENU is not set
-CONFIG_STAGING=y
-CONFIG_ION=y
-CONFIG_ION_SYSTEM_HEAP=y
-CONFIG_ION_CARVEOUT_HEAP=y
-CONFIG_ION_CMA_HEAP=y
-# CONFIG_IOMMU_SUPPORT is not set
-CONFIG_CV1835_SYSDMA_REMAP=y
-CONFIG_PWM=y
-CONFIG_SIFIVE_PLIC=y
-CONFIG_ANDROID=y
-# CONFIG_MANDATORY_FILE_LOCKING is not set
-CONFIG_VFAT_FS=y
-# CONFIG_PROC_PAGE_MONITOR is not set
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_WBUF_VERIFY=y
-CONFIG_UBIFS_FS=y
-CONFIG_SQUASHFS=y
-CONFIG_EXT3_FS=y
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT2=y
-CONFIG_EXT4_DEBUG=y
-# CONFIG_SQUASHFS_ZLIB is not set
-CONFIG_SQUASHFS_LZ4=n
-CONFIG_SQUASHFS_XZ=y
-CONFIG_NFS_FS=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_2=y
-CONFIG_NLS_ISO8859_3=y
-CONFIG_CRYPTO_SHA256=y
-# CONFIG_CRYPTO_HW is not set
-# CONFIG_XZ_DEC_X86 is not set
-# CONFIG_XZ_DEC_POWERPC is not set
-# CONFIG_XZ_DEC_IA64 is not set
-# CONFIG_XZ_DEC_ARMTHUMB is not set
-# CONFIG_XZ_DEC_SPARC is not set
-CONFIG_DMA_CMA=y
-CONFIG_CMA_SIZE_MBYTES=0
-CONFIG_PRINTK_TIME=y
-# CONFIG_DEBUG_BUGVERBOSE is not set
-# CONFIG_ENABLE_MUST_CHECK is not set
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_DEBUG_PREEMPT is not set
-# CONFIG_FTRACE is not set
-# CONFIG_RUNTIME_TESTING_MENU is not set
-CONFIG_DYNAMIC_DEBUG=y
-CONFIG_DEBUG_INFO=n
-CONFIG_DEBUG_INFO_DWARF4=n
-CONFIG_DEBUG_FS=y
-CONFIG_GDB_SCRIPTS=y
-CONFIG_DEBUG_FS=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_RD_LZ4=y
-CONFIG_RD_ZSTD=y
-CONFIG_KALLSYMS=y
-CONFIG_FRAME_POINTER=n
-CONFIG_DEBUG_MISC=n
-CONFIG_RCU_TRACE=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
-CONFIG_MULTIUSER=y
-CONFIG_BUG=n
-CONFIG_IO_URING=n
-CONFIG_ADVISE_SYSCALLS=n
-CONFIG_SIGNALFD=n
-CONFIG_TIMERFD=n
-CONFIG_EPOLL=n
-CONFIG_ELF_CORE=y
-CONFIG_COREDUMP=y
-CONFIG_PROC_SYSCTL=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_UEVENT=y
+CONFIG_USB_PHY=y
+CONFIG_USB_GPIO_VBUS=y
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/memmap.py b/build/boards/cv181x/sg2000_wevb_arm64_sd/memmap.py
similarity index 77%
rename from build/boards/cv180x/cv1800b_sophpi_duo_sd/memmap.py
rename to build/boards/cv181x/sg2000_wevb_arm64_sd/memmap.py
index 84161267a..ccac8b44b 100644
--- a/build/boards/cv180x/cv1800b_sophpi_duo_sd/memmap.py
+++ b/build/boards/cv181x/sg2000_wevb_arm64_sd/memmap.py
@@ -10,7 +10,7 @@ class MemoryMap:
]
DRAM_BASE = 0x80000000
- DRAM_SIZE = 64 * SIZE_1M
+ DRAM_SIZE = 512 * SIZE_1M
# ==============
# C906L FreeRTOS
@@ -40,12 +40,11 @@ class MemoryMap:
# =================
# Multimedia buffer. Used by u-boot/kernel/FreeRTOS
# =================
- ION_SIZE = 26.80078125 * SIZE_1M
- H26X_BITSTREAM_SIZE = 0 * SIZE_1M
+ ION_SIZE = 70 * SIZE_1M
+ H26X_BITSTREAM_SIZE = 2 * SIZE_1M
H26X_ENC_BUFF_SIZE = 0
- ISP_MEM_BASE_SIZE = 0 * SIZE_1M
- BOOTLOGO_SIZE = 0 * SIZE_1M
- FREERTOS_RESERVED_ION_SIZE = H26X_BITSTREAM_SIZE + H26X_ENC_BUFF_SIZE + ISP_MEM_BASE_SIZE + BOOTLOGO_SIZE
+ ISP_MEM_BASE_SIZE = 20 * SIZE_1M
+ FREERTOS_RESERVED_ION_SIZE = H26X_BITSTREAM_SIZE + H26X_ENC_BUFF_SIZE + ISP_MEM_BASE_SIZE
# ION after FreeRTOS
ION_ADDR = FREERTOS_ADDR - ION_SIZE
@@ -55,26 +54,30 @@ class MemoryMap:
H26X_ENC_BUFF_ADDR = H26X_BITSTREAM_ADDR + H26X_BITSTREAM_SIZE
ISP_MEM_BASE_ADDR = H26X_ENC_BUFF_ADDR + H26X_ENC_BUFF_SIZE
- # Boot logo is after ISP buffer and inside the ION buffer
- BOOTLOGO_ADDR = ISP_MEM_BASE_ADDR + ISP_MEM_BASE_SIZE
+ assert ISP_MEM_BASE_ADDR + ISP_MEM_BASE_SIZE <= ION_ADDR + ION_SIZE
- assert BOOTLOGO_ADDR + BOOTLOGO_SIZE <= ION_ADDR + ION_SIZE
+ # Boot logo is after the ION buffer
+ # Framebuffer uses boot logo's reserved memory
+ BOOTLOGO_SIZE = 1800 * SIZE_1K
+ BOOTLOGO_ADDR = ION_ADDR - BOOTLOGO_SIZE
+ FRAMEBUFFER_SIZE = BOOTLOGO_SIZE
+ FRAMEBUFFER_ADDR = BOOTLOGO_ADDR
# ===================
# FSBL and u-boot-2021
# ===================
CVI_UPDATE_HEADER_SIZE = SIZE_1K
- UIMAG_SIZE = 15 * SIZE_1M
+ UIMAG_SIZE = 16 * SIZE_1M
# kernel image loading buffer
- UIMAG_ADDR = DRAM_BASE + 20 * SIZE_1M
+ UIMAG_ADDR = DRAM_BASE + 24 * SIZE_1M
CVI_UPDATE_HEADER_ADDR = UIMAG_ADDR - CVI_UPDATE_HEADER_SIZE
# FSBL decompress buffer
FSBL_UNZIP_ADDR = UIMAG_ADDR
FSBL_UNZIP_SIZE = UIMAG_SIZE
- assert UIMAG_ADDR + UIMAG_SIZE <= ION_ADDR
+ assert UIMAG_ADDR + UIMAG_SIZE <= BOOTLOGO_ADDR
# u-boot's run address and entry point
CONFIG_SYS_TEXT_BASE = DRAM_BASE + 2 * SIZE_1M
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/partition/partition_sd.xml b/build/boards/cv181x/sg2000_wevb_arm64_sd/partition/partition_sd.xml
similarity index 100%
rename from build/boards/cv180x/cv1800b_sophpi_duo_sd/partition/partition_sd.xml
rename to build/boards/cv181x/sg2000_wevb_arm64_sd/partition/partition_sd.xml
diff --git a/build/boards/cv181x/sg2000_wevb_arm64_sd/rootfs_script/clean_rootfs.sh b/build/boards/cv181x/sg2000_wevb_arm64_sd/rootfs_script/clean_rootfs.sh
new file mode 100755
index 000000000..8531fb1bf
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_arm64_sd/rootfs_script/clean_rootfs.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+SYSTEM_DIR=$1
+rm -rf $SYSTEM_DIR/mnt/system/usr
+rm -rf $SYSTEM_DIR/mnt/system/lib
+rm -rf $SYSTEM_DIR/mnt/system/lib/libsns_gc*
+rm -rf $SYSTEM_DIR/mnt/system/lib/libsns_imx*
+rm -rf $SYSTEM_DIR/mnt/system/lib/libsns_sc*
+rm -rf $SYSTEM_DIR/mnt/system/lib/libcipher.so
+
+rm -rf $SYSTEM_DIR/mnt/system/m2m-deinterlace.ko
+rm -rf $SYSTEM_DIR/mnt/system/efivarfs.ko
+
+du -sh $SYSTEM_DIR/* |sort -rh
+
+rm -rf $SYSTEM_DIR/etc/init.d/S23ntp
+rm -rf $SYSTEM_DIR/bin/ntpd
diff --git a/build/boards/cv181x/sg2000_wevb_arm64_sd/sg2000_wevb_arm64_sd_defconfig b/build/boards/cv181x/sg2000_wevb_arm64_sd/sg2000_wevb_arm64_sd_defconfig
new file mode 100644
index 000000000..ccc2eba35
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_arm64_sd/sg2000_wevb_arm64_sd_defconfig
@@ -0,0 +1,35 @@
+CONFIG_CHIP_sg2000=y
+CONFIG_BOARD_wevb_arm64_sd=y
+CONFIG_DDR_CFG_ddr3_1866_x16=y
+CONFIG_ARCH="arm64"
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_CROSS_COMPILE_KERNEL="aarch64-linux-gnu-"
+CONFIG_KERNEL_ENTRY_HACK=y
+CONFIG_KERNEL_ENTRY_HACK_ADDR="0x80108000"
+CONFIG_TOOLCHAIN_GLIBC_ARM64=y
+CONFIG_FLASH_SIZE_SHRINK=y
+CONFIG_BOOT_IMAGE_SINGLE_DTB=y
+CONFIG_STORAGE_TYPE_sd=y
+CONFIG_SENSOR_GCORE_GC2053=y
+CONFIG_SENSOR_GCORE_GC2053_1L=y
+CONFIG_SENSOR_GCORE_GC2093=y
+CONFIG_SENSOR_GCORE_GC4653=y
+CONFIG_SENSOR_PIXELPLUS_PR2020=y
+CONFIG_SENSOR_SONY_IMX307=y
+CONFIG_SENSOR_SONY_IMX327=y
+CONFIG_UBOOT_2021_10=y
+CONFIG_KERNEL_SRC_5.10=y
+CONFIG_KERNEL_SRC="linux_5.10"
+CONFIG_KERNEL_LZMA=y
+CONFIG_SKIP_RAMDISK=y
+CONFIG_USE_4K_ERASE_SIZE_FOR_JFFS2=y
+CONFIG_SENSOR_TUNING_PARAM_cv181x_src_gcore_gc4653=y
+# CONFIG_ROOTFS_OVERLAYFS is not set
+CONFIG_TARGET_PACKAGE_DROPBEAR=y
+CONFIG_TARGET_PACKAGE_MTD-UTILS=y
+# CONFIG_TARGET_PACKAGE_RSYSLOG is not set
+# CONFIG_TARGET_PACKAGE_GATORD is not set
+CONFIG_ENABLE_FREERTOS=y
+CONFIG_ENABLE_RTOS_DUMP_PRINT=y
+CONFIG_DUMP_PRINT_SZ_IDX=17
+CONFIG_TARGET_PACKAGE_NTP=y
diff --git a/build/boards/cv181x/sg2000_wevb_arm64_sd/u-boot/cvi_board_init.c b/build/boards/cv181x/sg2000_wevb_arm64_sd/u-boot/cvi_board_init.c
new file mode 100644
index 000000000..3d95e69f4
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_arm64_sd/u-boot/cvi_board_init.c
@@ -0,0 +1,70 @@
+
+static void set_rtc_register_for_power(void)
+{
+ mmio_write_32(0x050250AC, 0x2);
+ mmio_write_32(0x050260D0, 0x3);
+ mmio_write_32(0x03001098, 0x0);
+ mmio_write_32(0x0300109C, 0x0);
+ mmio_write_32(0x03001090, 0x0);
+ mmio_write_32(0x03001094, 0x0);
+ mmio_write_32(0x05027084, 0x0);
+ mmio_write_32(0x05027088, 0x0);
+ mmio_write_32(0x0502708C, 0x0);
+ mmio_write_32(0x05027090, 0x0);
+ mmio_write_32(0x050260BC, 0x1700);
+ mmio_write_32(0x05026128, 0x0);
+}
+
+int cvi_board_init(void)
+{
+ PINMUX_CONFIG(CAM_MCLK0, CAM_MCLK0);
+
+ PINMUX_CONFIG(IIC3_SCL, IIC3_SCL);
+ PINMUX_CONFIG(IIC3_SDA, IIC3_SDA);
+
+
+ //##########I2C0 ######### demo board i2c0 need using gpio to simulate i2c
+ /*touch panel*/
+ PINMUX_CONFIG(IIC0_SCL, XGPIOA_28);
+ PINMUX_CONFIG(IIC0_SDA, XGPIOA_29);
+ PINMUX_CONFIG(VIVO_D9, XGPIOB_12);
+ PINMUX_CONFIG(VIVO_D8, XGPIOB_13);
+ //#########SENSOR_PWR_EN
+ PINMUX_CONFIG(CAM_PD0, XGPIOA_1);
+ //#########WIFI
+ pinmux_config(PINMUX_SDIO1);
+ PINMUX_CONFIG(VIVO_D10, XGPIOB_11);
+ //########AHD
+ PINMUX_CONFIG(ADC3, IIC4_SCL);
+ PINMUX_CONFIG(ADC2, IIC4_SDA);
+
+ PINMUX_CONFIG(USB_VBUS_EN, XGPIOB_5);
+ PINMUX_CONFIG(PAD_MIPIRX5N, XGPIOC_0);
+
+ //#######tp
+ PINMUX_CONFIG(VIVO_D9, XGPIOB_12);
+ PINMUX_CONFIG(VIVO_D8, XGPIOB_13);
+ //########panel
+ PINMUX_CONFIG(JTAG_CPU_TRST, XGPIOA_20);
+ pinmux_config(PINMUX_DSI);
+ PINMUX_CONFIG(AUX0, XGPIOA_30);
+ PINMUX_CONFIG(PWR_GPIO0, PWR_GPIO_0);
+
+ //######## mipi-dsi
+ PINMUX_CONFIG(PAD_MIPI_TXM0, XGPIOC_12);
+ PINMUX_CONFIG(PAD_MIPI_TXP0, XGPIOC_13);
+ PINMUX_CONFIG(PAD_MIPI_TXM1, XGPIOC_14);
+ PINMUX_CONFIG(PAD_MIPI_TXP1, XGPIOC_15);
+ PINMUX_CONFIG(PAD_MIPI_TXM2, XGPIOC_16);
+ PINMUX_CONFIG(PAD_MIPI_TXP2, XGPIOC_17);
+ PINMUX_CONFIG(PAD_MIPI_TXM3, XGPIOC_20);
+ PINMUX_CONFIG(PAD_MIPI_TXP3, XGPIOC_21);
+ PINMUX_CONFIG(PAD_MIPI_TXM4, XGPIOC_18);
+ PINMUX_CONFIG(PAD_MIPI_TXP4, XGPIOC_19);
+
+ //######## usb
+ PINMUX_CONFIG(USB_VBUS_DET, XGPIOB_6);
+ set_rtc_register_for_power();
+
+ return 0;
+}
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvitek.h b/build/boards/cv181x/sg2000_wevb_arm64_sd/u-boot/cvitek.h
similarity index 100%
rename from build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvitek.h
rename to build/boards/cv181x/sg2000_wevb_arm64_sd/u-boot/cvitek.h
diff --git a/build/boards/cv181x/sg2000_wevb_arm64_sd/u-boot/cvitek_sg2000_wevb_arm64_sd_defconfig b/build/boards/cv181x/sg2000_wevb_arm64_sd/u-boot/cvitek_sg2000_wevb_arm64_sd_defconfig
new file mode 100644
index 000000000..958013f2a
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_arm64_sd/u-boot/cvitek_sg2000_wevb_arm64_sd_defconfig
@@ -0,0 +1,49 @@
+CONFIG_ARM=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="cv181x_asic"
+CONFIG_IDENT_STRING=" cvitek_cv181x"
+CONFIG_ARMV8_SET_SMPEN=y
+CONFIG_TARGET_CVITEK_CV181X=y
+#CONFIG_CVITEK_SPI_FLASH=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_BOOTDELAY=1
+# CONFIG_DISPLAY_CPUINFO is not set
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_SYS_PROMPT="soph# "
+# CONFIG_CMD_CONSOLE is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_CRC32 is not set
+# CONFIG_CMD_LZMADEC is not set
+# CONFIG_CMD_UNLZ4 is not set
+# CONFIG_CMD_UNZIP is not set
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_MMC=y
+# CONFIG_CMD_ITEST is not set
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_CVI_SD_UPDATE=y
+# CONFIG_ISO_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+CONFIG_OF_CONTROL=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_DM=y
+CONFIG_DM_MMC=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_CVITEK=y
+CONFIG_MTD=y
+# CONFIG_PHY_SMSC is not set
+CONFIG_DM_ETH=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_PHY_CVITEK=y
+CONFIG_SYS_NS16550=y
+CONFIG_SPI=y
+CONFIG_LZ4=y
+CONFIG_LZMA=y
+# CONFIG_TOOLS_LIBCRYPTO is not set
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
+CONFIG_ENV_IS_NOWHERE=y
diff --git a/build/boards/cv181x/sg2000_wevb_riscv64_sd/config.json b/build/boards/cv181x/sg2000_wevb_riscv64_sd/config.json
new file mode 100644
index 000000000..61f78ddb1
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_riscv64_sd/config.json
@@ -0,0 +1,9 @@
+{
+ "ddr_cfg_list": [
+ "",
+ "ddr3_1866_x16",
+ "ddr3_2133_x16",
+ "ddr_auto_x16"
+ ],
+ "board_information": "C906B + EMMC 8192MB + DDR 512MB"
+}
diff --git a/build/boards/cv181x/sg2000_wevb_riscv64_sd/dts_riscv/sg2000_wevb_riscv64_sd.dts b/build/boards/cv181x/sg2000_wevb_riscv64_sd/dts_riscv/sg2000_wevb_riscv64_sd.dts
new file mode 100644
index 000000000..9b649d734
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_riscv64_sd/dts_riscv/sg2000_wevb_riscv64_sd.dts
@@ -0,0 +1,10 @@
+/dts-v1/;
+#include "cv181x_base_riscv.dtsi"
+#include "cv181x_asic_bga.dtsi"
+#include "cv181x_asic_sd.dtsi"
+#include "cv181x_default_memmap.dtsi"
+
+/ {
+
+};
+
diff --git a/build/boards/cv181x/sg2000_wevb_riscv64_sd/linux/cvitek_sg2000_wevb_riscv64_sd_defconfig b/build/boards/cv181x/sg2000_wevb_riscv64_sd/linux/cvitek_sg2000_wevb_riscv64_sd_defconfig
new file mode 100644
index 000000000..b280a5230
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_riscv64_sd/linux/cvitek_sg2000_wevb_riscv64_sd_defconfig
@@ -0,0 +1,467 @@
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=15
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_BASE_FULL is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+# CONFIG_SLUB_DEBUG is not set
+CONFIG_FORCE_MAX_ZONEORDER=10
+CONFIG_ARCH_CVITEK=y
+CONFIG_SOC_THEAD=y
+# CONFIG_RISCV_SWIOTLB is not set
+CONFIG_VECTOR=y
+CONFIG_VECTOR_0_7=y
+# CONFIG_COMPAT is not set
+CONFIG_ARCH_CVITEK_CHIP="cv181x"
+CONFIG_ARCH_CV181X_ASIC=y
+CONFIG_POWER_RESET=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_STRICT_KERNEL_RWX=n
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_MQ_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_KYBER is not set
+CONFIG_ELF_CORE=y
+CONFIG_COREDUMP=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_CMA=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
+CONFIG_CFG80211=m
+CONFIG_RFKILL=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_NETDEVICES=y
+# CONFIG_NET_CORE is not set
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_STMMAC_ETH=y
+# CONFIG_DWMAC_GENERIC is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_CVITEK_PHY=y
+CONFIG_CVITEK_PHY_UAPS=y
+# CONFIG_USB_NET_DRIVERS is not set
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_RTL8188FU is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+CONFIG_INPUT=y
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=5
+CONFIG_SERIAL_8250_RUNTIME_UARTS=5
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PINCTRL=y
+CONFIG_CVITEK_PINCTRL_CV1835=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_WATCHDOG=y
+CONFIG_MEDIA_SUPPORT=n
+CONFIG_VIDEO_V4L2_SUBDEV_API=n
+CONFIG_V4L_PLATFORM_DRIVERS=n
+CONFIG_V4L_MEM2MEM_DRIVERS=n
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=n
+CONFIG_VIDEO_CVITEK=m
+CONFIG_VIDEO_CVITEK_CIF=m
+CONFIG_VIDEO_CVITEK_SNS_I2C=m
+CONFIG_VIDEO_CVITEK_MIPI_TX=m
+#
+# Media SPI Adapters
+#
+# CONFIG_CXD2880_SPI_DRV is not set
+# end of Media SPI Adapters
+#
+# Customize TV tuners
+#
+# CONFIG_MEDIA_TUNER_SIMPLE is not set
+# CONFIG_MEDIA_TUNER_TDA18250 is not set
+# CONFIG_MEDIA_TUNER_TDA8290 is not set
+# CONFIG_MEDIA_TUNER_TDA827X is not set
+# CONFIG_MEDIA_TUNER_TDA18271 is not set
+# CONFIG_MEDIA_TUNER_TDA9887 is not set
+# CONFIG_MEDIA_TUNER_TEA5761 is not set
+# CONFIG_MEDIA_TUNER_TEA5767 is not set
+# CONFIG_MEDIA_TUNER_MSI001 is not set
+# CONFIG_MEDIA_TUNER_MT20XX is not set
+# CONFIG_MEDIA_TUNER_MT2060 is not set
+# CONFIG_MEDIA_TUNER_MT2063 is not set
+# CONFIG_MEDIA_TUNER_MT2266 is not set
+# CONFIG_MEDIA_TUNER_MT2131 is not set
+# CONFIG_MEDIA_TUNER_QT1010 is not set
+# CONFIG_MEDIA_TUNER_XC2028 is not set
+# CONFIG_MEDIA_TUNER_XC5000 is not set
+# CONFIG_MEDIA_TUNER_XC4000 is not set
+# CONFIG_MEDIA_TUNER_MXL5005S is not set
+# CONFIG_MEDIA_TUNER_MXL5007T is not set
+# CONFIG_MEDIA_TUNER_MC44S803 is not set
+# CONFIG_MEDIA_TUNER_MAX2165 is not set
+# CONFIG_MEDIA_TUNER_TDA18218 is not set
+# CONFIG_MEDIA_TUNER_FC0011 is not set
+# CONFIG_MEDIA_TUNER_FC0012 is not set
+# CONFIG_MEDIA_TUNER_FC0013 is not set
+# CONFIG_MEDIA_TUNER_TDA18212 is not set
+# CONFIG_MEDIA_TUNER_E4000 is not set
+# CONFIG_MEDIA_TUNER_FC2580 is not set
+# CONFIG_MEDIA_TUNER_M88RS6000T is not set
+# CONFIG_MEDIA_TUNER_TUA9001 is not set
+# CONFIG_MEDIA_TUNER_SI2157 is not set
+# CONFIG_MEDIA_TUNER_IT913X is not set
+# CONFIG_MEDIA_TUNER_R820T is not set
+# CONFIG_MEDIA_TUNER_MXL301RF is not set
+# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set
+# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set
+# end of Customize TV tuners
+#
+# Customise DVB Frontends
+#
+
+#
+# Multistandard (satellite) frontends
+#
+# CONFIG_DVB_STB0899 is not set
+# CONFIG_DVB_STB6100 is not set
+# CONFIG_DVB_STV090x is not set
+# CONFIG_DVB_STV0910 is not set
+# CONFIG_DVB_STV6110x is not set
+# CONFIG_DVB_STV6111 is not set
+# CONFIG_DVB_MXL5XX is not set
+# CONFIG_DVB_M88DS3103 is not set
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+# CONFIG_DVB_DRXK is not set
+# CONFIG_DVB_TDA18271C2DD is not set
+# CONFIG_DVB_SI2165 is not set
+# CONFIG_DVB_MN88472 is not set
+# CONFIG_DVB_MN88473 is not set
+
+#
+# DVB-S (satellite) frontends
+#
+# CONFIG_DVB_CX24110 is not set
+# CONFIG_DVB_CX24123 is not set
+# CONFIG_DVB_MT312 is not set
+# CONFIG_DVB_ZL10036 is not set
+# CONFIG_DVB_ZL10039 is not set
+# CONFIG_DVB_S5H1420 is not set
+# CONFIG_DVB_STV0288 is not set
+# CONFIG_DVB_STB6000 is not set
+# CONFIG_DVB_STV0299 is not set
+# CONFIG_DVB_STV6110 is not set
+# CONFIG_DVB_STV0900 is not set
+# CONFIG_DVB_TDA8083 is not set
+# CONFIG_DVB_TDA10086 is not set
+# CONFIG_DVB_TDA8261 is not set
+# CONFIG_DVB_VES1X93 is not set
+# CONFIG_DVB_TUNER_ITD1000 is not set
+# CONFIG_DVB_TUNER_CX24113 is not set
+# CONFIG_DVB_TDA826X is not set
+# CONFIG_DVB_TUA6100 is not set
+# CONFIG_DVB_CX24116 is not set
+# CONFIG_DVB_CX24117 is not set
+# CONFIG_DVB_CX24120 is not set
+# CONFIG_DVB_SI21XX is not set
+# CONFIG_DVB_TS2020 is not set
+# CONFIG_DVB_DS3000 is not set
+# CONFIG_DVB_MB86A16 is not set
+# CONFIG_DVB_TDA10071 is not set
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+# CONFIG_DVB_S5H1432 is not set
+# CONFIG_DVB_DRXD is not set
+# CONFIG_DVB_L64781 is not set
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_ZL10353 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+# CONFIG_DVB_DIB7000M is not set
+# CONFIG_DVB_DIB7000P is not set
+# CONFIG_DVB_DIB9000 is not set
+# CONFIG_DVB_TDA10048 is not set
+# CONFIG_DVB_AF9013 is not set
+# CONFIG_DVB_EC100 is not set
+# CONFIG_DVB_STV0367 is not set
+# CONFIG_DVB_CXD2820R is not set
+# CONFIG_DVB_CXD2841ER is not set
+# CONFIG_DVB_RTL2830 is not set
+# CONFIG_DVB_RTL2832 is not set
+# CONFIG_DVB_RTL2832_SDR is not set
+# CONFIG_DVB_SI2168 is not set
+# CONFIG_DVB_ZD1301_DEMOD is not set
+# CONFIG_DVB_CXD2880 is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_VES1820 is not set
+# CONFIG_DVB_TDA10021 is not set
+# CONFIG_DVB_TDA10023 is not set
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+# CONFIG_DVB_NXT200X is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+# CONFIG_DVB_BCM3510 is not set
+# CONFIG_DVB_LGDT330X is not set
+# CONFIG_DVB_LGDT3305 is not set
+# CONFIG_DVB_LGDT3306A is not set
+# CONFIG_DVB_LG2160 is not set
+# CONFIG_DVB_S5H1409 is not set
+# CONFIG_DVB_AU8522_DTV is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_S5H1411 is not set
+
+#
+# ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_S921 is not set
+# CONFIG_DVB_DIB8000 is not set
+# CONFIG_DVB_MB86A20S is not set
+
+#
+# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_TC90522 is not set
+# CONFIG_DVB_MN88443X is not set
+
+#
+# Digital terrestrial only tuners/PLL
+#
+# CONFIG_DVB_PLL is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+#
+# SEC control devices for DVB-S
+#
+# CONFIG_DVB_DRX39XYJ is not set
+# CONFIG_DVB_LNBH25 is not set
+# CONFIG_DVB_LNBH29 is not set
+# CONFIG_DVB_LNBP21 is not set
+# CONFIG_DVB_LNBP22 is not set
+# CONFIG_DVB_ISL6405 is not set
+# CONFIG_DVB_ISL6421 is not set
+# CONFIG_DVB_ISL6423 is not set
+# CONFIG_DVB_A8293 is not set
+# CONFIG_DVB_LGS8GL5 is not set
+# CONFIG_DVB_LGS8GXX is not set
+# CONFIG_DVB_ATBM8830 is not set
+# CONFIG_DVB_TDA665x is not set
+# CONFIG_DVB_IX2505V is not set
+# CONFIG_DVB_M88RS2000 is not set
+# CONFIG_DVB_AF9033 is not set
+# CONFIG_DVB_HORUS3A is not set
+# CONFIG_DVB_ASCOT2E is not set
+# CONFIG_DVB_HELENE is not set
+#
+# Common Interface (EN50221) controller drivers
+#
+# CONFIG_DVB_CXD2099 is not set
+# CONFIG_DVB_SP2 is not set
+# end of Customise DVB Frontends
+#
+# Digital TV options
+#
+# CONFIG_DVB_NET is not set
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+# end of Digital TV options
+
+CONFIG_FB=y
+CONFIG_FB_CVITEK=m
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_PROC_FS is not set
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=1
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_CV182XA_CV182XAADC=y
+CONFIG_SND_SOC_CV182XA_CV182XADAC=y
+CONFIG_SND_CV1835_I2S=y
+CONFIG_SND_SOC_CV182XAADC=y
+CONFIG_SND_SOC_CV182XADAC=y
+CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
+CONFIG_CV1835_I2S_SUBSYS=y
+CONFIG_USB=m
+CONFIG_USB_DWC2=m
+CONFIG_USB_GADGET=m
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_CVI=y
+CONFIG_BLK_CMDLINE_PARSER=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_EFI_PARTITION=n
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_EXT4_FS=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC_CVITEK=y
+CONFIG_RTC_CLASS=y
+# CONFIG_VIRTIO_MENU is not set
+CONFIG_STAGING=y
+CONFIG_ION=y
+CONFIG_ION_SYSTEM_HEAP=y
+CONFIG_ION_CARVEOUT_HEAP=y
+CONFIG_ION_CMA_HEAP=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_CV1835_SYSDMA_REMAP=y
+CONFIG_PWM=y
+CONFIG_SIFIVE_PLIC=y
+CONFIG_ANDROID=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_ZLIB is not set
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=0
+CONFIG_PRINTK_TIME=y
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO=n
+CONFIG_DEBUG_INFO_DWARF4=n
+CONFIG_GDB_SCRIPTS=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_DEBUG_FS=y
+CONFIG_BLK_DEV_INITRD=n
+CONFIG_KALLSYMS=y
+CONFIG_FRAME_POINTER=n
+CONFIG_DEBUG_MISC=n
+CONFIG_RCU_TRACE=n
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=y
+CONFIG_USB_U_SERIAL=y
+CONFIG_USB_U_ETHER=y
+CONFIG_USB_U_AUDIO=y
+CONFIG_USB_F_SERIAL=y
+CONFIG_USB_F_ECM=y
+CONFIG_USB_F_EEM=y
+CONFIG_USB_F_RNDIS=y
+CONFIG_USB_F_MASS_STORAGE=y
+CONFIG_USB_F_FS=y
+CONFIG_USB_F_UAC1=y
+CONFIG_USB_F_UVC=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+CONFIG_BUG=n
+CONFIG_IO_URING=n
+CONFIG_ADVISE_SYSCALLS=n
+CONFIG_SIGNALFD=n
+CONFIG_TIMERFD=n
+CONFIG_EPOLL=n
diff --git a/build/boards/cv181x/sg2000_wevb_riscv64_sd/memmap.py b/build/boards/cv181x/sg2000_wevb_riscv64_sd/memmap.py
new file mode 100644
index 000000000..8c572da73
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_riscv64_sd/memmap.py
@@ -0,0 +1,85 @@
+SIZE_1M = 0x100000
+SIZE_1K = 1024
+
+
+# Only attributes in class MemoryMap are generated to .h
+class MemoryMap:
+ # No prefix "CVIMMAP_" for the items in _no_prefix[]
+ _no_prefix = [
+ "CONFIG_SYS_TEXT_BASE" # u-boot's CONFIG_SYS_TEXT_BASE is used without CPP.
+ ]
+
+ DRAM_BASE = 0x80000000
+ DRAM_SIZE = 512 * SIZE_1M
+
+ # ==============
+ # C906L FreeRTOS
+ # ==============
+ FREERTOS_SIZE = 2 * SIZE_1M
+ # FreeRTOS is at the end of DRAM
+ FREERTOS_ADDR = DRAM_BASE + DRAM_SIZE - FREERTOS_SIZE
+ FSBL_C906L_START_ADDR = FREERTOS_ADDR
+
+ # ==============================
+ # OpenSBI | arm-trusted-firmware
+ # ==============================
+ # Monitor is at the begining of DRAM
+ MONITOR_ADDR = DRAM_BASE
+
+ ATF_SIZE = 512 * SIZE_1K
+ OPENSBI_SIZE = 512 * SIZE_1K
+ OPENSBI_FDT_ADDR = MONITOR_ADDR + OPENSBI_SIZE
+
+ # =========================
+ # memory@DRAM_BASE in .dts.
+ # =========================
+ # Ignore the area of FreeRTOS in u-boot and kernel
+ KERNEL_MEMORY_ADDR = DRAM_BASE
+ KERNEL_MEMORY_SIZE = DRAM_SIZE - FREERTOS_SIZE
+
+ # =================
+ # Multimedia buffer. Used by u-boot/kernel/FreeRTOS
+ # =================
+ ION_SIZE = 170 * SIZE_1M
+ H26X_BITSTREAM_SIZE = 2 * SIZE_1M
+ H26X_ENC_BUFF_SIZE = 0
+ ISP_MEM_BASE_SIZE = 20 * SIZE_1M
+ FREERTOS_RESERVED_ION_SIZE = H26X_BITSTREAM_SIZE + H26X_ENC_BUFF_SIZE + ISP_MEM_BASE_SIZE
+
+ # ION after FreeRTOS
+ ION_ADDR = FREERTOS_ADDR - ION_SIZE
+
+ # Buffers of the fast image are inside the ION buffer
+ H26X_BITSTREAM_ADDR = ION_ADDR
+ H26X_ENC_BUFF_ADDR = H26X_BITSTREAM_ADDR + H26X_BITSTREAM_SIZE
+ ISP_MEM_BASE_ADDR = H26X_ENC_BUFF_ADDR + H26X_ENC_BUFF_SIZE
+
+ assert ISP_MEM_BASE_ADDR + ISP_MEM_BASE_SIZE <= ION_ADDR + ION_SIZE
+
+ # Boot logo is after the ION buffer
+ # Framebuffer uses boot logo's reserved memory
+ BOOTLOGO_SIZE = 1800 * SIZE_1K
+ BOOTLOGO_ADDR = ION_ADDR - BOOTLOGO_SIZE
+ FRAMEBUFFER_SIZE = BOOTLOGO_SIZE
+ FRAMEBUFFER_ADDR = BOOTLOGO_ADDR
+
+ # ===================
+ # FSBL and u-boot-2021
+ # ===================
+ CVI_UPDATE_HEADER_SIZE = SIZE_1K
+ UIMAG_SIZE = 16 * SIZE_1M
+
+ # kernel image loading buffer
+ UIMAG_ADDR = DRAM_BASE + 24 * SIZE_1M
+ CVI_UPDATE_HEADER_ADDR = UIMAG_ADDR - CVI_UPDATE_HEADER_SIZE
+
+ # FSBL decompress buffer
+ FSBL_UNZIP_ADDR = UIMAG_ADDR
+ FSBL_UNZIP_SIZE = UIMAG_SIZE
+
+ assert UIMAG_ADDR + UIMAG_SIZE <= BOOTLOGO_ADDR
+
+ # u-boot's run address and entry point
+ CONFIG_SYS_TEXT_BASE = DRAM_BASE + 2 * SIZE_1M
+ # u-boot's init stack point is only used before board_init_f()
+ CONFIG_SYS_INIT_SP_ADDR = UIMAG_ADDR + UIMAG_SIZE
diff --git a/build/boards/cv180x/cv1800b_sophpi_duo_sd/partition/partition_sd_rls.xml b/build/boards/cv181x/sg2000_wevb_riscv64_sd/partition/partition_sd.xml
similarity index 100%
rename from build/boards/cv180x/cv1800b_sophpi_duo_sd/partition/partition_sd_rls.xml
rename to build/boards/cv181x/sg2000_wevb_riscv64_sd/partition/partition_sd.xml
diff --git a/build/boards/cv181x/sg2000_wevb_riscv64_sd/rootfs_script/clean_rootfs.sh b/build/boards/cv181x/sg2000_wevb_riscv64_sd/rootfs_script/clean_rootfs.sh
new file mode 100755
index 000000000..26692d889
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_riscv64_sd/rootfs_script/clean_rootfs.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+SYSTEM_DIR=$1
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libz*
+rm -f $SYSTEM_DIR/mnt/system/lib/libz*
+
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libcvi*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libmad*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libmp3*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libopencv*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libopencv*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvi_rtsp.so
+rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libcvi_rtsp.so
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvikernel.so
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/*.a
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libgst*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libg*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/gstreamer-1.0/libgst*
+rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libcrypto.so*
+rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libssl.so*
+rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libcvi_protobuf.so*
+rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libprotobuf-lite.so*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcviai*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvi_ispd.so*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libraw_replay.so*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvi_ive_tpu.so*
+rm -rf $SYSTEM_DIR/mnt/system/usr/lib/gio
+rm -rf $SYSTEM_DIR/mnt/system/usr/lib/glib*
+rm -rf $SYSTEM_DIR/mnt/system/usr/lib/gstreamer-1.0*
+rm -rf $SYSTEM_DIR/mnt/system/usr/libexec*
+rm -rf $SYSTEM_DIR/mnt/system/usr/bin
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvimath.so
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcviruntime.so
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcnpy.so
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcipher.so
+
+rm -f $SYSTEM_DIR/mnt/system/lib/libcipher.so*
+rm -f $SYSTEM_DIR/mnt/system/lib/libcvi_ispd.so*
+rm -f $SYSTEM_DIR/mnt/system/lib/libraw_replay.so*
+rm -f $SYSTEM_DIR/mnt/system/lib/libmad.so*
+rm -f $SYSTEM_DIR/mnt/system/lib/libmp3*
+rm -f $SYSTEM_DIR/mnt/system/lib/libnanomsg*
+
+#del 3rdparty lib
+#del thttpd/libwebsockets lib
+rm -f $SYSTEM_DIR/mnt/system/lib/libthttpd*
+rm -f $SYSTEM_DIR/mnt/system/lib/libwebsocket*
+if [ $SDK_VER = "uclibc" ]
+then
+ #del opencv lib
+ rm -f $SYSTEM_DIR/mnt/system/lib/libopencv*
+ #del ffmpeg lib
+ rm -f $SYSTEM_DIR/mnt/system/lib/libav*
+ #save /mnt/system/lib/ openssl lib; need by ntpdate/wpa_supplicant
+else
+ #glibc ramdisk(rootfs/common_arm/usr/lib/) has libcrypto.so and libssl.so
+ #del openssl
+ rm -f $SYSTEM_DIR/mnt/system/lib/libssl*
+ rm -f $SYSTEM_DIR/mnt/system/lib/libcrypto*
+fi
+
+rm -rf $SYSTEM_DIR/etc/init.d/S23ntp
+rm -rf $SYSTEM_DIR/bin/ntpd
+
+du -sh $SYSTEM_DIR/* |sort -rh
+du -sh $SYSTEM_DIR/mnt/* |sort -rh
+du -sh $SYSTEM_DIR/mnt/system/* |sort -rh
+du -sh $SYSTEM_DIR/mnt/system/lib/* |sort -rh
+du -sh $SYSTEM_DIR/mnt/system/data/install/* |sort -rh
+du -sh $SYSTEM_DIR/usr/* |sort -rh
diff --git a/build/boards/cv181x/sg2000_wevb_riscv64_sd/sg2000_wevb_riscv64_sd_defconfig b/build/boards/cv181x/sg2000_wevb_riscv64_sd/sg2000_wevb_riscv64_sd_defconfig
new file mode 100644
index 000000000..6cefe5311
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_riscv64_sd/sg2000_wevb_riscv64_sd_defconfig
@@ -0,0 +1,41 @@
+CONFIG_CHIP_sg2000=y
+CONFIG_BOARD_wevb_riscv64_sd=y
+CONFIG_DDR_CFG_ddr3_1866_x16=y
+CONFIG_ARCH="riscv"
+CONFIG_CROSS_COMPILE="riscv64-unknown-linux-musl-"
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_KERNEL_ENTRY_HACK=y
+CONFIG_KERNEL_ENTRY_HACK_ADDR="0x80200000"
+CONFIG_TOOLCHAIN_MUSL_RISCV64=y
+CONFIG_FLASH_SIZE_SHRINK=y
+CONFIG_BOOT_IMAGE_SINGLE_DTB=y
+CONFIG_STORAGE_TYPE_sd=y
+CONFIG_SENSOR_GCORE_GC4653=y
+CONFIG_SENSOR_SMS_SC3335=y
+CONFIG_SENSOR_SMS_SC500AI=y
+CONFIG_SENSOR_SONY_IMX307=y
+CONFIG_SENSOR_SONY_IMX307_2L=y
+CONFIG_SENSOR_SONY_IMX307_SLAVE=y
+CONFIG_SENSOR_SONY_IMX327=y
+CONFIG_SENSOR_SONY_IMX327_2L=y
+CONFIG_SENSOR_SONY_IMX327_SLAVE=y
+CONFIG_SENSOR_OV_OS04C10=y
+CONFIG_SENSOR_OV_OS04A10=y
+CONFIG_UBOOT_2021_10=y
+CONFIG_KERNEL_SRC_5.10=y
+CONFIG_KERNEL_LZMA=y
+CONFIG_SKIP_RAMDISK=y
+CONFIG_TARGET_PACKAGE_PARTED=y
+CONFIG_TARGET_PACKAGE_E2FSPROGS=y
+CONFIG_TARGET_PACKAGE_ENVTOOLS=y
+# CONFIG_TARGET_PACKAGE_GATORD is not set
+CONFIG_SENSOR_TUNING_PARAM_cv181x_src_gcore_gc4653=y
+# CONFIG_ROOTFS_OVERLAYFS is not set
+CONFIG_TARGET_PACKAGE_DROPBEAR=y
+# CONFIG_TARGET_PACKAGE_MTD-UTILS is not set
+# CONFIG_TARGET_PACKAGE_RSYSLOG is not set
+# CONFIG_TARGET_PACKAGE_BUSYBOX_SYSLOGD_SCRIPT is not set
+CONFIG_ENABLE_FREERTOS=y
+CONFIG_ENABLE_RTOS_DUMP_PRINT=y
+CONFIG_DUMP_PRINT_SZ_IDX=17
+CONFIG_TARGET_PACKAGE_NTP=y
diff --git a/build/boards/cv181x/sg2000_wevb_riscv64_sd/u-boot/cvi_board_init.c b/build/boards/cv181x/sg2000_wevb_riscv64_sd/u-boot/cvi_board_init.c
new file mode 100644
index 000000000..129e880c9
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_riscv64_sd/u-boot/cvi_board_init.c
@@ -0,0 +1,8 @@
+int cvi_board_init(void)
+{
+ PINMUX_CONFIG(CAM_MCLK0, CAM_MCLK0);
+
+ PINMUX_CONFIG(IIC3_SCL, IIC3_SCL);
+ PINMUX_CONFIG(IIC3_SDA, IIC3_SDA);
+ return 0;
+}
diff --git a/build/boards/cv181x/sg2000_wevb_riscv64_sd/u-boot/cvitek.h b/build/boards/cv181x/sg2000_wevb_riscv64_sd/u-boot/cvitek.h
new file mode 100644
index 000000000..d515dc254
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_riscv64_sd/u-boot/cvitek.h
@@ -0,0 +1,13 @@
+/*
+ *VO control GPIOs
+ */
+#define VO_GPIO_RESET_PORT portb
+#define VO_GPIO_RESET_INDEX 5
+#define VO_GPIO_RESET_ACTIVE GPIO_ACTIVE_LOW
+#define VO_GPIO_PWM_PORT portb
+#define VO_GPIO_PWM_INDEX 4
+#define VO_GPIO_PWM_ACTIVE GPIO_ACTIVE_HIGH
+#define VO_GPIO_POWER_CT_PORT portb
+#define VO_GPIO_POWER_CT_INDEX 3
+#define VO_GPIO_POWER_CT_ACTIVE GPIO_ACTIVE_HIGH
+
diff --git a/build/boards/cv181x/sg2000_wevb_riscv64_sd/u-boot/cvitek_sg2000_wevb_riscv64_sd_defconfig b/build/boards/cv181x/sg2000_wevb_riscv64_sd/u-boot/cvitek_sg2000_wevb_riscv64_sd_defconfig
new file mode 100644
index 000000000..7268cb0d4
--- /dev/null
+++ b/build/boards/cv181x/sg2000_wevb_riscv64_sd/u-boot/cvitek_sg2000_wevb_riscv64_sd_defconfig
@@ -0,0 +1,43 @@
+CONFIG_RISCV=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="soph_asic"
+CONFIG_IDENT_STRING="soph"
+CONFIG_ARCH_RV64I=y
+CONFIG_RISCV_SMODE=y
+CONFIG_TARGET_CVITEK_CV181X=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_BOOTDELAY=1
+CONFIG_SYS_PROMPT="soph# "
+# CONFIG_CMD_CONSOLE is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_CRC32 is not set
+# CONFIG_CMD_LZMADEC is not set
+# CONFIG_CMD_UNLZ4 is not set
+# CONFIG_CMD_UNZIP is not set
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_MMC=y
+# CONFIG_CMD_ITEST is not set
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_CVI_SD_UPDATE=y
+# CONFIG_ISO_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_CVITEK=y
+CONFIG_MTD=y
+# CONFIG_PHY_SMSC is not set
+CONFIG_DM_ETH=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_PHY_CVITEK=y
+CONFIG_SYS_NS16550=y
+CONFIG_SPI=y
+CONFIG_LZ4=y
+CONFIG_LZMA=y
+# CONFIG_TOOLS_LIBCRYPTO is not set
+CONFIG_ENV_IS_NOWHERE=y
diff --git a/build/boards/cv181x/sg2002_wevb_arm64_sd/config.json b/build/boards/cv181x/sg2002_wevb_arm64_sd/config.json
new file mode 100644
index 000000000..7bc49dc92
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_arm64_sd/config.json
@@ -0,0 +1,8 @@
+{
+ "ddr_cfg_list": [
+ "ddr3_1866_x16",
+ "ddr3_2133_x16",
+ "ddr_auto_x16"
+ ],
+ "board_information": "CA53 + SPINOR 16MB + BGA SIP 128MB"
+}
diff --git a/build/boards/cv181x/sg2002_wevb_arm64_sd/dts_arm64/sg2002_wevb_arm64_sd.dts b/build/boards/cv181x/sg2002_wevb_arm64_sd/dts_arm64/sg2002_wevb_arm64_sd.dts
new file mode 100644
index 000000000..0eac8fbd4
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_arm64_sd/dts_arm64/sg2002_wevb_arm64_sd.dts
@@ -0,0 +1,13 @@
+/dts-v1/;
+#include "cv181x_base_arm.dtsi"
+#include "cv181x_asic_bga.dtsi"
+#include "cv181x_asic_sd.dtsi"
+#include "cv181x_default_memmap.dtsi"
+
+/ {
+
+ sd:cv-sd@4310000 {
+ max-frequency = <10000000>;
+ };
+};
+
diff --git a/build/boards/cv181x/sg2002_wevb_arm64_sd/linux/cvitek_sg2002_wevb_arm64_sd_defconfig b/build/boards/cv181x/sg2002_wevb_arm64_sd/linux/cvitek_sg2002_wevb_arm64_sd_defconfig
new file mode 100644
index 000000000..7a0fce9ec
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_arm64_sd/linux/cvitek_sg2002_wevb_arm64_sd_defconfig
@@ -0,0 +1,285 @@
+CONFIG_KERNEL_XZ=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_FRAME_WARN=2048
+CONFIG_PREEMPT=y
+CONFIG_LOG_BUF_SHIFT=15
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_UID16 is not set
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_BASE_FULL is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+# CONFIG_SLUB_DEBUG is not set
+CONFIG_ARM_LPAE=y
+CONFIG_SWP_EMULATE=y
+# CONFIG_VDSO is not set
+CONFIG_HAVE_ARM_ARCH_TIMER=y
+CONFIG_ARM_PSCI=y
+CONFIG_THUMB2_KERNEL=y
+CONFIG_FORCE_MAX_ZONEORDER=10
+# CONFIG_ATAGS is not set
+CONFIG_VFP=y
+CONFIG_NEON=y
+# CONFIG_SUSPEND is not set
+CONFIG_ARCH_CVITEK=y
+CONFIG_ARCH_CV181X=y
+CONFIG_ARCH_CVITEK_CHIP="cv181x"
+CONFIG_ARCH_CV181X_ASIC=y
+CONFIG_POWER_RESET=y
+# CONFIG_STACKPROTECTOR is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_LBDAF is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+# CONFIG_MQ_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_KYBER is not set
+# CONFIG_COREDUMP is not set
+CONFIG_CMA=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
+CONFIG_CFG80211=m
+CONFIG_RFKILL=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+CONFIG_DMA_CMA=n
+CONFIG_CMA_SIZE_MBYTES=0
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_MTD_NAND_PLATFORM=y
+CONFIG_MTD_NAND_CVSNFC=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_SPI_CVI_SPIF=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_NETDEVICES=y
+# CONFIG_NET_CORE is not set
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_HISILICON is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MELLANOX is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_STMMAC_ETH=y
+# CONFIG_DWMAC_GENERIC is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_CVITEK_PHY=y
+# CONFIG_USB_NET_DRIVERS is not set
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+CONFIG_RTL8188FU=m
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+CONFIG_INPUT=y
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=5
+CONFIG_SERIAL_8250_RUNTIME_UARTS=5
+CONFIG_SERIAL_8250_DW=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+CONFIG_I2C_SMBUS=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_SPI=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_CVITEK_PINCTRL_CV1835=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_WATCHDOG=y
+CONFIG_MEDIA_SUPPORT=n
+CONFIG_VIDEO_CVITEK=m
+CONFIG_VIDEO_CVITEK_CIF=m
+CONFIG_VIDEO_CVITEK_SNS_I2C=m
+CONFIG_VIDEO_CVITEK_MIPI_TX=m
+CONFIG_FB=y
+CONFIG_FB_CVITEK=m
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_PROC_FS is not set
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=n
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_CV182XA_CV182XAADC=y
+CONFIG_SND_SOC_CV182XA_CV182XADAC=y
+CONFIG_SND_CV1835_I2S=y
+CONFIG_SND_SOC_CV182XAADC=y
+CONFIG_SND_SOC_CV182XADAC=y
+# CONFIG_SND_SOC_CV182X_CV182XPDM is not set
+# CONFIG_SND_SOC_CV1835PDM is not set
+# CONFIG_SND_SOC_CV1835_CONCURRENT_I2S is not set
+CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
+CONFIG_CV1835_I2S_SUBSYS=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_CVI=y
+CONFIG_DMADEVICES=n
+CONFIG_DW_DMAC_CVITEK=n
+# CONFIG_VIRTIO_MENU is not set
+CONFIG_STAGING=y
+CONFIG_ION=y
+CONFIG_ION_SYSTEM_HEAP=y
+CONFIG_ION_CARVEOUT_HEAP=y
+CONFIG_ION_CMA_HEAP=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_CV1835_SYSDMA_REMAP=n
+CONFIG_PWM=y
+CONFIG_ANDROID=y
+# CONFIG_TEE=y
+# CONFIG_OPTEE=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT4_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_WBUF_VERIFY=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_SQUASHFS_FILE_DIRECT=y
+# CONFIG_SQUASHFS_ZLIB is not set
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_EMBEDDED=y
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=1
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+# CONFIG_CRYPTO_ECHAINIV is not set
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_PRINTK_TIME=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+
+CONFIG_RTC_CLASS=y
+
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_SG=y
+CONFIG_USB=y
+CONFIG_USB_OTG=y
+CONFIG_USB_OTG_FSM=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=y
+CONFIG_USB_U_SERIAL=y
+CONFIG_USB_U_ETHER=y
+CONFIG_USB_U_AUDIO=y
+CONFIG_USB_F_SERIAL=y
+CONFIG_USB_F_ECM=y
+CONFIG_USB_F_EEM=y
+CONFIG_USB_F_RNDIS=y
+CONFIG_USB_F_MASS_STORAGE=y
+CONFIG_USB_F_UAC1=y
+CONFIG_USB_F_UVC=y
+CONFIG_USB_UAS=y
+CONFIG_USB_DWC2=m
+CONFIG_USB_DWC2_DUAL_ROLE=y
+CONFIG_USB_GADGET=y
+CONFIG_U_SERIAL_CONSOLE=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_UEVENT=y
+CONFIG_USB_PHY=y
+CONFIG_USB_GPIO_VBUS=y
diff --git a/build/boards/cv181x/sg2002_wevb_arm64_sd/memmap.py b/build/boards/cv181x/sg2002_wevb_arm64_sd/memmap.py
new file mode 100644
index 000000000..ccac8b44b
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_arm64_sd/memmap.py
@@ -0,0 +1,85 @@
+SIZE_1M = 0x100000
+SIZE_1K = 1024
+
+
+# Only attributes in class MemoryMap are generated to .h
+class MemoryMap:
+ # No prefix "CVIMMAP_" for the items in _no_prefix[]
+ _no_prefix = [
+ "CONFIG_SYS_TEXT_BASE" # u-boot's CONFIG_SYS_TEXT_BASE is used without CPP.
+ ]
+
+ DRAM_BASE = 0x80000000
+ DRAM_SIZE = 512 * SIZE_1M
+
+ # ==============
+ # C906L FreeRTOS
+ # ==============
+ FREERTOS_SIZE = 768 * SIZE_1K
+ # FreeRTOS is at the end of DRAM
+ FREERTOS_ADDR = DRAM_BASE + DRAM_SIZE - FREERTOS_SIZE
+ FSBL_C906L_START_ADDR = FREERTOS_ADDR
+
+ # ==============================
+ # OpenSBI | arm-trusted-firmware
+ # ==============================
+ # Monitor is at the begining of DRAM
+ MONITOR_ADDR = DRAM_BASE
+
+ ATF_SIZE = 512 * SIZE_1K
+ OPENSBI_SIZE = 512 * SIZE_1K
+ OPENSBI_FDT_ADDR = MONITOR_ADDR + OPENSBI_SIZE
+
+ # =========================
+ # memory@DRAM_BASE in .dts.
+ # =========================
+ # Ignore the area of FreeRTOS in u-boot and kernel
+ KERNEL_MEMORY_ADDR = DRAM_BASE
+ KERNEL_MEMORY_SIZE = DRAM_SIZE - FREERTOS_SIZE
+
+ # =================
+ # Multimedia buffer. Used by u-boot/kernel/FreeRTOS
+ # =================
+ ION_SIZE = 70 * SIZE_1M
+ H26X_BITSTREAM_SIZE = 2 * SIZE_1M
+ H26X_ENC_BUFF_SIZE = 0
+ ISP_MEM_BASE_SIZE = 20 * SIZE_1M
+ FREERTOS_RESERVED_ION_SIZE = H26X_BITSTREAM_SIZE + H26X_ENC_BUFF_SIZE + ISP_MEM_BASE_SIZE
+
+ # ION after FreeRTOS
+ ION_ADDR = FREERTOS_ADDR - ION_SIZE
+
+ # Buffers of the fast image are inside the ION buffer
+ H26X_BITSTREAM_ADDR = ION_ADDR
+ H26X_ENC_BUFF_ADDR = H26X_BITSTREAM_ADDR + H26X_BITSTREAM_SIZE
+ ISP_MEM_BASE_ADDR = H26X_ENC_BUFF_ADDR + H26X_ENC_BUFF_SIZE
+
+ assert ISP_MEM_BASE_ADDR + ISP_MEM_BASE_SIZE <= ION_ADDR + ION_SIZE
+
+ # Boot logo is after the ION buffer
+ # Framebuffer uses boot logo's reserved memory
+ BOOTLOGO_SIZE = 1800 * SIZE_1K
+ BOOTLOGO_ADDR = ION_ADDR - BOOTLOGO_SIZE
+ FRAMEBUFFER_SIZE = BOOTLOGO_SIZE
+ FRAMEBUFFER_ADDR = BOOTLOGO_ADDR
+
+ # ===================
+ # FSBL and u-boot-2021
+ # ===================
+ CVI_UPDATE_HEADER_SIZE = SIZE_1K
+ UIMAG_SIZE = 16 * SIZE_1M
+
+ # kernel image loading buffer
+ UIMAG_ADDR = DRAM_BASE + 24 * SIZE_1M
+ CVI_UPDATE_HEADER_ADDR = UIMAG_ADDR - CVI_UPDATE_HEADER_SIZE
+
+ # FSBL decompress buffer
+ FSBL_UNZIP_ADDR = UIMAG_ADDR
+ FSBL_UNZIP_SIZE = UIMAG_SIZE
+
+ assert UIMAG_ADDR + UIMAG_SIZE <= BOOTLOGO_ADDR
+
+ # u-boot's run address and entry point
+ CONFIG_SYS_TEXT_BASE = DRAM_BASE + 2 * SIZE_1M
+ # u-boot's init stack point is only used before board_init_f()
+ CONFIG_SYS_INIT_SP_ADDR = UIMAG_ADDR + UIMAG_SIZE
diff --git a/build/boards/cv181x/sg2002_wevb_arm64_sd/partition/partition_sd.xml b/build/boards/cv181x/sg2002_wevb_arm64_sd/partition/partition_sd.xml
new file mode 100644
index 000000000..004c3da4d
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_arm64_sd/partition/partition_sd.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/build/boards/cv181x/sg2002_wevb_arm64_sd/rootfs_script/clean_rootfs.sh b/build/boards/cv181x/sg2002_wevb_arm64_sd/rootfs_script/clean_rootfs.sh
new file mode 100755
index 000000000..8531fb1bf
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_arm64_sd/rootfs_script/clean_rootfs.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+SYSTEM_DIR=$1
+rm -rf $SYSTEM_DIR/mnt/system/usr
+rm -rf $SYSTEM_DIR/mnt/system/lib
+rm -rf $SYSTEM_DIR/mnt/system/lib/libsns_gc*
+rm -rf $SYSTEM_DIR/mnt/system/lib/libsns_imx*
+rm -rf $SYSTEM_DIR/mnt/system/lib/libsns_sc*
+rm -rf $SYSTEM_DIR/mnt/system/lib/libcipher.so
+
+rm -rf $SYSTEM_DIR/mnt/system/m2m-deinterlace.ko
+rm -rf $SYSTEM_DIR/mnt/system/efivarfs.ko
+
+du -sh $SYSTEM_DIR/* |sort -rh
+
+rm -rf $SYSTEM_DIR/etc/init.d/S23ntp
+rm -rf $SYSTEM_DIR/bin/ntpd
diff --git a/build/boards/cv181x/sg2002_wevb_arm64_sd/sg2002_wevb_arm64_sd_defconfig b/build/boards/cv181x/sg2002_wevb_arm64_sd/sg2002_wevb_arm64_sd_defconfig
new file mode 100644
index 000000000..5fcd9329e
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_arm64_sd/sg2002_wevb_arm64_sd_defconfig
@@ -0,0 +1,35 @@
+CONFIG_CHIP_sg2002=y
+CONFIG_BOARD_wevb_arm64_sd=y
+CONFIG_DDR_CFG_ddr3_1866_x16=y
+CONFIG_ARCH="arm64"
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_CROSS_COMPILE_KERNEL="aarch64-linux-gnu-"
+CONFIG_KERNEL_ENTRY_HACK=y
+CONFIG_KERNEL_ENTRY_HACK_ADDR="0x80108000"
+CONFIG_TOOLCHAIN_GLIBC_ARM64=y
+CONFIG_FLASH_SIZE_SHRINK=y
+CONFIG_BOOT_IMAGE_SINGLE_DTB=y
+CONFIG_STORAGE_TYPE_sd=y
+CONFIG_SENSOR_GCORE_GC2053=y
+CONFIG_SENSOR_GCORE_GC2053_1L=y
+CONFIG_SENSOR_GCORE_GC2093=y
+CONFIG_SENSOR_GCORE_GC4653=y
+CONFIG_SENSOR_PIXELPLUS_PR2020=y
+CONFIG_SENSOR_SONY_IMX307=y
+CONFIG_SENSOR_SONY_IMX327=y
+CONFIG_UBOOT_2021_10=y
+CONFIG_KERNEL_SRC_5.10=y
+CONFIG_KERNEL_SRC="linux_5.10"
+CONFIG_KERNEL_LZMA=y
+CONFIG_SKIP_RAMDISK=y
+CONFIG_USE_4K_ERASE_SIZE_FOR_JFFS2=y
+CONFIG_SENSOR_TUNING_PARAM_cv181x_src_gcore_gc4653=y
+# CONFIG_ROOTFS_OVERLAYFS is not set
+CONFIG_TARGET_PACKAGE_DROPBEAR=y
+CONFIG_TARGET_PACKAGE_MTD-UTILS=y
+# CONFIG_TARGET_PACKAGE_RSYSLOG is not set
+# CONFIG_TARGET_PACKAGE_GATORD is not set
+CONFIG_ENABLE_FREERTOS=y
+CONFIG_ENABLE_RTOS_DUMP_PRINT=y
+CONFIG_DUMP_PRINT_SZ_IDX=17
+CONFIG_TARGET_PACKAGE_NTP=y
diff --git a/build/boards/cv181x/sg2002_wevb_arm64_sd/u-boot/cvi_board_init.c b/build/boards/cv181x/sg2002_wevb_arm64_sd/u-boot/cvi_board_init.c
new file mode 100644
index 000000000..3d95e69f4
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_arm64_sd/u-boot/cvi_board_init.c
@@ -0,0 +1,70 @@
+
+static void set_rtc_register_for_power(void)
+{
+ mmio_write_32(0x050250AC, 0x2);
+ mmio_write_32(0x050260D0, 0x3);
+ mmio_write_32(0x03001098, 0x0);
+ mmio_write_32(0x0300109C, 0x0);
+ mmio_write_32(0x03001090, 0x0);
+ mmio_write_32(0x03001094, 0x0);
+ mmio_write_32(0x05027084, 0x0);
+ mmio_write_32(0x05027088, 0x0);
+ mmio_write_32(0x0502708C, 0x0);
+ mmio_write_32(0x05027090, 0x0);
+ mmio_write_32(0x050260BC, 0x1700);
+ mmio_write_32(0x05026128, 0x0);
+}
+
+int cvi_board_init(void)
+{
+ PINMUX_CONFIG(CAM_MCLK0, CAM_MCLK0);
+
+ PINMUX_CONFIG(IIC3_SCL, IIC3_SCL);
+ PINMUX_CONFIG(IIC3_SDA, IIC3_SDA);
+
+
+ //##########I2C0 ######### demo board i2c0 need using gpio to simulate i2c
+ /*touch panel*/
+ PINMUX_CONFIG(IIC0_SCL, XGPIOA_28);
+ PINMUX_CONFIG(IIC0_SDA, XGPIOA_29);
+ PINMUX_CONFIG(VIVO_D9, XGPIOB_12);
+ PINMUX_CONFIG(VIVO_D8, XGPIOB_13);
+ //#########SENSOR_PWR_EN
+ PINMUX_CONFIG(CAM_PD0, XGPIOA_1);
+ //#########WIFI
+ pinmux_config(PINMUX_SDIO1);
+ PINMUX_CONFIG(VIVO_D10, XGPIOB_11);
+ //########AHD
+ PINMUX_CONFIG(ADC3, IIC4_SCL);
+ PINMUX_CONFIG(ADC2, IIC4_SDA);
+
+ PINMUX_CONFIG(USB_VBUS_EN, XGPIOB_5);
+ PINMUX_CONFIG(PAD_MIPIRX5N, XGPIOC_0);
+
+ //#######tp
+ PINMUX_CONFIG(VIVO_D9, XGPIOB_12);
+ PINMUX_CONFIG(VIVO_D8, XGPIOB_13);
+ //########panel
+ PINMUX_CONFIG(JTAG_CPU_TRST, XGPIOA_20);
+ pinmux_config(PINMUX_DSI);
+ PINMUX_CONFIG(AUX0, XGPIOA_30);
+ PINMUX_CONFIG(PWR_GPIO0, PWR_GPIO_0);
+
+ //######## mipi-dsi
+ PINMUX_CONFIG(PAD_MIPI_TXM0, XGPIOC_12);
+ PINMUX_CONFIG(PAD_MIPI_TXP0, XGPIOC_13);
+ PINMUX_CONFIG(PAD_MIPI_TXM1, XGPIOC_14);
+ PINMUX_CONFIG(PAD_MIPI_TXP1, XGPIOC_15);
+ PINMUX_CONFIG(PAD_MIPI_TXM2, XGPIOC_16);
+ PINMUX_CONFIG(PAD_MIPI_TXP2, XGPIOC_17);
+ PINMUX_CONFIG(PAD_MIPI_TXM3, XGPIOC_20);
+ PINMUX_CONFIG(PAD_MIPI_TXP3, XGPIOC_21);
+ PINMUX_CONFIG(PAD_MIPI_TXM4, XGPIOC_18);
+ PINMUX_CONFIG(PAD_MIPI_TXP4, XGPIOC_19);
+
+ //######## usb
+ PINMUX_CONFIG(USB_VBUS_DET, XGPIOB_6);
+ set_rtc_register_for_power();
+
+ return 0;
+}
diff --git a/build/boards/cv181x/sg2002_wevb_arm64_sd/u-boot/cvitek.h b/build/boards/cv181x/sg2002_wevb_arm64_sd/u-boot/cvitek.h
new file mode 100644
index 000000000..d515dc254
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_arm64_sd/u-boot/cvitek.h
@@ -0,0 +1,13 @@
+/*
+ *VO control GPIOs
+ */
+#define VO_GPIO_RESET_PORT portb
+#define VO_GPIO_RESET_INDEX 5
+#define VO_GPIO_RESET_ACTIVE GPIO_ACTIVE_LOW
+#define VO_GPIO_PWM_PORT portb
+#define VO_GPIO_PWM_INDEX 4
+#define VO_GPIO_PWM_ACTIVE GPIO_ACTIVE_HIGH
+#define VO_GPIO_POWER_CT_PORT portb
+#define VO_GPIO_POWER_CT_INDEX 3
+#define VO_GPIO_POWER_CT_ACTIVE GPIO_ACTIVE_HIGH
+
diff --git a/build/boards/cv181x/sg2002_wevb_arm64_sd/u-boot/cvitek_sg2002_wevb_arm64_sd_defconfig b/build/boards/cv181x/sg2002_wevb_arm64_sd/u-boot/cvitek_sg2002_wevb_arm64_sd_defconfig
new file mode 100644
index 000000000..958013f2a
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_arm64_sd/u-boot/cvitek_sg2002_wevb_arm64_sd_defconfig
@@ -0,0 +1,49 @@
+CONFIG_ARM=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="cv181x_asic"
+CONFIG_IDENT_STRING=" cvitek_cv181x"
+CONFIG_ARMV8_SET_SMPEN=y
+CONFIG_TARGET_CVITEK_CV181X=y
+#CONFIG_CVITEK_SPI_FLASH=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_BOOTDELAY=1
+# CONFIG_DISPLAY_CPUINFO is not set
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_SYS_PROMPT="soph# "
+# CONFIG_CMD_CONSOLE is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_CRC32 is not set
+# CONFIG_CMD_LZMADEC is not set
+# CONFIG_CMD_UNLZ4 is not set
+# CONFIG_CMD_UNZIP is not set
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_MMC=y
+# CONFIG_CMD_ITEST is not set
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_CVI_SD_UPDATE=y
+# CONFIG_ISO_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+CONFIG_OF_CONTROL=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_DM=y
+CONFIG_DM_MMC=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_CVITEK=y
+CONFIG_MTD=y
+# CONFIG_PHY_SMSC is not set
+CONFIG_DM_ETH=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_PHY_CVITEK=y
+CONFIG_SYS_NS16550=y
+CONFIG_SPI=y
+CONFIG_LZ4=y
+CONFIG_LZMA=y
+# CONFIG_TOOLS_LIBCRYPTO is not set
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
+CONFIG_ENV_IS_NOWHERE=y
diff --git a/build/boards/cv181x/sg2002_wevb_riscv64_sd/config.json b/build/boards/cv181x/sg2002_wevb_riscv64_sd/config.json
new file mode 100644
index 000000000..f8da45916
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_riscv64_sd/config.json
@@ -0,0 +1,9 @@
+{
+ "ddr_cfg_list": [
+ "",
+ "ddr3_1866_x16",
+ "ddr3_2133_x16",
+ "ddr_auto_x16"
+ ],
+ "board_information": "C906B + EMMC 8192MB + DDR 256MB"
+}
diff --git a/build/boards/cv181x/sg2002_wevb_riscv64_sd/dts_riscv/sg2002_wevb_riscv64_sd.dts b/build/boards/cv181x/sg2002_wevb_riscv64_sd/dts_riscv/sg2002_wevb_riscv64_sd.dts
new file mode 100644
index 000000000..374b5aa59
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_riscv64_sd/dts_riscv/sg2002_wevb_riscv64_sd.dts
@@ -0,0 +1,9 @@
+/dts-v1/;
+#include "cv181x_base_riscv.dtsi"
+#include "cv181x_asic_qfn.dtsi"
+#include "cv181x_asic_sd.dtsi"
+#include "cv181x_default_memmap.dtsi"
+
+/ {
+
+};
diff --git a/build/boards/cv181x/sg2002_wevb_riscv64_sd/linux/cvitek_sg2002_wevb_riscv64_sd_defconfig b/build/boards/cv181x/sg2002_wevb_riscv64_sd/linux/cvitek_sg2002_wevb_riscv64_sd_defconfig
new file mode 100644
index 000000000..01f8a8249
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_riscv64_sd/linux/cvitek_sg2002_wevb_riscv64_sd_defconfig
@@ -0,0 +1,492 @@
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=15
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_BASE_FULL is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+# CONFIG_SLUB_DEBUG is not set
+CONFIG_FORCE_MAX_ZONEORDER=10
+CONFIG_ARCH_CVITEK=y
+CONFIG_SOC_THEAD=y
+# CONFIG_RISCV_SWIOTLB is not set
+CONFIG_VECTOR=y
+CONFIG_VECTOR_0_7=y
+# CONFIG_COMPAT is not set
+CONFIG_ARCH_CVITEK_CHIP="cv181x"
+CONFIG_ARCH_CV181X_ASIC=y
+CONFIG_POWER_RESET=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_STRICT_KERNEL_RWX=n
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_MQ_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_KYBER is not set
+CONFIG_ELF_CORE=y
+CONFIG_COREDUMP=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_CMA=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
+CONFIG_CFG80211=m
+CONFIG_RFKILL=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_NETDEVICES=y
+# CONFIG_NET_CORE is not set
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_STMMAC_ETH=y
+# CONFIG_DWMAC_GENERIC is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_CVITEK_PHY=y
+# CONFIG_USB_NET_DRIVERS is not set
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_RTL8188FU is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+CONFIG_INPUT=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_EVDEV=y
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=5
+CONFIG_SERIAL_8250_RUNTIME_UARTS=5
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PINCTRL=y
+CONFIG_CVITEK_PINCTRL_CV1835=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_WATCHDOG=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=y
+CONFIG_VIDEO_CVITEK=m
+CONFIG_VIDEO_CVITEK_CIF=m
+CONFIG_VIDEO_CVITEK_SNS_I2C=m
+CONFIG_VIDEO_CVITEK_MIPI_TX=m
+#
+# Media SPI Adapters
+#
+# CONFIG_CXD2880_SPI_DRV is not set
+# end of Media SPI Adapters
+#
+# Customize TV tuners
+#
+# CONFIG_MEDIA_TUNER_SIMPLE is not set
+# CONFIG_MEDIA_TUNER_TDA18250 is not set
+# CONFIG_MEDIA_TUNER_TDA8290 is not set
+# CONFIG_MEDIA_TUNER_TDA827X is not set
+# CONFIG_MEDIA_TUNER_TDA18271 is not set
+# CONFIG_MEDIA_TUNER_TDA9887 is not set
+# CONFIG_MEDIA_TUNER_TEA5761 is not set
+# CONFIG_MEDIA_TUNER_TEA5767 is not set
+# CONFIG_MEDIA_TUNER_MSI001 is not set
+# CONFIG_MEDIA_TUNER_MT20XX is not set
+# CONFIG_MEDIA_TUNER_MT2060 is not set
+# CONFIG_MEDIA_TUNER_MT2063 is not set
+# CONFIG_MEDIA_TUNER_MT2266 is not set
+# CONFIG_MEDIA_TUNER_MT2131 is not set
+# CONFIG_MEDIA_TUNER_QT1010 is not set
+# CONFIG_MEDIA_TUNER_XC2028 is not set
+# CONFIG_MEDIA_TUNER_XC5000 is not set
+# CONFIG_MEDIA_TUNER_XC4000 is not set
+# CONFIG_MEDIA_TUNER_MXL5005S is not set
+# CONFIG_MEDIA_TUNER_MXL5007T is not set
+# CONFIG_MEDIA_TUNER_MC44S803 is not set
+# CONFIG_MEDIA_TUNER_MAX2165 is not set
+# CONFIG_MEDIA_TUNER_TDA18218 is not set
+# CONFIG_MEDIA_TUNER_FC0011 is not set
+# CONFIG_MEDIA_TUNER_FC0012 is not set
+# CONFIG_MEDIA_TUNER_FC0013 is not set
+# CONFIG_MEDIA_TUNER_TDA18212 is not set
+# CONFIG_MEDIA_TUNER_E4000 is not set
+# CONFIG_MEDIA_TUNER_FC2580 is not set
+# CONFIG_MEDIA_TUNER_M88RS6000T is not set
+# CONFIG_MEDIA_TUNER_TUA9001 is not set
+# CONFIG_MEDIA_TUNER_SI2157 is not set
+# CONFIG_MEDIA_TUNER_IT913X is not set
+# CONFIG_MEDIA_TUNER_R820T is not set
+# CONFIG_MEDIA_TUNER_MXL301RF is not set
+# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set
+# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set
+# end of Customize TV tuners
+#
+# Customise DVB Frontends
+#
+
+#
+# Multistandard (satellite) frontends
+#
+# CONFIG_DVB_STB0899 is not set
+# CONFIG_DVB_STB6100 is not set
+# CONFIG_DVB_STV090x is not set
+# CONFIG_DVB_STV0910 is not set
+# CONFIG_DVB_STV6110x is not set
+# CONFIG_DVB_STV6111 is not set
+# CONFIG_DVB_MXL5XX is not set
+# CONFIG_DVB_M88DS3103 is not set
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+# CONFIG_DVB_DRXK is not set
+# CONFIG_DVB_TDA18271C2DD is not set
+# CONFIG_DVB_SI2165 is not set
+# CONFIG_DVB_MN88472 is not set
+# CONFIG_DVB_MN88473 is not set
+
+#
+# DVB-S (satellite) frontends
+#
+# CONFIG_DVB_CX24110 is not set
+# CONFIG_DVB_CX24123 is not set
+# CONFIG_DVB_MT312 is not set
+# CONFIG_DVB_ZL10036 is not set
+# CONFIG_DVB_ZL10039 is not set
+# CONFIG_DVB_S5H1420 is not set
+# CONFIG_DVB_STV0288 is not set
+# CONFIG_DVB_STB6000 is not set
+# CONFIG_DVB_STV0299 is not set
+# CONFIG_DVB_STV6110 is not set
+# CONFIG_DVB_STV0900 is not set
+# CONFIG_DVB_TDA8083 is not set
+# CONFIG_DVB_TDA10086 is not set
+# CONFIG_DVB_TDA8261 is not set
+# CONFIG_DVB_VES1X93 is not set
+# CONFIG_DVB_TUNER_ITD1000 is not set
+# CONFIG_DVB_TUNER_CX24113 is not set
+# CONFIG_DVB_TDA826X is not set
+# CONFIG_DVB_TUA6100 is not set
+# CONFIG_DVB_CX24116 is not set
+# CONFIG_DVB_CX24117 is not set
+# CONFIG_DVB_CX24120 is not set
+# CONFIG_DVB_SI21XX is not set
+# CONFIG_DVB_TS2020 is not set
+# CONFIG_DVB_DS3000 is not set
+# CONFIG_DVB_MB86A16 is not set
+# CONFIG_DVB_TDA10071 is not set
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+# CONFIG_DVB_S5H1432 is not set
+# CONFIG_DVB_DRXD is not set
+# CONFIG_DVB_L64781 is not set
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_ZL10353 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+# CONFIG_DVB_DIB7000M is not set
+# CONFIG_DVB_DIB7000P is not set
+# CONFIG_DVB_DIB9000 is not set
+# CONFIG_DVB_TDA10048 is not set
+# CONFIG_DVB_AF9013 is not set
+# CONFIG_DVB_EC100 is not set
+# CONFIG_DVB_STV0367 is not set
+# CONFIG_DVB_CXD2820R is not set
+# CONFIG_DVB_CXD2841ER is not set
+# CONFIG_DVB_RTL2830 is not set
+# CONFIG_DVB_RTL2832 is not set
+# CONFIG_DVB_RTL2832_SDR is not set
+# CONFIG_DVB_SI2168 is not set
+# CONFIG_DVB_ZD1301_DEMOD is not set
+# CONFIG_DVB_CXD2880 is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_VES1820 is not set
+# CONFIG_DVB_TDA10021 is not set
+# CONFIG_DVB_TDA10023 is not set
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+# CONFIG_DVB_NXT200X is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+# CONFIG_DVB_BCM3510 is not set
+# CONFIG_DVB_LGDT330X is not set
+# CONFIG_DVB_LGDT3305 is not set
+# CONFIG_DVB_LGDT3306A is not set
+# CONFIG_DVB_LG2160 is not set
+# CONFIG_DVB_S5H1409 is not set
+# CONFIG_DVB_AU8522_DTV is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_S5H1411 is not set
+
+#
+# ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_S921 is not set
+# CONFIG_DVB_DIB8000 is not set
+# CONFIG_DVB_MB86A20S is not set
+
+#
+# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
+#
+# CONFIG_DVB_TC90522 is not set
+# CONFIG_DVB_MN88443X is not set
+
+#
+# Digital terrestrial only tuners/PLL
+#
+# CONFIG_DVB_PLL is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+#
+# SEC control devices for DVB-S
+#
+# CONFIG_DVB_DRX39XYJ is not set
+# CONFIG_DVB_LNBH25 is not set
+# CONFIG_DVB_LNBH29 is not set
+# CONFIG_DVB_LNBP21 is not set
+# CONFIG_DVB_LNBP22 is not set
+# CONFIG_DVB_ISL6405 is not set
+# CONFIG_DVB_ISL6421 is not set
+# CONFIG_DVB_ISL6423 is not set
+# CONFIG_DVB_A8293 is not set
+# CONFIG_DVB_LGS8GL5 is not set
+# CONFIG_DVB_LGS8GXX is not set
+# CONFIG_DVB_ATBM8830 is not set
+# CONFIG_DVB_TDA665x is not set
+# CONFIG_DVB_IX2505V is not set
+# CONFIG_DVB_M88RS2000 is not set
+# CONFIG_DVB_AF9033 is not set
+# CONFIG_DVB_HORUS3A is not set
+# CONFIG_DVB_ASCOT2E is not set
+# CONFIG_DVB_HELENE is not set
+#
+# Common Interface (EN50221) controller drivers
+#
+# CONFIG_DVB_CXD2099 is not set
+# CONFIG_DVB_SP2 is not set
+# end of Customise DVB Frontends
+#
+# Digital TV options
+#
+# CONFIG_DVB_NET is not set
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+# end of Digital TV options
+
+CONFIG_FB=y
+CONFIG_FB_CVITEK=m
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_PROC_FS is not set
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=1
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_CV182XA_CV182XAADC=y
+CONFIG_SND_SOC_CV182XA_CV182XADAC=y
+CONFIG_SND_CV1835_I2S=y
+CONFIG_SND_SOC_CV182XAADC=y
+CONFIG_SND_SOC_CV182XADAC=y
+CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
+CONFIG_CV1835_I2S_SUBSYS=y
+CONFIG_USB=y
+CONFIG_USB_DWC2=m
+CONFIG_USB_GADGET=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_CVI=y
+CONFIG_BLK_CMDLINE_PARSER=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_EFI_PARTITION=n
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_EXT4_FS=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC_CVITEK=y
+CONFIG_RTC_CLASS=y
+# CONFIG_VIRTIO_MENU is not set
+CONFIG_STAGING=y
+CONFIG_ION=y
+CONFIG_ION_SYSTEM_HEAP=y
+CONFIG_ION_CARVEOUT_HEAP=y
+CONFIG_ION_CMA_HEAP=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_CV1835_SYSDMA_REMAP=y
+CONFIG_PWM=y
+CONFIG_SIFIVE_PLIC=y
+CONFIG_ANDROID=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_WBUF_VERIFY=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_ZLIB is not set
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=0
+CONFIG_PRINTK_TIME=y
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO=n
+CONFIG_DEBUG_INFO_DWARF4=n
+CONFIG_GDB_SCRIPTS=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_DEBUG_FS=y
+CONFIG_BLK_DEV_INITRD=n
+CONFIG_KALLSYMS=y
+CONFIG_FRAME_POINTER=n
+CONFIG_DEBUG_MISC=n
+CONFIG_RCU_TRACE=n
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=y
+CONFIG_USB_U_SERIAL=y
+CONFIG_USB_U_ETHER=y
+CONFIG_USB_U_AUDIO=y
+CONFIG_USB_F_SERIAL=y
+CONFIG_USB_F_ECM=y
+CONFIG_USB_F_EEM=y
+CONFIG_USB_F_RNDIS=y
+CONFIG_USB_F_MASS_STORAGE=y
+CONFIG_USB_F_FS=y
+CONFIG_USB_F_UAC1=y
+CONFIG_USB_F_UVC=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+# CONFIG_USB_CONFIGFS_OBEX is not set
+# CONFIG_USB_CONFIGFS_NCM is not set
+CONFIG_USB_CONFIGFS_ECM=y
+# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+# CONFIG_USB_CONFIGFS_F_LB_SS is not set
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_UEVENT=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONFIGFS_F_UAC2 is not set
+# CONFIG_USB_CONFIGFS_F_MIDI is not set
+# CONFIG_USB_CONFIGFS_F_HID is not set
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_BUG=n
+CONFIG_IO_URING=n
+CONFIG_ADVISE_SYSCALLS=n
+CONFIG_SIGNALFD=n
+CONFIG_TIMERFD=n
+CONFIG_EPOLL=n
diff --git a/build/boards/cv181x/sg2002_wevb_riscv64_sd/memmap.py b/build/boards/cv181x/sg2002_wevb_riscv64_sd/memmap.py
new file mode 100755
index 000000000..fcc097d01
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_riscv64_sd/memmap.py
@@ -0,0 +1,85 @@
+SIZE_1M = 0x100000
+SIZE_1K = 1024
+
+
+# Only attributes in class MemoryMap are generated to .h
+class MemoryMap:
+ # No prefix "CVIMMAP_" for the items in _no_prefix[]
+ _no_prefix = [
+ "CONFIG_SYS_TEXT_BASE" # u-boot's CONFIG_SYS_TEXT_BASE is used without CPP.
+ ]
+
+ DRAM_BASE = 0x80000000
+ DRAM_SIZE = 256 * SIZE_1M
+
+ # ==============
+ # C906L FreeRTOS
+ # ==============
+ FREERTOS_SIZE = 2 * SIZE_1M
+ # FreeRTOS is at the end of DRAM
+ FREERTOS_ADDR = DRAM_BASE + DRAM_SIZE - FREERTOS_SIZE
+ FSBL_C906L_START_ADDR = FREERTOS_ADDR
+
+ # ==============================
+ # OpenSBI | arm-trusted-firmware
+ # ==============================
+ # Monitor is at the begining of DRAM
+ MONITOR_ADDR = DRAM_BASE
+
+ ATF_SIZE = 512 * SIZE_1K
+ OPENSBI_SIZE = 512 * SIZE_1K
+ OPENSBI_FDT_ADDR = MONITOR_ADDR + OPENSBI_SIZE
+
+ # =========================
+ # memory@DRAM_BASE in .dts.
+ # =========================
+ # Ignore the area of FreeRTOS in u-boot and kernel
+ KERNEL_MEMORY_ADDR = DRAM_BASE
+ KERNEL_MEMORY_SIZE = DRAM_SIZE - FREERTOS_SIZE
+
+ # =================
+ # Multimedia buffer. Used by u-boot/kernel/FreeRTOS
+ # =================
+ ION_SIZE = 75 * SIZE_1M
+ H26X_BITSTREAM_SIZE = 2 * SIZE_1M
+ H26X_ENC_BUFF_SIZE = 0
+ ISP_MEM_BASE_SIZE = 20 * SIZE_1M
+ FREERTOS_RESERVED_ION_SIZE = H26X_BITSTREAM_SIZE + H26X_ENC_BUFF_SIZE + ISP_MEM_BASE_SIZE
+
+ # ION after FreeRTOS
+ ION_ADDR = FREERTOS_ADDR - ION_SIZE
+
+ # Buffers of the fast image are inside the ION buffer
+ H26X_BITSTREAM_ADDR = ION_ADDR
+ H26X_ENC_BUFF_ADDR = H26X_BITSTREAM_ADDR + H26X_BITSTREAM_SIZE
+ ISP_MEM_BASE_ADDR = H26X_ENC_BUFF_ADDR + H26X_ENC_BUFF_SIZE
+
+ assert ISP_MEM_BASE_ADDR + ISP_MEM_BASE_SIZE <= ION_ADDR + ION_SIZE
+
+ # Boot logo is after the ION buffer
+ # Framebuffer uses boot logo's reserved memory
+ BOOTLOGO_SIZE = 1800 * SIZE_1K
+ BOOTLOGO_ADDR = ION_ADDR - BOOTLOGO_SIZE
+ FRAMEBUFFER_SIZE = BOOTLOGO_SIZE
+ FRAMEBUFFER_ADDR = BOOTLOGO_ADDR
+
+ # ===================
+ # FSBL and u-boot-2021
+ # ===================
+ CVI_UPDATE_HEADER_SIZE = SIZE_1K
+ UIMAG_SIZE = 16 * SIZE_1M
+
+ # kernel image loading buffer
+ UIMAG_ADDR = DRAM_BASE + 24 * SIZE_1M
+ CVI_UPDATE_HEADER_ADDR = UIMAG_ADDR - CVI_UPDATE_HEADER_SIZE
+
+ # FSBL decompress buffer
+ FSBL_UNZIP_ADDR = UIMAG_ADDR
+ FSBL_UNZIP_SIZE = UIMAG_SIZE
+
+ assert UIMAG_ADDR + UIMAG_SIZE <= BOOTLOGO_ADDR
+
+ # u-boot's run address and entry point
+ CONFIG_SYS_TEXT_BASE = DRAM_BASE + 2 * SIZE_1M
+ # u-boot's init stack point is only used before board_init_f()
+ CONFIG_SYS_INIT_SP_ADDR = UIMAG_ADDR + UIMAG_SIZE
diff --git a/build/boards/cv181x/sg2002_wevb_riscv64_sd/partition/partition_sd.xml b/build/boards/cv181x/sg2002_wevb_riscv64_sd/partition/partition_sd.xml
new file mode 100644
index 000000000..004c3da4d
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_riscv64_sd/partition/partition_sd.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/build/boards/cv181x/sg2002_wevb_riscv64_sd/rootfs_script/clean_rootfs.sh b/build/boards/cv181x/sg2002_wevb_riscv64_sd/rootfs_script/clean_rootfs.sh
new file mode 100755
index 000000000..26692d889
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_riscv64_sd/rootfs_script/clean_rootfs.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+SYSTEM_DIR=$1
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libz*
+rm -f $SYSTEM_DIR/mnt/system/lib/libz*
+
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libcvi*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libmad*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libmp3*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libopencv*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libopencv*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvi_rtsp.so
+rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libcvi_rtsp.so
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvikernel.so
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/*.a
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libgst*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libg*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/gstreamer-1.0/libgst*
+rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libcrypto.so*
+rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libssl.so*
+rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libcvi_protobuf.so*
+rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libprotobuf-lite.so*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcviai*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvi_ispd.so*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libraw_replay.so*
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvi_ive_tpu.so*
+rm -rf $SYSTEM_DIR/mnt/system/usr/lib/gio
+rm -rf $SYSTEM_DIR/mnt/system/usr/lib/glib*
+rm -rf $SYSTEM_DIR/mnt/system/usr/lib/gstreamer-1.0*
+rm -rf $SYSTEM_DIR/mnt/system/usr/libexec*
+rm -rf $SYSTEM_DIR/mnt/system/usr/bin
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvimath.so
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcviruntime.so
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcnpy.so
+rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcipher.so
+
+rm -f $SYSTEM_DIR/mnt/system/lib/libcipher.so*
+rm -f $SYSTEM_DIR/mnt/system/lib/libcvi_ispd.so*
+rm -f $SYSTEM_DIR/mnt/system/lib/libraw_replay.so*
+rm -f $SYSTEM_DIR/mnt/system/lib/libmad.so*
+rm -f $SYSTEM_DIR/mnt/system/lib/libmp3*
+rm -f $SYSTEM_DIR/mnt/system/lib/libnanomsg*
+
+#del 3rdparty lib
+#del thttpd/libwebsockets lib
+rm -f $SYSTEM_DIR/mnt/system/lib/libthttpd*
+rm -f $SYSTEM_DIR/mnt/system/lib/libwebsocket*
+if [ $SDK_VER = "uclibc" ]
+then
+ #del opencv lib
+ rm -f $SYSTEM_DIR/mnt/system/lib/libopencv*
+ #del ffmpeg lib
+ rm -f $SYSTEM_DIR/mnt/system/lib/libav*
+ #save /mnt/system/lib/ openssl lib; need by ntpdate/wpa_supplicant
+else
+ #glibc ramdisk(rootfs/common_arm/usr/lib/) has libcrypto.so and libssl.so
+ #del openssl
+ rm -f $SYSTEM_DIR/mnt/system/lib/libssl*
+ rm -f $SYSTEM_DIR/mnt/system/lib/libcrypto*
+fi
+
+rm -rf $SYSTEM_DIR/etc/init.d/S23ntp
+rm -rf $SYSTEM_DIR/bin/ntpd
+
+du -sh $SYSTEM_DIR/* |sort -rh
+du -sh $SYSTEM_DIR/mnt/* |sort -rh
+du -sh $SYSTEM_DIR/mnt/system/* |sort -rh
+du -sh $SYSTEM_DIR/mnt/system/lib/* |sort -rh
+du -sh $SYSTEM_DIR/mnt/system/data/install/* |sort -rh
+du -sh $SYSTEM_DIR/usr/* |sort -rh
diff --git a/build/boards/cv181x/sg2002_wevb_riscv64_sd/sg2002_wevb_riscv64_sd_defconfig b/build/boards/cv181x/sg2002_wevb_riscv64_sd/sg2002_wevb_riscv64_sd_defconfig
new file mode 100644
index 000000000..fc91e30dc
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_riscv64_sd/sg2002_wevb_riscv64_sd_defconfig
@@ -0,0 +1,39 @@
+CONFIG_CHIP_sg2002=y
+CONFIG_BOARD_wevb_riscv64_sd=y
+CONFIG_DDR_CFG_ddr3_1866_x16=y
+CONFIG_ARCH="riscv"
+CONFIG_CROSS_COMPILE="riscv64-unknown-linux-musl-"
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_KERNEL_ENTRY_HACK=y
+CONFIG_KERNEL_ENTRY_HACK_ADDR="0x80200000"
+CONFIG_TOOLCHAIN_MUSL_RISCV64=y
+CONFIG_FLASH_SIZE_SHRINK=y
+CONFIG_BOOT_IMAGE_SINGLE_DTB=y
+CONFIG_STORAGE_TYPE_sd=y
+CONFIG_SENSOR_GCORE_GC4653=y
+CONFIG_SENSOR_SMS_SC3335=y
+CONFIG_SENSOR_SMS_SC500AI=y
+CONFIG_SENSOR_SONY_IMX307=y
+CONFIG_SENSOR_SONY_IMX307_2L=y
+CONFIG_SENSOR_SONY_IMX307_SLAVE=y
+CONFIG_SENSOR_SONY_IMX327=y
+CONFIG_SENSOR_SONY_IMX327_2L=y
+CONFIG_SENSOR_SONY_IMX327_SLAVE=y
+CONFIG_SENSOR_OV_OS04C10=y
+CONFIG_SENSOR_OV_OS04A10=y
+CONFIG_UBOOT_2021_10=y
+CONFIG_KERNEL_SRC_5.10=y
+CONFIG_KERNEL_LZMA=y
+CONFIG_SKIP_RAMDISK=y
+CONFIG_SENSOR_TUNING_PARAM_cv181x_src_gcore_gc4653=y
+# CONFIG_ROOTFS_OVERLAYFS is not set
+CONFIG_TARGET_PACKAGE_DROPBEAR=y
+CONFIG_TARGET_PACKAGE_MTD-UTILS=y
+# CONFIG_TARGET_PACKAGE_RSYSLOG is not set
+CONFIG_TARGET_PACKAGE_BUSYBOX_SYSLOGD_SCRIPT=y
+CONFIG_ENABLE_FREERTOS=y
+CONFIG_ENABLE_RTOS_DUMP_PRINT=y
+CONFIG_DUMP_PRINT_SZ_IDX=17
+CONFIG_TARGET_PACKAGE_GATORD=n
+CONFIG_TARGET_PACKAGE_NTP=y
+CONFIG_TARGET_PACKAGE_WIFI=y
diff --git a/build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvi_board_init.c b/build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvi_board_init.c
new file mode 100644
index 000000000..2938a3ec9
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvi_board_init.c
@@ -0,0 +1,8 @@
+int cvi_board_init(void)
+{
+ PINMUX_CONFIG(PAD_MIPI_TXM1, IIC2_SDA);
+ PINMUX_CONFIG(PAD_MIPI_TXP1, IIC2_SCL);
+ PINMUX_CONFIG(PAD_MIPI_TXM0, CAM_MCLK1);
+
+ return 0;
+}
diff --git a/build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvitek.h b/build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvitek.h
new file mode 100644
index 000000000..8a122c238
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvitek.h
@@ -0,0 +1,12 @@
+/*
+ *VO control GPIOs
+ */
+#define VO_GPIO_RESET_PORT portb
+#define VO_GPIO_RESET_INDEX 5
+#define VO_GPIO_RESET_ACTIVE GPIO_ACTIVE_LOW
+#define VO_GPIO_PWM_PORT portb
+#define VO_GPIO_PWM_INDEX 4
+#define VO_GPIO_PWM_ACTIVE GPIO_ACTIVE_HIGH
+#define VO_GPIO_POWER_CT_PORT portb
+#define VO_GPIO_POWER_CT_INDEX 3
+#define VO_GPIO_POWER_CT_ACTIVE GPIO_ACTIVE_HIGH
diff --git a/build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvitek_sg2002_wevb_riscv64_sd_defconfig b/build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvitek_sg2002_wevb_riscv64_sd_defconfig
new file mode 100644
index 000000000..512ea4d25
--- /dev/null
+++ b/build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvitek_sg2002_wevb_riscv64_sd_defconfig
@@ -0,0 +1,43 @@
+CONFIG_RISCV=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="soph_asic"
+CONFIG_IDENT_STRING=" soph"
+CONFIG_ARCH_RV64I=y
+CONFIG_RISCV_SMODE=y
+CONFIG_TARGET_CVITEK_CV181X=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_BOOTDELAY=1
+CONFIG_SYS_PROMPT="soph# "
+# CONFIG_CMD_CONSOLE is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_CRC32 is not set
+# CONFIG_CMD_LZMADEC is not set
+# CONFIG_CMD_UNLZ4 is not set
+# CONFIG_CMD_UNZIP is not set
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_MMC=y
+# CONFIG_CMD_ITEST is not set
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_CVI_SD_UPDATE=y
+# CONFIG_ISO_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_CVITEK=y
+CONFIG_MTD=y
+# CONFIG_PHY_SMSC is not set
+CONFIG_DM_ETH=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_PHY_CVITEK=y
+CONFIG_SYS_NS16550=y
+CONFIG_SPI=y
+CONFIG_LZ4=y
+CONFIG_LZMA=y
+# CONFIG_TOOLS_LIBCRYPTO is not set
+CONFIG_ENV_IS_NOWHERE=y
diff --git a/build/boards/default/dts/cv181x/cv181x_base.dtsi b/build/boards/default/dts/cv181x/cv181x_base.dtsi
index 3e12a18a9..13747090d 100644
--- a/build/boards/default/dts/cv181x/cv181x_base.dtsi
+++ b/build/boards/default/dts/cv181x/cv181x_base.dtsi
@@ -737,7 +737,7 @@
reg-names = "ive_base";
};
- vo {
+ vo:vo {
compatible = "cvitek,vo";
reg = <0x0 0x0a080000 0x0 0x10000>, <0x0 0x0a0c8000 0x0 0xa0>, <0x0 0x0a0d1000 0x0 0x100>;
reg-names = "sc", "vip_sys", "dphy";
diff --git a/build/boards/default/dts/cv181x_arm64/cv181x_base_arm.dtsi b/build/boards/default/dts/cv181x_arm64/cv181x_base_arm.dtsi
new file mode 100644
index 000000000..9535dfdaf
--- /dev/null
+++ b/build/boards/default/dts/cv181x_arm64/cv181x_base_arm.dtsi
@@ -0,0 +1,320 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include "cvi_board_memmap.h"
+
+/memreserve/ CVIMMAP_MONITOR_ADDR CVIMMAP_ATF_SIZE; // ATF (BL31 + BL32) 512KB
+
+#include "cv181x_base.dtsi"
+
+/ {
+ model = "Cvitek. CV181X ASIC. ARM.";
+ interrupt-parent = <&gic>;
+
+ #size-cells = <0x2>;
+ #address-cells = <0x2>;
+
+ gic: interrupt-controller {
+ compatible = "arm,cortex-a15-gic";
+ ranges;
+ #size-cells = <0x2>;
+ #address-cells = <0x2>;
+ interrupt-controller;
+ #interrupt-cells = <0x3>;
+ reg = <0x0 0x01F01000 0x0 0x1000>,
+ <0x0 0x01F02000 0x0 0x2000>;
+ };
+
+ pmu_a53 {
+ compatible = "arm,cortex-a53-pmu";
+ interrupts = ,
+ ;
+ interrupt-affinity = <&A53_0>;
+ };
+
+ psci {
+ migrate = <0xc4000005>;
+ cpu_on = <0xc4000003>;
+ cpu_off = <0x84000002>;
+ cpu_suspend = <0xc4000001>;
+ sys_poweroff = <0x84000008>;
+ sys_reset = <0x84000009>;
+ method = "smc";
+ compatible = "arm,psci-0.2", "arm,psci";
+ };
+
+ cpus {
+ #size-cells = <0x0>;
+ #address-cells = <0x1>;
+
+ A53_0: cpu@0 {
+ reg = <0x0>;
+ enable-method = "psci";
+ compatible = "arm,cortex-a53";
+ device_type = "cpu";
+ next-level-cache = <&CA53_L2>;
+ };
+
+ CA53_L2: l2-cache0 {
+ compatible = "cache";
+ };
+ };
+
+ timer {
+ interrupts = ,
+ ,
+ ,
+ ;
+ always-on;
+ clock-frequency = <25000000>;
+ compatible = "arm,armv8-timer";
+ };
+
+ firmware {
+ optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
+ cv181x_cooling:cv181x_cooling {
+ clocks = <&clk CV181X_CLK_A53>, <&clk CV181X_CLK_TPU>;
+ clock-names = "clk_cpu", "clk_tpu_axi";
+ dev-freqs = <800000000 500000000>,
+ <400000000 375000000>,
+ <400000000 300000000>;
+ compatible = "cvitek,cv181x-cooling";
+ #cooling-cells = <2>;
+ };
+
+ tpu {
+ interrupts = ,
+ ;
+ };
+
+ mon {
+ interrupts = ;
+ };
+
+ wiegand0 {
+ interrupts = ;
+ };
+
+ wiegand1 {
+ interrupts = ;
+ };
+
+ wiegand2 {
+ interrupts = ;
+ };
+
+ saradc {
+ interrupts = ;
+ };
+
+ rtc {
+ interrupts = ;
+ };
+
+ sysdma_remap {
+ int_mux = <0x1FF>; /* enable bit [0..8] for CPU0(CA53) */
+ };
+
+ dmac: dma@0x4330000 {
+ interrupts = ;
+ };
+
+#if 0
+ watchdog0: cv-wd@0x3010000 {
+ interrupts = ;
+ };
+#endif
+
+ spinand:cv-spinf@4060000 {
+ interrupts = ;
+ };
+
+ spif:cvi-spif@10000000 {
+ interrupts = ;
+ };
+
+ spi0:spi0@04180000 {
+ interrupts = ;
+ };
+
+ spi1:spi1@04190000 {
+ interrupts = ;
+ };
+
+ spi2:spi2@041A0000 {
+ interrupts = ;
+ };
+
+ spi3:spi3@041B0000 {
+ interrupts = ;
+ };
+
+ uart0: serial@04140000 {
+ interrupts = ;
+ };
+
+ uart1: serial@04150000 {
+ interrupts = ;
+ };
+
+ uart2: serial@04160000 {
+ interrupts = ;
+ };
+
+ uart3: serial@04170000 {
+ interrupts = ;
+ };
+
+ uart4: serial@041C0000 {
+ interrupts = ;
+ };
+
+ gpio0: gpio@03020000 {
+ porta: gpio-controller@0 {
+ interrupt-controller;
+ interrupts = ;
+ };
+ };
+
+ gpio1: gpio@03021000 {
+ portb: gpio-controller@1 {
+ interrupt-controller;
+ interrupts = ;
+ };
+ };
+
+ gpio2: gpio@03022000 {
+ portc: gpio-controller@2 {
+ interrupt-controller;
+ interrupts = ;
+ };
+ };
+
+ gpio3: gpio@03023000 {
+ portd: gpio-controller@3 {
+ interrupt-controller;
+ interrupts = ;
+ };
+ };
+
+ gpio4: gpio@05021000 {
+ porte: gpio-controller@4 {
+ interrupt-controller;
+ interrupts = ;
+ };
+ };
+
+ i2c0: i2c@04000000 {
+ interrupts = ;
+ };
+
+ i2c1: i2c@04010000 {
+ interrupts = ;
+ };
+
+ i2c2: i2c@04020000 {
+ interrupts = ;
+ };
+
+ i2c3: i2c@04030000 {
+ interrupts = ;
+ };
+
+ i2c4: i2c@04040000 {
+ interrupts = ;
+ };
+
+ ethernet0: ethernet@4070000 {
+ interrupt-names = "macirq";
+ interrupts = ;
+ };
+
+ emmc:cv-emmc@4300000 {
+ interrupts = ;
+ };
+
+ sd:cv-sd@4310000 {
+ interrupts = ;
+ };
+
+ i2s0: i2s@04100000 {
+ interrupts = ;
+ };
+
+ i2s1: i2s@04110000 {
+ interrupts = ;
+ };
+
+ i2s2: i2s@04120000 {
+ interrupts = ;
+ };
+
+ i2s3: i2s@04130000 {
+ interrupts = ;
+ };
+
+ wifisd:wifi-sd@4320000 {
+ interrupts = ;
+ };
+
+ mipi_rx: cif {
+ interrupts = ,
+ ;
+ interrupt-names = "csi0", "csi1";
+ };
+
+ vi {
+ interrupts = ;
+ interrupt-names = "isp";
+ };
+
+ ive {
+ interrupt-names = "ive_irq";
+ interrupts = ;
+ };
+
+ vpss {
+ interrupts = ;
+ interrupt-names = "sc";
+ };
+
+ dwa {
+ interrupts = ;
+ interrupt-names = "dwa";
+ };
+
+ vcodec {
+ interrupts = ,
+ ,
+ ;
+ interrupt-names = "h265","h264","sbm";
+ };
+
+ jpu {
+ interrupts = ;
+ interrupt-names = "jpeg";
+ };
+
+ rtos_cmdqu {
+ interrupts = ;
+ interrupt-names = "mailbox";
+ };
+
+ usb: usb@04340000 {
+ interrupts = ;
+ };
+
+ thermal:thermal@030E0000 {
+ interrupts = ;
+ interrupt-names = "tempsen";
+ };
+
+};
diff --git a/build/boards/default/dts/sg200x/soph_asic_bga.dtsi b/build/boards/default/dts/sg200x/soph_asic_bga.dtsi
new file mode 100644
index 000000000..f54872935
--- /dev/null
+++ b/build/boards/default/dts/sg200x/soph_asic_bga.dtsi
@@ -0,0 +1,16 @@
+&dac{
+ mute-gpio-l = <&porta 15 GPIO_ACTIVE_LOW>;
+ mute-gpio-r = <&porta 30 GPIO_ACTIVE_LOW>;
+};
+
+&i2c1 {
+ status = "disabled";
+};
+
+/ {
+ /delete-node/ i2s@04110000;
+ /delete-node/ i2s@04120000;
+ /delete-node/ sound_ext1;
+ /delete-node/ sound_ext2;
+ /delete-node/ sound_PDM;
+};
diff --git a/build/boards/default/dts/sg200x/soph_asic_emmc.dtsi b/build/boards/default/dts/sg200x/soph_asic_emmc.dtsi
new file mode 100644
index 000000000..507a3a46b
--- /dev/null
+++ b/build/boards/default/dts/sg200x/soph_asic_emmc.dtsi
@@ -0,0 +1,4 @@
+/ {
+ /delete-node/ cvi-spif@10000000;
+ /delete-node/ cv-spinf@4060000;
+};
diff --git a/build/boards/default/dts/sg200x/soph_asic_qfn.dtsi b/build/boards/default/dts/sg200x/soph_asic_qfn.dtsi
new file mode 100644
index 000000000..5bb417dc9
--- /dev/null
+++ b/build/boards/default/dts/sg200x/soph_asic_qfn.dtsi
@@ -0,0 +1,118 @@
+&sd {
+ no-1-8-v;
+};
+
+&mipi_rx{
+ snsr-reset = <&portc 13 GPIO_ACTIVE_LOW>, <&portc 13 GPIO_ACTIVE_LOW>, <&portc 13 GPIO_ACTIVE_LOW>;
+};
+
+&mipi_tx {
+ reset-gpio = <&porta 15 GPIO_ACTIVE_LOW>;
+ pwm-gpio = <&porta 18 GPIO_ACTIVE_HIGH>;
+ power-ct-gpio = <&porta 19 GPIO_ACTIVE_HIGH>;
+};
+
+&dac{
+ mute-gpio-r = <&porte 2 GPIO_ACTIVE_LOW>;
+};
+
+&spi0 {
+ status = "disabled";
+ num-cs = <1>;
+ spidev@0 {
+ compatible = "rohm,dh2228fv";
+ spi-max-frequency = <1000000>;
+ reg = <0>;
+ };
+};
+
+&spi1 {
+ status = "disabled";
+ num-cs = <1>;
+ spidev@0 {
+ compatible = "rohm,dh2228fv";
+ spi-max-frequency = <1000000>;
+ reg = <0>;
+ };
+};
+
+&spi2 {
+ status = "disabled";
+ num-cs = <1>;
+ spidev@0 {
+ compatible = "rohm,dh2228fv";
+ spi-max-frequency = <1000000>;
+ reg = <0>;
+ };
+};
+
+&spi3 {
+ status = "okay";
+ num-cs = <1>;
+ spidev@0 {
+ compatible = "rohm,dh2228fv";
+ spi-max-frequency = <1000000>;
+ reg = <0>;
+ };
+};
+
+&i2c0 {
+ /* FMUX_GPIO_REG iic_func_sel gpio_func_sel */
+ scl-pinmux = <0x03001070 0x0 0x3>; // IIC0_SCL/IIC0_SCL/XGPIOA[28]
+ sda-pinmux = <0x03001074 0x0 0x3>; // IIC0_SDA/IIC0_SDA/XGPIOA[29]
+ /* gpio port */
+ scl-gpios = <&porta 28 GPIO_ACTIVE_HIGH>;
+ sda-gpios = <&porta 29 GPIO_ACTIVE_HIGH>;
+};
+
+&i2c1 {
+ /* FMUX_GPIO_REG iic_func_sel gpio_func_sel */
+ scl-pinmux = <0x03009408 0x2 0x3>; // SPI1_MOSI/IIC1_SCL/XGPIOB[7]
+ sda-pinmux = <0x0300940c 0x2 0x3>; // SPI1_MISO/IIC1_SDA/XGPIOB[8]
+ /* gpio port */
+ scl-gpios = <&portb 7 GPIO_ACTIVE_HIGH>;
+ sda-gpios = <&portb 8 GPIO_ACTIVE_HIGH>;
+};
+
+&i2c2 {
+ /* FMUX_GPIO_REG iic_func_sel gpio_func_sel */
+ scl-pinmux = <0x030011a0 0x4 0x3>; // PAD_MIPI_TXP1/IIC2_SCL/XGPIOC[15]
+ sda-pinmux = <0x0300119c 0x4 0x3>; // PAD_MIPI_TXM1/IIC2_SDA/XGPIOC[14]
+ /* gpio port */
+ scl-gpios = <&portc 15 GPIO_ACTIVE_HIGH>;
+ sda-gpios = <&portc 14 GPIO_ACTIVE_HIGH>;
+};
+
+&i2c3 {
+ /* FMUX_GPIO_REG iic_func_sel gpio_func_sel */
+ scl-pinmux = <0x03001014 0x0 0x3>; // IIC3_SCL/IIC3_SCL/XGPIOA[5]
+ sda-pinmux = <0x03001018 0x0 0x3>; // IIC3_SDA/IIC3_SDA/XGPIOA[6]
+ /* gpio port */
+ scl-gpios = <&porta 5 GPIO_ACTIVE_HIGH>;
+ sda-gpios = <&porta 6 GPIO_ACTIVE_HIGH>;
+};
+
+&i2c4 {
+ /* FMUX_GPIO_REG iic_func_sel gpio_func_sel */
+ scl-pinmux = <0x030010f0 0x2 0x3>; // ADC3/IIC4_SCL/XGPIOB[1]
+ sda-pinmux = <0x030010f4 0x2 0x3>; // ADC2/IIC4_SDA/XGPIOB[2]
+ /* gpio port */
+ scl-gpios = <&portb 1 GPIO_ACTIVE_HIGH>;
+ sda-gpios = <&portb 2 GPIO_ACTIVE_HIGH>;
+};
+
+/ {
+ /delete-node/ wifi-sd@4320000;
+ /delete-node/ i2s@04110000;
+ /delete-node/ i2s@04120000;
+ /delete-node/ sound_ext1;
+ /delete-node/ sound_ext2;
+ /delete-node/ sound_PDM;
+
+ wifi_pin {
+ compatible = "cvitek,wifi-pin";
+ poweron-gpio = <&porte 2 GPIO_ACTIVE_HIGH>;
+ wakeup-gpio = <&porte 6 GPIO_ACTIVE_HIGH>;
+ };
+
+};
diff --git a/build/boards/default/dts/sg200x/soph_asic_sd.dtsi b/build/boards/default/dts/sg200x/soph_asic_sd.dtsi
new file mode 100644
index 000000000..5af9620d8
--- /dev/null
+++ b/build/boards/default/dts/sg200x/soph_asic_sd.dtsi
@@ -0,0 +1,4 @@
+/ {
+ /delete-node/ cv-emmc@4300000;
+ /delete-node/ cv-spinf@4060000;
+};
diff --git a/build/boards/default/dts/sg200x/soph_asic_spinand.dtsi b/build/boards/default/dts/sg200x/soph_asic_spinand.dtsi
new file mode 100644
index 000000000..2c3c6065c
--- /dev/null
+++ b/build/boards/default/dts/sg200x/soph_asic_spinand.dtsi
@@ -0,0 +1,5 @@
+/ {
+ /delete-node/ cvi-spif@10000000;
+ /delete-node/ cv-emmc@4300000;
+};
+
diff --git a/build/boards/default/dts/sg200x/soph_asic_spinor.dtsi b/build/boards/default/dts/sg200x/soph_asic_spinor.dtsi
new file mode 100644
index 000000000..cd1254082
--- /dev/null
+++ b/build/boards/default/dts/sg200x/soph_asic_spinor.dtsi
@@ -0,0 +1,5 @@
+/ {
+ /delete-node/ cv-emmc@4300000;
+ /delete-node/ cv-spinf@4060000;
+};
+
diff --git a/build/boards/default/dts/sg200x/soph_base.dtsi b/build/boards/default/dts/sg200x/soph_base.dtsi
new file mode 100644
index 000000000..3e12a18a9
--- /dev/null
+++ b/build/boards/default/dts/sg200x/soph_base.dtsi
@@ -0,0 +1,932 @@
+
+/ {
+ compatible = "cvitek,cv181x";
+
+ #size-cells = <0x2>;
+ #address-cells = <0x2>;
+
+ top_misc:top_misc_ctrl@3000000 {
+ compatible = "syscon";
+ reg = <0x0 0x03000000 0x0 0x8000>;
+ };
+
+ clk_rst: clk-reset-controller {
+ #reset-cells = <1>;
+ compatible = "cvitek,clk-reset";
+ reg = <0x0 0x03002000 0x0 0x8>;
+ };
+
+ osc: oscillator {
+ #clock-cells = <0>;
+ compatible = "fixed-clock";
+ clock-frequency = <25000000>;
+ clock-output-names = "osc";
+ };
+
+ clk: clock-controller {
+ compatible = "cvitek,cv181x-clk";
+ reg = <0x0 0x03002000 0x0 0x1000>;
+ clocks = <&osc>;
+ #clock-cells = <1>;
+ };
+
+ rst: reset-controller {
+ #reset-cells = <1>;
+ compatible = "cvitek,reset";
+ reg = <0x0 0x03003000 0x0 0x10>;
+ };
+
+ restart: restart-controller {
+ compatible = "cvitek,restart";
+ reg = <0x0 0x05025000 0x0 0x2000>;
+ };
+
+ tpu {
+ compatible = "cvitek,tpu";
+ reg-names = "tdma", "tiu";
+ reg = <0x0 0x0C100000 0x0 0x1000>,
+ <0x0 0x0C101000 0x0 0x1000>;
+ clocks = <&clk CV181X_CLK_TPU>, <&clk CV181X_CLK_TPU_FAB>;
+ clock-names = "clk_tpu_axi", "clk_tpu_fab";
+ resets = <&rst RST_TDMA>, <&rst RST_TPU>, <&rst RST_TPUSYS>;
+ reset-names = "res_tdma", "res_tpu", "res_tpusys";
+ };
+
+ mon {
+ compatible = "cvitek,mon";
+ reg-names = "pcmon", "ddr_ctrl", "ddr_phyd", "ddr_aximon", "ddr_top";
+ reg = <0x0 0x01040000 0x0 0x1000>,
+ <0x0 0x08004000 0x0 0x1000>,
+ <0x0 0x08006000 0x0 0x1000>,
+ <0x0 0x08008000 0x0 0x1000>,
+ <0x0 0x0800A000 0x0 0x1000>;
+ };
+
+ wiegand0 {
+ compatible = "cvitek,wiegand";
+ reg-names = "wiegand";
+ reg = <0x0 0x03030000 0x0 0x1000>;
+ clocks = <&clk CV181X_CLK_WGN>, <&clk CV181X_CLK_WGN0>;
+ clock-names = "clk_wgn", "clk_wgn1";
+ resets = <&rst RST_WGN0>;
+ reset-names = "res_wgn";
+ };
+
+ wiegand1 {
+ compatible = "cvitek,wiegand";
+ reg-names = "wiegand";
+ reg = <0x0 0x03031000 0x0 0x1000>;
+ clocks = <&clk CV181X_CLK_WGN>, <&clk CV181X_CLK_WGN1>;
+ clock-names = "clk_wgn", "clk_wgn1";
+ resets = <&rst RST_WGN1>;
+ reset-names = "res_wgn";
+ };
+
+ wiegand2 {
+ compatible = "cvitek,wiegand";
+ reg-names = "wiegand";
+ reg = <0x0 0x03032000 0x0 0x1000>;
+ clocks = <&clk CV181X_CLK_WGN>, <&clk CV181X_CLK_WGN2>;
+ clock-names = "clk_wgn", "clk_wgn1";
+ resets = <&rst RST_WGN2>;
+ reset-names = "res_wgn";
+ };
+
+ saradc {
+ compatible = "cvitek,saradc";
+ reg-names = "top_domain_saradc", "rtc_domain_saradc";
+ reg = <0x0 0x030F0000 0x0 0x1000>, <0x0 0x0502c000 0x0 0x1000>;
+ clocks = <&clk CV181X_CLK_SARADC>;
+ clock-names = "clk_saradc";
+ resets = <&rst RST_SARADC>;
+ reset-names = "res_saradc";
+ };
+
+ rtc {
+ compatible = "cvitek,rtc";
+ reg = <0x0 0x05026000 0x0 0x1000>,<0x0 0x05025000 0x0 0x1000>;
+ clocks = <&clk CV181X_CLK_RTC_25M>;
+ clock-names = "clk_rtc";
+ };
+
+ cvitek-ion {
+ compatible = "cvitek,cvitek-ion";
+
+ heap_carveout@0 {
+ compatible = "cvitek,carveout";
+ memory-region = <&ion_reserved>;
+ };
+ };
+
+ sysdma_remap {
+ compatible = "cvitek,sysdma_remap";
+ reg = <0x0 0x03000154 0x0 0x10>;
+ ch-remap = ;
+ int_mux_base = <0x03000298>;
+ };
+
+ dmac: dma@0x4330000 {
+ compatible = "snps,dmac-bm";
+ reg = <0x0 0x04330000 0x0 0x1000>;
+ clock-names = "clk_sdma_axi";
+ clocks = <&clk CV181X_CLK_SDMA_AXI>;
+
+ dma-channels = /bits/ 8 <8>;
+ #dma-cells = <3>;
+ dma-requests = /bits/ 8 <16>;
+ chan_allocation_order = /bits/ 8 <0>;
+ chan_priority = /bits/ 8 <1>;
+ block_size = <1024>;
+ dma-masters = /bits/ 8 <2>;
+ data-width = <4 4>; /* bytes */
+ axi_tr_width = <4>; /* bytes */
+ block-ts = <15>;
+ };
+
+
+ watchdog0: cv-wd@0x3010000 {
+ compatible = "snps,dw-wdt";
+ reg = <0x0 0x03010000 0x0 0x1000>;
+ resets = <&rst RST_WDT>;
+ clocks = <&pclk>;
+ };
+
+ pwm0: pwm@3060000 {
+ compatible = "cvitek,cvi-pwm";
+ reg = <0x0 0x3060000 0x0 0x1000>;
+ clocks = <&clk CV181X_CLK_PWM>;
+ #pwm-cells = <1>;
+ };
+
+ pwm1: pwm@3061000 {
+ compatible = "cvitek,cvi-pwm";
+ reg = <0x0 0x3061000 0x0 0x1000>;
+ clocks = <&clk CV181X_CLK_PWM>;
+ #pwm-cells = <2>;
+ };
+
+ pwm2: pwm@3062000 {
+ compatible = "cvitek,cvi-pwm";
+ reg = <0x0 0x3062000 0x0 0x1000>;
+ clocks = <&clk CV181X_CLK_PWM>;
+ #pwm-cells = <3>;
+ };
+
+ pwm3: pwm@3063000 {
+ compatible = "cvitek,cvi-pwm";
+ reg = <0x0 0x3063000 0x0 0x1000>;
+ clocks = <&clk CV181X_CLK_PWM>;
+ #pwm-cells = <4>;
+ };
+
+ pclk: pclk {
+ #clock-cells = <0>;
+ compatible = "fixed-clock";
+ clock-frequency = <25000000>;
+ };
+
+ spinand:cv-spinf@4060000 {
+ compatible = "cvitek,cv1835-spinf";
+ reg = <0x0 0x4060000 0x0 0x1000>;
+ reg-names = "core_mem";
+ bus-width = <4>;
+ dmas = <&dmac 4 1 1
+ &dmac 5 1 1>;
+ dma-names = "rx","tx";
+ };
+
+ spif:cvi-spif@10000000 {
+ compatible = "cvitek,cvi-spif";
+ bus-num = <0>;
+ reg = <0x0 0x10000000 0x0 0x10000000>;
+ reg-names = "spif";
+ sck-div = <3>;
+ sck_mhz = <300>;
+ spi-max-frequency = <75000000>;
+ spiflash {
+ compatible = "jedec,spi-nor";
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
+ };
+ };
+
+ spi0:spi0@04180000 {
+ compatible = "snps,dw-apb-ssi";
+ reg = <0x0 0x04180000 0x0 0x10000>;
+ clocks = <&clk CV181X_CLK_SPI>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ spi1:spi1@04190000 {
+ compatible = "snps,dw-apb-ssi";
+ reg = <0x0 0x04190000 0x0 0x10000>;
+ clocks = <&clk CV181X_CLK_SPI>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ spi2:spi2@041A0000 {
+ compatible = "snps,dw-apb-ssi";
+ reg = <0x0 0x041A0000 0x0 0x10000>;
+ clocks = <&clk CV181X_CLK_SPI>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ spi3:spi3@041B0000 {
+ compatible = "snps,dw-apb-ssi";
+ reg = <0x0 0x041B0000 0x0 0x10000>;
+ clocks = <&clk CV181X_CLK_SPI>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+#if 0
+ dmas = <&dmac 2 1 1
+ &dmac 3 1 1>;
+ dma-names = "rx", "tx";
+ capability = "txrx";
+#endif
+ };
+
+ uart0: serial@04140000 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x0 0x04140000 0x0 0x1000>;
+ clock-frequency = <25000000>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ status = "okay";
+ };
+
+ uart1: serial@04150000 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x0 0x04150000 0x0 0x1000>;
+ clock-frequency = <25000000>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ status = "disabled";
+ };
+
+ uart2: serial@04160000 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x0 0x04160000 0x0 0x1000>;
+ clock-frequency = <25000000>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ status = "disabled";
+ };
+
+ uart3: serial@04170000 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x0 0x04170000 0x0 0x1000>;
+ clock-frequency = <25000000>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ status = "disabled";
+ };
+
+ uart4: serial@041C0000 {
+ compatible = "snps,dw-apb-uart";
+ reg = <0x0 0x041C0000 0x0 0x1000>;
+ clock-frequency = <25000000>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ status = "disabled";
+ };
+
+ gpio0: gpio@03020000 {
+ compatible = "snps,dw-apb-gpio";
+ reg = <0x0 0x03020000 0x0 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ porta: gpio-controller@0 {
+ compatible = "snps,dw-apb-gpio-port";
+ bank-name = "porta";
+ gpio-controller;
+ #gpio-cells = <2>;
+ snps,nr-gpios = <32>;
+ reg = <0>;
+ };
+ };
+
+ gpio1: gpio@03021000 {
+ compatible = "snps,dw-apb-gpio";
+ reg = <0x0 0x03021000 0x0 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ portb: gpio-controller@1 {
+ compatible = "snps,dw-apb-gpio-port";
+ bank-name = "portb";
+ gpio-controller;
+ #gpio-cells = <2>;
+ snps,nr-gpios = <32>;
+ reg = <0>;
+ };
+ };
+
+ gpio2: gpio@03022000 {
+ compatible = "snps,dw-apb-gpio";
+ reg = <0x0 0x03022000 0x0 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ portc: gpio-controller@2 {
+ compatible = "snps,dw-apb-gpio-port";
+ bank-name = "portc";
+ gpio-controller;
+ #gpio-cells = <2>;
+ snps,nr-gpios = <32>;
+ reg = <0>;
+ };
+ };
+
+ gpio3: gpio@03023000 {
+ compatible = "snps,dw-apb-gpio";
+ reg = <0x0 0x03023000 0x0 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ portd: gpio-controller@3 {
+ compatible = "snps,dw-apb-gpio-port";
+ bank-name = "portd";
+ gpio-controller;
+ #gpio-cells = <2>;
+ snps,nr-gpios = <32>;
+ reg = <0>;
+ };
+ };
+
+ gpio4: gpio@05021000 {
+ compatible = "snps,dw-apb-gpio";
+ reg = <0x0 0x05021000 0x0 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ porte: gpio-controller@4 {
+ compatible = "snps,dw-apb-gpio-port";
+ bank-name = "porte";
+ gpio-controller;
+ #gpio-cells = <2>;
+ snps,nr-gpios = <32>;
+ reg = <0>;
+ };
+ };
+
+ i2c0: i2c@04000000 {
+ compatible = "snps,designware-i2c";
+ clocks = <&clk CV181X_CLK_I2C>;
+ reg = <0x0 0x04000000 0x0 0x1000>;
+ clock-frequency = <400000>;
+
+ #size-cells = <0x0>;
+ #address-cells = <0x1>;
+ resets = <&rst RST_I2C0>;
+ reset-names = "i2c0";
+ };
+
+ i2c1: i2c@04010000 {
+ compatible = "snps,designware-i2c";
+ clocks = <&clk CV181X_CLK_I2C>;
+ reg = <0x0 0x04010000 0x0 0x1000>;
+ clock-frequency = <400000>;
+
+ #size-cells = <0x0>;
+ #address-cells = <0x1>;
+ resets = <&rst RST_I2C1>;
+ reset-names = "i2c1";
+ };
+
+ i2c2: i2c@04020000 {
+ compatible = "snps,designware-i2c";
+ clocks = <&clk CV181X_CLK_I2C>;
+ reg = <0x0 0x04020000 0x0 0x1000>;
+ clock-frequency = <100000>;
+ resets = <&rst RST_I2C2>;
+ reset-names = "i2c2";
+ };
+
+ i2c3: i2c@04030000 {
+ compatible = "snps,designware-i2c";
+ clocks = <&clk CV181X_CLK_I2C>;
+ reg = <0x0 0x04030000 0x0 0x1000>;
+ clock-frequency = <400000>;
+ resets = <&rst RST_I2C3>;
+ reset-names = "i2c3";
+ };
+
+ i2c4: i2c@04040000 {
+ compatible = "snps,designware-i2c";
+ clocks = <&clk CV181X_CLK_I2C>;
+ reg = <0x0 0x04040000 0x0 0x1000>;
+ clock-frequency = <400000>;
+ resets = <&rst RST_I2C4>;
+ reset-names = "i2c4";
+ };
+
+ eth_csrclk: eth_csrclk {
+ clock-output-names = "eth_csrclk";
+ clock-frequency = <250000000>;
+ #clock-cells = <0x0>;
+ compatible = "fixed-clock";
+ };
+
+ eth_ptpclk: eth_ptpclk {
+ clock-output-names = "eth_ptpclk";
+ clock-frequency = <50000000>;
+ #clock-cells = <0x0>;
+ compatible = "fixed-clock";
+ };
+
+ stmmac_axi_setup: stmmac-axi-config {
+ snps,wr_osr_lmt = <1>;
+ snps,rd_osr_lmt = <2>;
+ snps,blen = <4 8 16 0 0 0 0>;
+ };
+
+ mtl_rx_setup: rx-queues-config {
+ snps,rx-queues-to-use = <1>;
+ queue0 {};
+ };
+
+ mtl_tx_setup: tx-queues-config {
+ snps,tx-queues-to-use = <1>;
+ queue0 {};
+ };
+
+ ethernet0: ethernet@4070000 {
+ compatible = "cvitek,ethernet";
+ reg = <0x0 0x04070000 0x0 0x10000>;
+ clock-names = "stmmaceth", "ptp_ref";
+ clocks = <ð_csrclk>, <ð_ptpclk>;
+ //phy-reset-gpios = <&porta 26 0>;
+
+ tx-fifo-depth = <8192>;
+ rx-fifo-depth = <8192>;
+ /* no hash filter and perfect filter support */
+ snps,multicast-filter-bins = <0>;
+ snps,perfect-filter-entries = <1>;
+
+ snps,txpbl = <8>;
+ snps,rxpbl = <8>;
+ snps,aal;
+
+ snps,axi-config = <&stmmac_axi_setup>;
+ snps,mtl-rx-config = <&mtl_rx_setup>;
+ snps,mtl-tx-config = <&mtl_tx_setup>;
+
+ phy-mode = "rmii";
+ };
+
+ emmc:cv-emmc@4300000 {
+ compatible = "cvitek,cv181x-emmc";
+ reg = <0x0 0x4300000 0x0 0x1000>;
+ reg-names = "core_mem";
+ bus-width = <4>;
+ non-removable;
+ no-sdio;
+ no-sd;
+ src-frequency = <375000000>;
+ min-frequency = <400000>;
+ max-frequency = <200000000>;
+ 64_addressing;
+ reset_tx_rx_phy;
+ pll_index = <0x5>;
+ pll_reg = <0x3002064>;
+ };
+
+ sd:cv-sd@4310000 {
+ compatible = "cvitek,cv181x-sd";
+ reg = <0x0 0x4310000 0x0 0x1000>;
+ reg-names = "core_mem";
+ bus-width = <4>;
+ cap-sd-highspeed;
+ cap-mmc-highspeed;
+ sd-uhs-sdr12;
+ sd-uhs-sdr25;
+ sd-uhs-sdr50;
+ sd-uhs-sdr104;
+ no-sdio;
+ no-mmc;
+ /*no-1-8-v;*/
+ src-frequency = <375000000>;
+ min-frequency = <400000>;
+ max-frequency = <200000000>;
+ 64_addressing;
+ reset_tx_rx_phy;
+ reset-names = "sdhci";
+ pll_index = <0x6>;
+ pll_reg = <0x3002070>;
+ cvi-cd-gpios = <&porta 13 GPIO_ACTIVE_LOW>;
+ };
+
+ wifisd:wifi-sd@4320000 {
+ compatible = "cvitek,cv181x-sdio";
+ bus-width = <4>;
+ reg = <0x0 0x4320000 0x0 0x1000>;
+ reg_names = "core_mem";
+ src-frequency = <375000000>;
+ min-frequency = <400000>;
+ max-frequency = <50000000>;
+ 64_addressing;
+ reset_tx_rx_phy;
+ non-removable;
+ pll_index = <0x7>;
+ pll_reg = <0x300207C>;
+ no-mmc;
+ no-sd;
+ status = "disabled";
+ };
+
+ i2s_mclk: i2s_mclk {
+ clock-output-names = "i2s_mclk";
+ clock-frequency = <24576000>;
+ #clock-cells = <0x0>;
+ compatible = "fixed-clock";
+ };
+
+ i2s_subsys {
+ compatible = "cvitek,i2s_tdm_subsys";
+ reg = <0x0 0x04108000 0x0 0x100>;
+ clocks = <&i2s_mclk>, <&clk CV181X_CLK_A0PLL>,
+ <&clk CV181X_CLK_SDMA_AUD0>, <&clk CV181X_CLK_SDMA_AUD1>,
+ <&clk CV181X_CLK_SDMA_AUD2>, <&clk CV181X_CLK_SDMA_AUD3>;
+ clock-names = "i2sclk", "clk_a0pll",
+ "clk_sdma_aud0", "clk_sdma_aud1",
+ "clk_sdma_aud2", "clk_sdma_aud3";
+ master_base = <0x04110000>; /* I2S1 is master, only useful while using multi I2S IPs work on same IO */
+ };
+
+ i2s0: i2s@04100000 {
+ compatible = "cvitek,cv1835-i2s";
+ reg = <0x0 0x04100000 0x0 0x2000>;
+ clocks = <&i2s_mclk 0>;
+ clock-names = "i2sclk";
+ dev-id = <0>;
+ #sound-dai-cells = <0>;
+ dmas = <&dmac 0 1 1>; /* read channel */
+ dma-names = "rx";
+ capability = "rx"; /* I2S0 connect to internal ADC as RX */
+ mclk_out = "false";
+ };
+
+ i2s1: i2s@04110000 {
+ compatible = "cvitek,cv1835-i2s";
+ reg = <0x0 0x04110000 0x0 0x2000>;
+ clocks = <&i2s_mclk 0>;
+ clock-names = "i2sclk";
+ dev-id = <1>;
+ #sound-dai-cells = <0>;
+ dmas = <&dmac 2 1 1 /* read channel */
+ &dmac 3 1 1>; /* write channel */
+ dma-names = "rx", "tx";
+ capability = "txrx";
+ mclk_out = "false";
+ };
+
+ i2s2: i2s@04120000 {
+ compatible = "cvitek,cv1835-i2s";
+ reg = <0x0 0x04120000 0x0 0x2000>;
+ clocks = <&i2s_mclk 0>;
+ clock-names = "i2sclk";
+ dev-id = <2>;
+ #sound-dai-cells = <0>;
+ dmas = <&dmac 6 1 1 /* read channel */
+ &dmac 1 1 1>; /* write channel */
+ dma-names = "rx", "tx";
+ capability = "txrx";
+ mclk_out = "false";
+
+ };
+
+ i2s3: i2s@04130000 {
+ compatible = "cvitek,cv1835-i2s";
+ reg = <0x0 0x04130000 0x0 0x2000>;
+ clocks = <&i2s_mclk 0>;
+ clock-names = "i2sclk";
+ dev-id = <3>;
+ #sound-dai-cells = <0>;
+ dmas = <&dmac 7 1 1>; /* write channel */
+ dma-names = "tx";
+ capability = "tx"; /* I2S3 connect to internal DAC as TX */
+ mclk_out = "true";
+ };
+
+ adc: adc@0300A100 {
+ compatible = "cvitek,cv182xaadc";
+ reg = <0x0 0x0300A100 0x0 0x100>;
+ clocks = <&i2s_mclk 0>;
+ clock-names = "i2sclk";
+ clk_source = <0x04130000>; /* MCLK source is I2S3 */
+ };
+
+ dac: dac@0300A000 {
+ compatible = "cvitek,cv182xadac";
+ reg = <0x0 0x0300A000 0x0 0x100>;
+ clocks = <&i2s_mclk 0>;
+ clock-names = "i2sclk";
+ };
+
+ pdm: pdm@0x041D0C00 {
+ compatible = "cvitek,cv1835pdm";
+ reg = <0x0 0x041D0C00 0x0 0x100>;
+ clocks = <&i2s_mclk 0>;
+ clock-names = "i2sclk";
+ };
+
+ sound_adc {
+ compatible = "cvitek,cv182xa-adc";
+ cvi,model = "CV182XA";
+ cvi,card_name = "cv182xa_adc";
+ };
+
+ sound_dac {
+ compatible = "cvitek,cv182xa-dac";
+ cvi,model = "CV182XA";
+ cvi,card_name = "cv182xa_dac";
+ };
+
+ sound_PDM {
+ compatible = "cvitek,cv182x-pdm";
+ cvi,model = "CV182X";
+ cvi,card_name = "cv182x_internal_PDM";
+ };
+
+ wifi_pin {
+ compatible = "cvitek,wifi-pin";
+ poweron-gpio = <&porta 18 GPIO_ACTIVE_HIGH>;
+ wakeup-gpio = <&porte 7 GPIO_ACTIVE_HIGH>;
+ };
+
+ bt_pin {
+ compatible = "cvitek,bt-pin";
+ poweron-gpio = <&porte 9 GPIO_ACTIVE_HIGH>;
+ };
+
+ mipi_rx: cif {
+ compatible = "cvitek,cif";
+ reg = <0x0 0x0a0c2000 0x0 0x2000>, <0x0 0x0a0d0000 0x0 0x1000>,
+ <0x0 0x0a0c4000 0x0 0x2000>, <0x0 0x0a0c6000 0x0 0x2000>,
+ <0x0 0x03001c30 0x0 0x30>;
+ reg-names = "csi_mac0", "csi_wrap0", "csi_mac1", "csi_mac2", "pad_ctrl";
+ snsr-reset = <&porta 2 GPIO_ACTIVE_LOW>, <&porta 2 GPIO_ACTIVE_LOW>, <&porta 2 GPIO_ACTIVE_LOW>;
+ resets = <&rst RST_CSIPHY0>, <&rst RST_CSIPHY1>,
+ <&rst RST_CSIPHY0RST_APB>, <&rst RST_CSIPHY1RST_APB>;
+ reset-names = "phy0", "phy1", "phy-apb0", "phy-apb1";
+ clocks = <&clk CV181X_CLK_CAM0>, <&clk CV181X_CLK_CAM1>, <&clk CV181X_CLK_SRC_VIP_SYS_2>,
+ <&clk CV181X_CLK_MIPIMPLL>, <&clk CV181X_CLK_DISPPLL>, <&clk CV181X_CLK_FPLL>;
+ clock-names = "clk_cam0", "clk_cam1", "clk_sys_2",
+ "clk_mipimpll", "clk_disppll", "clk_fpll";
+ };
+
+ mipi_tx: mipi_tx {
+ compatible = "cvitek,mipi_tx";
+ reset-gpio = <&porte 2 GPIO_ACTIVE_LOW>;
+ pwm-gpio = <&porte 0 GPIO_ACTIVE_HIGH>;
+ power-ct-gpio = <&porte 1 GPIO_ACTIVE_HIGH>;
+ clocks = <&clk CV181X_CLK_DISP_VIP>, <&clk CV181X_CLK_DSI_MAC_VIP>;
+ clock-names = "clk_disp", "clk_dsi";
+ };
+
+ sys {
+ compatible = "cvitek,sys";
+ };
+
+ base {
+ compatible = "cvitek,base";
+ reg = <0x0 0x0a0c8000 0x0 0x20>;
+ reg-names = "vip_sys";
+ };
+
+ vi {
+ compatible = "cvitek,vi";
+ reg = <0x0 0x0a000000 0x0 0x80000>;
+ clocks = <&clk CV181X_CLK_SRC_VIP_SYS_0>, <&clk CV181X_CLK_SRC_VIP_SYS_1>,
+ <&clk CV181X_CLK_SRC_VIP_SYS_2>, <&clk CV181X_CLK_SRC_VIP_SYS_3>,
+ <&clk CV181X_CLK_AXI_VIP>, <&clk CV181X_CLK_CSI_BE_VIP>,
+ <&clk CV181X_CLK_RAW_VIP>, <&clk CV181X_CLK_ISP_TOP_VIP>,
+ <&clk CV181X_CLK_CSI_MAC0_VIP>, <&clk CV181X_CLK_CSI_MAC1_VIP>,
+ <&clk CV181X_CLK_CSI_MAC2_VIP>;
+ clock-names = "clk_sys_0", "clk_sys_1", "clk_sys_2", "clk_sys_3",
+ "clk_axi", "clk_csi_be", "clk_raw", "clk_isp_top",
+ "clk_csi_mac0", "clk_csi_mac1", "clk_csi_mac2";
+ clock-freq-vip-sys1 = <300000000>;
+ };
+
+ vpss {
+ compatible = "cvitek,vpss";
+ reg = <0x0 0x0a080000 0x0 0x10000>, <0x0 0x0a0d1000 0x0 0x100>;
+ reg-names = "sc";
+ clocks = <&clk CV181X_CLK_SRC_VIP_SYS_0>, <&clk CV181X_CLK_SRC_VIP_SYS_1>,
+ <&clk CV181X_CLK_SRC_VIP_SYS_2>, <&clk CV181X_CLK_IMG_D_VIP>,
+ <&clk CV181X_CLK_IMG_V_VIP>, <&clk CV181X_CLK_SC_TOP_VIP>,
+ <&clk CV181X_CLK_SC_D_VIP>, <&clk CV181X_CLK_SC_V1_VIP>,
+ <&clk CV181X_CLK_SC_V2_VIP>, <&clk CV181X_CLK_SC_V3_VIP>;
+ clock-names = "clk_sys_0", "clk_sys_1",
+ "clk_sys_2", "clk_img_d",
+ "clk_img_v", "clk_sc_top",
+ "clk_sc_d", "clk_sc_v1",
+ "clk_sc_v2", "clk_sc_v3";
+ clock-freq-vip-sys1 = <300000000>;
+ };
+
+ ive {
+ compatible = "cvitek,ive";
+ reg = <0x0 0x0A0A0000 0x0 0x3100>;
+ reg-names = "ive_base";
+ };
+
+ vo {
+ compatible = "cvitek,vo";
+ reg = <0x0 0x0a080000 0x0 0x10000>, <0x0 0x0a0c8000 0x0 0xa0>, <0x0 0x0a0d1000 0x0 0x100>;
+ reg-names = "sc", "vip_sys", "dphy";
+ clocks = <&clk CV181X_CLK_DISP_VIP>, <&clk CV181X_CLK_DSI_MAC_VIP>, <&clk CV181X_CLK_BT_VIP>;
+ reset-gpio = <&porte 2 GPIO_ACTIVE_LOW>;
+ pwm-gpio = <&porte 0 GPIO_ACTIVE_HIGH>;
+ power-ct-gpio = <&porte 1 GPIO_ACTIVE_HIGH>;
+ clock-names = "clk_disp", "clk_dsi", "clk_bt";
+ };
+
+#if (CVIMMAP_FRAMEBUFFER_SIZE > 0)
+ reserved-memory {
+ #size-cells = <0x2>;
+ #address-cells = <0x2>;
+ ranges;
+
+ fb_reserved: cvifb {
+ alloc-ranges = <0x0 CVIMMAP_FRAMEBUFFER_ADDR 0 CVIMMAP_FRAMEBUFFER_SIZE>;
+ size = <0x0 CVIMMAP_FRAMEBUFFER_SIZE>;
+ };
+ };
+
+ cvifb {
+ compatible = "cvitek,fb";
+ memory-region = <&fb_reserved>;
+ reg = <0x0 0x0a088000 0x0 0x1000>;
+ reg-names = "disp";
+ };
+#endif
+ dwa {
+ compatible = "cvitek,dwa";
+ reg = <0x0 0x0a0c0000 0x0 0x1000>;
+ reg-names = "dwa";
+ clocks = <&clk CV181X_CLK_SRC_VIP_SYS_0>, <&clk CV181X_CLK_SRC_VIP_SYS_1>,
+ <&clk CV181X_CLK_SRC_VIP_SYS_2>, <&clk CV181X_CLK_SRC_VIP_SYS_3>,
+ <&clk CV181X_CLK_SRC_VIP_SYS_4>, <&clk CV181X_CLK_DWA_VIP>;
+ clock-names = "clk_sys_0", "clk_sys_1",
+ "clk_sys_2", "clk_sys_3",
+ "clk_sys_4", "clk_dwa";
+ clock-freq-vip-sys1 = <300000000>;
+ };
+
+ rgn {
+ compatible = "cvitek,rgn";
+ };
+
+ vcodec {
+ compatible = "cvitek,asic-vcodec";
+ reg = <0x0 0x0B020000 0x0 0x10000>,<0x0 0x0B010000 0x0 0x10000>,<0x0 0x0B030000 0x0 0x100>,
+ <0x0 0x0B058000 0x0 0x100>,<0x0 0x0B050000 0x0 0x400>;
+ reg-names = "h265","h264","vc_ctrl","vc_sbm","vc_addr_remap";
+ clocks = <&clk CV181X_CLK_AXI_VIDEO_CODEC>,
+ <&clk CV181X_CLK_H264C>, <&clk CV181X_CLK_APB_H264C>,
+ <&clk CV181X_CLK_H265C>, <&clk CV181X_CLK_APB_H265C>,
+ <&clk CV181X_CLK_VC_SRC0>, <&clk CV181X_CLK_VC_SRC1>,
+ <&clk CV181X_CLK_VC_SRC2>, <&clk CV181X_CLK_CFG_REG_VC>;
+ clock-names = "clk_axi_video_codec",
+ "clk_h264c", "clk_apb_h264c",
+ "clk_h265c", "clk_apb_h265c",
+ "clk_vc_src0", "clk_vc_src1",
+ "clk_vc_src2", "clk_cfg_reg_vc";
+ };
+
+ jpu {
+ compatible = "cvitek,asic-jpeg";
+ reg = <0x0 0x0B000000 0x0 0x300>,<0x0 0x0B030000 0x0 0x100>,<0x0 0x0B058000 0x0 0x100>;
+ reg-names = "jpeg","vc_ctrl","vc_sbm";
+ clocks = <&clk CV181X_CLK_AXI_VIDEO_CODEC>,
+ <&clk CV181X_CLK_JPEG>, <&clk CV181X_CLK_APB_JPEG>,
+ <&clk CV181X_CLK_VC_SRC0>, <&clk CV181X_CLK_VC_SRC1>,
+ <&clk CV181X_CLK_VC_SRC2>, <&clk CV181X_CLK_CFG_REG_VC>;
+ clock-names = "clk_axi_video_codec",
+ "clk_jpeg", "clk_apb_jpeg",
+ "clk_vc_src0", "clk_vc_src1",
+ "clk_vc_src2", "clk_cfg_reg_vc";
+ resets = <&rst RST_JPEG>;
+ reset-names = "jpeg";
+ };
+
+ cvi_vc_drv {
+ compatible = "cvitek,cvi_vc_drv";
+ reg = <0x0 0x0B030000 0x0 0x100>,<0x0 0x0B058000 0x0 0x100>,<0x0 0x0B050000 0x0 0x400>;
+ reg-names = "vc_ctrl","vc_sbm","vc_addr_remap";
+ };
+
+ rtos_cmdqu {
+ compatible = "cvitek,rtos_cmdqu";
+ reg = <0x0 0x01900000 0x0 0x1000>;
+ reg-names = "mailbox";
+ };
+
+ usb: usb@04340000 {
+ compatible = "cvitek,cv182x-usb";
+ reg = <0x0 0x04340000 0x0 0x10000>,
+ <0x0 0x03006000 0x0 0x58>; //USB 2.0 PHY
+ dr_mode = "otg";
+ g-use-dma;
+ g-rx-fifo-size = <536>;
+ g-np-tx-fifo-size = <32>;
+ g-tx-fifo-size = <768 512 512 384 128 128>;
+ clocks = <&clk CV181X_CLK_AXI4_USB>,
+ <&clk CV181X_CLK_APB_USB>,
+ <&clk CV181X_CLK_125M_USB>,
+ <&clk CV181X_CLK_33K_USB>,
+ <&clk CV181X_CLK_12M_USB>;
+ clock-names = "clk_axi", "clk_apb", "clk_125m", "clk_33k", "clk_12m";
+ vbus-gpio = <&portb 6 0>;
+ status = "okay";
+ };
+
+ thermal:thermal@030E0000 {
+ compatible = "cvitek,cv181x-thermal";
+ reg = <0x0 0x030E0000 0x0 0x10000>;
+ clocks = <&clk CV181X_CLK_TEMPSEN>;
+ clock-names = "clk_tempsen";
+ reset-names = "tempsen";
+ #thermal-sensor-cells = <1>;
+ };
+
+ thermal-zones {
+ soc_thermal_0: soc_thermal_0 {
+ polling-delay-passive = <1000>; /* milliseconds */
+ polling-delay = <1000>; /* milliseconds */
+ thermal-sensors = <&thermal 0>;
+
+ trips {
+ soc_thermal_trip_0: soc_thermal_trip_0 {
+ temperature = <100000>; /* millicelsius */
+ hysteresis = <5000>; /* millicelsius */
+ type = "passive";
+ };
+
+ soc_thermal_trip_1: soc_thermal_trip_1 {
+ temperature = <110000>; /* millicelsius */
+ hysteresis = <5000>; /* millicelsius */
+ type = "passive";
+ };
+
+ soc_thermal_crtical_0: soc_thermal_crtical_0 {
+ temperature = <130000>; /* millicelsius */
+ hysteresis = <0>; /* millicelsius */
+ type = "critical";
+ };
+ };
+ };
+ };
+
+#if 0
+ cvipctrl: pinctrl@3001000 {
+ compatible = "cvitek,pinctrl-cv182x";
+ reg = <0 0x03001000 0 0x1000>;
+ };
+#endif
+
+ cviaudio_core {
+ compatible = "cvitek,audio";
+ };
+
+ audio_clock: audio_clock {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+#if 0
+ clock-frequency = <12288000>;
+#else
+ clock-frequency = <24576000>;
+#endif
+ };
+
+
+ aliases {
+ i2c0 = &i2c0;
+ i2c1 = &i2c1;
+ i2c2 = &i2c2;
+ i2c3 = &i2c3;
+ i2c4 = &i2c4;
+ //spi0 = &spi0;
+ //spi1 = &spi1;
+ //spi2 = &spi2;
+ //spi3 = &spi3;
+ serial0 = &uart0;
+ serial1 = &uart1;
+ serial2 = &uart2;
+ serial3 = &uart3;
+ serial4 = &uart4;
+ ethernet0 = ðernet0;
+ };
+
+ chosen {
+ stdout-path = "serial0";
+ };
+};
+
diff --git a/build/boards/default/dts/sg200x/soph_base_arm.dtsi b/build/boards/default/dts/sg200x/soph_base_arm.dtsi
new file mode 100644
index 000000000..f811def79
--- /dev/null
+++ b/build/boards/default/dts/sg200x/soph_base_arm.dtsi
@@ -0,0 +1,320 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include "cvi_board_memmap.h"
+
+/memreserve/ CVIMMAP_MONITOR_ADDR CVIMMAP_ATF_SIZE; // ATF (BL31 + BL32) 512KB
+
+#include "soph_base.dtsi"
+
+/ {
+ model = "SOPHGO ASIC. ARM.";
+ interrupt-parent = <&gic>;
+
+ #size-cells = <0x2>;
+ #address-cells = <0x2>;
+
+ gic: interrupt-controller {
+ compatible = "arm,cortex-a15-gic";
+ ranges;
+ #size-cells = <0x2>;
+ #address-cells = <0x2>;
+ interrupt-controller;
+ #interrupt-cells = <0x3>;
+ reg = <0x0 0x01F01000 0x0 0x1000>,
+ <0x0 0x01F02000 0x0 0x2000>;
+ };
+
+ pmu_a53 {
+ compatible = "arm,cortex-a53-pmu";
+ interrupts = ,
+ ;
+ interrupt-affinity = <&A53_0>;
+ };
+
+ psci {
+ migrate = <0xc4000005>;
+ cpu_on = <0xc4000003>;
+ cpu_off = <0x84000002>;
+ cpu_suspend = <0xc4000001>;
+ sys_poweroff = <0x84000008>;
+ sys_reset = <0x84000009>;
+ method = "smc";
+ compatible = "arm,psci-0.2", "arm,psci";
+ };
+
+ cpus {
+ #size-cells = <0x0>;
+ #address-cells = <0x1>;
+
+ A53_0: cpu@0 {
+ reg = <0x0>;
+ enable-method = "psci";
+ compatible = "arm,cortex-a53";
+ device_type = "cpu";
+ next-level-cache = <&CA53_L2>;
+ };
+
+ CA53_L2: l2-cache0 {
+ compatible = "cache";
+ };
+ };
+
+ timer {
+ interrupts = ,
+ ,
+ ,
+ ;
+ always-on;
+ clock-frequency = <25000000>;
+ compatible = "arm,armv8-timer";
+ };
+
+ firmware {
+ optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
+ cooling:cooling {
+ clocks = <&clk CV181X_CLK_A53>, <&clk CV181X_CLK_TPU>;
+ clock-names = "clk_cpu", "clk_tpu_axi";
+ dev-freqs = <800000000 500000000>,
+ <400000000 375000000>,
+ <400000000 300000000>;
+ compatible = "sophgo,cooling";
+ #cooling-cells = <2>;
+ };
+
+ tpu {
+ interrupts = ,
+ ;
+ };
+
+ mon {
+ interrupts = ;
+ };
+
+ wiegand0 {
+ interrupts = ;
+ };
+
+ wiegand1 {
+ interrupts = ;
+ };
+
+ wiegand2 {
+ interrupts = ;
+ };
+
+ saradc {
+ interrupts = ;
+ };
+
+ rtc {
+ interrupts = ;
+ };
+
+ sysdma_remap {
+ int_mux = <0x1FF>; /* enable bit [0..8] for CPU0(CA53) */
+ };
+
+ dmac: dma@0x4330000 {
+ interrupts = ;
+ };
+
+#if 0
+ watchdog0: cv-wd@0x3010000 {
+ interrupts = ;
+ };
+#endif
+
+ spinand:cv-spinf@4060000 {
+ interrupts = ;
+ };
+
+ spif:cvi-spif@10000000 {
+ interrupts = ;
+ };
+
+ spi0:spi0@04180000 {
+ interrupts = ;
+ };
+
+ spi1:spi1@04190000 {
+ interrupts = ;
+ };
+
+ spi2:spi2@041A0000 {
+ interrupts = ;
+ };
+
+ spi3:spi3@041B0000 {
+ interrupts = ;
+ };
+
+ uart0: serial@04140000 {
+ interrupts = ;
+ };
+
+ uart1: serial@04150000 {
+ interrupts = ;
+ };
+
+ uart2: serial@04160000 {
+ interrupts = ;
+ };
+
+ uart3: serial@04170000 {
+ interrupts = ;
+ };
+
+ uart4: serial@041C0000 {
+ interrupts = ;
+ };
+
+ gpio0: gpio@03020000 {
+ porta: gpio-controller@0 {
+ interrupt-controller;
+ interrupts = ;
+ };
+ };
+
+ gpio1: gpio@03021000 {
+ portb: gpio-controller@1 {
+ interrupt-controller;
+ interrupts = ;
+ };
+ };
+
+ gpio2: gpio@03022000 {
+ portc: gpio-controller@2 {
+ interrupt-controller;
+ interrupts = ;
+ };
+ };
+
+ gpio3: gpio@03023000 {
+ portd: gpio-controller@3 {
+ interrupt-controller;
+ interrupts = ;
+ };
+ };
+
+ gpio4: gpio@05021000 {
+ porte: gpio-controller@4 {
+ interrupt-controller;
+ interrupts = ;
+ };
+ };
+
+ i2c0: i2c@04000000 {
+ interrupts = ;
+ };
+
+ i2c1: i2c@04010000 {
+ interrupts = ;
+ };
+
+ i2c2: i2c@04020000 {
+ interrupts = ;
+ };
+
+ i2c3: i2c@04030000 {
+ interrupts = ;
+ };
+
+ i2c4: i2c@04040000 {
+ interrupts = ;
+ };
+
+ ethernet0: ethernet@4070000 {
+ interrupt-names = "macirq";
+ interrupts = ;
+ };
+
+ emmc:cv-emmc@4300000 {
+ interrupts = ;
+ };
+
+ sd:cv-sd@4310000 {
+ interrupts = ;
+ };
+
+ i2s0: i2s@04100000 {
+ interrupts = ;
+ };
+
+ i2s1: i2s@04110000 {
+ interrupts = ;
+ };
+
+ i2s2: i2s@04120000 {
+ interrupts = ;
+ };
+
+ i2s3: i2s@04130000 {
+ interrupts = ;
+ };
+
+ wifisd:wifi-sd@4320000 {
+ interrupts = ;
+ };
+
+ mipi_rx: cif {
+ interrupts = ,
+ ;
+ interrupt-names = "csi0", "csi1";
+ };
+
+ vi {
+ interrupts = ;
+ interrupt-names = "isp";
+ };
+
+ ive {
+ interrupt-names = "ive_irq";
+ interrupts = ;
+ };
+
+ vpss {
+ interrupts = ;
+ interrupt-names = "sc";
+ };
+
+ dwa {
+ interrupts = ;
+ interrupt-names = "dwa";
+ };
+
+ vcodec {
+ interrupts = ,
+ ,
+ ;
+ interrupt-names = "h265","h264","sbm";
+ };
+
+ jpu {
+ interrupts = ;
+ interrupt-names = "jpeg";
+ };
+
+ rtos_cmdqu {
+ interrupts = ;
+ interrupt-names = "mailbox";
+ };
+
+ usb: usb@04340000 {
+ interrupts = ;
+ };
+
+ thermal:thermal@030E0000 {
+ interrupts = ;
+ interrupt-names = "tempsen";
+ };
+
+};
diff --git a/build/boards/default/dts/sg200x/soph_base_riscv.dtsi b/build/boards/default/dts/sg200x/soph_base_riscv.dtsi
new file mode 100644
index 000000000..abc07d4f3
--- /dev/null
+++ b/build/boards/default/dts/sg200x/soph_base_riscv.dtsi
@@ -0,0 +1,372 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include "cvi_board_memmap.h"
+
+/*
+ * OpenSBI will add below subnode into reserved memory automatically
+ * mmode_resv0@80000000 {
+ * reg = <0x00 0x80000000 0x00 0x20000>;
+ * phandle = <0x0d>;
+ * };
+ * Skip below to avoid lmb region reseved conflict in uboot.
+ *
+ */
+#ifndef __UBOOT__
+/memreserve/ CVIMMAP_MONITOR_ADDR CVIMMAP_OPENSBI_SIZE; // OpenSBI
+#endif
+
+#include "soph_base.dtsi"
+
+/ {
+ model = "SOPHGO ASIC. C906.";
+
+ #size-cells = <0x2>;
+ #address-cells = <0x2>;
+
+ cpus {
+ #address-cells = <0x01>;
+ #size-cells = <0x00>;
+ timebase-frequency = <25000000>;
+
+ cpu-map {
+
+ cluster0 {
+
+ core0 {
+ cpu = <0x01>;
+ };
+ };
+ };
+
+ cpu@0 {
+ device_type = "cpu";
+ reg = <0x00>;
+ status = "okay";
+ compatible = "riscv";
+ riscv,isa = "rv64imafdvcsu";
+ mmu-type = "riscv,sv39";
+ clock-frequency = <25000000>;
+
+ cpu0_intc: interrupt-controller {
+ #interrupt-cells = <0x01>;
+ interrupt-controller;
+ compatible = "riscv,cpu-intc";
+ };
+ };
+ };
+
+ soc {
+ #address-cells = <0x02>;
+ #size-cells = <0x02>;
+ compatible = "simple-bus";
+ ranges;
+
+ plic0: interrupt-controller@70000000 {
+ riscv,ndev = <101>;
+ riscv,max-priority = <0x07>;
+ reg-names = "control";
+ reg = <0x00 0x70000000 0x00 0x4000000>;
+ interrupts-extended = <&cpu0_intc 0xffffffff &cpu0_intc 0x09>;
+ interrupt-controller;
+ compatible = "riscv,plic0";
+ #interrupt-cells = <0x02>;
+ #address-cells = <0x00>;
+ };
+
+ clint@74000000 {
+ interrupts-extended = <&cpu0_intc 0x03 &cpu0_intc 0x07>;
+ reg = <0x00 0x74000000 0x00 0x10000>;
+ compatible = "riscv,clint0";
+ clint,has-no-64bit-mmio;
+ };
+
+ };
+
+ cooling:cooling {
+ clocks = <&clk CV181X_CLK_C906_0>, <&clk CV181X_CLK_TPU>;
+ clock-names = "clk_cpu", "clk_tpu_axi";
+ dev-freqs = <850000000 500000000>,
+ <425000000 375000000>,
+ <425000000 300000000>;
+ compatible = "sophgo,cooling";
+ #cooling-cells = <2>;
+ };
+
+ tpu {
+ interrupts = <75 IRQ_TYPE_LEVEL_HIGH>,
+ <76 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "tiu_irq", "tdma_irq";
+ interrupt-parent = <&plic0>;
+ };
+
+ mon {
+ interrupts = <93 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "mon_irq";
+ interrupt-parent = <&plic0>;
+ };
+
+ wiegand0 {
+ interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ wiegand1 {
+ interrupts = <65 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ wiegand2 {
+ interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ saradc {
+ interrupts = <100 IRQ_TYPE_EDGE_RISING>;
+ interrupt-parent = <&plic0>;
+ };
+
+ rtc {
+ interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ sysdma_remap {
+ int_mux = <0x7FC00>; /* enable bit [10..18] for CPU1(906B) */
+ };
+
+ dmac: dma@0x4330000 {
+ interrupts = <29 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ watchdog0: cv-wd@0x3010000 {
+ interrupts = <58 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ spinand:cv-spinf@4060000 {
+ interrupts = <39 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ spif:cvi-spif@10000000 {
+ interrupts = <95 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ spi0:spi0@04180000 {
+ interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ spi1:spi1@04190000 {
+ interrupts = <55 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ spi2:spi2@041A0000 {
+ interrupts = <56 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ spi3:spi3@041B0000 {
+ interrupts = <57 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ uart0: serial@04140000 {
+ interrupts = <44 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ uart1: serial@04150000 {
+ interrupts = <45 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ uart2: serial@04160000 {
+ interrupts = <46 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ uart3: serial@04170000 {
+ interrupts = <47 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ uart4: serial@041C0000 {
+ interrupts = <48 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ gpio0: gpio@03020000 {
+ porta: gpio-controller@0 {
+ interrupt-controller;
+ interrupts = <60 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+ };
+
+ gpio1: gpio@03021000 {
+ portb: gpio-controller@1 {
+ interrupt-controller;
+ interrupts = <61 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+ };
+
+ gpio2: gpio@03022000 {
+ portc: gpio-controller@2 {
+ interrupt-controller;
+ interrupts = <62 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+ };
+
+ gpio3: gpio@03023000 {
+ portd: gpio-controller@3 {
+ interrupt-controller;
+ interrupts = <63 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+ };
+
+ gpio4: gpio@05021000 {
+ porte: gpio-controller@4 {
+ interrupt-controller;
+ interrupts = <70 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+ };
+
+ i2c0: i2c@04000000 {
+ interrupts = <49 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ i2c1: i2c@04010000 {
+ interrupts = <50 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ i2c2: i2c@04020000 {
+ interrupts = <51 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ i2c3: i2c@04030000 {
+ interrupts = <52 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ i2c4: i2c@04040000 {
+ interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ ethernet0: ethernet@4070000 {
+ interrupt-names = "macirq";
+ interrupts = <31 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ emmc:cv-emmc@4300000 {
+ interrupts = <34 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ sd:cv-sd@4310000 {
+ interrupts = <36 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ i2s0: i2s@04100000 {
+ interrupts = <40 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ i2s1: i2s@04110000 {
+ interrupts = <41 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ i2s2: i2s@04120000 {
+ interrupts = <42 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ i2s3: i2s@04130000 {
+ interrupts = <43 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ vi {
+ interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ interrupt-names = "isp";
+ };
+
+ vcodec {
+ interrupts = <22 IRQ_TYPE_LEVEL_HIGH>,
+ <21 IRQ_TYPE_LEVEL_HIGH>,
+ <23 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "h265","h264","sbm";
+ interrupt-parent = <&plic0>;
+ };
+
+ jpu {
+ interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "jpeg";
+ interrupt-parent = <&plic0>;
+ };
+
+ rtos_cmdqu {
+ interrupts = <101 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "mailbox";
+ interrupt-parent = <&plic0>;
+ };
+
+ wifisd:wifi-sd@4320000 {
+ interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ mipi_rx: cif {
+ interrupts = <26 IRQ_TYPE_LEVEL_HIGH>,
+ <27 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "csi0", "csi1";
+ interrupt-parent = <&plic0>;
+ };
+
+ ive {
+ interrupt-names = "ive_irq";
+ interrupt-parent = <&plic0>;
+ interrupts = <97 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ vpss {
+ interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "sc";
+ interrupt-parent = <&plic0>;
+ };
+
+ dwa {
+ interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "dwa";
+ interrupt-parent = <&plic0>;
+ };
+
+ usb: usb@04340000 {
+ interrupts = <30 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ };
+
+ thermal:thermal@030E0000 {
+ interrupts = <16 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "tempsen";
+ };
+
+};
diff --git a/build/boards/default/dts/sg200x/soph_default_memmap.dtsi b/build/boards/default/dts/sg200x/soph_default_memmap.dtsi
new file mode 100644
index 000000000..bb362511c
--- /dev/null
+++ b/build/boards/default/dts/sg200x/soph_default_memmap.dtsi
@@ -0,0 +1,25 @@
+/ {
+ memory@80000000 {
+ device_type = "memory";
+ reg = <0x00 CVIMMAP_KERNEL_MEMORY_ADDR 0x00 CVIMMAP_KERNEL_MEMORY_SIZE>;
+ };
+
+
+ fast_image {
+ compatible = "cvitek,rtos_image";
+ reg-names = "rtos_region";
+ reg = <0x0 CVIMMAP_FREERTOS_ADDR 0x0 CVIMMAP_FREERTOS_SIZE>;
+ ion-size = ; //reserved ion size for freertos
+ };
+
+ reserved-memory {
+ #size-cells = <0x2>;
+ #address-cells = <0x2>;
+ ranges;
+
+ ion_reserved: ion {
+ compatible = "ion-region";
+ size = <0x0 CVIMMAP_ION_SIZE>;
+ };
+ };
+};
diff --git a/build/boards/default/u-boot/uboot_spl_riscv_spinor_defconfig b/build/boards/default/u-boot/uboot_spl_riscv_spinor_defconfig
new file mode 100644
index 000000000..dadbb47bd
--- /dev/null
+++ b/build/boards/default/u-boot/uboot_spl_riscv_spinor_defconfig
@@ -0,0 +1,27 @@
+# uboot-spl
+CONFIG_SYS_MALLOC_F_LEN=0x200000
+CONFIG_SPL=y
+CONFIG_SUPPORT_SPL=y
+CONFIG_SPL_RISCV_SMODE=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+# CONFIG_SPL_SIZE_LIMIT=0x100000
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL_FRAMEWORK_BOARD_INIT_F=y
+CONFIG_SPL_SHOW_ERRORS=y
+# CONFIG_SPL_BANNER_PRINT is not set
+CONFIG_SPL_MTD_SUPPORT=y
+CONFIG_SPL_NOR_SUPPORT=y
+CONFIG_SPL_OS_BOOT=y
+CONFIG_SPL_DM=y
+CONFIG_SPL_DM_SEQ_ALIAS=y
+CONFIG_SPL_LZ4=y
+CONFIG_SPL_LZMA=y
+# CONFIG_BINMAN_FDT is not set
+CONFIG_DEFAULT_DEVICE_TREE=""
+# CONFIG_SPL_ENV_SUPPORT=y
+# CONFIG_SPL_DM_SPI_FLASH=y
+# CONFIG_SPL_SPI_SUPPORT=y
+# CONFIG_SPL_SPI_FLASH_SUPPORT=y
+# CONFIG_SPL_DM_SPI=y
+# CONFIG_SPL_SPI_FLASH_TINY=n
diff --git a/build/build_bin.sh b/build/build_bin.sh
new file mode 100755
index 000000000..d010ca80b
--- /dev/null
+++ b/build/build_bin.sh
@@ -0,0 +1,120 @@
+#!/bin/bash
+
+KEYSERVER="10.80.65.18"
+KEYSERVER_SSHKEY_PATH="$ATF_PATH/tools/build_script/service_sign@cvi_keyserver.pem"
+
+function sign_fip_atf_on_keyserver()
+{(
+ # Sign fip with ROM key1 from keyserver
+ chmod 400 "$KEYSERVER_SSHKEY_PATH"
+ msg=$(scp -i "$KEYSERVER_SSHKEY_PATH" "$OUTPUT_DIR/fip.bin" "service_sign@${KEYSERVER}:fip.bin" 2>&1)
+ cat <<<$msg
+ token=$(command grep -E 'TOKEN:.{32}' -o <<<$msg); token=${token#TOKEN:}
+ echo "TOKEN: $token"
+ if [ -z "$token" ]; then
+ return 1
+ fi
+
+ ssh -i "$KEYSERVER_SSHKEY_PATH" "service_sign@${KEYSERVER}" sign_fip "--chip=cv1835 --token=${token}"
+ scp -i "$KEYSERVER_SSHKEY_PATH" "service_sign@${KEYSERVER}:fip_ID${token}_signed_encrypted.bin" "$OUTPUT_DIR/fip_signed_encrypted.bin"
+)}
+
+function gen_fip_bin_with_cid()
+{(
+ local tbbr="$2"
+
+ printf "\e[1;34;47m Run %s() function \e[0m\n" "${FUNCNAME[0]}"
+
+ source build/envsetup_soc.sh f
+ defconfig "${CHIP}_${BOARD}"
+ setconfig ATF_SRC=y
+
+ source build/build_bin.sh
+
+ local ATF_FIP_PATH="${ATF_PATH}/build/${CHIP}_${SUBTYPE}/release/fip.bin"
+
+ clean_bld
+ clean_atf
+ build_atf
+ command cp "${ATF_FIP_PATH}" "${OUTPUT_DIR}/fip.bin"
+
+ {
+ printf "bm_bld:\n"
+ git -C "${BM_BLD_PATH}" log --pretty=oneline -n 1
+ printf "arm-trusted-firmware:\n"
+ git -C "${ATF_PATH}" log --pretty=oneline -n 1
+ } > "$TOP_DIR/git_version.txt"
+
+ atf_ver=$(git -C "${ATF_PATH}" rev-parse --short HEAD)
+ bld_ver=$(git -C "${BM_BLD_PATH}" rev-parse --short HEAD)
+ git_ver="${atf_ver}_${bld_ver}"
+
+ command cp -f $OUTPUT_DIR/fip.bin $OUTPUT_DIR/fip.bin.$git_ver
+
+ if [ "$tbbr" != "notbbr" ]; then
+ sign_fip_atf_on_keyserver
+ command cp "$OUTPUT_DIR/fip_signed_encrypted.bin" "$OUTPUT_DIR/fip_key1.bin.$git_ver"
+ fi
+
+ FIP_BIN_FOLDER_NAME=${CHIP}_${SUBTYPE}_${BOARD}
+
+ # copy fip.bin to NAS server
+ echo "Copy fip.bin to network folder: /home/git_bin/fip/${FIP_BIN_FOLDER_NAME}/fip.bin"
+ command mkdir -p /home/git_bin/fip/${FIP_BIN_FOLDER_NAME}
+ command cp -f $OUTPUT_DIR/fip.bin.$git_ver /home/git_bin/fip/${FIP_BIN_FOLDER_NAME}/fip.bin.$git_ver
+ command cp -f $OUTPUT_DIR/fip.bin.$git_ver /home/git_bin/fip/${FIP_BIN_FOLDER_NAME}/fip.bin
+ if [ "$tbbr" != "notbbr" ]; then
+ command cp -f "$OUTPUT_DIR/fip_key1.bin.$git_ver" /home/git_bin/fip/${FIP_BIN_FOLDER_NAME}/fip_key1.bin.$git_ver
+ command cp -f "$OUTPUT_DIR/fip_key1.bin.$git_ver" /home/git_bin/fip/${FIP_BIN_FOLDER_NAME}/fip_key1.bin
+ fi
+ command cp -f $TOP_DIR/git_version.txt /home/git_bin/fip/${FIP_BIN_FOLDER_NAME}/git_version.txt
+)}
+
+function gen_fip_bin_with_cid_all_boards()
+{(
+ printf "\e[1;34;47m Run %s() function \e[0m\n" "${FUNCNAME[0]}"
+
+ chip_list=("${chip_cv183x[@]}" "${chip_cv75x1[@]}" "${chip_cv952x[@]}")
+
+ for c in "${!chip_list[@]}"; do
+ export CHIP=${chip_list[$c]}
+ local -a 'board_sel=("${'"${CHIP}"'_board_sel[@]}")'
+
+ for b in "${!board_sel[@]}"; do
+ export BOARD=${board_sel[$b]}
+ if [[ "$BOARD" =~ .*rtos.* ]]; then
+ continue
+ fi
+ (
+ cd $TOP_DIR || exit
+ gen_fip_bin_with_cid $BOARD
+ )
+ done
+ done
+)}
+
+function gen_fip_bin_wo_tbbr_with_cid_all_boards()
+{(
+ chip_list=("${chip_cv182x[@]}")
+
+ for c in "${!chip_list[@]}"; do
+ export ATF_SRC=1
+ export CHIP=${chip_list[$c]}
+ export SUBTYPE=asic
+ export ATF_CRC=1
+ export IMG_ENC=0
+ export ATF_TBBR=0
+
+ local -a 'board_sel=("${'"${CHIP}"'_board_sel[@]}")'
+
+ for b in "${!board_sel[@]}"; do
+ export BOARD=${board_sel[$b]}
+ (
+ cd $TOP_DIR || exit
+ source build/envsetup_soc.sh f
+ source build/build_bin.sh
+ gen_fip_bin_with_cid $BOARD notbbr
+ )
+ done
+ done
+)}
diff --git a/build/common_functions.sh b/build/common_functions.sh
index e7ee61c63..7d0667827 100644
--- a/build/common_functions.sh
+++ b/build/common_functions.sh
@@ -191,20 +191,6 @@ function pack_cfg
fi
)}
-function copy_tools
-{(
- # Copy USB_DL, partition.xml and bootlogo
- if [[ "${chip_cv[*]}" =~ "$CHIP" ]] && [[ ${BOARD} != "fpga" && ${BOARD} != "palladium" ]]; then
- command rm -rf "$OUTPUT_DIR"/tools
- command mkdir -p "$OUTPUT_DIR"/tools/
- command cp -rf "$TOOLS_PATH"/"${CHIP_ARCH,,}"/usb_dl/ "$OUTPUT_DIR"/tools/
- if [ "$ENABLE_BOOTLOGO" -eq 1 ];then
- python3 "$IMGTOOL_PATH"/raw2cimg.py "$BOOTLOGO_PATH" "$OUTPUT_DIR" "$FLASH_PARTITION_XML"
- fi
- command cp --remove-destination "$FLASH_PARTITION_XML" "$OUTPUT_DIR"/
- fi
-)}
-
function pack_upgrade
{(
local TMPDIR
diff --git a/build/cvisetup.sh b/build/cvisetup.sh
deleted file mode 100644
index 5bca5ae9a..000000000
--- a/build/cvisetup.sh
+++ /dev/null
@@ -1,620 +0,0 @@
-#!/bin/bash
-function _build_default_env()
-{
- # Please keep these default value!!!
- BRAND=${BRAND:-cvitek}
- DEBUG=${DEBUG:-0}
- RELEASE_VERSION=${RELEASE_VERSION:-0}
- BUILD_VERBOSE=${BUILD_VERBOSE:-1}
- ATF_BL32=${ATF_BL32:-1}
- UBOOT_VBOOT=${UBOOT_VBOOT:-0}
- COMPRESSOR=${COMPRESSOR:-xz}
- COMPRESSOR_UBOOT=${COMPRESSOR_UBOOT:-lzma} # or none to disable
- MULTI_PROCESS_SUPPORT=${MULTI_PROCESS_SUPPORT:-0}
- ENABLE_BOOTLOGO=${ENABLE_BOOTLOGO:-0}
- TPU_REL=${TPU_REL:-0} # TPU release build
- SENSOR=${SENSOR:-sony_imx327}
-}
-
-function gettop()
-{
- local TOPFILE=build/cvisetup.sh
- if [ -n "$TOP" -a -f "$TOP/$TOPFILE" ] ; then
- # The following circumlocution ensures we remove symlinks from TOP.
- (cd "$TOP"; PWD= /bin/pwd)
- else
- if [ -f $TOPFILE ] ; then
- # The following circumlocution (repeated below as well) ensures
- # that we record the true directory name and not one that is
- # faked up with symlink names.
- PWD= /bin/pwd
- else
- local HERE=$PWD
- T=
- while [ \( ! \( -f $TOPFILE \) \) -a \( $PWD != "/" \) ]; do
- \cd ..
- T=$(PWD= /bin/pwd -P)
- done
- \cd "$HERE"
- if [ -f "$T/$TOPFILE" ]; then
- echo "$T"
- fi
- fi
- fi
-}
-
-function _build_fsbl_env()
-{
- export FSBL_PATH
-}
-
-function build_fsbl()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_uboot_env
- _build_opensbi_env
- cd "$BUILD_PATH" || return
- make fsbl-build
-)}
-
-function clean_fsbl()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_uboot_env
- cd "$BUILD_PATH" || return
- make fsbl-clean
-)}
-
-function _build_atf_env()
-{
- export ATF_BL32 FAKE_BL31_32
-}
-
-function build_atf()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_atf_env
- cd "$BUILD_PATH" || return
- make arm-trusted-firmware
-)}
-
-function clean_atf()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_atf_env
- cd "$BUILD_PATH" || return
- make arm-trusted-firmware-clean
-)}
-
-function _build_uboot_env()
-{
- _build_atf_env
- _build_fsbl_env
- export UBOOT_OUTPUT_FOLDER IMGTOOL_PATH FLASH_PARTITION_XML FIP_BIN_PATH
- export UBOOT_VBOOT RELEASE_VERSION ENABLE_BOOTLOGO STORAGE_TYPE COMPRESSOR_UBOOT
- export PANEL_TUNING_PARAM PANEL_LANE_NUM_TUNING_PARAM PANEL_LANE_SWAP_TUNING_PARAM
-}
-
-function build_fip_pre()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_uboot_env
- cd "$BUILD_PATH" || return
- make fip-pre-merge
-)}
-
-function build_rtos()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- cd "$BUILD_PATH" || return
- make rtos
-)}
-
-function clean_rtos()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- cd "$BUILD_PATH" || return
- make rtos-clean
-)}
-
-function menuconfig_uboot()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_uboot_env
- cd "$BUILD_PATH" || return
- make u-boot-menuconfig || return "$?"
-)}
-
-function _link_uboot_logo()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- cd "$BUILD_PATH" || return
- if [[ x"${PANEL_TUNING_PARAM}" =~ x"I80" ]]; then
- ln -sf "$COMMON_TOOLS_PATH"/bootlogo/logo_320x240.BMP "$COMMON_TOOLS_PATH"/bootlogo/logo.jpg
- fi
-)}
-
-function build_uboot()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_uboot_env
- _build_opensbi_env
- _link_uboot_logo
-
- cd "$BUILD_PATH" || return
- [[ "$CHIP_ARCH" == CV182X ]] || [[ "$CHIP_ARCH" == CV183X ]] && \
- cp -f "$OUTPUT_DIR"/fip_pre/fip_pre_${ATF_KEY_SEL}.bin \
- "$OUTPUT_DIR"/fip_pre/fip_pre.bin
-
- make u-boot
-)}
-
-function build_uboot_env_tools()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_uboot_env
- cd "$BUILD_PATH" || return
- make u-boot-env-tools
-)}
-
-function clean_uboot()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_uboot_env
- cd "$BUILD_PATH" || return
- make u-boot-clean
-)}
-
-function _build_kernel_env()
-{
- export KERNEL_OUTPUT_FOLDER RAMDISK_OUTPUT_FOLDER SYSTEM_OUT_DIR
-}
-
-function menuconfig_kernel()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_kernel_env
- cd "$BUILD_PATH" || return
- make kernel-menuconfig || return "$?"
-)}
-
-function setconfig_kernel()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_kernel_env
- cd "$BUILD_PATH" || return
- make kernel-setconfig "SCRIPT_ARG=$1" || return "$?"
-)}
-
-# shellcheck disable=SC2120
-function build_kernel()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_kernel_env
- cd "$BUILD_PATH" || return
- make kernel || return "$?"
-
- # generate boot.itb image.
- if [[ ${1} != noitb ]]; then
- pack_boot || return "$?"
- fi
-)}
-
-function clean_kernel()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_kernel_env
- cd "$BUILD_PATH" || return
- make kernel-clean
-)}
-
-function build_bld()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- cd "$BUILD_PATH" || return
- make bld
-)}
-
-function clean_bld()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- cd "$BUILD_PATH" || return
- make bld-clean
-)}
-
-function _build_middleware_env()
-{
- export MULTI_PROCESS_SUPPORT
-}
-
-function build_middleware()
-{(
- print_notice "Run ${FUNCNAME[0]}() function"
- _build_middleware_env
- cd "$BUILD_PATH" || return
-
- make "$ROOTFS_DIR"
-
- mkdir -p "$SYSTEM_OUT_DIR"/usr/bin
- mkdir -p "$SYSTEM_OUT_DIR"/lib
-
- pushd $MW_PATH
- rm -rf lib
- if [ -d $(echo ${CHIP_ARCH} | tr A-Z a-z)/lib_"$SDK_VER" ];
- then
- ln -s $(echo ${CHIP_ARCH} | tr A-Z a-z)/lib_"$SDK_VER" lib
- else
- ln -s lib_"$SDK_VER" lib
- fi
-
- if [ -d $(echo ${CHIP_ARCH} | tr A-Z a-z)/ko ];
- then
- rm -rf ko
- rm -rf ko_shrink
- ln -s $(echo ${CHIP_ARCH} | tr A-Z a-z)/ko ko
- ln -s $(echo ${CHIP_ARCH} | tr A-Z a-z)/ko_shrink ko_shrink
- fi
- popd
-
- pushd "$MW_PATH"/component/isp
- make all || return "$?"
- popd
-
- pushd "$MW_PATH"/sample
- make all || return "$?"
- find ./ -type f \( -iname "sample_*" ! -iname "*.*" \) -exec cp '{}' $SYSTEM_OUT_DIR/usr/bin \;
- popd
-
- # copy mw lib
- cp -af "$MW_PATH"/lib/*.so* "$SYSTEM_OUT_DIR"/lib
- cp -af "$MW_PATH"/lib/3rd/*.so* "$SYSTEM_OUT_DIR"/lib
- # copy ko
- mkdir -p "$SYSTEM_OUT_DIR"/ko
- if [[ "$BUILD_FOR_DEBUG" != "y" ]]; then
- cp -af "$MW_PATH"/ko_shrink/* "$SYSTEM_OUT_DIR"/ko/
- else
- cp -af "$MW_PATH"/ko/* "$SYSTEM_OUT_DIR"/ko/
- fi
-
- # add sdk version
- echo "SDK_VERSION=${SDK_VER}" > "$SYSTEM_OUT_DIR"/sdk-release
-)}
-
-
-function clean_middleware()
-{
- print_notice "Run ${FUNCNAME[0]}() function "
- pushd "$MW_PATH"/sample
- make clean
- popd
- pushd "$MW_PATH"/component/isp
- make clean
- popd
-}
-
-function build_osdrv()
-{(
- print_notice "Run ${FUNCNAME[0]}() ${1} function"
-
- cd "$BUILD_PATH" || return
- make "$ROOTFS_DIR"
-
- local osdrv_target="$1"
- if [ -z "$osdrv_target" ]; then
- osdrv_target=all
- fi
-
- pushd "$OSDRV_PATH"
- make KERNEL_DIR="$KERNEL_PATH"/"$KERNEL_OUTPUT_FOLDER" INSTALL_DIR="$SYSTEM_OUT_DIR"/ko "$osdrv_target" || return "$?"
- popd
-)}
-
-function clean_osdrv()
-{
- print_notice "Run ${FUNCNAME[0]}() function"
-
- pushd "$OSDRV_PATH"
- make KERNEL_DIR="$KERNEL_PATH"/"$KERNEL_OUTPUT_FOLDER" INSTALL_DIR="$SYSTEM_OUT_DIR"/ko clean || return "$?"
- popd
-}
-
-function clean_ramdisk()
-{
- rm -rf "${RAMDISK_PATH:?}"/"$RAMDISK_OUTPUT_BASE"
- rm -rf "$SYSTEM_OUT_DIR"
- rm -rf "$ROOTFS_DIR"
-}
-
-function build_all()
-{
- # build bsp
- build_uboot || return $?
- build_kernel || return $?
- build_osdrv || return $?
- build_middleware || return $?
- pack_access_guard_turnkey_app || return $?
- pack_ipc_turnkey_app || return $?
- pack_boot || return $?
- pack_cfg || return $?
- pack_rootfs || return $?
- pack_data
- pack_system || return $?
- copy_tools
- pack_upgrade
-}
-
-function clean_all()
-{
- clean_uboot
- clean_kernel
- clean_ramdisk
- clean_osdrv
- clean_middleware
-}
-
-# shellcheck disable=SC2120
-function envs_sdk_ver()
-{
- if [ -n "$1" ]; then
- SDK_VER="$1"
- fi
-
- if [ "$SDK_VER" = 64bit ]; then
- CROSS_COMPILE="$CROSS_COMPILE_64"
- CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_64"
- SYSROOT_PATH="$SYSROOT_PATH_64"
- elif [ "$SDK_VER" = 32bit ]; then
- CROSS_COMPILE="$CROSS_COMPILE_32"
- CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_32"
- SYSROOT_PATH="$SYSROOT_PATH_32"
- elif [ "$SDK_VER" = uclibc ]; then
- CROSS_COMPILE="$CROSS_COMPILE_UCLIBC"
- CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_UCLIBC"
- SYSROOT_PATH="$SYSROOT_PATH_UCLIBC"
- elif [ "$SDK_VER" = glibc_riscv64 ]; then
- CROSS_COMPILE="$CROSS_COMPILE_GLIBC_RISCV64"
- CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_GLIBC_RISCV64"
- SYSROOT_PATH="$SYSROOT_PATH_GLIBC_RISCV64"
- elif [ "$SDK_VER" = musl_riscv64 ]; then
- CROSS_COMPILE="$CROSS_COMPILE_MUSL_RISCV64"
- CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_MUSL_RISCV64"
- SYSROOT_PATH="$SYSROOT_PATH_MUSL_RISCV64"
- else
- echo -e "Invalid SDK_VER=${SDK_VER}"
- exit 1
- fi
-
- TPU_OUTPUT_PATH="$OUTPUT_DIR"/tpu_"$SDK_VER"
- # ramdisk packages PATH
- pushd $BUILD_PATH || return $?
- CVI_TARGET_PACKAGES_LIBDIR=$(make print-target-packages-libdir)
- CVI_TARGET_PACKAGES_INCLUDE=$(make print-target-packages-include)
- popd
- export CVI_TARGET_PACKAGES_LIBDIR
- export CVI_TARGET_PACKAGES_INCLUDE
-
- OSS_TARBALL_PATH="$TPU_OUTPUT_PATH"/third_party
- TPU_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_tpu_sdk
- IVE_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_ive_sdk
- IVS_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_ivs_sdk
- AI_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_ai_sdk
- CNV_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_cnv_sdk
- TPU_MODEL_PATH="$TPU_OUTPUT_PATH"/models
- IVE_CMODEL_INSTALL_PATH="$TPU_OUTPUT_PATH"/tools/ive_cmodel
-}
-
-function cvi_setup_env()
-{
- local _tmp ret
-
- _build_default_env
-
- _tmp=$(python3 "${TOP_DIR}/build/scripts/boards_scan.py" --gen-board-env="${CHIP}_${BOARD}")
- ret=$?
- [[ "$ret" == 0 ]] || return "$ret"
-
- # shellcheck disable=SC1090
- source <(echo "${_tmp}")
-
- if [[ "$CHIP_ARCH" == "CV183X" ]];then
- export CVIARCH="CV183X"
- fi
- if [[ "$CHIP_ARCH" == "CV182X" ]];then
- export CVIARCH="CV182X"
- fi
- if [[ "$CHIP_ARCH" == "CV181X" ]];then
- export CVIARCH="CV181X"
- fi
- if [[ "$CHIP_ARCH" == "CV180X" ]];then
- export CVIARCH="CV180X"
- fi
-
- export BRAND BUILD_VERBOSE DEBUG PROJECT_FULLNAME
- export OUTPUT_DIR ATF_PATH BM_BLD_PATH OPENSBI_PATH UBOOT_PATH FREERTOS_PATH
- export KERNEL_PATH RAMDISK_PATH OSDRV_PATH TOOLS_PATH COMMON_TOOLS_PATH
-
- PROJECT_FULLNAME="$CHIP"_"$BOARD"
-
- # output folder path
- INSTALL_PATH="$TOP_DIR"/install
- OUTPUT_DIR="$INSTALL_PATH"/soc_"$PROJECT_FULLNAME"
- ROOTFS_DIR="$OUTPUT_DIR"/rootfs
- SYSTEM_OUT_DIR="$OUTPUT_DIR"/rootfs/mnt/system
-
- # source file folders
- FSBL_PATH="$TOP_DIR"/fsbl
- ATF_PATH="$TOP_DIR"/arm-trusted-firmware
- UBOOT_PATH="$TOP_DIR/$UBOOT_SRC"
- FREERTOS_PATH="$TOP_DIR"/freertos
- ALIOS_PATH="$TOP_DIR"/alios
- KERNEL_PATH="$TOP_DIR"/"$KERNEL_SRC"
- OSDRV_PATH="$TOP_DIR"/osdrv
- RAMDISK_PATH="$TOP_DIR"/ramdisk
- BM_BLD_PATH="$TOP_DIR"/bm_bld
- TOOLCHAIN_PATH="$TOP_DIR"/host-tools
- OSS_PATH="$TOP_DIR"/oss
- OPENCV_PATH="$TOP_DIR"/opencv
- APPS_PATH="$TOP_DIR"/apps
- MW_PATH="$TOP_DIR"/middleware/"$MW_VER"
- ISP_TUNING_PATH="$TOP_DIR"/isp_tuning
- TPU_SDK_PATH="$TOP_DIR"/cviruntime
- IVE_SDK_PATH="$TOP_DIR"/ive
- IVS_SDK_PATH="$TOP_DIR"/ivs
- CNV_SDK_PATH="$TOP_DIR"/cnv
- ACCESSGUARD_PATH="$TOP_DIR"/access-guard-turnkey
- IPC_APP_PATH="$TOP_DIR"/framework/applications/ipc
- AI_SDK_PATH="$TOP_DIR"/cviai
- CVI_PIPELINE_PATH="$TOP_DIR"/cvi_pipeline
- OPENSBI_PATH="$TOP_DIR"/opensbi
- TOOLS_PATH="$BUILD_PATH"/tools
- COMMON_TOOLS_PATH="$TOOLS_PATH"/common
- VENC_PATH="$MW_PATH"/modules/venc
- IMGTOOL_PATH="$COMMON_TOOLS_PATH"/image_tool
- EMMCTOOL_PATH="$COMMON_TOOLS_PATH"/emmc_tool
- SCRIPTTOOL_PATH="$COMMON_TOOLS_PATH"/scripts
- ROOTFSTOOL_PATH="$COMMON_TOOLS_PATH"/rootfs_tool
- SPINANDTOOL_PATH="$COMMON_TOOLS_PATH"/spinand_tool
- BOOTLOGO_PATH="$COMMON_TOOLS_PATH"/bootlogo/logo.jpg
-
- # subfolder path for buidling, chosen accroding to .gitignore rules
- UBOOT_OUTPUT_FOLDER=build/"$PROJECT_FULLNAME"
- RAMDISK_OUTPUT_BASE=build/"$PROJECT_FULLNAME"
- KERNEL_OUTPUT_FOLDER=build/"$PROJECT_FULLNAME"
- RAMDISK_OUTPUT_FOLDER="$RAMDISK_OUTPUT_BASE"/workspace
-
- # toolchain
- export CROSS_COMPILE_64=aarch64-linux-gnu-
- export CROSS_COMPILE_32=arm-linux-gnueabihf-
- export CROSS_COMPILE_UCLIBC=arm-cvitek-linux-uclibcgnueabihf-
- export CROSS_COMPILE_64_NONOS=aarch64-elf-
- export CROSS_COMPILE_64_NONOS_RISCV64=riscv64-unknown-elf-
- export CROSS_COMPILE_GLIBC_RISCV64=riscv64-unknown-linux-gnu-
- export CROSS_COMPILE_MUSL_RISCV64=riscv64-unknown-linux-musl-
- export CROSS_COMPILE="$CROSS_COMPILE_64"
-
- # toolchain path
- CROSS_COMPILE_PATH_64="$TOOLCHAIN_PATH"/gcc/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu
- CROSS_COMPILE_PATH_32="$TOOLCHAIN_PATH"/gcc/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf
- CROSS_COMPILE_PATH_UCLIBC="$TOOLCHAIN_PATH"/gcc/arm-cvitek-linux-uclibcgnueabihf
- CROSS_COMPILE_PATH_64_NONOS="$TOOLCHAIN_PATH"/gcc/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-elf
- CROSS_COMPILE_PATH_64_NONOS_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-elf-x86_64
- CROSS_COMPILE_PATH_GLIBC_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-linux-x86_64
- CROSS_COMPILE_PATH_MUSL_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-linux-musl-x86_64
- CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_64"
-
- # add toolchain path
- pathprepend "$CROSS_COMPILE_PATH_64"/bin
- pathprepend "$CROSS_COMPILE_PATH_32"/bin
- pathprepend "$CROSS_COMPILE_PATH_64_NONOS"/bin
- pathprepend "$CROSS_COMPILE_PATH_64_NONOS_RISCV64"/bin
- pathprepend "$CROSS_COMPILE_PATH_GLIBC_RISCV64"/bin
- pathprepend "$CROSS_COMPILE_PATH_MUSL_RISCV64"/bin
- pathappend "$CROSS_COMPILE_PATH_UCLIBC"/bin
-
- # sysroot
- SYSROOT_PATH_64="$RAMDISK_PATH"/sysroot/sysroot-glibc-linaro-2.23-2017.05-aarch64-linux-gnu
- SYSROOT_PATH_32="$RAMDISK_PATH"/sysroot/sysroot-glibc-linaro-2.23-2017.05-arm-linux-gnueabihf
- SYSROOT_PATH_UCLIBC="$RAMDISK_PATH"/sysroot/sysroot-uclibc
- SYSROOT_PATH_GLIBC_RISCV64="$RAMDISK_PATH"/sysroot/sysroot-glibc-riscv64
- SYSROOT_PATH_MUSL_RISCV64="$RAMDISK_PATH"/sysroot/sysroot-musl-riscv64
- SYSROOT_PATH="$SYSROOT_PATH_64"
-
- # envs setup for specific ${SDK_VER}
- envs_sdk_ver
-
- if [ "${STORAGE_TYPE}" == "spinand" ]; then
- PAGE_SUFFIX=2k
- if [ ${NANDFLASH_PAGESIZE} == 4096 ]; then
- PAGE_SUFFIX=4k
- fi
-
- if [[ "$ENABLE_ALIOS" != "y" ]]; then
- pushd "$BUILD_PATH"/boards/"${CHIP_ARCH,,}"/"$PROJECT_FULLNAME"/partition/
- ln -fs ../../../default/partition/partition_spinand_page_"$PAGE_SUFFIX".xml \
- partition_"$STORAGE_TYPE".xml
- popd
- fi
- fi
-
- # configure flash partition table
- if [ -z "${STORAGE_TYPE}" ]; then
- FLASH_PARTITION_XML="$BUILD_PATH"/boards/default/partition/partition_none.xml
- else
- FLASH_PARTITION_XML="$BUILD_PATH"/boards/"${CHIP_ARCH,,}"/"$PROJECT_FULLNAME"/partition/partition_"$STORAGE_TYPE".xml
- if ! [ -e "$FLASH_PARTITION_XML" ]; then
- print_error "${FLASH_PARTITION_XML} does not exist!!"
- return 1
- fi
- fi
-
- export SYSTEM_OUT_DIR
- export CROSS_COMPILE_PATH
- # buildroot config
- export BR_DIR="$TOP_DIR"/buildroot-2021.05
- export BR_BOARD=cvitek_${CHIP_ARCH}_${SDK_VER}
- export BR_OVERLAY_DIR=${BR_DIR}/board/cvitek/${CHIP_ARCH}/overlay
- export BR_DEFCONFIG=${BR_BOARD}_defconfig
- export BR_ROOTFS_DIR="$OUTPUT_DIR"/tmp-rootfs
-}
-
-cvi_print_env()
-{
- echo -e ""
- echo -e "\e[1;32m====== Environment Variables ======= \e[0m\n"
- echo -e " PROJECT: \e[34m$PROJECT_FULLNAME\e[0m, DDR_CFG=\e[34m$DDR_CFG\e[0m"
- echo -e " CHIP_ARCH: \e[34m$CHIP_ARCH\e[0m, DEBUG=\e[34m$DEBUG\e[0m"
- echo -e " SDK VERSION: \e[34m$SDK_VER\e[0m, RPC=\e[34m$MULTI_PROCESS_SUPPORT\e[0m"
- echo -e " ATF options: ATF_KEY_SEL=\e[34m$ATF_KEY_SEL\e[0m, BL32=\e[34m$ATF_BL32\e[0m"
- echo -e " Linux source folder:\e[34m$KERNEL_SRC\e[0m, Uboot source folder: \e[34m$UBOOT_SRC\e[0m"
- echo -e " CROSS_COMPILE_PREFIX: \e[34m$CROSS_COMPILE\e[0m"
- echo -e " ENABLE_BOOTLOGO: $ENABLE_BOOTLOGO"
- echo -e " Flash layout xml: $FLASH_PARTITION_XML"
- echo -e " Sensor tuning bin: $SENSOR_TUNING_PARAM"
- echo -e " Output path: \e[33m$OUTPUT_DIR\e[0m"
- echo -e ""
-}
-
-function pack_access_guard_turnkey_app()
-{
- if [[ -d "$ACCESSGUARD_PATH" ]] && [[ "$BUILD_TURNKEY_ACCESSGUARD" = "y" ]]; then
- mkdir -p "$SYSTEM_OUT_DIR"/data
- cp -a ${ACCESSGUARD_PATH}/install "$SYSTEM_OUT_DIR"/data/
- fi
-}
-
-function pack_ipc_turnkey_app()
-{
- if [[ -d "$IPC_APP_PATH" ]] && [[ "$BUILD_TURNKEY_IPC" = "y" ]]; then
- mkdir -p "$SYSTEM_OUT_DIR"/data
- cp -a ${IPC_APP_PATH}/install "$SYSTEM_OUT_DIR"/data/
- fi
-}
-
-function print_usage()
-{
- printf " -------------------------------------------------------------------------------------------------------\n"
- printf " Usage:\n"
- printf " (1)\33[94m menuconfig \33[0m- Use menu to configure your board.\n"
- printf " ex: $ menuconfig\n\n"
- printf " (2)\33[96m defconfig \$CHIP_ARCH \33[0m- List EVB boards(\$BOARD) by CHIP_ARCH.\n"
- "${BUILD_PATH}/scripts/boards_scan.py" --list-chip-arch
- printf " ex: $ defconfig cv183x\n\n"
- printf " (3)\33[92m defconfig \$BOARD\33[0m - Choose EVB board settings.\n"
- printf " ex: $ defconfig cv1835_wevb_0002a\n"
- printf " ex: $ defconfig cv1826_wevb_0005a_spinand\n"
- printf " ex: $ defconfig cv181x_fpga_c906\n"
- printf " -------------------------------------------------------------------------------------------------------\n"
-}
-
-TOP_DIR=$(gettop)
-BUILD_PATH="$TOP_DIR/build"
-export TOP_DIR BUILD_PATH
-"${BUILD_PATH}/scripts/boards_scan.py" --gen-build-kconfig
-"${BUILD_PATH}/scripts/gen_sensor_config.py"
-"${BUILD_PATH}/scripts/gen_panel_config.py"
-
-# import common functions
-# shellcheck source=./common_functions.sh
-source "$TOP_DIR/build/common_functions.sh"
-
-print_usage
diff --git a/build/cvisetup.sh b/build/cvisetup.sh
new file mode 120000
index 000000000..633d19dc2
--- /dev/null
+++ b/build/cvisetup.sh
@@ -0,0 +1 @@
+envsetup_soc.sh
\ No newline at end of file
diff --git a/build/envsetup_soc.sh b/build/envsetup_soc.sh
new file mode 100644
index 000000000..0683a4999
--- /dev/null
+++ b/build/envsetup_soc.sh
@@ -0,0 +1,911 @@
+#!/bin/bash
+function _build_default_env()
+{
+ # Please keep these default value!!!
+ BRAND=${BRAND:-cvitek}
+ DEBUG=${DEBUG:-0}
+ RELEASE_VERSION=${RELEASE_VERSION:-0}
+ BUILD_VERBOSE=${BUILD_VERBOSE:-1}
+ ATF_BL32=${ATF_BL32:-1}
+ UBOOT_VBOOT=${UBOOT_VBOOT:-0}
+ COMPRESSOR=${COMPRESSOR:-xz}
+ COMPRESSOR_UBOOT=${COMPRESSOR_UBOOT:-lzma} # or none to disable
+ MULTI_PROCESS_SUPPORT=${MULTI_PROCESS_SUPPORT:-0}
+ ENABLE_BOOTLOGO=${ENABLE_BOOTLOGO:-0}
+ TPU_REL=${TPU_REL:-0} # TPU release build
+ SENSOR=${SENSOR:-sony_imx327}
+}
+
+function gettop()
+{
+ local TOPFILE=build/envsetup_soc.sh
+ if [ -n "$TOP" -a -f "$TOP/$TOPFILE" ] ; then
+ # The following circumlocution ensures we remove symlinks from TOP.
+ (cd "$TOP"; PWD= /bin/pwd)
+ else
+ if [ -f $TOPFILE ] ; then
+ # The following circumlocution (repeated below as well) ensures
+ # that we record the true directory name and not one that is
+ # faked up with symlink names.
+ PWD= /bin/pwd
+ else
+ local HERE=$PWD
+ T=
+ while [ \( ! \( -f $TOPFILE \) \) -a \( $PWD != "/" \) ]; do
+ \cd ..
+ T=$(PWD= /bin/pwd -P)
+ done
+ \cd "$HERE"
+ if [ -f "$T/$TOPFILE" ]; then
+ echo "$T"
+ fi
+ fi
+ fi
+}
+
+function _build_fsbl_env()
+{
+ export FSBL_PATH
+}
+
+function build_fsbl()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_uboot_env
+ _build_opensbi_env
+ cd "$BUILD_PATH" || return
+ make fsbl-build
+)}
+
+function clean_fsbl()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_uboot_env
+ cd "$BUILD_PATH" || return
+ make fsbl-clean
+)}
+
+function _build_atf_env()
+{
+ export ATF_BL32 FAKE_BL31_32
+}
+
+function build_atf()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_atf_env
+ cd "$BUILD_PATH" || return
+ make arm-trusted-firmware
+)}
+
+function clean_atf()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_atf_env
+ cd "$BUILD_PATH" || return
+ make arm-trusted-firmware-clean
+)}
+
+function _build_uboot_env()
+{
+ _build_atf_env
+ _build_fsbl_env
+ export UBOOT_OUTPUT_FOLDER IMGTOOL_PATH FLASH_PARTITION_XML FIP_BIN_PATH
+ export UBOOT_VBOOT RELEASE_VERSION ENABLE_BOOTLOGO STORAGE_TYPE COMPRESSOR_UBOOT
+ export PANEL_TUNING_PARAM PANEL_LANE_NUM_TUNING_PARAM PANEL_LANE_SWAP_TUNING_PARAM
+}
+
+function build_fip_pre()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_uboot_env
+ cd "$BUILD_PATH" || return
+ make fip-pre-merge
+)}
+
+function build_rtos()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ cd "$BUILD_PATH" || return
+ make rtos
+)}
+
+function clean_rtos()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ cd "$BUILD_PATH" || return
+ make rtos-clean
+)}
+
+function menuconfig_uboot()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_uboot_env
+ cd "$BUILD_PATH" || return
+ make u-boot-menuconfig || return "$?"
+)}
+
+function _link_uboot_logo()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ cd "$BUILD_PATH" || return
+ if [[ x"${PANEL_TUNING_PARAM}" = x"I80_panel_st7789v" ]]; then
+ ln -sf "$COMMON_TOOLS_PATH"/bootlogo/logo_320x240.BMP "$COMMON_TOOLS_PATH"/bootlogo/logo.jpg
+ fi
+)}
+
+function build_uboot()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_uboot_env
+ _build_opensbi_env
+ _link_uboot_logo
+ cd "$BUILD_PATH" || return
+ make u-boot
+)}
+
+function build_uboot_env_tools()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_uboot_env
+ cd "$BUILD_PATH" || return
+ make u-boot-env-tools
+)}
+
+function clean_uboot()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_uboot_env
+ cd "$BUILD_PATH" || return
+ make u-boot-clean
+)}
+
+function _build_kernel_env()
+{
+ export KERNEL_OUTPUT_FOLDER RAMDISK_OUTPUT_FOLDER SYSTEM_OUT_DIR
+}
+
+function menuconfig_kernel()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_kernel_env
+ cd "$BUILD_PATH" || return
+ make kernel-menuconfig || return "$?"
+)}
+
+function setconfig_kernel()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_kernel_env
+ cd "$BUILD_PATH" || return
+ make kernel-setconfig "SCRIPT_ARG=$1" || return "$?"
+)}
+
+# shellcheck disable=SC2120
+function build_kernel()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_kernel_env
+ cd "$BUILD_PATH" || return
+ make kernel || return "$?"
+
+ # generate boot.itb image.
+ if [[ ${1} != noitb ]]; then
+ pack_boot || return "$?"
+ fi
+)}
+
+function clean_kernel()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_kernel_env
+ cd "$BUILD_PATH" || return
+ make kernel-clean
+)}
+
+function build_bld()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ cd "$BUILD_PATH" || return
+ make bld
+)}
+
+function clean_bld()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ cd "$BUILD_PATH" || return
+ make bld-clean
+)}
+
+function _build_middleware_env()
+{
+ export MULTI_PROCESS_SUPPORT
+}
+
+function build_middleware()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_middleware_env
+ cd "$BUILD_PATH" || return
+
+ make "$ROOTFS_DIR"
+
+ pushd "$MW_PATH"
+ make all -j$(nproc)
+ test $? -ne 0 && print_notice "build middleware failed !!" && popd && return 1
+ make install DESTDIR="$SYSTEM_OUT_DIR"
+ popd
+
+ # add sdk version
+ echo "SDK_VERSION=${SDK_VER}" > "$SYSTEM_OUT_DIR"/sdk-release
+)}
+
+function clean_middleware()
+{
+ pushd "$MW_PATH"
+ make clean
+ make uninstall
+ popd
+}
+
+function _build_tpu_sdk_env()
+{
+ export SYSTEM_OUT_DIR OSS_TARBALL_PATH OSS_PATH
+}
+
+function build_tpu_sdk()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+
+ _build_tpu_sdk_env
+ # build tpu
+ TPU_SDK_BUILD_PATH="$TPU_SDK_PATH"/build_sdk \
+ TPU_SDK_INSTALL_PATH="$TPU_SDK_INSTALL_PATH" \
+ "$TPU_SDK_PATH"/build_tpu_sdk.sh
+
+ test "$?" -eq 0 || return 1
+)}
+
+function clean_tpu_sdk()
+{
+ rm -rf "$TPU_SDK_INSTALL_PATH"
+ rm -rf "$TPU_SDK_PATH"/build_sdk
+
+ rm -f "$SYSTEM_OUT_DIR"/lib/libcnpy.so*
+ rm -f "$SYSTEM_OUT_DIR"/lib/libcvikernel.so*
+ rm -f "$SYSTEM_OUT_DIR"/lib/libcviruntime.so*
+ rm -f "$SYSTEM_OUT_DIR"/lib/libopencv_*
+}
+
+function build_sdk()
+{
+ if [[ -z $1 ]]; then
+ echo "Please enter sdk type !"
+ return 1;
+ fi
+
+ print_notice "Run ${FUNCNAME[0]}() $1 function"
+
+ if [ ! -e "$TPU_SDK_INSTALL_PATH" ]; then
+ echo "$TPU_SDK_INSTALL_PATH not present, run build_tpu_sdk first"
+ return 1
+ fi
+
+ if [ "$SDK_VER" = 64bit ]; then
+ HOST_TOOL_PATH="$CROSS_COMPILE_PATH_64"
+ elif [ "$SDK_VER" = 32bit ]; then
+ HOST_TOOL_PATH="$CROSS_COMPILE_PATH_32"
+ elif [ "$SDK_VER" = uclibc ]; then
+ HOST_TOOL_PATH="$CROSS_COMPILE_PATH_UCLIBC"
+ elif [ "$SDK_VER" = glibc_riscv64 ]; then
+ HOST_TOOL_PATH="$CROSS_COMPILE_PATH_GLIBC_RISCV64"
+ elif [ "$SDK_VER" = musl_riscv64 ]; then
+ HOST_TOOL_PATH="$CROSS_COMPILE_PATH_MUSL_RISCV64"
+ else
+ echo "Unknown SDK_VER=$SDK_VER"
+ return 1
+ fi
+ local SDK_PATH=
+ local SDK_INSTALL_PATH=
+ if [[ "$1" = ive ]]; then
+ SDK_PATH="$IVE_SDK_PATH"
+ SDK_INSTALL_PATH="$IVE_SDK_INSTALL_PATH"
+ elif [[ "$1" = ivs ]]; then
+ SDK_PATH="$IVS_SDK_PATH"
+ SDK_INSTALL_PATH="$IVS_SDK_INSTALL_PATH"
+ elif [[ "$1" = ai ]]; then
+ SDK_PATH="$AI_SDK_PATH"
+ SDK_INSTALL_PATH="$AI_SDK_INSTALL_PATH"
+ elif [[ "$1" = cnv ]]; then
+ SDK_PATH="$CNV_SDK_PATH"
+ SDK_INSTALL_PATH="$CNV_SDK_INSTALL_PATH"
+ fi
+ pushd "$SDK_PATH"
+ HOST_TOOL_PATH="$HOST_TOOL_PATH" \
+ MW_PATH="$MW_PATH" \
+ CHIP_ARCH="$CHIP_ARCH" \
+ OPENCV_INSTALL_PATH="$TPU_SDK_INSTALL_PATH"/opencv \
+ TRACER_INSTALL_PATH="$IVE_SDK_INSTALL_PATH" \
+ TPU_SDK_INSTALL_PATH="$TPU_SDK_INSTALL_PATH" \
+ IVE_SDK_INSTALL_PATH="$IVE_SDK_INSTALL_PATH" \
+ AI_SDK_INSTALL_PATH="$AI_SDK_INSTALL_PATH" \
+ IVS_SDK_INSTALL_PATH="$IVS_SDK_INSTALL_PATH" \
+ CNV_SDK_INSTALL_PATH="$CNV_SDK_INSTALL_PATH" \
+ KERNEL_HEADER_PATH="$KERNEL_PATH"/"$KERNEL_OUTPUT_FOLDER"/usr/ \
+ scripts/sdk_release.sh
+ test "$?" -ne 0 && print_notice "${FUNCNAME[0]}() failed !!" && popd return 1
+ popd
+
+ # copy so
+ cp -a "$SDK_INSTALL_PATH"/lib/*.so* "$SYSTEM_OUT_DIR"/lib/
+ # copy sample_xxx
+ if [[ "$CHIP_ARCH" != CV180X ]] && [[ "$1" = ai ]]; then
+ mkdir -p "$SYSTEM_OUT_DIR"/usr/bin/"$1"
+ cp -a "$SDK_INSTALL_PATH"/bin/sample_* "$SYSTEM_OUT_DIR"/usr/bin/"$1"
+ fi
+}
+
+function clean_sdk()
+{
+ [[ "$1" = ive ]] && rm -rf "$IVE_SDK_INSTALL_PATH"
+ [[ "$1" = ivs ]] && rm -rf "$IVS_SDK_INSTALL_PATH"
+ [[ "$1" = cnv ]] && rm -rf "$CNV_SDK_INSTALL_PATH"
+ if [[ "$1" = ai ]]; then
+ rm -rf "$AI_SDK_INSTALL_PATH"
+ rm -rf "$AI_SDK_PATH"/tmp/_deps
+ fi
+
+ rm -f "$SYSTEM_OUT_DIR"/lib/libcviai.so*
+ rm -f "$SYSTEM_OUT_DIR"/lib/libcvi_"$1"_tpu.so*
+ rm -rf "${SYSTEM_OUT_DIR:?}"/usr/bin/"$1"
+}
+
+function build_ive_sdk()
+{
+ if [[ "$CHIP_ARCH" != CV181X ]] ; then
+ build_sdk ive
+ fi
+}
+
+function clean_ive_sdk()
+{
+ if [[ "$CHIP_ARCH" != CV181X ]] ; then
+ clean_sdk ive
+ fi
+}
+
+function build_ivs_sdk()
+{
+ if [[ "$CHIP_ARCH" == CV182X ]] || [[ "$CHIP_ARCH" == CV183X ]]; then
+ build_sdk ivs
+ fi
+}
+
+function clean_ivs_sdk()
+{
+ if [[ "$CHIP_ARCH" == CV182X ]] || [[ "$CHIP_ARCH" == CV183X ]]; then
+ clean_sdk ivs
+ fi
+}
+
+function build_ai_sdk()
+{
+ build_sdk ai
+}
+
+function clean_ai_sdk()
+{
+ clean_sdk ai
+}
+
+function build_cnv_sdk()
+{
+ build_sdk cnv
+}
+
+function clean_cnv_sdk()
+{
+ clean_sdk cnv
+}
+
+function build_osdrv()
+{(
+ print_notice "Run ${FUNCNAME[0]}() ${1} function"
+
+ cd "$BUILD_PATH" || return
+ make "$ROOTFS_DIR"
+
+ local osdrv_target="$1"
+ if [ -z "$osdrv_target" ]; then
+ osdrv_target=all
+ fi
+
+ pushd "$OSDRV_PATH"
+ make KERNEL_DIR="$KERNEL_PATH"/"$KERNEL_OUTPUT_FOLDER" INSTALL_DIR="$SYSTEM_OUT_DIR"/ko "$osdrv_target" || return "$?"
+ popd
+)}
+
+function clean_osdrv()
+{
+ print_notice "Run ${FUNCNAME[0]}() function"
+
+ pushd "$OSDRV_PATH"
+ make KERNEL_DIR="$KERNEL_PATH"/"$KERNEL_OUTPUT_FOLDER" INSTALL_DIR="$SYSTEM_OUT_DIR"/ko clean || return "$?"
+ popd
+}
+
+function _build_cvi_pipeline_env()
+{
+ export SYSTEM_OUT_DIR CROSS_COMPILE_PATH_32 CROSS_COMPILE_PATH_64 CROSS_COMPILE_PATH_UCLIBC
+}
+
+function build_cvi_pipeline()
+{
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_cvi_pipeline_env
+
+ pushd "$CVI_PIPELINE_PATH"
+ ./build.sh "1"
+ ./install_base_pkg.sh prebuilt "$(pwd)/install"
+ ./download_models.sh "$(pwd)/install/cvi_models"
+ make install DESTDIR="$(pwd)/install/system" LIBC_PATH="$TOOLCHAIN_PATH/gcc/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib/"
+ popd
+}
+
+function clean_cvi_pipeline()
+{
+ pushd "$CVI_PIPELINE_PATH"
+ make clean
+ rm -rf cvi_pipeline.tar.gz
+ rm -rf prebuilt/*
+ popd
+}
+
+function _build_cvi_rtsp_env()
+{
+ export CROSS_COMPILE
+}
+
+function build_cvi_rtsp()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_cvi_rtsp_env
+
+ cd "$CVI_RTSP_PATH" || return
+ BUILD_SERVICE=1 MW_DIR=${MW_PATH} ./build.sh
+ BUILD_SERVICE=1 make install DESTDIR="$(pwd)/install"
+ make package DESTDIR="$(pwd)/install"
+
+ if [[ "$FLASH_SIZE_SHRINK" != "y" ]]; then
+ BUILD_SERVICE=1 make install DESTDIR="${SYSTEM_OUT_DIR}/usr"
+ fi
+)}
+
+function clean_cvi_rtsp()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ cd "$CVI_RTSP_PATH" || return
+ BUILD_SERVICE=1 make clean
+)}
+
+function build_pqtool_server()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ cd "$PQTOOL_SERVER_PATH" || return
+ make all SDK_VER="$SDK_VER" MULTI_PROCESS_SUPPORT="$MULTI_PROCESS_SUPPORT"
+ test "$?" -ne 0 && print_notice "build pqtool_server failed !!" && popd && return 1
+
+ if [[ "$FLASH_SIZE_SHRINK" != "y" ]]; then
+ make install DESTDIR="$SYSTEM_OUT_DIR"
+ fi
+)}
+
+function clean_pqtool_server()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ cd "$PQTOOL_SERVER_PATH" || return
+ make clean
+ make uninstall DESTDIR="$SYSTEM_OUT_DIR"
+)}
+
+function build_3rd_party()
+{
+ mkdir -p "$OSS_TARBALL_PATH"
+
+ if [ -d "${OSS_PATH}/oss_release_tarball" ]; then
+ echo "oss prebuilt tarball found!"
+ else
+ echo "Try to download oss_release_tarball.tar tarball ..."
+ #wget ...
+ #tar -xvf ${OSS_PATH}/oss_release_tarball.tar -C ${OSS_PATH}
+ fi
+ echo "cp -rpf ${OSS_PATH}/oss_release_tarball/${SDK_VER}/* ${OSS_TARBALL_PATH}"
+ cp -rpf ${OSS_PATH}/oss_release_tarball/${SDK_VER}/* ${OSS_TARBALL_PATH}
+
+ local oss_list=(
+ "zlib"
+ "glog"
+ "flatbuffers"
+ "opencv"
+ "live555"
+ "sqlite3"
+ "ffmpeg"
+ "thttpd"
+ "openssl"
+ "libwebsockets"
+ "json-c"
+ "nanomsg"
+ "miniz"
+ "uv"
+ "cvi-json-c"
+ "cvi-miniz"
+ )
+
+ for name in "${oss_list[@]}"
+ do
+ if [ -f "${OSS_TARBALL_PATH}/${name}.tar.gz" ]; then
+ echo "$name found"
+ "$OSS_PATH"/run_build.sh -n "$name" -e -t "$OSS_TARBALL_PATH" -i "$TPU_SDK_INSTALL_PATH"
+ echo "$name successfully downloaded and untared."
+ else
+ echo "$name not found"
+ fi
+ done
+}
+
+function clean_3rd_party()
+{
+ rm -rf "$OSS_PATH"/build
+ rm -rf "$OSS_TARBALL_PATH"
+}
+
+function clean_ramdisk()
+{
+ rm -rf "${RAMDISK_PATH:?}"/"$RAMDISK_OUTPUT_BASE"
+ rm -rf "$SYSTEM_OUT_DIR"
+ rm -rf "$ROOTFS_DIR"
+}
+
+function prepare_git_hook()
+{
+ print_notice "Run ${FUNCNAME[0]}() function"
+ if [[ -d ".git" ]]; then
+ mkdir -p .git/hooks
+ cp ${TOP_DIR}/build/hook/commit-msg .git/hooks/
+ chmod +x .git/hooks/commit-msg
+ cp ${TOP_DIR}/build/hook/prepare-commit-msg .git/hooks/
+ chmod +x .git/hooks/prepare-commit-msg
+ else
+ print_notice "Abort .git is not exist !!!"
+ fi
+}
+
+# shellcheck disable=SC2120
+function build_all()
+{(
+ build_uboot || return $?
+ build_kernel || return $?
+ build_ramboot || return $?
+ build_osdrv || return $?
+ build_3rd_party || return $?
+ build_middleware || return $?
+ if [ "$TPU_REL" = 1 ]; then
+ build_tpu_sdk || return $?
+ fi
+ pack_cfg || return $?
+ pack_rootfs || return $?
+ pack_data || return $?
+ pack_system || return $?
+ pack_upgrade || return $?
+)}
+
+function clean_all()
+{
+ clean_uboot
+ clean_opensbi
+ clean_rtos
+ [[ "$ATF_SRC" == y ]] && clean_atf
+ clean_kernel
+ clean_ramdisk
+ clean_3rd_party
+ if [ "$TPU_REL" = 1 ]; then
+ clean_ive_sdk
+ clean_ivs_sdk
+ clean_tpu_sdk
+ clean_ai_sdk
+ clean_cnv_sdk
+ fi
+ clean_middleware
+ clean_osdrv
+}
+
+function distclean_all()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ clean_all
+ #repo forall -c "git clean -dfx"
+)}
+
+# shellcheck disable=SC2120
+function envs_sdk_ver()
+{
+ if [ -n "$1" ]; then
+ SDK_VER="$1"
+ fi
+
+ if [ "$SDK_VER" = 64bit ]; then
+ CROSS_COMPILE="$CROSS_COMPILE_64"
+ CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_64"
+ SYSROOT_PATH="$SYSROOT_PATH_64"
+ elif [ "$SDK_VER" = 32bit ]; then
+ CROSS_COMPILE="$CROSS_COMPILE_32"
+ CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_32"
+ SYSROOT_PATH="$SYSROOT_PATH_32"
+ elif [ "$SDK_VER" = uclibc ]; then
+ CROSS_COMPILE="$CROSS_COMPILE_UCLIBC"
+ CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_UCLIBC"
+ SYSROOT_PATH="$SYSROOT_PATH_UCLIBC"
+ elif [ "$SDK_VER" = glibc_riscv64 ]; then
+ CROSS_COMPILE="$CROSS_COMPILE_GLIBC_RISCV64"
+ CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_GLIBC_RISCV64"
+ SYSROOT_PATH="$SYSROOT_PATH_GLIBC_RISCV64"
+ elif [ "$SDK_VER" = musl_riscv64 ]; then
+ CROSS_COMPILE="$CROSS_COMPILE_MUSL_RISCV64"
+ CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_MUSL_RISCV64"
+ SYSROOT_PATH="$SYSROOT_PATH_MUSL_RISCV64"
+ else
+ echo -e "Invalid SDK_VER=${SDK_VER}"
+ exit 1
+ fi
+
+ TPU_OUTPUT_PATH="$OUTPUT_DIR"/tpu_"$SDK_VER"
+ # ramdisk packages PATH
+ pushd $BUILD_PATH || return $?
+ CVI_TARGET_PACKAGES_LIBDIR=$(make print-target-packages-libdir)
+ CVI_TARGET_PACKAGES_INCLUDE=$(make print-target-packages-include)
+ popd
+ export CVI_TARGET_PACKAGES_LIBDIR
+ export CVI_TARGET_PACKAGES_INCLUDE
+
+ OSS_TARBALL_PATH="$TPU_OUTPUT_PATH"/third_party
+ TPU_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_tpu_sdk
+ IVE_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_ive_sdk
+ IVS_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_ivs_sdk
+ AI_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_ai_sdk
+ CNV_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_cnv_sdk
+ TPU_MODEL_PATH="$TPU_OUTPUT_PATH"/models
+ IVE_CMODEL_INSTALL_PATH="$TPU_OUTPUT_PATH"/tools/ive_cmodel
+}
+
+function cvi_setup_env()
+{
+ local _tmp ret
+
+ _build_default_env
+
+ _tmp=$(python3 "${TOP_DIR}/build/scripts/boards_scan.py" --gen-board-env="${CHIP}_${BOARD}")
+ ret=$?
+ [[ "$ret" == 0 ]] || return "$ret"
+
+ # shellcheck disable=SC1090
+ source <(echo "${_tmp}")
+
+ if [[ "$CHIP_ARCH" == "CV183X" ]];then
+ export CVIARCH="CV183X"
+ fi
+ if [[ "$CHIP_ARCH" == "CV182X" ]];then
+ export CVIARCH="CV182X"
+ fi
+ if [[ "$CHIP_ARCH" == "CV181X" ]];then
+ export CVIARCH="CV181X"
+ fi
+ if [[ "$CHIP_ARCH" == "CV180X" ]];then
+ export CVIARCH="CV180X"
+ fi
+ if [[ "$CHIP_ARCH" == "ATHENA2" ]];then
+ export CVIARCH="ATHENA2"
+ fi
+
+ export BRAND BUILD_VERBOSE DEBUG PROJECT_FULLNAME
+ export OUTPUT_DIR ATF_PATH BM_BLD_PATH OPENSBI_PATH UBOOT_PATH FREERTOS_PATH
+ export KERNEL_PATH RAMDISK_PATH OSDRV_PATH TOOLS_PATH COMMON_TOOLS_PATH
+
+ PROJECT_FULLNAME="$CHIP"_"$BOARD"
+
+ # output folder path
+ INSTALL_PATH="$TOP_DIR"/install
+ OUTPUT_DIR="$INSTALL_PATH"/soc_"$PROJECT_FULLNAME"
+ ROOTFS_DIR="$OUTPUT_DIR"/rootfs
+ SYSTEM_OUT_DIR="$OUTPUT_DIR"/rootfs/mnt/system
+
+ # source file folders
+ FSBL_PATH="$TOP_DIR"/fsbl
+ ATF_PATH="$TOP_DIR"/arm-trusted-firmware
+ UBOOT_PATH="$TOP_DIR/$UBOOT_SRC"
+ FREERTOS_PATH="$TOP_DIR"/freertos
+ ALIOS_PATH="$TOP_DIR"/alios
+ KERNEL_PATH="$TOP_DIR"/"$KERNEL_SRC"
+ OSDRV_PATH="$TOP_DIR"/osdrv
+ RAMDISK_PATH="$TOP_DIR"/ramdisk
+ BM_BLD_PATH="$TOP_DIR"/bm_bld
+ TOOLCHAIN_PATH="$TOP_DIR"/host-tools
+ OSS_PATH="$TOP_DIR"/oss
+ OPENCV_PATH="$TOP_DIR"/opencv
+ APPS_PATH="$TOP_DIR"/apps
+ MW_PATH="$TOP_DIR"/middleware/"$MW_VER"
+ PQTOOL_SERVER_PATH="$MW_PATH"/modules/isp/"${CHIP_ARCH,,}"/isp-tool-daemon/isp_daemon_tool
+ ISP_TUNING_PATH="$TOP_DIR"/isp_tuning
+ TPU_SDK_PATH="$TOP_DIR"/cviruntime
+ IVE_SDK_PATH="$TOP_DIR"/ive
+ IVS_SDK_PATH="$TOP_DIR"/ivs
+ CNV_SDK_PATH="$TOP_DIR"/cnv
+ AI_SDK_PATH="$TOP_DIR"/cviai
+ CVI_PIPELINE_PATH="$TOP_DIR"/cvi_pipeline
+ CVI_RTSP_PATH="$TOP_DIR"/cvi_rtsp
+ OPENSBI_PATH="$TOP_DIR"/opensbi
+ TOOLS_PATH="$BUILD_PATH"/tools
+ COMMON_TOOLS_PATH="$TOOLS_PATH"/common
+ VENC_PATH="$MW_PATH"/modules/venc
+ IMGTOOL_PATH="$COMMON_TOOLS_PATH"/image_tool
+ EMMCTOOL_PATH="$COMMON_TOOLS_PATH"/emmc_tool
+ SCRIPTTOOL_PATH="$COMMON_TOOLS_PATH"/scripts
+ ROOTFSTOOL_PATH="$COMMON_TOOLS_PATH"/rootfs_tool
+ SPINANDTOOL_PATH="$COMMON_TOOLS_PATH"/spinand_tool
+ BOOTLOGO_PATH="$COMMON_TOOLS_PATH"/bootlogo/logo.jpg
+
+ # subfolder path for buidling, chosen accroding to .gitignore rules
+ UBOOT_OUTPUT_FOLDER=build/"$PROJECT_FULLNAME"
+ RAMDISK_OUTPUT_BASE=build/"$PROJECT_FULLNAME"
+ KERNEL_OUTPUT_FOLDER=build/"$PROJECT_FULLNAME"
+ RAMDISK_OUTPUT_FOLDER="$RAMDISK_OUTPUT_BASE"/workspace
+
+ # toolchain
+ export CROSS_COMPILE_64=aarch64-linux-gnu-
+ export CROSS_COMPILE_32=arm-linux-gnueabihf-
+ export CROSS_COMPILE_UCLIBC=arm-cvitek-linux-uclibcgnueabihf-
+ export CROSS_COMPILE_64_NONOS=aarch64-elf-
+ export CROSS_COMPILE_64_NONOS_RISCV64=riscv64-unknown-elf-
+ export CROSS_COMPILE_GLIBC_RISCV64=riscv64-unknown-linux-gnu-
+ export CROSS_COMPILE_MUSL_RISCV64=riscv64-unknown-linux-musl-
+ export CROSS_COMPILE="$CROSS_COMPILE_64"
+
+ # toolchain path
+ CROSS_COMPILE_PATH_64="$TOOLCHAIN_PATH"/gcc/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu
+ CROSS_COMPILE_PATH_32="$TOOLCHAIN_PATH"/gcc/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf
+ CROSS_COMPILE_PATH_UCLIBC="$TOOLCHAIN_PATH"/gcc/arm-cvitek-linux-uclibcgnueabihf
+ CROSS_COMPILE_PATH_64_NONOS="$TOOLCHAIN_PATH"/gcc/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-elf
+ CROSS_COMPILE_PATH_64_NONOS_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-elf-x86_64
+ CROSS_COMPILE_PATH_GLIBC_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-linux-x86_64
+ CROSS_COMPILE_PATH_MUSL_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-linux-musl-x86_64
+ CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_64"
+
+ # add toolchain path
+ pathprepend "$CROSS_COMPILE_PATH_64"/bin
+ pathprepend "$CROSS_COMPILE_PATH_32"/bin
+ pathprepend "$CROSS_COMPILE_PATH_64_NONOS"/bin
+ pathprepend "$CROSS_COMPILE_PATH_64_NONOS_RISCV64"/bin
+ pathprepend "$CROSS_COMPILE_PATH_GLIBC_RISCV64"/bin
+ pathprepend "$CROSS_COMPILE_PATH_MUSL_RISCV64"/bin
+ pathappend "$CROSS_COMPILE_PATH_UCLIBC"/bin
+
+ # Check ccache is enable or not
+ pathremove "$BUILD_PATH"/output/bin
+ rm -rf "$BUILD_PATH"/output/bin/
+ if [ "$USE_CCACHE" == "y" ];then
+ if command -v ccache &> /dev/null;then
+ mkdir -p "$BUILD_PATH"/output/bin
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/aarch64-elf-gcc
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/aarch64-elf-g++
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/aarch64-elf-c++
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/aarch64-linux-gnu-gcc
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/aarch64-linux-gnu-g++
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/aarch64-linux-gnu-c++
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/arm-linux-gnueabihf-gcc
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/arm-linux-gnueabihf-g++
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/arm-linux-gnueabihf-c++
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/arm-cvitek-linux-uclibcgnueabihf-gcc
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/arm-cvitek-linux-uclibcgnueabihf-g++
+ ln -s "$(which ccache)" "$BUILD_PATH"/output/bin/arm-cvitek-linux-uclibcgnueabihf-c++
+ pathprepend "$BUILD_PATH"/output/bin
+ else
+ echo "You have enabled ccache but there is no ccache in your PATH. Please cheack!"
+ USE_CCACHE="n"
+ fi
+ fi
+
+ # sysroot
+ SYSROOT_PATH_64="$RAMDISK_PATH"/sysroot/sysroot-glibc-linaro-2.23-2017.05-aarch64-linux-gnu
+ SYSROOT_PATH_32="$RAMDISK_PATH"/sysroot/sysroot-glibc-linaro-2.23-2017.05-arm-linux-gnueabihf
+ SYSROOT_PATH_UCLIBC="$RAMDISK_PATH"/sysroot/sysroot-uclibc
+ SYSROOT_PATH_GLIBC_RISCV64="$RAMDISK_PATH"/sysroot/sysroot-glibc-riscv64
+ SYSROOT_PATH_MUSL_RISCV64="$RAMDISK_PATH"/sysroot/sysroot-musl-riscv64
+ SYSROOT_PATH="$SYSROOT_PATH_64"
+
+ # envs setup for specific ${SDK_VER}
+ envs_sdk_ver
+
+ if [ "${STORAGE_TYPE}" == "spinand" ]; then
+ PAGE_SUFFIX=2k
+ if [ ${NANDFLASH_PAGESIZE} == 4096 ]; then
+ PAGE_SUFFIX=4k
+ fi
+
+ if [[ "$ENABLE_ALIOS" != "y" ]]; then
+ pushd "$BUILD_PATH"/boards/"${CHIP_ARCH,,}"/"$PROJECT_FULLNAME"/partition/
+ ln -fs ../../../default/partition/partition_spinand_page_"$PAGE_SUFFIX".xml \
+ partition_"$STORAGE_TYPE".xml
+ popd
+ fi
+ fi
+
+ # configure flash partition table
+ if [ -z "${STORAGE_TYPE}" ]; then
+ FLASH_PARTITION_XML="$BUILD_PATH"/boards/default/partition/partition_none.xml
+ else
+ FLASH_PARTITION_XML="$BUILD_PATH"/boards/"${CHIP_ARCH,,}"/"$PROJECT_FULLNAME"/partition/partition_"$STORAGE_TYPE".xml
+ if ! [ -e "$FLASH_PARTITION_XML" ]; then
+ print_error "${FLASH_PARTITION_XML} does not exist!!"
+ return 1
+ fi
+ fi
+
+ export SYSTEM_OUT_DIR
+ export CROSS_COMPILE_PATH
+ # buildroot config
+ export BR_DIR="$TOP_DIR"/buildroot-2021.05
+ export BR_BOARD=cvitek_${CHIP_ARCH}_${SDK_VER}
+ export BR_OVERLAY_DIR=${BR_DIR}/board/cvitek/${CHIP_ARCH}/overlay
+ export BR_DEFCONFIG=${BR_BOARD}_defconfig
+ export BR_ROOTFS_DIR="$OUTPUT_DIR"/tmp-rootfs
+}
+
+cvi_print_env()
+{
+ echo -e ""
+ echo -e "\e[1;32m====== Environment Variables ======= \e[0m\n"
+ echo -e " PROJECT: \e[34m$PROJECT_FULLNAME\e[0m, DDR_CFG=\e[34m$DDR_CFG\e[0m"
+ echo -e " CHIP_ARCH: \e[34m$CHIP_ARCH\e[0m, DEBUG=\e[34m$DEBUG\e[0m"
+ echo -e " SDK VERSION: \e[34m$SDK_VER\e[0m, RPC=\e[34m$MULTI_PROCESS_SUPPORT\e[0m"
+ echo -e " ATF options: ATF_KEY_SEL=\e[34m$ATF_KEY_SEL\e[0m, BL32=\e[34m$ATF_BL32\e[0m"
+ echo -e " Linux source folder:\e[34m$KERNEL_SRC\e[0m, Uboot source folder: \e[34m$UBOOT_SRC\e[0m"
+ echo -e " CROSS_COMPILE_PREFIX: \e[34m$CROSS_COMPILE\e[0m"
+ echo -e " ENABLE_BOOTLOGO: $ENABLE_BOOTLOGO"
+ echo -e " Flash layout xml: $FLASH_PARTITION_XML"
+ echo -e " Sensor tuning bin: $SENSOR_TUNING_PARAM"
+ echo -e " Output path: \e[33m$OUTPUT_DIR\e[0m"
+ echo -e ""
+}
+
+function print_usage()
+{
+ printf " -------------------------------------------------------------------------------------------------------\n"
+ printf " Usage:\n"
+ printf " (1)\33[94m menuconfig \33[0m- Use menu to configure your board.\n"
+ printf " ex: $ menuconfig\n\n"
+ printf " (2)\33[96m defconfig \$CHIP_ARCH \33[0m- List EVB boards(\$BOARD) by CHIP_ARCH.\n"
+ "${BUILD_PATH}/scripts/boards_scan.py" --list-chip-arch
+ printf " ex: $ defconfig cv181x\n\n"
+ printf " (3)\33[92m defconfig \$BOARD\33[0m - Choose EVB board settings.\n"
+ printf " ex: $ defconfig cv1813h_wevb_0007a_spinor\n"
+ printf " ex: $ defconfig cv1812cp_wevb_0006a_spinor\n"
+ printf " -------------------------------------------------------------------------------------------------------\n"
+}
+
+TOP_DIR=$(gettop)
+BUILD_PATH="$TOP_DIR/build"
+export TOP_DIR BUILD_PATH
+"${BUILD_PATH}/scripts/boards_scan.py" --gen-build-kconfig
+"${BUILD_PATH}/scripts/gen_sensor_config.py"
+"${BUILD_PATH}/scripts/gen_panel_config.py"
+
+# import common functions
+# shellcheck source=./common_functions.sh
+source "$TOP_DIR/build/common_functions.sh"
+# shellcheck source=./release_functions.sh
+#source "$TOP_DIR/build/release_functions.sh"
+# shellcheck source=./riscv_functions.sh
+source "$TOP_DIR/build/riscv_functions.sh"
+# shellcheck source=./alios_functions.sh
+#source "$TOP_DIR/build/alios_functions.sh"
+
+print_usage
diff --git a/build/riscv.mk b/build/riscv.mk
new file mode 100644
index 000000000..5382d6074
--- /dev/null
+++ b/build/riscv.mk
@@ -0,0 +1,18 @@
+riscv-cpio:
+ $(call print_target)
+ ${Q}mkdir -p ${RAMDISK_PATH}/${RAMDISK_OUTPUT_FOLDER}
+ ${Q}mkdir -p ${KERNEL_PATH}/${KERNEL_OUTPUT_FOLDER}
+ ${Q}cd $(RAMDISK_PATH)/initramfs/$(INITRAMFS_BASE) ;\
+ ${Q}find . | cpio --quiet -o -H newc > ${RAMDISK_PATH}/${RAMDISK_OUTPUT_FOLDER}/boot.cpio
+ ${Q}cp ${RAMDISK_PATH}/${RAMDISK_OUTPUT_FOLDER}/boot.cpio ${KERNEL_PATH}/${KERNEL_OUTPUT_FOLDER}/
+
+opensbi-kernel: export CROSS_COMPILE=$(patsubst "%",%,$(CONFIG_CROSS_COMPILE_KERNEL))
+opensbi-kernel: export ARCH=$(patsubst "%",%,$(CONFIG_ARCH))
+opensbi-kernel:
+ $(call print_target)
+ ${Q}$(MAKE) -C ${OPENSBI_PATH} PLATFORM=generic \
+ FW_PAYLOAD_PATH=${KERNEL_PATH}/${KERNEL_OUTPUT_FOLDER}/arch/${ARCH}/boot/Image \
+ FW_FDT_PATH=${RAMDISK_PATH}/${RAMDISK_OUTPUT_FOLDER}/${CHIP}_${BOARD}.dtb
+ ${Q}mkdir -p ${OUTPUT_DIR}/elf
+ ${Q}cp ${OPENSBI_PATH}/build/platform/generic/firmware/fw_payload.bin ${OUTPUT_DIR}/fw_payload_linux.bin
+ ${Q}cp ${OPENSBI_PATH}/build/platform/generic/firmware/fw_payload.elf ${OUTPUT_DIR}/elf/fw_payload_linux.elf
diff --git a/build/riscv_functions.sh b/build/riscv_functions.sh
new file mode 100644
index 000000000..311e00525
--- /dev/null
+++ b/build/riscv_functions.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# For cv181x_c906
+#
+function _build_opensbi_env()
+{
+ export OPENSBI_PATH
+}
+
+function clean_opensbi()
+{(
+ if [[ "$CHIP_ARCH" == CV181X ]] || [[ "$CHIP_ARCH" == CV180X ]]; then
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_opensbi_env
+
+ cd "$BUILD_PATH" || return "$?"
+ make opensbi-clean
+ fi
+)}
+
+function build_opensbi_kernel()
+{(
+ print_notice "Run ${FUNCNAME[0]}() function"
+ _build_kernel_env
+ _build_opensbi_env
+
+ cd "$BUILD_PATH" || return "$?"
+ make riscv-cpio || return "$?"
+ make kernel-setconfig SCRIPT_ARG="INITRAMFS_SOURCE="boot.cpio"" || return "$?"
+ make kernel || return "$?"
+ make kernel-dts || return "$?"
+ make kernel-setconfig SCRIPT_ARG="INITRAMFS_SOURCE=""" || return "$?"
+ make opensbi-kernel || return "$?"
+)}
diff --git a/build/scripts/atf.mk b/build/scripts/atf.mk
deleted file mode 100644
index d25276963..000000000
--- a/build/scripts/atf.mk
+++ /dev/null
@@ -1,148 +0,0 @@
-
-################################################################################
-# BLD targets
-################################################################################
-BM_BLD_OUTPUT := ${BM_BLD_PATH}/out
-
-bld-build:
- ${Q}mkdir -p $(RELEASE_BIN_BLD_DIR)
- ${Q}mkdir -p $(RELEASE_BIN_BLDP_DIR)
- ${Q}mkdir -p $(RELEASE_BIN_BLP_DIR)
-
-bld: export ARCH=$(patsubst "%",%,$(CONFIG_ARCH))
-bld: bld-build
- $(call print_target)
- ${Q}$(MAKE) -C ${BM_BLD_PATH} bld
- ${Q}cp ${BM_BLD_OUTPUT}/bldp.bin ${RELEASE_BIN_BLDP_DIR}/bldp_${CHIP_ARCH_L}_${CHIP}_${DDR_CFG}.bin
- ${Q}cp ${BM_BLD_OUTPUT}/blp.bin ${RELEASE_BIN_BLP_DIR}/blp_${CHIP_ARCH_L}_${CHIP}.bin
- ${Q}git -C ${BM_BLD_PATH} log --pretty=oneline -n 1 > ${RELEASE_BIN_BLDP_DIR}/bldp_${CHIP_ARCH_L}_${CHIP}_${DDR_CFG}.txt
- ${Q}git -C ${BM_BLD_PATH} log --pretty=oneline -n 1 > ${RELEASE_BIN_BLP_DIR}/blp_${CHIP_ARCH_L}_${CHIP}.txt
-
-bld-clean:
- $(call print_target)
- ${Q}$(MAKE) -C ${BM_BLD_PATH} clean
-
-################################################################################
-# arm-trusted-firmware targets
-################################################################################
-ATF_FIP_PATH := ${ATF_PATH}/build/${CHIP}_${SUBTYPE}/release/fip.bin
-
-# clear is not encrypted
-# key0 is encrypted by keys in ATF git repo
-export ATF_KEY_SEL := $(subst default,,${ATF_KEY_SEL})
-
-ifeq ($(CHIP_ARCH_L),$(filter $(CHIP_ARCH_L),cv183x cv75x1 cv952x))
-define atf_post_action
- ${Q}mv ${ATF_FIP_PATH} ${ATF_FIP_PATH}.ori
- # append blp.bin and bldp.bin to fip.bin
- ${Q}dd if=${ATF_FIP_PATH}.ori of=${ATF_FIP_PATH} bs=2K conv=sync
- ${Q}dd if=${BLP_PATH} bs=2K conv=sync >> ${ATF_FIP_PATH}
- ${Q}dd if=${DDRC_PATH} bs=2K conv=sync >> ${ATF_FIP_PATH}
-endef
- ATF_KEY_SEL := $(or ${ATF_KEY_SEL},key0)
-else
- ATF_KEY_SEL := $(or ${ATF_KEY_SEL},clear)
-endif
-
-export IMG_ENC_KPATH :=
-export IMG_ENC_KSRC := dev
-
-ifeq (${ATF_KEY_SEL},clear)
- export ATF_TBBR := 0
- export IMG_ENC := 0
- export ATF_CRC := 1
-else
- export ATF_TBBR := 1
- export IMG_ENC := 1
- export ATF_CRC := 0
-endif
-
-# ARM ATF TBBR configuration
-TBBR_MAKE_OPT :=
-TBBR_MAKE_TGT :=
-ifeq (${ATF_TBBR},1)
- TBBR_MAKE_OPT := TRUSTED_BOARD_BOOT=1
- #TGT is short for TarGeT
- TBBR_MAKE_TGT := certificates
-endif
-
-# ARM ATF bl32
-SPD_MAKE_OPT :=
-ifeq (${ATF_BL32},1)
- SPD_MAKE_OPT := SPD=opteed
-endif
-
-FAKE_BL31_32_TGT :=
-ifeq (${FAKE_BL31_32},1)
- FAKE_BL31_32_TGT := fake_bl31_32
-endif
-
-ifeq ($(wildcard ${BM_BLD_PATH}/*),)
-arm-trusted-firmware-build: export BLP_PATH=${ATF_PATH}/tools/blp.bin
-arm-trusted-firmware-build: export DDRC_PATH=${ATF_PATH}/tools/bldp.bin
-arm-trusted-firmware: export SCP_BL2=${ATF_PATH}/tools/bld.bin
-else
-ifeq (${CONFIG_FIP_V1},y)
-arm-trusted-firmware-build: bld
-arm-trusted-firmware-build: export BLP_PATH=${BM_BLD_OUTPUT}/blp.bin
-arm-trusted-firmware-build: export DDRC_PATH=${BM_BLD_OUTPUT}/bldp.bin
-arm-trusted-firmware: export RTC_CORE_SRAM_BIN_PATH=${BM_BLD_OUTPUT}/blds.bin
-else
-arm-trusted-firmware-build: export BLP_PATH=${ATF_PATH}/tools/blp.bin
-arm-trusted-firmware-build: export DDRC_PATH=${ATF_PATH}/tools/bldp.bin
-arm-trusted-firmware-build: export SCP_BL2=${ATF_PATH}/tools/bld.bin
-arm-trusted-firmware-build: export RTC_CORE_SRAM_BIN_PATH=${ATF_PATH}/tools/bld.bin
-endif
-
-ifeq (${CONFIG_MULTI_FIP},y)
-ATF_DEFAULT_SUFFIX := ${ATF_DEFAULT_SUFFIX}_single
-arm-trusted-firmware: export MULTI_FIP=1
-arm-trusted-firmware: export SCP_BL2=${ATF_PATH}/tools/fastboot/fake_bld_enc.bin
-arm-trusted-firmware: export DDR_INIT=${BM_BLD_OUTPUT}/bld.bin
-else
-arm-trusted-firmware: export SCP_BL2=${BM_BLD_OUTPUT}/bld.bin
-endif
-
-endif
-
-arm-trusted-firmware-build: export CROSS_COMPILE=${CROSS_COMPILE_64}
-arm-trusted-firmware-build: export BL33=${ATF_PATH}/build/fake_bl33.bin
-arm-trusted-firmware-build:
- $(call print_target)
- ${Q}mkdir -p $(dir ${BL33})
- ${Q}mkdir -p ${RELEASE_BIN_ATF_DIR}
- ${Q}printf 'BL33............' > ${BL33}
- ${Q}echo "SCP_BL2=${SCP_BL2}"
- ${Q}$(MAKE) -j${NPROC} -C ${ATF_PATH} \
- CRC=${ATF_CRC} IMG_BLD=1 DEBUG=0 ENABLE_ASSERTIONS=1 \
- ${SPD_MAKE_OPT} ${TBBR_MAKE_TGT} ${TBBR_MAKE_OPT} ${FAKE_BL31_32_TGT} all fip
- $(call atf_post_action)
-
-ifeq (${ATF_TBBR},0)
- ATF_DEFAULT_SUFFIX := clear
-else
- ATF_DEFAULT_SUFFIX := key0
-endif
-
-ifeq (${CONFIG_FIP_V1},y)
-arm-trusted-firmware-pack: arm-trusted-firmware-build
- $(call print_target)
- ${Q}cp ${ATF_FIP_PATH} ${RELEASE_BIN_ATF_DIR}/fip_atf_${CHIP_ARCH_L}_${ATF_DEFAULT_SUFFIX}.bin
-ifneq ($(wildcard ${BM_BLD_PATH}/*),)
- ${Q}python3 ${TOOLS_PATH}/${CHIP_ARCH_L}/pack_fip/pack_fip.py $(if ${CONFIG_MULTI_FIP},--multibin) \
- --tar-bld ${ATF_FIP_PATH} \
- --output ${RELEASE_BIN_BLD_DIR}/bld_${CHIP_ARCH_L}_${CHIP}_${BOARD}_${ATF_DEFAULT_SUFFIX}.tar
- ${Q}git -C ${BM_BLD_PATH} log --pretty=oneline -n 1 > ${RELEASE_BIN_BLD_DIR}/bld_${CHIP_ARCH_L}_${CHIP}_${BOARD}_${ATF_DEFAULT_SUFFIX}.txt
-endif
- ${Q}git -C ${ATF_PATH} log --pretty=oneline -n 1 > ${RELEASE_BIN_ATF_DIR}/fip_atf_${CHIP_ARCH_L}_${ATF_DEFAULT_SUFFIX}.txt
-
-arm-trusted-firmware: arm-trusted-firmware-pack
-endif
-
-arm-trusted-firmware: arm-trusted-firmware-build
-
-arm-trusted-firmware-clean: bld-clean
- $(call print_target)
- ${Q}$(MAKE) -C ${ATF_PATH} clean
- ${Q}$(MAKE) -C ${ATF_PATH}/tools/fiptool clean
-
diff --git a/build/scripts/rtos.mk b/build/scripts/rtos.mk
index 65381260f..4f826445d 100644
--- a/build/scripts/rtos.mk
+++ b/build/scripts/rtos.mk
@@ -9,5 +9,5 @@ endif
rtos-clean:
ifeq (${CONFIG_ENABLE_FREERTOS},y)
$(call print_target)
- cd ${FREERTOS_PATH}/cvitek && rm -rf build
+ cd ${FREERTOS_PATH}/cvitek && rm -rf build install
endif
diff --git a/build/sensors/sensor_list.json b/build/sensors/sensor_list.json
index 3dbf4d783..670ea4db1 100644
--- a/build/sensors/sensor_list.json
+++ b/build/sensors/sensor_list.json
@@ -2,6 +2,9 @@
"sensor_list": [
"BRIGATES_BG0808",
"BYD_BF2253L",
+ "CVSENS_CV2003",
+ "CVSENS_CV2003_1L_SLAVE",
+ "CVSENS_CV2003_1L_SLAVE1",
"CVSENS_CV4001",
"GCORE_GC02M1",
"GCORE_GC0312",
@@ -9,6 +12,8 @@
"GCORE_GC1054",
"GCORE_GC1084",
"GCORE_GC1084_SLAVE",
+ "GCORE_GC1084_SLAVE1",
+ "GCORE_GC1084_SLAVE2",
"GCORE_GC2053",
"GCORE_GC2053_1L",
"GCORE_GC2053_SLAVE",
@@ -43,10 +48,13 @@
"SMS_SC035GS_1L",
"SMS_SC035HGS",
"SMS_SC035HGS_1L",
+ "SMS_SC132GS",
+ "SMS_SC132GS_SLAVE",
"SMS_SC1336_1L",
"SMS_SC1346_1L",
"SMS_SC1346_1L_SLAVE",
"SMS_SC200AI",
+ "SMS_SC200AI_1L",
"SMS_SC301IOT",
"SMS_SC401AI",
"SMS_SC500AI",
@@ -82,6 +90,9 @@
"SOI_K06",
"SOI_Q03",
"SOI_Q03P",
+ "SOI_F53",
+ "SOI_F352",
+ "SOI_K306",
"SONY_IMX290_2L",
"SONY_IMX307",
"SONY_IMX307_2L",
diff --git a/build/tools/common/crypt_tool/keys/.gitkeep b/build/tools/common/crypt_tool/keys/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/build/tools/common/prebuild/mkimage b/build/tools/common/prebuild/mkimage
index 6a720c3fb..32d9ea827 100755
Binary files a/build/tools/common/prebuild/mkimage and b/build/tools/common/prebuild/mkimage differ
diff --git a/build/tools/cv181x/cmm/asic/arm_ca53/cv181x_core_reset.cmm b/build/tools/cv181x/cmm/asic/arm_ca53/cv181x_core_reset.cmm
index 4daf8e082..b36e82fc0 100644
--- a/build/tools/cv181x/cmm/asic/arm_ca53/cv181x_core_reset.cmm
+++ b/build/tools/cv181x/cmm/asic/arm_ca53/cv181x_core_reset.cmm
@@ -1,34 +1,34 @@
-rsystem.attach
-VectorCatch.RESET ON
-go
-break
-WAIT !ISRUN() ;wait until target stop
-
-IF ISCONNECT()
- PRINT "Connect to target"
- break
-ELSE
- dialog.ok "Not connect"
-
-; Clear ATF multicore mailbox region
-; entry, core[0, 1] state
-; Data.Set PM:0xe00f000 %quad 0
-; Data.Set PM:0xe00f008 %quad 0
-; Data.Set PM:0xe00f010 %quad 0
-; Data.Set PM:0xe00f018 %quad 0
-; Data.Set PM:0xe00f020 %quad 0
-
-; Reset core0
-Data.Set EAXI:0x3000008 %long 0x00000004
-Data.Set EAPB:0x81010fb0 %long 0xc5acce55
-Data.Set EAPB:0x81010300 %long 0x00000000
-Data.Set EAPB:0x81010024 %long 0x00000002
-Data.Set EAPB:0x81010310 %long 0x00000002
-
-; Reset core1
-; Data.Set EAPB:0x81110fb0 %long 0xc5acce55
-; Data.Set EAPB:0x81110300 %long 0x00000000
-; Data.Set EAPB:0x81110024 %long 0x00000002
-; Data.Set EAPB:0x81110310 %long 0x00000002
-
-PRINT "cv181x core reset complete"
+rsystem.attach
+VectorCatch.RESET ON
+go
+break
+WAIT !ISRUN() ;wait until target stop
+
+IF ISCONNECT()
+ PRINT "Connect to target"
+ break
+ELSE
+ dialog.ok "Not connect"
+
+; Clear ATF multicore mailbox region
+; entry, core[0, 1] state
+; Data.Set PM:0xe00f000 %quad 0
+; Data.Set PM:0xe00f008 %quad 0
+; Data.Set PM:0xe00f010 %quad 0
+; Data.Set PM:0xe00f018 %quad 0
+; Data.Set PM:0xe00f020 %quad 0
+
+; Reset core0
+Data.Set EAXI:0x3000008 %long 0x00000004
+Data.Set EAPB:0x81010fb0 %long 0xc5acce55
+Data.Set EAPB:0x81010300 %long 0x00000000
+Data.Set EAPB:0x81010024 %long 0x00000002
+Data.Set EAPB:0x81010310 %long 0x00000002
+
+; Reset core1
+; Data.Set EAPB:0x81110fb0 %long 0xc5acce55
+; Data.Set EAPB:0x81110300 %long 0x00000000
+; Data.Set EAPB:0x81110024 %long 0x00000002
+; Data.Set EAPB:0x81110310 %long 0x00000002
+
+PRINT "cv181x core reset complete"
diff --git a/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_clear.cmm b/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_clear.cmm
index 819c542d4..c123a8f56 100644
--- a/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_clear.cmm
+++ b/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_clear.cmm
@@ -1,16 +1,16 @@
-sys.up
-
-; Reset
-break;
-WAIT !ISRUN() ;wait until target stop
-
-; MWriteS32 PM:0x0C000000++0x3ffff 0x14000000
-MWriteS32 PM:0x4400000++0xf 0x14000000
-MWriteS32 0x4400000++0xf 0x14000000
-Register.Set pc 0x04400000
-
-; MWriteS32 PM:0x03000008 0x4 // wdt reset enable
-; MWriteS32 PM:0x03010004 0x1 // Set timeout range reigster
-; MWriteS32 PM:0x0301000c 0x76 // Counter restart register
-; MWriteS32 PM:0x03010000 0x13
-print "CLEAR"
+sys.up
+
+; Reset
+break;
+WAIT !ISRUN() ;wait until target stop
+
+; MWriteS32 PM:0x0C000000++0x3ffff 0x14000000
+MWriteS32 PM:0x4400000++0xf 0x14000000
+MWriteS32 0x4400000++0xf 0x14000000
+Register.Set pc 0x04400000
+
+; MWriteS32 PM:0x03000008 0x4 // wdt reset enable
+; MWriteS32 PM:0x03010004 0x1 // Set timeout range reigster
+; MWriteS32 PM:0x0301000c 0x76 // Counter restart register
+; MWriteS32 PM:0x03010000 0x13
+print "CLEAR"
diff --git a/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_core_reset.cmm b/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_core_reset.cmm
index 4daf8e082..b36e82fc0 100644
--- a/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_core_reset.cmm
+++ b/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_core_reset.cmm
@@ -1,34 +1,34 @@
-rsystem.attach
-VectorCatch.RESET ON
-go
-break
-WAIT !ISRUN() ;wait until target stop
-
-IF ISCONNECT()
- PRINT "Connect to target"
- break
-ELSE
- dialog.ok "Not connect"
-
-; Clear ATF multicore mailbox region
-; entry, core[0, 1] state
-; Data.Set PM:0xe00f000 %quad 0
-; Data.Set PM:0xe00f008 %quad 0
-; Data.Set PM:0xe00f010 %quad 0
-; Data.Set PM:0xe00f018 %quad 0
-; Data.Set PM:0xe00f020 %quad 0
-
-; Reset core0
-Data.Set EAXI:0x3000008 %long 0x00000004
-Data.Set EAPB:0x81010fb0 %long 0xc5acce55
-Data.Set EAPB:0x81010300 %long 0x00000000
-Data.Set EAPB:0x81010024 %long 0x00000002
-Data.Set EAPB:0x81010310 %long 0x00000002
-
-; Reset core1
-; Data.Set EAPB:0x81110fb0 %long 0xc5acce55
-; Data.Set EAPB:0x81110300 %long 0x00000000
-; Data.Set EAPB:0x81110024 %long 0x00000002
-; Data.Set EAPB:0x81110310 %long 0x00000002
-
-PRINT "cv181x core reset complete"
+rsystem.attach
+VectorCatch.RESET ON
+go
+break
+WAIT !ISRUN() ;wait until target stop
+
+IF ISCONNECT()
+ PRINT "Connect to target"
+ break
+ELSE
+ dialog.ok "Not connect"
+
+; Clear ATF multicore mailbox region
+; entry, core[0, 1] state
+; Data.Set PM:0xe00f000 %quad 0
+; Data.Set PM:0xe00f008 %quad 0
+; Data.Set PM:0xe00f010 %quad 0
+; Data.Set PM:0xe00f018 %quad 0
+; Data.Set PM:0xe00f020 %quad 0
+
+; Reset core0
+Data.Set EAXI:0x3000008 %long 0x00000004
+Data.Set EAPB:0x81010fb0 %long 0xc5acce55
+Data.Set EAPB:0x81010300 %long 0x00000000
+Data.Set EAPB:0x81010024 %long 0x00000002
+Data.Set EAPB:0x81010310 %long 0x00000002
+
+; Reset core1
+; Data.Set EAPB:0x81110fb0 %long 0xc5acce55
+; Data.Set EAPB:0x81110300 %long 0x00000000
+; Data.Set EAPB:0x81110024 %long 0x00000002
+; Data.Set EAPB:0x81110310 %long 0x00000002
+
+PRINT "cv181x core reset complete"
diff --git a/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_fpga_prog_efuse.cmm b/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_fpga_prog_efuse.cmm
index 8d932b953..936abfdc6 100644
--- a/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_fpga_prog_efuse.cmm
+++ b/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_fpga_prog_efuse.cmm
@@ -1,22 +1,22 @@
-print "Program cv181x fpga efuse"
-
-Data.Set PM:0x03050000 %long 0x10
-
-; [Write scs_config]
-; Data.Set PM:0x03050340 %long 0x00000044
-
-; [Write FTSN1~4]
-; uart2_rts
-; Data.Set PM:0x03050208 %long 0x008F3164
-
-; uart2_cts
-; Data.Set PM:0x03050208 %long 0x00913364
-
-; fastboot, check id pin
-Data.Set PM:0x03050208 %long 0x00913361
-Data.Set PM:0x03050210 %long 0x55667788
-Data.Set PM:0x03050218 %long 0x44332211
-Data.Set PM:0x03050220 %long 0x88776655
-
-Data.Set PM:0x03050000 %long 0x30
-print "Program cv181x fpga efuse done"
+print "Program cv181x fpga efuse"
+
+Data.Set PM:0x03050000 %long 0x10
+
+; [Write scs_config]
+; Data.Set PM:0x03050340 %long 0x00000044
+
+; [Write FTSN1~4]
+; uart2_rts
+; Data.Set PM:0x03050208 %long 0x008F3164
+
+; uart2_cts
+; Data.Set PM:0x03050208 %long 0x00913364
+
+; fastboot, check id pin
+Data.Set PM:0x03050208 %long 0x00913361
+Data.Set PM:0x03050210 %long 0x55667788
+Data.Set PM:0x03050218 %long 0x44332211
+Data.Set PM:0x03050220 %long 0x88776655
+
+Data.Set PM:0x03050000 %long 0x30
+print "Program cv181x fpga efuse done"
diff --git a/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_fpga_prog_usb_efuse.cmm b/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_fpga_prog_usb_efuse.cmm
index e2622c432..b46e02a6c 100644
--- a/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_fpga_prog_usb_efuse.cmm
+++ b/build/tools/cv181x/cmm/fpga/arm_ca53/cv181x_fpga_prog_usb_efuse.cmm
@@ -1,11 +1,11 @@
-print "Program cv181x fpga efuse"
-
-Data.Set PM:0x03050000 %long 0x10
-
-; [Write userconf]
-Data.Set PM:0x03050258 %long 0x0E000002
-;Data.Set PM:0x03050260 %long 0x00123490
-;Data.Set PM:0x03050260 %long 0x000000A0
-
-Data.Set PM:0x03050000 %long 0x30
-print "Program cv181x fpga efuse done"
+print "Program cv181x fpga efuse"
+
+Data.Set PM:0x03050000 %long 0x10
+
+; [Write userconf]
+Data.Set PM:0x03050258 %long 0x0E000002
+;Data.Set PM:0x03050260 %long 0x00123490
+;Data.Set PM:0x03050260 %long 0x000000A0
+
+Data.Set PM:0x03050000 %long 0x30
+print "Program cv181x fpga efuse done"
diff --git a/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_clear.cmm b/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_clear.cmm
index 819c542d4..c123a8f56 100644
--- a/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_clear.cmm
+++ b/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_clear.cmm
@@ -1,16 +1,16 @@
-sys.up
-
-; Reset
-break;
-WAIT !ISRUN() ;wait until target stop
-
-; MWriteS32 PM:0x0C000000++0x3ffff 0x14000000
-MWriteS32 PM:0x4400000++0xf 0x14000000
-MWriteS32 0x4400000++0xf 0x14000000
-Register.Set pc 0x04400000
-
-; MWriteS32 PM:0x03000008 0x4 // wdt reset enable
-; MWriteS32 PM:0x03010004 0x1 // Set timeout range reigster
-; MWriteS32 PM:0x0301000c 0x76 // Counter restart register
-; MWriteS32 PM:0x03010000 0x13
-print "CLEAR"
+sys.up
+
+; Reset
+break;
+WAIT !ISRUN() ;wait until target stop
+
+; MWriteS32 PM:0x0C000000++0x3ffff 0x14000000
+MWriteS32 PM:0x4400000++0xf 0x14000000
+MWriteS32 0x4400000++0xf 0x14000000
+Register.Set pc 0x04400000
+
+; MWriteS32 PM:0x03000008 0x4 // wdt reset enable
+; MWriteS32 PM:0x03010004 0x1 // Set timeout range reigster
+; MWriteS32 PM:0x0301000c 0x76 // Counter restart register
+; MWriteS32 PM:0x03010000 0x13
+print "CLEAR"
diff --git a/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_core_reset.cmm b/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_core_reset.cmm
index 4daf8e082..b36e82fc0 100644
--- a/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_core_reset.cmm
+++ b/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_core_reset.cmm
@@ -1,34 +1,34 @@
-rsystem.attach
-VectorCatch.RESET ON
-go
-break
-WAIT !ISRUN() ;wait until target stop
-
-IF ISCONNECT()
- PRINT "Connect to target"
- break
-ELSE
- dialog.ok "Not connect"
-
-; Clear ATF multicore mailbox region
-; entry, core[0, 1] state
-; Data.Set PM:0xe00f000 %quad 0
-; Data.Set PM:0xe00f008 %quad 0
-; Data.Set PM:0xe00f010 %quad 0
-; Data.Set PM:0xe00f018 %quad 0
-; Data.Set PM:0xe00f020 %quad 0
-
-; Reset core0
-Data.Set EAXI:0x3000008 %long 0x00000004
-Data.Set EAPB:0x81010fb0 %long 0xc5acce55
-Data.Set EAPB:0x81010300 %long 0x00000000
-Data.Set EAPB:0x81010024 %long 0x00000002
-Data.Set EAPB:0x81010310 %long 0x00000002
-
-; Reset core1
-; Data.Set EAPB:0x81110fb0 %long 0xc5acce55
-; Data.Set EAPB:0x81110300 %long 0x00000000
-; Data.Set EAPB:0x81110024 %long 0x00000002
-; Data.Set EAPB:0x81110310 %long 0x00000002
-
-PRINT "cv181x core reset complete"
+rsystem.attach
+VectorCatch.RESET ON
+go
+break
+WAIT !ISRUN() ;wait until target stop
+
+IF ISCONNECT()
+ PRINT "Connect to target"
+ break
+ELSE
+ dialog.ok "Not connect"
+
+; Clear ATF multicore mailbox region
+; entry, core[0, 1] state
+; Data.Set PM:0xe00f000 %quad 0
+; Data.Set PM:0xe00f008 %quad 0
+; Data.Set PM:0xe00f010 %quad 0
+; Data.Set PM:0xe00f018 %quad 0
+; Data.Set PM:0xe00f020 %quad 0
+
+; Reset core0
+Data.Set EAXI:0x3000008 %long 0x00000004
+Data.Set EAPB:0x81010fb0 %long 0xc5acce55
+Data.Set EAPB:0x81010300 %long 0x00000000
+Data.Set EAPB:0x81010024 %long 0x00000002
+Data.Set EAPB:0x81010310 %long 0x00000002
+
+; Reset core1
+; Data.Set EAPB:0x81110fb0 %long 0xc5acce55
+; Data.Set EAPB:0x81110300 %long 0x00000000
+; Data.Set EAPB:0x81110024 %long 0x00000002
+; Data.Set EAPB:0x81110310 %long 0x00000002
+
+PRINT "cv181x core reset complete"
diff --git a/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_palladium_prog_efuse.cmm b/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_palladium_prog_efuse.cmm
index e90c69e41..e88a4c1f9 100644
--- a/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_palladium_prog_efuse.cmm
+++ b/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_palladium_prog_efuse.cmm
@@ -1,22 +1,22 @@
-print "Program cv181x palladium efuse"
-
-Data.Set PM:0x03050000 %long 0x10
-
-; [Write scs_config]
-; Data.Set PM:0x03050340 %long 0x00000044
-
-; [Write FTSN1~4]
-; uart2_rts
-; Data.Set PM:0x03050208 %long 0x008F3164
-
-; uart2_cts
-; Data.Set PM:0x03050208 %long 0x00913364
-
-; fastboot, check id pin
-Data.Set PM:0x03050208 %long 0x00913361
-Data.Set PM:0x03050210 %long 0x55667788
-Data.Set PM:0x03050218 %long 0x44332211
-Data.Set PM:0x03050220 %long 0x88776655
-
-Data.Set PM:0x03050000 %long 0x30
-print "Program cv181x palladium efuse done"
+print "Program cv181x palladium efuse"
+
+Data.Set PM:0x03050000 %long 0x10
+
+; [Write scs_config]
+; Data.Set PM:0x03050340 %long 0x00000044
+
+; [Write FTSN1~4]
+; uart2_rts
+; Data.Set PM:0x03050208 %long 0x008F3164
+
+; uart2_cts
+; Data.Set PM:0x03050208 %long 0x00913364
+
+; fastboot, check id pin
+Data.Set PM:0x03050208 %long 0x00913361
+Data.Set PM:0x03050210 %long 0x55667788
+Data.Set PM:0x03050218 %long 0x44332211
+Data.Set PM:0x03050220 %long 0x88776655
+
+Data.Set PM:0x03050000 %long 0x30
+print "Program cv181x palladium efuse done"
diff --git a/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_palladium_prog_usb_efuse.cmm b/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_palladium_prog_usb_efuse.cmm
index 05cc3995c..71fbec5e0 100644
--- a/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_palladium_prog_usb_efuse.cmm
+++ b/build/tools/cv181x/cmm/palladium/arm_ca53/cv181x_palladium_prog_usb_efuse.cmm
@@ -1,11 +1,11 @@
-print "Program cv181x palladium efuse"
-
-Data.Set PM:0x03050000 %long 0x10
-
-; [Write userconf]
-Data.Set PM:0x03050258 %long 0x0E000002
-;Data.Set PM:0x03050260 %long 0x00123490
-;Data.Set PM:0x03050260 %long 0x000000A0
-
-Data.Set PM:0x03050000 %long 0x30
-print "Program cv181x palladium efuse done"
+print "Program cv181x palladium efuse"
+
+Data.Set PM:0x03050000 %long 0x10
+
+; [Write userconf]
+Data.Set PM:0x03050258 %long 0x0E000002
+;Data.Set PM:0x03050260 %long 0x00123490
+;Data.Set PM:0x03050260 %long 0x000000A0
+
+Data.Set PM:0x03050000 %long 0x30
+print "Program cv181x palladium efuse done"