diff --git a/build/Makefile b/build/Makefile
index cb5848169..c6077db58 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -90,13 +90,6 @@ 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
-# Set CONFIG_BOOTLOGO config in defconfig
-ifeq (${ENABLE_BOOTLOGO},1)
-uboot_bootlogo_action := ${Q}sed -i "s/CONFIG_BOOTLOGO=n/CONFIG_BOOTLOGO=y/g" ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/.config
-else
-uboot_bootlogo_action := ${Q}sed -i "s/CONFIG_BOOTLOGO=y/CONFIG_BOOTLOGO=n/g" ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/.config
-endif
-
# Set CONFIG_USE_4K_ERASE_SIZE_FOR_JFFS2 config in defconfig
ifeq (${CONFIG_USE_4K_ERASE_SIZE_FOR_JFFS2},y)
uboot_erasesize_set := ${Q}sed -in "s/.*CONFIG_SPI_FLASH_USE_4K_SECTORS is not set/CONFIG_SPI_FLASH_USE_4K_SECTORS=y/g" ${UBOOT_PATH}/${UBOOT_OUTPUT_FOLDER}/.config
@@ -140,7 +133,6 @@ 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)
$(call uboot_erasesize_set)
endif
diff --git a/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/partition/partition_sd.xml b/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/partition/partition_sd.xml
index 9a2a33aa4..792c72510 100644
--- a/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/partition/partition_sd.xml
+++ b/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/partition/partition_sd.xml
@@ -1,4 +1,5 @@
+
diff --git a/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/u-boot/cvitek_sg2000_milkv_duos_glibc_arm64_sd_defconfig b/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/u-boot/cvitek_sg2000_milkv_duos_glibc_arm64_sd_defconfig
index 98e741664..83a627fb7 100644
--- a/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/u-boot/cvitek_sg2000_milkv_duos_glibc_arm64_sd_defconfig
+++ b/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/u-boot/cvitek_sg2000_milkv_duos_glibc_arm64_sd_defconfig
@@ -1,6 +1,7 @@
CONFIG_ARM=y
CONFIG_SYS_MALLOC_F_LEN=0x2000
CONFIG_NR_DRAM_BANKS=1
+CONFIG_DM_GPIO=y
CONFIG_DEFAULT_DEVICE_TREE="cv181x_asic"
CONFIG_IDENT_STRING=" cvitek_cv181x"
CONFIG_ARMV8_SET_SMPEN=y
@@ -19,15 +20,19 @@ CONFIG_SYS_PROMPT="soph# "
# CONFIG_CMD_LZMADEC is not set
# CONFIG_CMD_UNLZ4 is not set
# CONFIG_CMD_UNZIP is not set
+CONFIG_CMD_GPIO=y
+CONFIG_BOOTLOGO=y
# CONFIG_CMD_LOADS is not set
CONFIG_CMD_MMC=y
# CONFIG_CMD_ITEST is not set
CONFIG_CMD_CACHE=y
+CONFIG_CMD_CVI_VO=y
# CONFIG_ISO_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
CONFIG_OF_CONTROL=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_DM=y
+CONFIG_DWAPB_GPIO=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_MMC_SDHCI_CVITEK=y
@@ -37,6 +42,10 @@ CONFIG_DM_ETH=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_SYS_NS16550=y
CONFIG_SPI=y
+CONFIG_DM_VIDEO=y
+CONFIG_BMP_16BPP=y
+CONFIG_BMP_24BPP=y
+CONFIG_BMP_32BPP=y
CONFIG_LZ4=y
CONFIG_LZMA=y
# CONFIG_TOOLS_LIBCRYPTO is not set
diff --git a/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/partition/partition_sd.xml b/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/partition/partition_sd.xml
index 1fbea7300..2cfc1e382 100644
--- a/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/partition/partition_sd.xml
+++ b/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/partition/partition_sd.xml
@@ -1,4 +1,5 @@
+
diff --git a/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/u-boot/cvitek_sg2000_milkv_duos_musl_riscv64_sd_defconfig b/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/u-boot/cvitek_sg2000_milkv_duos_musl_riscv64_sd_defconfig
index c93019c56..122e10593 100644
--- a/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/u-boot/cvitek_sg2000_milkv_duos_musl_riscv64_sd_defconfig
+++ b/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/u-boot/cvitek_sg2000_milkv_duos_musl_riscv64_sd_defconfig
@@ -1,6 +1,7 @@
CONFIG_RISCV=y
CONFIG_SYS_MALLOC_F_LEN=0x2000
CONFIG_NR_DRAM_BANKS=1
+CONFIG_DM_GPIO=y
CONFIG_DEFAULT_DEVICE_TREE="soph_asic"
CONFIG_IDENT_STRING="soph"
CONFIG_ARCH_RV64I=y
@@ -18,13 +19,17 @@ CONFIG_SYS_PROMPT="soph# "
# CONFIG_CMD_LZMADEC is not set
# CONFIG_CMD_UNLZ4 is not set
# CONFIG_CMD_UNZIP is not set
+CONFIG_CMD_GPIO=y
+CONFIG_BOOTLOGO=y
# CONFIG_CMD_LOADS is not set
CONFIG_CMD_MMC=y
# CONFIG_CMD_ITEST is not set
CONFIG_CMD_CACHE=y
+CONFIG_CMD_CVI_VO=y
# CONFIG_ISO_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_DWAPB_GPIO=y
CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
@@ -35,6 +40,10 @@ CONFIG_DM_ETH=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_SYS_NS16550=y
CONFIG_SPI=y
+CONFIG_DM_VIDEO=y
+CONFIG_BMP_16BPP=y
+CONFIG_BMP_24BPP=y
+CONFIG_BMP_32BPP=y
CONFIG_LZ4=y
CONFIG_LZMA=y
# CONFIG_TOOLS_LIBCRYPTO is not set
diff --git a/build/common_functions.sh b/build/common_functions.sh
index fc38dc5c3..f2157e9a7 100644
--- a/build/common_functions.sh
+++ b/build/common_functions.sh
@@ -198,9 +198,10 @@ function copy_tools
command rm -rf "$OUTPUT_DIR"/tools
command mkdir -p "$OUTPUT_DIR"/tools/
command cp -rf "$TOOLS_PATH"/common/usb_dl/ "$OUTPUT_DIR"/tools/
- if [ "$ENABLE_BOOTLOGO" -eq 1 ];then
- python3 "$IMGTOOL_PATH"/raw2cimg.py "$BOOTLOGO_PATH" "$OUTPUT_DIR" "$FLASH_PARTITION_XML"
- fi
+
+ # All targets are run, and other functions decide whether to use it
+ python3 "$IMGTOOL_PATH"/raw2cimg.py "$BOOTLOGO_PATH" "$OUTPUT_DIR" "$FLASH_PARTITION_XML"
+
command cp --remove-destination "$FLASH_PARTITION_XML" "$OUTPUT_DIR"/
fi
)}
diff --git a/build/envsetup_milkv.sh b/build/envsetup_milkv.sh
index 516a26645..299347c21 100644
--- a/build/envsetup_milkv.sh
+++ b/build/envsetup_milkv.sh
@@ -873,6 +873,14 @@ function cvi_setup_env()
export BR_DEFCONFIG=${BR_BOARD}_defconfig
export BR_ROOTFS_DIR="$OUTPUT_DIR"/tmp-rootfs
export BR_MV_VENDOR_DIR=${BR_DIR}/board/${MV_VENDOR}
+
+ # Check if bootlogo is enabled in the u-boot defconfig
+ UBOOT_DEFCONFIG="${BUILD_PATH}/boards/${CHIP_ARCH,,}/${PROJECT_FULLNAME}/u-boot/${BRAND}_${PROJECT_FULLNAME}_defconfig"
+ if grep -q "CONFIG_BOOTLOGO=y" ${UBOOT_DEFCONFIG}; then
+ ENABLE_BOOTLOGO=1
+ else
+ ENABLE_BOOTLOGO=0
+ fi
}
cvi_print_env()
diff --git a/device/milkv-duos-glibc-arm64-sd/genimage.cfg b/device/milkv-duos-glibc-arm64-sd/genimage.cfg
index c9d19c6b6..651f408a0 100644
--- a/device/milkv-duos-glibc-arm64-sd/genimage.cfg
+++ b/device/milkv-duos-glibc-arm64-sd/genimage.cfg
@@ -23,7 +23,12 @@ image milkv-duos-glibc-arm64-sd.img {
partition boot {
partition-type = 0xC
bootable = "true"
- image = "boot.vfat"
+ image = "boot.vfat"
+ }
+
+ partition logo {
+ image = "logo.jpg"
+ size = 2M
}
partition rootfs {
diff --git a/device/milkv-duos-musl-riscv64-sd/genimage.cfg b/device/milkv-duos-musl-riscv64-sd/genimage.cfg
index 5e7055ccf..5f1ddfe90 100644
--- a/device/milkv-duos-musl-riscv64-sd/genimage.cfg
+++ b/device/milkv-duos-musl-riscv64-sd/genimage.cfg
@@ -26,6 +26,11 @@ image milkv-duos-musl-riscv64-sd.img {
image = "boot.vfat"
}
+ partition logo {
+ image = "logo.jpg"
+ size = 2M
+ }
+
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"