diff --git a/buildroot-2021.05/Makefile b/buildroot-2021.05/Makefile
index 08e4a4104..28c538967 100644
--- a/buildroot-2021.05/Makefile
+++ b/buildroot-2021.05/Makefile
@@ -36,8 +36,12 @@ SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
# or avoid confusing packages that can use the O=
syntax for out-of-tree
# build by preventing it from being forwarded to sub-make calls.
ifneq ("$(origin O)", "command line")
+ifneq ($(TARGET_OUTPUT_DIR),)
+O := $(TARGET_OUTPUT_DIR)
+else
O := $(CURDIR)/output
endif
+endif
# Check if the current Buildroot execution meets all the pre-requisites.
# If they are not met, Buildroot will actually do its job in a sub-make meeting
diff --git a/buildroot-2021.05/configs/cvitek_CV180X_musl_riscv64_defconfig b/buildroot-2021.05/configs/cvitek_CV180X_musl_riscv64_defconfig
new file mode 100644
index 000000000..bf5d5027c
--- /dev/null
+++ b/buildroot-2021.05/configs/cvitek_CV180X_musl_riscv64_defconfig
@@ -0,0 +1,466 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Buildroot -g8c59e72e33-dirty Configuration
+#
+BR2_HAVE_DOT_CONFIG=y
+BR2_HOST_GCC_AT_LEAST_4_9=y
+BR2_HOST_GCC_AT_LEAST_5=y
+BR2_HOST_GCC_AT_LEAST_6=y
+BR2_HOST_GCC_AT_LEAST_7=y
+
+#
+# Target options
+#
+BR2_ARCH_IS_64=y
+BR2_ARCH_HAS_MMU_MANDATORY=y
+BR2_riscv=y
+BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT=y
+BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8=y
+BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9=y
+BR2_ARCH_NEEDS_GCC_AT_LEAST_5=y
+BR2_ARCH_NEEDS_GCC_AT_LEAST_6=y
+BR2_ARCH_NEEDS_GCC_AT_LEAST_7=y
+BR2_ARCH="riscv64"
+BR2_ENDIAN="LITTLE"
+BR2_GCC_TARGET_ABI="lp64d"
+BR2_BINFMT_SUPPORTS_SHARED=y
+BR2_READELF_ARCH_NAME="RISC-V"
+BR2_BINFMT_ELF=y
+BR2_RISCV_ISA_RVI=y
+BR2_RISCV_ISA_RVM=y
+BR2_RISCV_ISA_RVA=y
+BR2_RISCV_ISA_RVF=y
+BR2_RISCV_ISA_RVD=y
+BR2_riscv_g=y
+# BR2_riscv_custom is not set
+# BR2_RISCV_32 is not set
+BR2_RISCV_64=y
+# BR2_RISCV_ABI_LP64 is not set
+# BR2_RISCV_ABI_LP64F is not set
+BR2_RISCV_ABI_LP64D=y
+
+#
+# Build options
+#
+
+#
+# Commands
+#
+BR2_WGET="wget --passive-ftp -nd -t 3"
+BR2_SVN="svn --non-interactive"
+BR2_BZR="bzr"
+BR2_GIT="git"
+BR2_CVS="cvs"
+BR2_LOCALFILES="cp"
+BR2_SCP="scp"
+BR2_HG="hg"
+BR2_ZCAT="gzip -d -c"
+BR2_BZCAT="bzcat"
+BR2_XZCAT="xzcat"
+BR2_LZCAT="lzip -d -c"
+BR2_TAR_OPTIONS=""
+BR2_DEFCONFIG="./configs/cvitek_cv180x_musl_riscv64_defconfig"
+BR2_DL_DIR="$(TOPDIR)/dl"
+BR2_HOST_DIR="$(BASE_DIR)/host"
+
+#
+# Mirrors and Download locations
+#
+BR2_PRIMARY_SITE=""
+BR2_BACKUP_SITE="http://sources.buildroot.net"
+BR2_KERNEL_MIRROR="https://cdn.kernel.org/pub"
+BR2_GNU_MIRROR="http://ftpmirror.gnu.org"
+BR2_LUAROCKS_MIRROR="http://rocks.moonscript.org"
+BR2_CPAN_MIRROR="http://cpan.metacpan.org"
+BR2_JLEVEL=0
+# BR2_CCACHE is not set
+# BR2_ENABLE_DEBUG is not set
+BR2_STRIP_strip=y
+BR2_STRIP_EXCLUDE_FILES=""
+BR2_STRIP_EXCLUDE_DIRS=""
+# BR2_OPTIMIZE_0 is not set
+# BR2_OPTIMIZE_1 is not set
+# BR2_OPTIMIZE_2 is not set
+# BR2_OPTIMIZE_3 is not set
+# BR2_OPTIMIZE_G is not set
+BR2_OPTIMIZE_S=y
+# BR2_OPTIMIZE_FAST is not set
+# BR2_STATIC_LIBS is not set
+BR2_SHARED_LIBS=y
+# BR2_SHARED_STATIC_LIBS is not set
+BR2_PACKAGE_OVERRIDE_FILE="$(CONFIG_DIR)/local.mk"
+BR2_GLOBAL_PATCH_DIR=""
+
+#
+# Advanced
+#
+BR2_COMPILER_PARANOID_UNSAFE_PATH=y
+# BR2_FORCE_HOST_BUILD is not set
+# BR2_REPRODUCIBLE is not set
+# BR2_PER_PACKAGE_DIRECTORIES is not set
+
+#
+# Security Hardening Options
+#
+BR2_PIC_PIE=y
+# BR2_SSP_NONE is not set
+# BR2_SSP_REGULAR is not set
+BR2_SSP_STRONG=y
+# BR2_SSP_ALL is not set
+BR2_SSP_OPTION="-fstack-protector-strong"
+# BR2_RELRO_NONE is not set
+# BR2_RELRO_PARTIAL is not set
+BR2_RELRO_FULL=y
+
+#
+# Fortify Source needs a glibc toolchain and optimization
+#
+
+#
+# Toolchain
+#
+BR2_TOOLCHAIN=y
+BR2_TOOLCHAIN_USES_MUSL=y
+# BR2_TOOLCHAIN_BUILDROOT is not set
+BR2_TOOLCHAIN_EXTERNAL=y
+
+#
+# Toolchain External Options
+#
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
+# BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD is not set
+BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED=y
+# BR2_TOOLCHAIN_EXTERNAL_PATH="/data/sam/sdk/cv180x_v400/host-tools/gcc/riscv64-linux-musl-x86_64"
+BR2_TOOLCHAIN_EXTERNAL_MUSL=y
+BR2_PACKAGE_HAS_TOOLCHAIN_EXTERNAL=y
+BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL="toolchain-external-custom"
+BR2_TOOLCHAIN_EXTERNAL_PREFIX="riscv64-unknown-linux-musl"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="riscv64-unknown-linux-musl"
+BR2_TOOLCHAIN_EXTERNAL_GCC_10=y
+BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_10=y
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y
+BR2_TOOLCHAIN_EXTERNAL_HAS_SSP=y
+BR2_TOOLCHAIN_EXTERNAL_HAS_SSP_STRONG=y
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
+
+#
+# Toolchain Generic Options
+#
+BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS=y
+BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK=y
+BR2_USE_WCHAR=y
+BR2_ENABLE_LOCALE=y
+BR2_INSTALL_LIBSTDCPP=y
+BR2_TOOLCHAIN_HAS_THREADS=y
+BR2_TOOLCHAIN_HAS_THREADS_DEBUG=y
+BR2_TOOLCHAIN_HAS_THREADS_NPTL=y
+BR2_TOOLCHAIN_HAS_SSP=y
+BR2_TOOLCHAIN_HAS_SSP_STRONG=y
+BR2_TOOLCHAIN_HAS_UCONTEXT=y
+BR2_TOOLCHAIN_SUPPORTS_PIE=y
+BR2_TOOLCHAIN_EXTRA_LIBS=""
+BR2_USE_MMU=y
+BR2_TARGET_OPTIMIZATION=""
+BR2_TARGET_LDFLAGS="-march=rv64imafdcvxthead -mcmodel=medany -mabi=lp64d"
+# BR2_ECLIPSE_REGISTER is not set
+BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0=y
+BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1=y
+BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2=y
+BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3=y
+BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4=y
+BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5=y
+BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6=y
+BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7=y
+BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8=y
+BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9=y
+BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10=y
+BR2_TOOLCHAIN_HEADERS_AT_LEAST="5.10"
+BR2_TOOLCHAIN_GCC_AT_LEAST_4_3=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_4_4=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_4_5=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_4_6=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_4_7=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_4_8=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_4_9=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_5=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_6=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_7=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_8=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_9=y
+BR2_TOOLCHAIN_GCC_AT_LEAST_10=y
+BR2_TOOLCHAIN_GCC_AT_LEAST="10"
+BR2_TOOLCHAIN_HAS_MNAN_OPTION=y
+BR2_TOOLCHAIN_HAS_SYNC_1=y
+BR2_TOOLCHAIN_HAS_SYNC_2=y
+BR2_TOOLCHAIN_HAS_SYNC_4=y
+BR2_TOOLCHAIN_HAS_SYNC_8=y
+BR2_TOOLCHAIN_HAS_LIBATOMIC=y
+BR2_TOOLCHAIN_HAS_ATOMIC=y
+
+#
+# System configuration
+#
+BR2_ROOTFS_SKELETON_DEFAULT=y
+# BR2_ROOTFS_SKELETON_CUSTOM is not set
+BR2_TARGET_GENERIC_HOSTNAME="cvitek"
+BR2_TARGET_GENERIC_ISSUE="Welcome to CViTek"
+BR2_TARGET_GENERIC_PASSWD_SHA256=y
+# BR2_TARGET_GENERIC_PASSWD_SHA512 is not set
+BR2_TARGET_GENERIC_PASSWD_METHOD="sha-256"
+BR2_INIT_BUSYBOX=y
+# BR2_INIT_SYSV is not set
+# BR2_INIT_OPENRC is not set
+
+#
+# systemd needs a glibc toolchain w/ SSP, headers >= 3.10, host and target gcc >= 5
+#
+# BR2_INIT_NONE is not set
+# BR2_ROOTFS_DEVICE_CREATION_STATIC is not set
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y
+# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV is not set
+# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is not set
+BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt"
+# BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES is not set
+# BR2_ROOTFS_MERGED_USR is not set
+BR2_TARGET_ENABLE_ROOT_LOGIN=y
+BR2_TARGET_GENERIC_ROOT_PASSWD=""
+BR2_SYSTEM_BIN_SH_BUSYBOX=y
+
+#
+# bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
+#
+# BR2_SYSTEM_BIN_SH_NONE is not set
+BR2_TARGET_GENERIC_GETTY=y
+BR2_TARGET_GENERIC_GETTY_PORT="console"
+BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP=y
+# BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600 is not set
+# BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200 is not set
+# BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400 is not set
+# BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 is not set
+# BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 is not set
+BR2_TARGET_GENERIC_GETTY_BAUDRATE="0"
+BR2_TARGET_GENERIC_GETTY_TERM="vt100"
+BR2_TARGET_GENERIC_GETTY_OPTIONS=""
+BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y
+BR2_SYSTEM_DHCP=""
+BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
+BR2_ENABLE_LOCALE_PURGE=y
+BR2_ENABLE_LOCALE_WHITELIST="C en_US"
+# BR2_SYSTEM_ENABLE_NLS is not set
+# BR2_TARGET_TZ_INFO is not set
+BR2_ROOTFS_USERS_TABLES=""
+BR2_ROOTFS_OVERLAY="board/cvitek/CV180X/overlay"
+BR2_ROOTFS_POST_BUILD_SCRIPT=""
+BR2_ROOTFS_POST_FAKEROOT_SCRIPT=""
+BR2_ROOTFS_POST_IMAGE_SCRIPT=""
+
+#
+# Kernel
+#
+# BR2_LINUX_KERNEL is not set
+
+#
+# Target packages
+#
+BR2_PACKAGE_BUSYBOX=y
+BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox.config"
+BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES=""
+# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set
+# BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES is not set
+# BR2_PACKAGE_BUSYBOX_WATCHDOG is not set
+BR2_PACKAGE_SKELETON=y
+BR2_PACKAGE_HAS_SKELETON=y
+BR2_PACKAGE_PROVIDES_SKELETON="skeleton-init-sysv"
+BR2_PACKAGE_SKELETON_INIT_COMMON=y
+BR2_PACKAGE_SKELETON_INIT_SYSV=y
+
+#
+# dt needs a glibc or uClibc toolchain w/ threads
+#
+# BR2_PACKAGE_DUMA is not set
+# BR2_PACKAGE_FIO is not set
+BR2_PACKAGE_GDB_ARCH_SUPPORTS=y
+BR2_PACKAGE_GDB=y
+# BR2_PACKAGE_IOZONE is not set
+
+#
+# ktap needs a Linux kernel to be built
+#
+# BR2_PACKAGE_LATENCYTOP is not set
+# BR2_PACKAGE_LMBENCH is not set
+BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS=y
+# BR2_PACKAGE_LTP_TESTSUITE is not set
+# BR2_PACKAGE_LTTNG_BABELTRACE is not set
+
+#
+# Development tools
+#
+BR2_PACKAGE_PROVIDES_HOST_GETTEXT="host-gettext-tiny"
+
+#
+# Filesystem and flash utilities
+#
+# BR2_PACKAGE_ABOOTIMG is not set
+
+#
+# davfs2 needs a glibc or uClibc toolchain
+#
+# BR2_PACKAGE_DOSFSTOOLS is not set
+BR2_PACKAGE_E2FSPROGS=y
+# BR2_PACKAGE_E2FSPROGS_DEBUGFS is not set
+# BR2_PACKAGE_E2FSPROGS_E2IMAGE is not set
+
+#
+# e2scrub needs bash, coreutils, lvm2, and util-linux
+#
+# BR2_PACKAGE_E2FSPROGS_E4DEFRAG is not set
+BR2_PACKAGE_E2FSPROGS_FSCK=y
+# BR2_PACKAGE_E2FSPROGS_FUSE2FS is not set
+BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
+
+#
+# eudev needs eudev /dev management
+#
+# BR2_PACKAGE_EVEMU is not set
+BR2_PACKAGE_EVTEST=y
+# BR2_PACKAGE_FAN_CTRL is not set
+# BR2_PACKAGE_FCONFIG is not set
+BR2_PACKAGE_FLASHROM_ARCH_SUPPORTS=y
+
+#
+# Compression and decompression
+#
+BR2_PACKAGE_PROVIDES_HOST_ZLIB="host-libzlib"
+# BR2_PACKAGE_ZZIPLIB is not set
+
+#
+# Crypto
+#
+# BR2_PACKAGE_BEARSSL is not set
+# BR2_PACKAGE_BEECRYPT is not set
+BR2_PACKAGE_BOTAN_ARCH_SUPPORTS=y
+# BR2_PACKAGE_BOTAN is not set
+# BR2_PACKAGE_CA_CERTIFICATES is not set
+
+#
+# cryptodev needs a Linux kernel to be built
+#
+BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS=y
+# BR2_PACKAGE_LIBGPG_ERROR is not set
+BR2_PACKAGE_LIBGPG_ERROR_SYSCFG="riscv64-unknown-linux-gnu"
+BR2_PACKAGE_PROVIDES_HOST_OPENSSL="host-libopenssl"
+
+#
+# JSON/XML
+#
+BR2_PACKAGE_JSON_C=y
+
+#
+# Multimedia
+#
+BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS=y
+# BR2_PACKAGE_LIBCAMERA is not set
+
+#
+# libcgroup needs a glibc toolchain w/ C++
+#
+BR2_PACKAGE_MUSL_COMPAT_HEADERS=y
+# BR2_PACKAGE_MUSL_FTS is not set
+# BR2_PACKAGE_ORC is not set
+# BR2_PACKAGE_P11_KIT is not set
+BR2_PACKAGE_POCO_ARCH_SUPPORTS=y
+# BR2_PACKAGE_POCO is not set
+BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS=y
+# BR2_PACKAGE_PROTOBUF is not set
+# BR2_PACKAGE_PROTOBUF_C is not set
+
+#
+# vdr needs a glibc toolchain w/ C++, dynamic library, NPTL, wchar, headers >= 3.9
+#
+BR2_PACKAGE_WPA_SUPPLICANT=y
+BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
+BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
+BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y
+# BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE is not set
+BR2_PACKAGE_WPA_SUPPLICANT_CTRL_IFACE=y
+# BR2_PACKAGE_WPA_SUPPLICANT_DBUS is not set
+
+#
+# emlog needs a Linux kernel to be built
+#
+BR2_PACKAGE_INITSCRIPTS=y
+
+#
+# iotop depends on python or python3
+#
+# BR2_PACKAGE_IPRUTILS is not set
+# BR2_PACKAGE_IRQBALANCE is not set
+# BR2_PACKAGE_KEYUTILS is not set
+BR2_PACKAGE_KMOD=y
+
+#
+# unscd needs a glibc toolchain
+#
+BR2_PACKAGE_UTIL_LINUX=y
+BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y
+# BR2_PACKAGE_UTIL_LINUX_LIBFDISK is not set
+# BR2_PACKAGE_UTIL_LINUX_LIBMOUNT is not set
+# BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS is not set
+BR2_PACKAGE_UTIL_LINUX_LIBUUID=y
+
+#
+# su needs a uClibc or glibc toolchain w/ wchar, locale, dynamic library
+#
+BR2_PACKAGE_UTIL_LINUX_UUIDD=y
+
+#
+# Filesystem images
+#
+BR2_TARGET_ROOTFS_EXT2=y
+# BR2_TARGET_ROOTFS_EXT2_2r0 is not set
+# BR2_TARGET_ROOTFS_EXT2_2r1 is not set
+# BR2_TARGET_ROOTFS_EXT2_3 is not set
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_GEN=4
+BR2_TARGET_ROOTFS_EXT2_REV=1
+BR2_TARGET_ROOTFS_EXT2_LABEL="rootfs"
+BR2_TARGET_ROOTFS_EXT2_SIZE="200M"
+BR2_TARGET_ROOTFS_EXT2_INODES=0
+BR2_TARGET_ROOTFS_EXT2_RESBLKS=5
+BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS="-O ^64bit"
+BR2_TARGET_ROOTFS_EXT2_NONE=y
+
+#
+# initramfs needs a Linux kernel to be built
+#
+BR2_TARGET_ROOTFS_TAR=y
+BR2_TARGET_ROOTFS_TAR_XZ=y
+BR2_TARGET_ROOTFS_TAR_OPTIONS=""
+
+#
+# Host utilities
+#
+BR2_PACKAGE_HOST_E2FSPROGS=y
+BR2_PACKAGE_HOST_UTIL_LINUX=y
+
+#
+# Legacy options removed in 2019.11
+#
+BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS=""
+
+#
+# Legacy options removed in 2017.08
+#
+# BR2_TARGET_GRUB is not set
+# BR2_PACKAGE_SIMICSFS is not set
+# BR2_BINUTILS_VERSION_2_26_X is not set
+BR2_XTENSA_OVERLAY_DIR=""
+BR2_XTENSA_CUSTOM_NAME=""
+# BR2_PACKAGE_HOST_MKE2IMG is not set
+BR2_TARGET_ROOTFS_EXT2_BLOCKS=0
+BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES=0
+
+#
+# Legacy options removed in 2017.05
+#
+BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS=0
diff --git a/buildroot-2021.05/configs/cvitek_cv182x_defconfig b/buildroot-2021.05/configs/cvitek_cv182x_defconfig
new file mode 100644
index 000000000..4574b8bf4
--- /dev/null
+++ b/buildroot-2021.05/configs/cvitek_cv182x_defconfig
@@ -0,0 +1,96 @@
+BR2_arm=y
+BR2_cortex_a53=y
+BR2_ARM_FPU_NEON_VFPV4=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM=y
+BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
+BR2_TOOLCHAIN_EXTERNAL_GLIBC=y
+BR2_PACKAGE_HAS_TOOLCHAIN_EXTERNAL=y
+BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL="toolchain-external-linaro-arm"
+BR2_TOOLCHAIN_EXTERNAL_PREFIX="arm-linux-gnueabihf"
+
+BR2_TOOLCHAIN_EXTERNAL_GCC_6=y
+BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6=y
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
+# BR2_TOOLCHAIN_EXTERNAL_HAS_SSP_STRONG is not set
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
+BR2_TARGET_GENERIC_HOSTNAME="cvitek"
+BR2_TARGET_GENERIC_ISSUE="Welcome to CViTek"
+BR2_ROOTFS_OVERLAY="board/cvitek/cv1826/overlay-32"
+BR2_INIT_BUSYBOX=y
+BR2_PACKAGE_BUSYBOX=y
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+BR2_PACKAGE_INITSCRIPTS=y
+
+# for gdb
+BR2_PACKAGE_HOST_GDB=y
+BR2_PACKAGE_GDB=y
+BR2_PACKAGE_GDB_SERVER=y
+BR2_PACKAGE_GDB_DEBUGGER=y
+
+#for evtest
+BR2_PACKAGE_EVTEST=y
+
+# for ubus
+BR2_PACKAGE_UBUS=y
+# BR2_PACKAGE_UBUS_EXAMPLE=y
+
+# for zlog
+# BR2_PACKAGE_ZLOG=y
+
+# for alsa-utils
+BR2_PACKAGE_ALSA_LIB=y
+BR2_PACKAGE_ALSA_UTILS=y
+BR2_PACKAGE_ALSA_UTILS_ALSACTL=y
+BR2_PACKAGE_ALSA_UTILS_ALSAMIXER=y
+BR2_PACKAGE_ALSA_UTILS_AMIXER=y
+BR2_PACKAGE_ALSA_UTILS_APLAY=y
+
+# for bluetooth
+# BR2_PACKAGE_BLUEZ_ALSA=y
+# BR2_PACKAGE_BLUEZ_ALSA_HCITOP=y
+# BR2_PACKAGE_BLUEZ_ALSA_RFCOMM=y
+# BR2_PACKAGE_BLUEZ5_UTILS_OBEX=y
+# BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
+# BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL=y
+# BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH=y
+# BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS=y
+# BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL=y
+
+# add for ext4 filesystem
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_GEN=4
+BR2_TARGET_ROOTFS_EXT2_REV=1
+BR2_TARGET_ROOTFS_EXT2_LABEL="rootfs"
+BR2_TARGET_ROOTFS_EXT2_SIZE="200M"
+BR2_TARGET_ROOTFS_EXT2_INODES=0
+BR2_TARGET_ROOTFS_EXT2_RESBLKS=5
+BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS="-O ^64bit"
+BR2_TARGET_ROOTFS_EXT2_NONE=y
+
+# audio
+BR2_PACKAGE_ALSA_UTILS=y
+BR2_PACKAGE_ALSA_UTILS_APLAY=y
+BR2_PACKAGE_ALSA_PLUGINS=y
+
+# for mtp
+BR2_PACKAGE_UBUNTU_MTP=y
+
+# add qt5 support
+BR2_PACKAGE_QT5=y
+BR2_PACKAGE_QT5BASE_WIDGETS=y
+BR2_PACKAGE_QT5BASE_TSLIB=y
+BR2_PACKAGE_QT5MULTIMEDIA=y
+BR2_PACKAGE_QT5XMLPATTERNS=y
+
+# for emmc tool
+BR2_USE_MMU=y
+BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y
+BR2_PACKAGE_UTIL_LINUX_LIBUUID=y
+BR2_PACKAGE_E2FSPROGS=y
+BR2_PACKAGE_UTIL_LINUX=y
+BR2_PACKAGE_UTIL_LINUX_UUIDD=y
+BR2_PACKAGE_PARTED=y
+BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
+
diff --git a/buildroot-2021.05/configs/cvitek_cv182x_recovery_defconfig b/buildroot-2021.05/configs/cvitek_cv182x_recovery_defconfig
new file mode 100644
index 000000000..86f52798f
--- /dev/null
+++ b/buildroot-2021.05/configs/cvitek_cv182x_recovery_defconfig
@@ -0,0 +1,26 @@
+BR2_arm=y
+BR2_cortex_a53=y
+BR2_ARM_FPU_NEON_VFPV4=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM=y
+BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
+BR2_TOOLCHAIN_EXTERNAL_GLIBC=y
+BR2_PACKAGE_HAS_TOOLCHAIN_EXTERNAL=y
+BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL="toolchain-external-linaro-arm"
+BR2_TOOLCHAIN_EXTERNAL_PREFIX="arm-linux-gnueabihf"
+
+BR2_TOOLCHAIN_EXTERNAL_GCC_6=y
+BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6=y
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
+# BR2_TOOLCHAIN_EXTERNAL_HAS_SSP_STRONG is not set
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
+BR2_TARGET_GENERIC_HOSTNAME="cvitek"
+BR2_TARGET_GENERIC_ISSUE="Welcome to CViTek"
+BR2_ROOTFS_OVERLAY="board/cvitek/cv1826/recovery"
+BR2_INIT_BUSYBOX=y
+BR2_PACKAGE_BUSYBOX=y
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+BR2_PACKAGE_INITSCRIPTS=y
+
+BR2_TARGET_ROOTFS_CPIO=y
+BR2_TARGET_ROOTFS_CPIO_GZIP=y
diff --git a/buildroot-2021.05/package/busybox/busybox.config b/buildroot-2021.05/package/busybox/busybox.config
index 1ea810e5b..61f5a1ecb 100644
--- a/buildroot-2021.05/package/busybox/busybox.config
+++ b/buildroot-2021.05/package/busybox/busybox.config
@@ -39,7 +39,7 @@ CONFIG_PLATFORM_LINUX=y
#
# Build Options
#
-# CONFIG_STATIC is not set
+CONFIG_STATIC=y
# CONFIG_PIE is not set
# CONFIG_NOMMU is not set
# CONFIG_BUILD_LIBBUSYBOX is not set
@@ -131,7 +131,7 @@ CONFIG_FEATURE_HWIB=y
# CONFIG_FEATURE_SEAMLESS_XZ is not set
# CONFIG_FEATURE_SEAMLESS_LZMA is not set
# CONFIG_FEATURE_SEAMLESS_BZ2 is not set
-# CONFIG_FEATURE_SEAMLESS_GZ is not set
+CONFIG_FEATURE_SEAMLESS_GZ=y
# CONFIG_FEATURE_SEAMLESS_Z is not set
CONFIG_AR=y
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
@@ -169,10 +169,10 @@ CONFIG_LZOPCAT=y
CONFIG_TAR=y
CONFIG_FEATURE_TAR_LONG_OPTIONS=y
CONFIG_FEATURE_TAR_CREATE=y
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
+CONFIG_FEATURE_TAR_AUTODETECT=y
CONFIG_FEATURE_TAR_FROM=y
# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y
CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
CONFIG_FEATURE_TAR_TO_COMMAND=y
# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
diff --git a/buildroot-2021.05/package/freetype/0001-fix-TOP_DIR-value-error-for-CVITEK-platform.patch b/buildroot-2021.05/package/freetype/0001-fix-TOP_DIR-value-error-for-CVITEK-platform.patch
new file mode 100644
index 000000000..d361b5c57
--- /dev/null
+++ b/buildroot-2021.05/package/freetype/0001-fix-TOP_DIR-value-error-for-CVITEK-platform.patch
@@ -0,0 +1,26 @@
+From 194c79ae3fe12ea16165874b61f8a0cce9bf1c73 Mon Sep 17 00:00:00 2001
+From: gaotianyu
+Date: Fri, 22 Oct 2021 11:43:23 +0800
+Subject: [PATCH] fix TOP_DIR value error beacause of CVITEK platform
+
+Signed-off-by: gaotianyu
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index e1d1469..45cd159 100644
+--- a/Makefile
++++ b/Makefile
+@@ -21,7 +21,7 @@ PROJECT_TITLE := FreeType
+ # The variable TOP_DIR holds the path to the topmost directory in the project
+ # engine source hierarchy. If it is not defined, default it to `.'.
+ #
+-TOP_DIR ?= .
++TOP_DIR := .
+
+ # The variable OBJ_DIR gives the location where object files and the
+ # FreeType library are built.
+--
+2.17.1
+
diff --git a/buildroot-2021.05/package/qt5/qt5base/qt5base.mk b/buildroot-2021.05/package/qt5/qt5base/qt5base.mk
index 84e9fa4ed..d750d9a4b 100644
--- a/buildroot-2021.05/package/qt5/qt5base/qt5base.mk
+++ b/buildroot-2021.05/package/qt5/qt5base/qt5base.mk
@@ -43,6 +43,9 @@ QT5BASE_CFLAGS += -O0
QT5BASE_CXXFLAGS += -O0
endif
+QT5BASE_CFLAGS += -march=armv8-a+crc
+QT5BASE_CXXFLAGS += -march=armv8-a+crc
+
ifeq ($(BR2_X86_CPU_HAS_SSE2),)
QT5BASE_CONFIGURE_OPTS += -no-sse2
else ifeq ($(BR2_X86_CPU_HAS_SSE3),)
diff --git a/buildroot-2021.05/package/zlog/0001-mod-if-DEBUG-equal-0-then-enable-debug-info-output.patch b/buildroot-2021.05/package/zlog/0001-mod-if-DEBUG-equal-0-then-enable-debug-info-output.patch
new file mode 100644
index 000000000..6e4f44518
--- /dev/null
+++ b/buildroot-2021.05/package/zlog/0001-mod-if-DEBUG-equal-0-then-enable-debug-info-output.patch
@@ -0,0 +1,26 @@
+From 424d090edb02221a8f78695632d9489a37e83971 Mon Sep 17 00:00:00 2001
+From: gaotianyu
+Date: Sun, 17 Oct 2021 14:55:51 +0800
+Subject: [PATCH] mod: if DEBUG equal 0 then enable debug info output
+
+Signed-off-by: gaotianyu
+---
+ src/makefile | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/makefile b/src/makefile
+index 4ece5b1..465df30 100644
+--- a/src/makefile
++++ b/src/makefile
+@@ -33,7 +33,7 @@ ZLOG_MINOR=2
+ CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
+ OPTIMIZATION?=-O2
+ WARNINGS=-Wall -Wstrict-prototypes -fwrapv
+-DEBUG?= -g -ggdb
++DEBUG:= -g -ggdb
+ REAL_CFLAGS=$(OPTIMIZATION) -fPIC -pthread $(CFLAGS) $(WARNINGS) $(DEBUG)
+ REAL_LDFLAGS=$(LDFLAGS) -pthread
+
+--
+2.17.1
+
diff --git a/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in b/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in
index beb38609c..ccba1733e 100644
--- a/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in
+++ b/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in
@@ -4,7 +4,7 @@ comment "Linaro toolchains available for Cortex-A + EABIhf"
depends on !BR2_STATIC_LIBS
config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
- bool "Linaro ARM 2018.05"
+ bool "Linaro ARM 2017.05"
depends on BR2_arm
depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8A
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
@@ -14,14 +14,14 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
select BR2_TOOLCHAIN_HAS_SSP
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
select BR2_INSTALL_LIBSTDCPP
- select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
- select BR2_TOOLCHAIN_GCC_AT_LEAST_7
+ select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
+ select BR2_TOOLCHAIN_GCC_AT_LEAST_6
select BR2_TOOLCHAIN_HAS_FORTRAN
select BR2_TOOLCHAIN_HAS_OPENMP
help
Linaro toolchain for the ARM architecture. It uses Linaro
- GCC 2018.05 (based on gcc 7.3.1), Linaro GDB 2018.05 (based on
- GDB 8.1), glibc 2.25, Binutils 2018.05 (based on 2.28). It
+ GCC 2017.05 (based on gcc 6.3.1), Linaro GDB 2017.05 (based on
+ GDB 8.1), glibc 2.25, Binutils 2017.05 (based on 2.28). It
generates code that runs on all Cortex-A profile devices,
but tuned for the Cortex-A9. The code generated is Thumb 2,
with the hard floating point calling convention, and uses
diff --git a/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash b/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash
index bd09cb5a8..4d4fbf38f 100644
--- a/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash
+++ b/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash
@@ -1,3 +1,2 @@
# Locally calculated
-sha256 0613b5be14eb7d50a772bbd72069c428558e6e53fa5fce7201d75a13a475ffff gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar.xz
-sha256 7248bf105d0d468887a9b8a7120bb281ac8ad0223d9cb3d00dc7c2d498485d91 gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz
+sha256 926b791cd689e8573c3cd912d10e30b7d12a08bb16b9b9eaf598e2074052dc5f gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
diff --git a/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk b/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk
index fda356bce..3ac1691cf 100644
--- a/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk
+++ b/buildroot-2021.05/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk
@@ -4,13 +4,9 @@
#
################################################################################
-TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION = 2018.05
-TOOLCHAIN_EXTERNAL_LINARO_ARM_SITE = https://releases.linaro.org/components/toolchain/binaries/7.3-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)/arm-linux-gnueabihf
+TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION = 2017.05
+TOOLCHAIN_EXTERNAL_LINARO_ARM_SITE = https://releases.linaro.org/components/toolchain/binaries/6.3-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)/arm-linux-gnueabihf
-ifeq ($(HOSTARCH),x86)
-TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-i686_arm-linux-gnueabihf.tar.xz
-else
-TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-x86_64_arm-linux-gnueabihf.tar.xz
-endif
+TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-6.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-x86_64_arm-linux-gnueabihf.tar.xz
$(eval $(toolchain-external-package))