diff --git a/build/Kconfig b/build/Kconfig
index 8609d6431..448c59cd9 100644
--- a/build/Kconfig
+++ b/build/Kconfig
@@ -228,6 +228,12 @@ config ENABLE_SDK_ASAN
If unsure, say N.
+config DISABLE_PQBIN_JSON
+ bool "Disable PQbin json"
+ default n
+ help
+ Make pqbin not include json param
+
config FLASH_SIZE_SHRINK
bool "Do not install sample and self test application"
default n
@@ -402,6 +408,13 @@ config UBOOT_SRC
string
default "u-boot" if UBOOT_2017_07
default "u-boot-2021.10" if UBOOT_2021_10
+
+config UBOOT_SPL_CUSTOM
+ bool "Generate the fip_spl.bin contain u-boot-spl"
+ default n
+ depends on UBOOT_2021_10
+ help
+ Set fip_spl.bin contain u-boot-spl or u-boot.
endmenu
menu "Kernel options"
diff --git a/build/Makefile b/build/Makefile
index 896ef8a0e..88d0dd95f 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -100,6 +100,10 @@ else
UBOOT_CONFIG_NAME := ${BRAND}_${PROJECT_FULLNAME}_rls_defconfig
endif
+ifeq ($(CONFIG_UBOOT_SPL_CUSTOM),y)
+UBOOT-SPL_CONFIG_NAME := ${BRAND}_${PROJECT_FULLNAME}_spl_defconfig
+endif
+
ifeq (${RELEASE_VERSION},1)
uboot_release_action := ${Q}sed -i "s/CONFIG_BOOTDELAY=1/CONFIG_BOOTDELAY=-2/g" ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/.config
endif
@@ -139,14 +143,20 @@ ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}:
UBOOT_OUTPUT_CONFIG_PATH := ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/.config
UBOOT_DEFAULT_CONFIG_PATH := ${BUILD_PATH}/boards/${CHIP_ARCH_L}/${PROJECT_FULLNAME}/u-boot/${UBOOT_CONFIG_NAME}
+ifeq ($(CONFIG_UBOOT_SPL_CUSTOM),y)
+UBOOT-SPL_DEFAULT_CONFIG_PATH := ${BUILD_PATH}/boards/${CHIP_ARCH_L}/${PROJECT_FULLNAME}/u-boot/${UBOOT-SPL_CONFIG_NAME}
+endif
# Make a copy to .config~
-${UBOOT_OUTPUT_CONFIG_PATH}: ${UBOOT_DEFAULT_CONFIG_PATH} ${BUILD_PATH}/.config
+${UBOOT_OUTPUT_CONFIG_PATH}: ${UBOOT_DEFAULT_CONFIG_PATH} ${UBOOT-SPL_DEFAULT_CONFIG_PATH} ${BUILD_PATH}/.config
$(call print_target)
${Q}echo "u-boot's defconfig is updated. Use it."
${Q}mkdir -p $(dir ${UBOOT_OUTPUT_CONFIG_PATH})
${Q}cmp -s ${UBOOT_DEFAULT_CONFIG_PATH} ${UBOOT_OUTPUT_CONFIG_PATH} || \
${Q}cp -vb ${UBOOT_DEFAULT_CONFIG_PATH} ${UBOOT_OUTPUT_CONFIG_PATH}
+ifeq ($(CONFIG_UBOOT_SPL_CUSTOM),y)
+ ${Q}-cat ${UBOOT-SPL_DEFAULT_CONFIG_PATH} >> ${UBOOT_OUTPUT_CONFIG_PATH}
+endif
$(call uboot_release_action)
$(call uboot_bootlogo_action)
ifeq ($(STORAGE_TYPE), spinor)
@@ -199,6 +209,9 @@ u-boot-build: ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER} ${UBOOT_CVIPART_DEP} ${UBOOT_
${Q}$(MAKE) -j${NPROC} -C ${UBOOT_PATH} olddefconfig
${Q}$(MAKE) -j${NPROC} -C ${UBOOT_PATH} all
${Q}cat ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/u-boot.bin > ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/u-boot-raw.bin
+ifeq (${CONFIG_UBOOT_SPL_CUSTOM},y)
+ ${Q}cat ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/spl/u-boot-spl.bin > ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/spl/u-boot-spl-raw.bin
+endif
u-boot: u-boot-dep
diff --git a/build/boards/chip_list.json b/build/boards/chip_list.json
index 57c07537d..8f497ca91 100644
--- a/build/boards/chip_list.json
+++ b/build/boards/chip_list.json
@@ -16,5 +16,5 @@
"cv180x": {
"cv180x": ["cv180x", "cv1800b", "cv1800c", "cv1801b", "cv1801c", "cv180zb"]
- }
+ }
}
diff --git a/build/boards/cv180x/cv1800b_wevb_0008a_spinor/u-boot/cvitek_cv1800b_wevb_0008a_spinor_rls_defconfig b/build/boards/cv180x/cv1800b_wevb_0008a_spinor/u-boot/cvitek_cv1800b_wevb_0008a_spinor_rls_defconfig
new file mode 120000
index 000000000..b77bc93de
--- /dev/null
+++ b/build/boards/cv180x/cv1800b_wevb_0008a_spinor/u-boot/cvitek_cv1800b_wevb_0008a_spinor_rls_defconfig
@@ -0,0 +1 @@
+../../cv1800b_wdmb_0008a_spinor/u-boot/cvitek_cv1800b_wdmb_0008a_spinor_rls_defconfig
\ No newline at end of file
diff --git a/build/boards/cv181x/cv1810c_wevb_0006a_spinor/cv1810c_wevb_0006a_spinor_defconfig b/build/boards/cv181x/cv1810c_wevb_0006a_spinor/cv1810c_wevb_0006a_spinor_defconfig
index d1c414dfd..c5317e56b 100644
--- a/build/boards/cv181x/cv1810c_wevb_0006a_spinor/cv1810c_wevb_0006a_spinor_defconfig
+++ b/build/boards/cv181x/cv1810c_wevb_0006a_spinor/cv1810c_wevb_0006a_spinor_defconfig
@@ -44,3 +44,4 @@ CONFIG_TARGET_PACKAGE_NTP=y
CONFIG_ENABLE_FREERTOS=y
CONFIG_ENABLE_RTOS_DUMP_PRINT=y
CONFIG_DUMP_PRINT_SZ_IDX=17
+CONFIG_UBOOT_SPL_CUSTOM=n
diff --git a/build/boards/cv181x/cv1810c_wevb_0006a_spinor/u-boot/cvitek_cv1810c_wevb_0006a_spinor_spl_defconfig b/build/boards/cv181x/cv1810c_wevb_0006a_spinor/u-boot/cvitek_cv1810c_wevb_0006a_spinor_spl_defconfig
new file mode 120000
index 000000000..190435f89
--- /dev/null
+++ b/build/boards/cv181x/cv1810c_wevb_0006a_spinor/u-boot/cvitek_cv1810c_wevb_0006a_spinor_spl_defconfig
@@ -0,0 +1 @@
+../../../default/u-boot/cvitek_uboot_spl_riscv_spinor_defconfig
\ No newline at end of file
diff --git a/build/boards/cv181x/cv1811c_wevb_0006a_spinor/cv1811c_wevb_0006a_spinor_defconfig b/build/boards/cv181x/cv1811c_wevb_0006a_spinor/cv1811c_wevb_0006a_spinor_defconfig
index e86ebc61a..48fd1adf1 100644
--- a/build/boards/cv181x/cv1811c_wevb_0006a_spinor/cv1811c_wevb_0006a_spinor_defconfig
+++ b/build/boards/cv181x/cv1811c_wevb_0006a_spinor/cv1811c_wevb_0006a_spinor_defconfig
@@ -44,3 +44,4 @@ CONFIG_TARGET_PACKAGE_NTP=y
CONFIG_ENABLE_FREERTOS=y
CONFIG_ENABLE_RTOS_DUMP_PRINT=y
CONFIG_DUMP_PRINT_SZ_IDX=17
+CONFIG_UBOOT_SPL_CUSTOM=n
diff --git a/build/boards/cv181x/cv1811c_wevb_0006a_spinor/u-boot/cvitek_cv1811c_wevb_0006a_spinor_spl_defconfig b/build/boards/cv181x/cv1811c_wevb_0006a_spinor/u-boot/cvitek_cv1811c_wevb_0006a_spinor_spl_defconfig
new file mode 120000
index 000000000..190435f89
--- /dev/null
+++ b/build/boards/cv181x/cv1811c_wevb_0006a_spinor/u-boot/cvitek_cv1811c_wevb_0006a_spinor_spl_defconfig
@@ -0,0 +1 @@
+../../../default/u-boot/cvitek_uboot_spl_riscv_spinor_defconfig
\ No newline at end of file
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/cv1812h_wevb_0007a_spinand_huashan_defconfig b/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/cv1812h_wevb_0007a_spinand_huashan_defconfig
index 524b4026f..ada1f6eaf 100644
--- a/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/cv1812h_wevb_0007a_spinand_huashan_defconfig
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/cv1812h_wevb_0007a_spinand_huashan_defconfig
@@ -10,6 +10,8 @@ CONFIG_TOOLCHAIN_MUSL_RISCV64=y
CONFIG_FLASH_SIZE_SHRINK=y
CONFIG_BOOT_IMAGE_SINGLE_DTB=y
CONFIG_STORAGE_TYPE_spinand=y
+CONFIG_SENSOR_GCORE_GC2053=y
+CONFIG_SENSOR_GCORE_GC2093=y
CONFIG_SENSOR_GCORE_GC4653=y
CONFIG_SENSOR_SMS_SC3335=y
CONFIG_SENSOR_SMS_SC500AI=y
@@ -28,14 +30,10 @@ 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_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_GATORD 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=y
CONFIG_ENABLE_FREERTOS=y
CONFIG_ENABLE_RTOS_DUMP_PRINT=y
CONFIG_DUMP_PRINT_SZ_IDX=17
@@ -46,6 +44,6 @@ CONFIG_TP_ENABLE=y
CONFIG_TP_GT9XX=y
CONFIG_TARGET_PACKAGE_ADBD=y
CONFIG_TARGET_PACKAGE_NTP=y
-CONFIG_TARGET_PACKAGE_CRONTABS=y
CONFIG_USB_OSDRV_CVITEK_GADGET=y
CONFIG_TARGET_PACKAGE_BT=y
+CONFIG_CP_EXT_WIRELESS=y
\ No newline at end of file
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/dts_riscv/cv1812h_wevb_0007a_spinand_huashan.dts b/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/dts_riscv/cv1812h_wevb_0007a_spinand_huashan.dts
index 97f1d4bd1..855095308 100644
--- a/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/dts_riscv/cv1812h_wevb_0007a_spinand_huashan.dts
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/dts_riscv/cv1812h_wevb_0007a_spinand_huashan.dts
@@ -4,7 +4,51 @@
#include "cv181x_asic_spinand.dtsi"
#include "cv181x_default_memmap.dtsi"
-/ {
+&dac {
+ /delete-property/ mute-gpio-l;
+ /delete-property/ mute-gpio-r;
+ };
+&uart0 {
+ status = "okay";
};
+&uart1 {
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
+
+&uart3 {
+ status = "okay";
+};
+
+&wifisd {
+ status = "okay";
+};
+
+&mipi_rx {
+ snsr-reset = <&porta 2 GPIO_ACTIVE_LOW>, <&porta 6 GPIO_ACTIVE_LOW>, <&porta 2 GPIO_ACTIVE_LOW>;
+};
+
+/ {
+
+ 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";
+ interrupts = <52 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ gt9xx: gt9xx@14 {
+ compatible = "goodix,gt9xx";
+ reg = <0x14>;
+ status = "okay";
+ };
+
+ };
+};
\ No newline at end of file
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/linux/cvitek_cv1812h_wevb_0007a_spinand_huashan_defconfig b/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/linux/cvitek_cv1812h_wevb_0007a_spinand_huashan_defconfig
index de9d66c83..31f69a215 100644
--- a/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/linux/cvitek_cv1812h_wevb_0007a_spinand_huashan_defconfig
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/linux/cvitek_cv1812h_wevb_0007a_spinand_huashan_defconfig
@@ -140,10 +140,12 @@ CONFIG_THERMAL_NETLINK=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_EMULATION=y
CONFIG_WATCHDOG=y
+CONFIG_DW_WATCHDOG=y
CONFIG_MEDIA_SUPPORT=y
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_V4L2=m
+CONFIG_VIDEOBUF2_CORE=y
+CONFIG_VIDEOBUF2_MEMOPS=y
+CONFIG_VIDEOBUF2_DMA_CONTIG=y
+CONFIG_VIDEOBUF2_V4L2=y
CONFIG_VIDEOBUF2_VMALLOC=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_V4L_PLATFORM_DRIVERS=y
@@ -385,9 +387,9 @@ 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=y
CONFIG_USB_DWC2=m
-CONFIG_USB_GADGET=m
+CONFIG_USB_GADGET=y
CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
@@ -453,7 +455,7 @@ CONFIG_RCU_TRACE=n
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_FTRACE is not set
# CONFIG_RUNTIME_TESTING_MENU is not set
-CONFIG_USB_ROLE_SWITCH=m
+CONFIG_USB_ROLE_SWITCH=y
CONFIG_USB_LIBCOMPOSITE=y
CONFIG_USB_F_ACM=m
CONFIG_USB_U_SERIAL=m
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/rootfs_script/clean_rootfs.sh b/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/rootfs_script/clean_rootfs.sh
index 26692d889..dd38ada9c 100755
--- a/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/rootfs_script/clean_rootfs.sh
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/rootfs_script/clean_rootfs.sh
@@ -1,8 +1,6 @@
#!/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*
@@ -56,7 +54,6 @@ 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
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/u-boot/cvi_board_init.c b/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/u-boot/cvi_board_init.c
index ad99962a3..8de6991a0 100644
--- a/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/u-boot/cvi_board_init.c
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinand_huashan/u-boot/cvi_board_init.c
@@ -1,11 +1,85 @@
+static void set_rtc_register_for_power(void)
+{
+ printf("set_rtc_register_for_power\n");
+ 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);
+ /*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);
- PINMUX_CONFIG(IIC3_SCL, IIC3_SCL);
- PINMUX_CONFIG(IIC3_SDA, IIC3_SDA);
+ //#########WIFI
+ pinmux_config(PINMUX_SDIO1);
+ PINMUX_CONFIG(AUX0, XGPIOA_30);
- PINMUX_CONFIG(IIC2_SCL, IIC2_SCL);
+ mmio_write_32(0x03020004, mmio_read_32(0x03020004) | 0x40000000);
+ mmio_write_32(0x03020000, mmio_read_32(0x03020000) | 0x40000000);
+
+ PINMUX_CONFIG(VIVO_D3, UART2_RTS);
+ PINMUX_CONFIG(VIVO_D4, UART2_CTS);
+ PINMUX_CONFIG(VIVO_D9, UART2_RX);
+ PINMUX_CONFIG(VIVO_D10, UART2_TX);
+ //########LT9611 IIC4
+ PINMUX_CONFIG(ADC3,IIC4_SCL);
+ PINMUX_CONFIG(ADC2,IIC4_SDA);
+
+ PINMUX_CONFIG(USB_VBUS_EN, XGPIOB_5);
+ PINMUX_CONFIG(PAD_MIPIRX5N, XGPIOC_0);
+
+ //#######sensor
PINMUX_CONFIG(IIC2_SDA, IIC2_SDA);
+ PINMUX_CONFIG(IIC2_SCL, IIC2_SCL);
+
+ //Sensor PWDN PIN
+ PINMUX_CONFIG(CAM_PD0, XGPIOA_1);
+ PINMUX_CONFIG(CAM_PD1, XGPIOA_4);
+
+ mmio_write_32(0x03020004, mmio_read_32(0x03020004) | 0x2);
+ mmio_write_32(0x03020000, mmio_read_32(0x03020000) | 0x2);
+
+ mmio_write_32(0x03020004, mmio_read_32(0x03020004) | 0x10);
+ mmio_write_32(0x03020000, mmio_read_32(0x03020000) | 0x10);
+
+ //Sensor Reset PIN
+ PINMUX_CONFIG(CAM_RST0, XGPIOA_2);
+ PINMUX_CONFIG(IIC3_SDA, XGPIOA_6);
+ //Sensor Clock PIN
+ PINMUX_CONFIG(CAM_MCLK0, CAM_MCLK0);
+ PINMUX_CONFIG(CAM_MCLK1, CAM_MCLK1);
+
+ //Resolve I2C3 Conflict problem
+ PINMUX_CONFIG(IIC3_SCL, XGPIOA_5);
+
+ //#######tp
+ PINMUX_CONFIG(VIVO_D1, IIC3_SDA);
+ PINMUX_CONFIG(VIVO_D0, IIC3_SCL);
+
+ PINMUX_CONFIG(JTAG_CPU_TMS, XGPIOA_19);
+ PINMUX_CONFIG(JTAG_CPU_TCK, XGPIOA_18);
+
+ //########panel
+ PINMUX_CONFIG(JTAG_CPU_TRST, XGPIOA_20);
+ pinmux_config(PINMUX_DSI);
+ PINMUX_CONFIG(PWR_GPIO0, PWR_GPIO_0);
+
+ //######## usb
+ PINMUX_CONFIG(USB_VBUS_DET, XGPIOB_6);
+ set_rtc_register_for_power();
+
return 0;
}
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/config.json b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/config.json
new file mode 100644
index 000000000..e8198f585
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/config.json
@@ -0,0 +1,9 @@
+{
+ "ddr_cfg_list": [
+ "",
+ "ddr3_1866_x16",
+ "ddr3_2133_x16",
+ "ddr_auto_x16"
+ ],
+ "board_information": "C906B + SPINOR 16MB + BGA SIP 256MB"
+}
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/cv1812h_wevb_0007a_spinor_huashan_defconfig b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/cv1812h_wevb_0007a_spinor_huashan_defconfig
new file mode 100644
index 000000000..93189bbd1
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/cv1812h_wevb_0007a_spinor_huashan_defconfig
@@ -0,0 +1,297 @@
+CONFIG_CUSTOMER="generic"
+# CONFIG_CHIP_none is not set
+# CONFIG_CHIP_cv1829 is not set
+# CONFIG_CHIP_cv1832 is not set
+# CONFIG_CHIP_cv1835 is not set
+# CONFIG_CHIP_cv1838 is not set
+# CONFIG_CHIP_cv7581 is not set
+# CONFIG_CHIP_cv9520 is not set
+# CONFIG_CHIP_cv1820 is not set
+# CONFIG_CHIP_cv1821 is not set
+# CONFIG_CHIP_cv1822 is not set
+# CONFIG_CHIP_cv1823 is not set
+# CONFIG_CHIP_cv1825 is not set
+# CONFIG_CHIP_cv1826 is not set
+# CONFIG_CHIP_cv7327 is not set
+# CONFIG_CHIP_cv7357 is not set
+# CONFIG_CHIP_cr1820 is not set
+# CONFIG_CHIP_cr1821 is not set
+CONFIG_CHIP_cv1812h=y
+# CONFIG_CHIP_cv1820a is not set
+# CONFIG_CHIP_cv1821a is not set
+# CONFIG_CHIP_cv1823a is not set
+# CONFIG_CHIP_cv181x is not set
+# CONFIG_CHIP_phobos is not set
+CONFIG_CHIP_ARCH_cv181x=y
+CONFIG_CHIP="cv1812h"
+# CONFIG_BOARD_wevb_0007a_emmc is not set
+# CONFIG_BOARD_wevb_0007a_spinand is not set
+CONFIG_BOARD_wevb_0007a_spinor_huashan=y
+CONFIG_BOARD="wevb_0007a_spinor"
+# CONFIG_DDR_CFG_none is not set
+CONFIG_DDR_CFG_ddr3_1866_x16=y
+# CONFIG_DDR_CFG_ddr3_2133_x16 is not set
+CONFIG_DDR_CFG="ddr3_1866_x16"
+CONFIG_ARCH="riscv"
+
+#
+# Compile-time checks and compiler options
+#
+CONFIG_CROSS_COMPILE="riscv64-unknown-linux-musl-"
+CONFIG_CROSS_COMPILE_KERNEL="riscv64-unknown-linux-musl-"
+# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_KERNEL_ENTRY_HACK=y
+CONFIG_KERNEL_ENTRY_HACK_ADDR="0x80200000"
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_USE_CCACHE is not set
+# CONFIG_MTRACE is not set
+# end of Compile-time checks and compiler options
+
+#
+# SDK options
+#
+# CONFIG_TOOLCHAIN_GLIBC_ARM64 is not set
+# CONFIG_TOOLCHAIN_GLIBC_ARM is not set
+# CONFIG_TOOLCHAIN_UCLIBC_ARM is not set
+# CONFIG_TOOLCHAIN_GLIBC_RISCV64 is not set
+CONFIG_TOOLCHAIN_MUSL_RISCV64=y
+CONFIG_CROSS_COMPILE_SDK="riscv64-unknown-linux-musl-"
+CONFIG_MW_VER="v2"
+CONFIG_SDK_VER="musl_riscv64"
+# CONFIG_STATIC is not set
+CONFIG_BUILD_FOR_DEBUG=y
+# CONFIG_ENABLE_SDK_ASAN is not set
+CONFIG_FLASH_SIZE_SHRINK=y
+# CONFIG_NO_FB is not set
+# CONFIG_NO_TP is not set
+CONFIG_BOOT_IMAGE_SINGLE_DTB=y
+# CONFIG_DDR_64MB_SIZE is not set
+# end of SDK options
+
+#
+# FIP setting
+#
+# CONFIG_FSBL_SECURE_BOOT_SUPPORT is not set
+CONFIG_ATF_KEY_SEL_default=y
+# CONFIG_ATF_KEY_SEL_clear is not set
+# CONFIG_ATF_KEY_SEL_key1 is not set
+# CONFIG_ATF_KEY_SEL_key0 is not set
+CONFIG_ATF_KEY_SEL="default"
+# CONFIG_ATF_SRC is not set
+# CONFIG_MULTI_FIP is not set
+CONFIG_FIP_V2=y
+# CONFIG_OD_CLK_SEL is not set
+# end of FIP setting
+
+#
+# Storage settings
+#
+# CONFIG_STORAGE_TYPE_none is not set
+# CONFIG_STORAGE_TYPE_emmc is not set
+# CONFIG_STORAGE_TYPE_spinand is not set
+CONFIG_STORAGE_TYPE_spinor=y
+# CONFIG_STORAGE_TYPE_sd is not set
+CONFIG_STORAGE_TYPE="spinor"
+CONFIG_NANDFLASH_BLOCKSIZE=131072
+CONFIG_NANDFLASH_PAGESIZE=2048
+# end of Storage settings
+
+#
+# Sensor settings
+#
+
+#
+# Sensor support list
+#
+CONFIG_SENSOR_GCORE_GC2053=y
+CONFIG_SENSOR_GCORE_GC2053_1L=y
+# CONFIG_SENSOR_GCORE_GC2053_SLAVE is not set
+CONFIG_SENSOR_GCORE_GC2093=y
+# CONFIG_SENSOR_GCORE_GC2093_SLAVE is not set
+CONFIG_SENSOR_GCORE_GC4653=y
+# CONFIG_SENSOR_GCORE_GC4653_SLAVE is not set
+# CONFIG_SENSOR_GCORE_GC1054 is not set
+# CONFIG_SENSOR_NEXTCHIP_N5 is not set
+# CONFIG_SENSOR_NEXTCHIP_N6 is not set
+# CONFIG_SENSOR_OV_OS08A20 is not set
+# CONFIG_SENSOR_OV_OS08A20_SLAVE is not set
+# CONFIG_SENSOR_OV_OS04C10_SLAVE is not set
+# CONFIG_SENSOR_OV_OS02K10_SLAVE is not set
+# CONFIG_SENSOR_OV_OV6211 is not set
+# CONFIG_SENSOR_OV_OV7251 is not set
+# CONFIG_SENSOR_OV_OS02D10 is not set
+# CONFIG_SENSOR_OV_OS02D10_SLAVE is not set
+# CONFIG_SENSOR_OV_OV4689 is not set
+# CONFIG_SENSOR_PICO_384 is not set
+# CONFIG_SENSOR_PICO_640 is not set
+# CONFIG_SENSOR_PIXELPLUS_PR2020 is not set
+# CONFIG_SENSOR_PIXELPLUS_PR2100 is not set
+# CONFIG_SENSOR_SMS_SC035GS is not set
+# CONFIG_SENSOR_SMS_SC035GS_1L is not set
+# CONFIG_SENSOR_SMS_SC200AI is not set
+CONFIG_SENSOR_SMS_SC2336=y
+CONFIG_SENSOR_SMS_SC3335=y
+# CONFIG_SENSOR_SMS_SC3335_SLAVE is not set
+# CONFIG_SENSOR_SMS_SC3336 is not set
+# CONFIG_SENSOR_SMS_SC4336 is not set
+# CONFIG_SENSOR_SMS_SC4210 is not set
+CONFIG_SENSOR_SMS_SC500AI=y
+# CONFIG_SENSOR_SMS_SC501AI_2L is not set
+# CONFIG_SENSOR_SMS_SC8238 is not set
+# CONFIG_SENSOR_SMS_SC401AI is not set
+# CONFIG_SENSOR_SMS_SC850SL is not set
+# CONFIG_SENSOR_SOI_F23 is not set
+# CONFIG_SENSOR_SOI_F35 is not set
+# CONFIG_SENSOR_SOI_F35_SLAVE is not set
+# CONFIG_SENSOR_SOI_F37P is not set
+# CONFIG_SENSOR_SOI_F38P is not set
+# CONFIG_SENSOR_SOI_H65 is not set
+# CONFIG_SENSOR_SOI_Q03 is not set
+# CONFIG_SENSOR_SONY_IMX290_2L is not set
+CONFIG_SENSOR_SONY_IMX307=y
+CONFIG_SENSOR_SONY_IMX307_2L=y
+CONFIG_SENSOR_SONY_IMX307_SLAVE=y
+# CONFIG_SENSOR_SONY_IMX307_SUBLVDS is not set
+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_SENSOR_OV_OV5647=y
+# CONFIG_SENSOR_SONY_IMX327_SUBLVDS is not set
+# CONFIG_SENSOR_SONY_IMX334 is not set
+# CONFIG_SENSOR_SONY_IMX335 is not set
+# CONFIG_SENSOR_SONY_IMX327_FPGA is not set
+# CONFIG_SENSOR_SONY_IMX347 is not set
+# CONFIG_SENSOR_SONY_IMX385 is not set
+# CONFIG_SENSOR_VIVO_MCS369 is not set
+# CONFIG_SENSOR_VIVO_MCS369Q is not set
+# CONFIG_SENSOR_VIVO_MCS308M2 is not set
+# CONFIG_SENSOR_BRIGATES_BG0808 is not set
+# end of Sensor support list
+#
+# Sensor tuning param config
+#
+
+#
+# src
+#
+CONFIG_SENSOR_TUNING_PARAM_cv181x_src_gcore_gc4653=y
+# CONFIG_SENSOR_TUNING_PARAM_cv181x_src_sony_imx307 is not set
+# end of src
+
+CONFIG_SENSOR_TUNING_PARAM="gcore_gc4653"
+# end of Sensor tuning param config
+# end of Sensor settings
+
+#
+# Panel settings
+#
+CONFIG_MIPI_PANEL_HX8394=y
+# CONFIG_MIPI_PANEL_ILI9881C is not set
+# CONFIG_MIPI_PANEL_ILI9881D is not set
+# CONFIG_MIPI_PANEL_JD9366AB is not set
+# CONFIG_MIPI_PANEL_NT35521 is not set
+# CONFIG_MIPI_PANEL_OTA7290B is not set
+# CONFIG_MIPI_PANEL_OTA7290B_1920 is not set
+# CONFIG_MIPI_PANEL_ICN9707 is not set
+# CONFIG_MIPI_PANEL_3AML069LP01G is not set
+# CONFIG_MIPI_PANEL_ST7701 is not set
+# CONFIG_LVDS_PANEL_EK79202 is not set
+# CONFIG_I80_PANEL_ST7789V is not set
+# CONFIG_I80_PANEL_ST7789V3 is not set
+CONFIG_PANEL_TUNING_PARAM="MIPI_panel_hx8394"
+# end of Panel settings
+
+#
+# uboot options
+#
+CONFIG_USE_DEFAULT_ENV=y
+# CONFIG_UBOOT_2017_07 is not set
+CONFIG_UBOOT_2021_10=y
+CONFIG_UBOOT_SRC="u-boot-2021.10"
+# end of uboot options
+
+#
+# Kernel options
+#
+# CONFIG_KERNEL_SRC_4_19 is not set
+# CONFIG_KERNEL_SRC_4_9 is not set
+CONFIG_KERNEL_SRC_5.10=y
+CONFIG_KERNEL_SRC="linux_5.10"
+# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_LZ4 is not set
+# CONFIG_KERNEL_UNCOMPRESSED is not set
+CONFIG_KERNEL_COMPRESS="lzma"
+# end of Kernel options
+
+#
+# ROOTFS options
+#
+CONFIG_SKIP_RAMDISK=y
+CONFIG_ROOTFS_OVERLAYFS=y
+# end of ROOTFS options
+
+#
+# Turnkey options
+#
+# CONFIG_BUILD_TURNKEY_ACCESSGUARD is not set
+# CONFIG_BUILD_TURNKEY_IPC is not set
+# end of Turnkey options
+
+#
+# RTOS options
+#
+CONFIG_ENABLE_FREERTOS=y
+CONFIG_ENABLE_RTOS_DUMP_PRINT=y
+CONFIG_DUMP_PRINT_SZ_IDX=17
+# CONFIG_ENABLE_ALIOS is not set
+# end of RTOS options
+
+#
+# Rootfs packages
+#
+# CONFIG_TARGET_PACKAGE_AP6201BM is not set
+# CONFIG_TARGET_PACKAGE_CVITRACER is not set
+CONFIG_TARGET_PACKAGE_DROPBEAR=y
+# CONFIG_TARGET_PACKAGE_GDBSERVER is not set
+# CONFIG_TARGET_PACKAGE_LIBBTRACE is not set
+CONFIG_TARGET_PACKAGE_LIBCRYPTO=y
+# CONFIG_TARGET_PACKAGE_LIBCURL is not set
+# CONFIG_TARGET_PACKAGE_LIBEVENT is not set
+# CONFIG_TARGET_PACKAGE_LIBIPERF is not set
+# CONFIG_TARGET_PACKAGE_LIBIW is not set
+# CONFIG_TARGET_PACKAGE_LIBPROTOBUF is not set
+# CONFIG_TARGET_PACKAGE_LIBZ is not set
+# CONFIG_TARGET_PACKAGE_MTD-UTILS is not set
+# CONFIG_TARGET_PACKAGE_NANOMSG is not set
+CONFIG_TARGET_PACKAGE_OPENSSL=y
+# CONFIG_TARGET_PACKAGE_OTASERVER is not set
+# CONFIG_TARGET_PACKAGE_PARTED is not set
+# CONFIG_TARGET_PACKAGE_PROCRANK is not set
+# CONFIG_TARGET_PACKAGE_PROCPS is not set
+# CONFIG_TARGET_PACKAGE_PYTHON3.7 is not set
+# CONFIG_TARGET_PACKAGE_RSYSLOG is not set
+# CONFIG_TARGET_PACKAGE_SECURE_IMAGE is not set
+CONFIG_TARGET_PACKAGE_WIFI=y
+# CONFIG_TARGET_PACKAGE_BUSYBOX_SYSLOGD_SCRIPT is not set
+# CONFIG_TARGET_PACKAGE_MT7603U is not set
+# CONFIG_TARGET_PACKAGE_LIBTIRPC is not set
+# CONFIG_TARGET_PACKAGE_LIBNFS is not set
+# CONFIG_TARGET_PACKAGE_BASH is not set
+# CONFIG_TARGET_PACKAGE_CRONTABS is not set
+# CONFIG_TARGET_PACKAGE_IPERF3 is not set
+# CONFIG_TARGET_PACKAGE_E2FSPROGS is not set
+# CONFIG_TARGET_PACKAGE_GATORD is not set
+# CONFIG_TARGET_PACKAGE_STRESS is not set
+# CONFIG_TARGET_PACKAGE_HTOP is not set
+# end of Rootfs packages
+CONFIG_TARGET_PACKAGE_NTP=y
+CONFIG_TP_GT9XX=y
+CONFIG_TARGET_PACKAGE_ADBD=y
+CONFIG_TP_ENABLE=y
+CONFIG_USB_OSDRV_CVITEK_GADGET=y
+CONFIG_TARGET_PACKAGE_BT=y
+CONFIG_CP_EXT_WIRELESS=y
\ No newline at end of file
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/dts_riscv/cv1812h_wevb_0007a_spinor_huashan.dts b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/dts_riscv/cv1812h_wevb_0007a_spinor_huashan.dts
new file mode 100644
index 000000000..48cf11148
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/dts_riscv/cv1812h_wevb_0007a_spinor_huashan.dts
@@ -0,0 +1,54 @@
+/dts-v1/;
+#include "cv181x_base_riscv.dtsi"
+#include "cv181x_asic_bga.dtsi"
+#include "cv181x_asic_spinor.dtsi"
+#include "cv181x_default_memmap.dtsi"
+
+&dac {
+ /delete-property/ mute-gpio-l;
+ /delete-property/ mute-gpio-r;
+ };
+
+&uart0 {
+ status = "okay";
+};
+
+&uart1 {
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
+
+&uart3 {
+ status = "okay";
+};
+
+&wifisd {
+ status = "okay";
+};
+
+&mipi_rx {
+ snsr-reset = <&porta 2 GPIO_ACTIVE_LOW>, <&porta 6 GPIO_ACTIVE_LOW>, <&porta 2 GPIO_ACTIVE_LOW>;
+};
+
+/ {
+
+ 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";
+ interrupts = <52 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&plic0>;
+ gt9xx: gt9xx@14 {
+ compatible = "goodix,gt9xx";
+ reg = <0x14>;
+ status = "okay";
+ };
+
+ };
+};
\ No newline at end of file
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/linux/cvitek_cv1812h_wevb_0007a_spinor_huashan_defconfig b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/linux/cvitek_cv1812h_wevb_0007a_spinor_huashan_defconfig
new file mode 100644
index 000000000..bbd4aa30e
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/linux/cvitek_cv1812h_wevb_0007a_spinor_huashan_defconfig
@@ -0,0 +1,497 @@
+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_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=n
+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_DW_WATCHDOG=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_VIDEOBUF2_CORE=y
+CONFIG_VIDEOBUF2_MEMOPS=y
+CONFIG_VIDEOBUF2_DMA_CONTIG=y
+CONFIG_VIDEOBUF2_V4L2=y
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_MEDIA_USB_SUPPORT=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=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=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=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_huashan/memmap.py b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/memmap.py
new file mode 100644
index 000000000..fcc097d01
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/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/cv1812h_wevb_0007a_spinor_huashan/partition/partition_spinor.xml b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/partition/partition_spinor.xml
new file mode 100644
index 000000000..539988c5a
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/partition/partition_spinor.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/rootfs_script/clean_rootfs.sh b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/rootfs_script/clean_rootfs.sh
new file mode 100755
index 000000000..dd38ada9c
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/rootfs_script/clean_rootfs.sh
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+SYSTEM_DIR=$1
+
+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*
+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/cv1812h_wevb_0007a_spinor_huashan/u-boot/cvi_board_init.c b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/u-boot/cvi_board_init.c
new file mode 100644
index 000000000..8de6991a0
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/u-boot/cvi_board_init.c
@@ -0,0 +1,85 @@
+static void set_rtc_register_for_power(void)
+{
+ printf("set_rtc_register_for_power\n");
+ 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)
+{
+ /*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);
+
+ //#########WIFI
+ pinmux_config(PINMUX_SDIO1);
+ PINMUX_CONFIG(AUX0, XGPIOA_30);
+
+ mmio_write_32(0x03020004, mmio_read_32(0x03020004) | 0x40000000);
+ mmio_write_32(0x03020000, mmio_read_32(0x03020000) | 0x40000000);
+
+ PINMUX_CONFIG(VIVO_D3, UART2_RTS);
+ PINMUX_CONFIG(VIVO_D4, UART2_CTS);
+ PINMUX_CONFIG(VIVO_D9, UART2_RX);
+ PINMUX_CONFIG(VIVO_D10, UART2_TX);
+ //########LT9611 IIC4
+ PINMUX_CONFIG(ADC3,IIC4_SCL);
+ PINMUX_CONFIG(ADC2,IIC4_SDA);
+
+ PINMUX_CONFIG(USB_VBUS_EN, XGPIOB_5);
+ PINMUX_CONFIG(PAD_MIPIRX5N, XGPIOC_0);
+
+ //#######sensor
+ PINMUX_CONFIG(IIC2_SDA, IIC2_SDA);
+ PINMUX_CONFIG(IIC2_SCL, IIC2_SCL);
+
+ //Sensor PWDN PIN
+ PINMUX_CONFIG(CAM_PD0, XGPIOA_1);
+ PINMUX_CONFIG(CAM_PD1, XGPIOA_4);
+
+ mmio_write_32(0x03020004, mmio_read_32(0x03020004) | 0x2);
+ mmio_write_32(0x03020000, mmio_read_32(0x03020000) | 0x2);
+
+ mmio_write_32(0x03020004, mmio_read_32(0x03020004) | 0x10);
+ mmio_write_32(0x03020000, mmio_read_32(0x03020000) | 0x10);
+
+ //Sensor Reset PIN
+ PINMUX_CONFIG(CAM_RST0, XGPIOA_2);
+ PINMUX_CONFIG(IIC3_SDA, XGPIOA_6);
+ //Sensor Clock PIN
+ PINMUX_CONFIG(CAM_MCLK0, CAM_MCLK0);
+ PINMUX_CONFIG(CAM_MCLK1, CAM_MCLK1);
+
+ //Resolve I2C3 Conflict problem
+ PINMUX_CONFIG(IIC3_SCL, XGPIOA_5);
+
+ //#######tp
+ PINMUX_CONFIG(VIVO_D1, IIC3_SDA);
+ PINMUX_CONFIG(VIVO_D0, IIC3_SCL);
+
+ PINMUX_CONFIG(JTAG_CPU_TMS, XGPIOA_19);
+ PINMUX_CONFIG(JTAG_CPU_TCK, XGPIOA_18);
+
+ //########panel
+ PINMUX_CONFIG(JTAG_CPU_TRST, XGPIOA_20);
+ pinmux_config(PINMUX_DSI);
+ PINMUX_CONFIG(PWR_GPIO0, PWR_GPIO_0);
+
+ //######## usb
+ PINMUX_CONFIG(USB_VBUS_DET, XGPIOB_6);
+ set_rtc_register_for_power();
+
+ return 0;
+}
diff --git a/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/u-boot/cvitek.h b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/u-boot/cvitek.h
new file mode 100644
index 000000000..d515dc254
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/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/cv1812h_wevb_0007a_spinor_huashan/u-boot/cvitek_cv1812h_wevb_0007a_spinor_huashan_defconfig b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/u-boot/cvitek_cv1812h_wevb_0007a_spinor_huashan_defconfig
new file mode 100644
index 000000000..99a12914a
--- /dev/null
+++ b/build/boards/cv181x/cv1812h_wevb_0007a_spinor_huashan/u-boot/cvitek_cv1812h_wevb_0007a_spinor_huashan_defconfig
@@ -0,0 +1,44 @@
+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_CVITEK_SPI_FLASH=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_SPI_FLASH_USE_4K_SECTORS is not set
diff --git a/build/boards/cv181x/cv1813h_wevb_0007a_emmc/config.json b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/config.json
new file mode 100644
index 000000000..b1115147f
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/config.json
@@ -0,0 +1,9 @@
+{
+ "ddr_cfg_list": [
+ "",
+ "ddr3_1866_x16",
+ "ddr3_2133_x16",
+ "ddr_auto_x16"
+ ],
+ "board_information": "C906B + EMMC 512MB + BGA SIP 256MB"
+}
diff --git a/build/boards/cv181x/cv1813h_wevb_0007a_emmc/cv1813h_wevb_0007a_emmc_defconfig b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/cv1813h_wevb_0007a_emmc_defconfig
new file mode 100644
index 000000000..e6e6bc7ed
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/cv1813h_wevb_0007a_emmc_defconfig
@@ -0,0 +1,41 @@
+CONFIG_CHIP_cv1813h=y
+CONFIG_BOARD_wevb_0007a_emmc=y
+CONFIG_DDR_CFG_ddr3_1866_x16=y
+CONFIG_ARCH="riscv"
+CONFIG_CROSS_COMPILE="riscv64-unknown-linux-gnu-"
+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_emmc=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
\ No newline at end of file
diff --git a/build/boards/cv181x/cv1813h_wevb_0007a_emmc/dts_riscv/cv1813h_wevb_0007a_emmc.dts b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/dts_riscv/cv1813h_wevb_0007a_emmc.dts
new file mode 100644
index 000000000..58d754bd9
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/dts_riscv/cv1813h_wevb_0007a_emmc.dts
@@ -0,0 +1,10 @@
+/dts-v1/;
+#include "cv181x_base_riscv.dtsi"
+#include "cv181x_asic_bga.dtsi"
+#include "cv181x_asic_emmc.dtsi"
+#include "cv181x_default_memmap.dtsi"
+
+/ {
+
+};
+
diff --git a/build/boards/cv181x/cv1813h_wevb_0007a_emmc/linux/cvitek_cv1813h_wevb_0007a_emmc_defconfig b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/linux/cvitek_cv1813h_wevb_0007a_emmc_defconfig
new file mode 100644
index 000000000..8c73ef685
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/linux/cvitek_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="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_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/memmap.py b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/memmap.py
new file mode 100644
index 000000000..8c572da73
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/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/cv181x/cv1813h_wevb_0007a_emmc/partition/partition_emmc.xml b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/partition/partition_emmc.xml
new file mode 100644
index 000000000..f57e0271d
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/partition/partition_emmc.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/boards/cv181x/cv1813h_wevb_0007a_emmc/rootfs_script/clean_rootfs.sh b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/rootfs_script/clean_rootfs.sh
new file mode 100755
index 000000000..26692d889
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/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/cv1813h_wevb_0007a_emmc/u-boot/cvi_board_init.c b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/u-boot/cvi_board_init.c
new file mode 100644
index 000000000..129e880c9
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/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/cv1813h_wevb_0007a_emmc/u-boot/cvitek.h b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/u-boot/cvitek.h
new file mode 100644
index 000000000..d515dc254
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/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/cv1813h_wevb_0007a_emmc/u-boot/cvitek_cv1813h_wevb_0007a_emmc_defconfig b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/u-boot/cvitek_cv1813h_wevb_0007a_emmc_defconfig
new file mode 100644
index 000000000..e33110df0
--- /dev/null
+++ b/build/boards/cv181x/cv1813h_wevb_0007a_emmc/u-boot/cvitek_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/default/dts/cv180x/cv180x_default_memmap.dtsi b/build/boards/default/dts/cv180x/cv180x_default_memmap.dtsi
index 93ab84007..bb362511c 100644
--- a/build/boards/default/dts/cv180x/cv180x_default_memmap.dtsi
+++ b/build/boards/default/dts/cv180x/cv180x_default_memmap.dtsi
@@ -19,7 +19,6 @@
ion_reserved: ion {
compatible = "ion-region";
- alloc-ranges = <0x0 CVIMMAP_ION_ADDR 0 CVIMMAP_ION_SIZE>;
size = <0x0 CVIMMAP_ION_SIZE>;
};
};
diff --git a/build/boards/default/dts/cv181x/cv181x_default_memmap.dtsi b/build/boards/default/dts/cv181x/cv181x_default_memmap.dtsi
index 93ab84007..bb362511c 100644
--- a/build/boards/default/dts/cv181x/cv181x_default_memmap.dtsi
+++ b/build/boards/default/dts/cv181x/cv181x_default_memmap.dtsi
@@ -19,7 +19,6 @@
ion_reserved: ion {
compatible = "ion-region";
- alloc-ranges = <0x0 CVIMMAP_ION_ADDR 0 CVIMMAP_ION_SIZE>;
size = <0x0 CVIMMAP_ION_SIZE>;
};
};
diff --git a/build/boards/default/memmap/cv181x/memmap_ddr_128mb.py b/build/boards/default/memmap/cv181x/memmap_ddr_128mb.py
index 39e70cd2c..7dc8f7e36 100644
--- a/build/boards/default/memmap/cv181x/memmap_ddr_128mb.py
+++ b/build/boards/default/memmap/cv181x/memmap_ddr_128mb.py
@@ -6,7 +6,9 @@ SIZE_1K = 1024
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.
+ "CONFIG_SYS_TEXT_BASE", # u-boot's CONFIG_SYS_TEXT_BASE is used without CPP.
+ "CONFIG_SPL_SIZE_LIMIT",
+ "CONFIG_SPL_TEXT_BASE",
]
DRAM_BASE = 0x80000000
@@ -83,3 +85,7 @@ class MemoryMap:
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
+
+ # uboot-spl
+ CONFIG_SPL_SIZE_LIMIT = SIZE_1M
+ CONFIG_SPL_TEXT_BASE = BOOTLOGO_ADDR - CONFIG_SPL_SIZE_LIMIT
diff --git a/build/boards/default/memmap/cv181x/memmap_ddr_64mb.py b/build/boards/default/memmap/cv181x/memmap_ddr_64mb.py
index 629688613..387e34a9c 100644
--- a/build/boards/default/memmap/cv181x/memmap_ddr_64mb.py
+++ b/build/boards/default/memmap/cv181x/memmap_ddr_64mb.py
@@ -6,7 +6,9 @@ SIZE_1K = 1024
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.
+ "CONFIG_SYS_TEXT_BASE", # u-boot's CONFIG_SYS_TEXT_BASE is used without CPP.
+ "CONFIG_SPL_SIZE_LIMIT",
+ "CONFIG_SPL_TEXT_BASE",
]
DRAM_BASE = 0x80000000
@@ -26,8 +28,8 @@ class MemoryMap:
# Monitor is at the begining of DRAM
MONITOR_ADDR = DRAM_BASE
- ATF_SIZE = 512 * SIZE_1K
- OPENSBI_SIZE = 512 * SIZE_1K
+ ATF_SIZE = 256 * SIZE_1K
+ OPENSBI_SIZE = 256 * SIZE_1K
OPENSBI_FDT_ADDR = MONITOR_ADDR + OPENSBI_SIZE
# =========================
@@ -83,3 +85,7 @@ class MemoryMap:
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
+
+ # uboot-spl
+ CONFIG_SPL_SIZE_LIMIT = SIZE_1M
+ CONFIG_SPL_TEXT_BASE = BOOTLOGO_ADDR - CONFIG_SPL_SIZE_LIMIT
\ No newline at end of file
diff --git a/build/boards/default/u-boot/cvitek_uboot_spl_riscv_spinor_defconfig b/build/boards/default/u-boot/cvitek_uboot_spl_riscv_spinor_defconfig
new file mode 100644
index 000000000..dadbb47bd
--- /dev/null
+++ b/build/boards/default/u-boot/cvitek_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/panels/panel_list.json b/build/panels/panel_list.json
index 10c334156..000d4da6b 100644
--- a/build/panels/panel_list.json
+++ b/build/panels/panel_list.json
@@ -10,7 +10,8 @@
"ota7290b_1920",
"icn9707",
"3aml069lp01g",
- "st7701"
+ "st7701",
+ "st7785m"
],
"lvds" : [
"ek79202"
diff --git a/build/scripts/fip_v2.mk b/build/scripts/fip_v2.mk
index 03ff33acb..845f6879e 100644
--- a/build/scripts/fip_v2.mk
+++ b/build/scripts/fip_v2.mk
@@ -32,6 +32,14 @@ fsbl-build: u-boot-build memory-map
${Q}$(MAKE) -j${NPROC} -C ${FSBL_PATH} O=${FSBL_OUTPUT_PATH} BLCP_2ND_PATH=${BLCP_2ND_PATH} \
LOADER_2ND_PATH=${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/u-boot-raw.bin
${Q}cp ${FSBL_OUTPUT_PATH}/fip.bin ${OUTPUT_DIR}/
+ifeq (${CONFIG_UBOOT_SPL_CUSTOM},y)
+ ${Q}$(MAKE) -C ${FSBL_PATH} clean O=${FSBL_OUTPUT_PATH}
+ ${Q}$(MAKE) -j${NPROC} -C ${FSBL_PATH} O=${FSBL_OUTPUT_PATH} BLCP_2ND_PATH=${BLCP_2ND_PATH} \
+ CONFIG_SKIP_UBOOT=$(CONFIG_SKIP_UBOOT) LOADER_2ND_PATH=${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/spl/u-boot-spl-raw.bin
+ ${Q}cp ${FSBL_OUTPUT_PATH}/fip.bin ${OUTPUT_DIR}/fip_spl.bin
+else
+ ${Q}cp ${FSBL_OUTPUT_PATH}/fip.bin ${OUTPUT_DIR}/fip_spl.bin
+endif
fsbl-clean: rtos-clean
$(call print_target)
diff --git a/build/sensors/sensor_list.json b/build/sensors/sensor_list.json
index 11f3fc79d..2fc444477 100644
--- a/build/sensors/sensor_list.json
+++ b/build/sensors/sensor_list.json
@@ -1,6 +1,7 @@
{
"sensor_list": [
"BRIGATES_BG0808",
+ "BYD_BF2253L",
"CVSENS_CV4001",
"GCORE_GC02M1",
"GCORE_GC0312",
@@ -11,6 +12,7 @@
"GCORE_GC2053",
"GCORE_GC2053_1L",
"GCORE_GC2053_SLAVE",
+ "GCORE_GC2083",
"GCORE_GC2093",
"GCORE_GC2093_SLAVE",
"GCORE_GC2145",
@@ -39,6 +41,7 @@
"PIXELPLUS_PR2100",
"SMS_SC035GS",
"SMS_SC035GS_1L",
+ "SMS_SC1336_1L",
"SMS_SC1346_1L",
"SMS_SC1346_1L_SLAVE",
"SMS_SC200AI",
diff --git a/build/tools/common/image_tool/mkcvipart.py b/build/tools/common/image_tool/mkcvipart.py
index fa999c196..3f38ac450 100644
--- a/build/tools/common/image_tool/mkcvipart.py
+++ b/build/tools/common/image_tool/mkcvipart.py
@@ -178,6 +178,11 @@ def gen_cvipart_h(output, parser):
% (p["label"], int(p["part_size"] / LBA_SIZE))
)
+ for i, p in enumerate(parts):
+ if p["label"] == 'BOOT':
+ of.write('#define SPL_%s_PART_OFFSET 0x%x\n' % (p["label"], int(p["offset"] / LBA_SIZE)))
+ elif p["label"] == 'jump':
+ of.write('#define SPL_%s_PART_OFFSET 0x%x\n' % ("BOOT", 0))
of.write("#endif")
logging.info("Done!")