diff --git a/build/boards/cv181x/cv1812cp_licheerv_nano_sd/u-boot/cvitek_cv1812cp_licheerv_nano_sd_defconfig b/build/boards/cv181x/cv1812cp_licheerv_nano_sd/u-boot/cvitek_cv1812cp_licheerv_nano_sd_defconfig index 079a0525c..6754e035c 100644 --- a/build/boards/cv181x/cv1812cp_licheerv_nano_sd/u-boot/cvitek_cv1812cp_licheerv_nano_sd_defconfig +++ b/build/boards/cv181x/cv1812cp_licheerv_nano_sd/u-boot/cvitek_cv1812cp_licheerv_nano_sd_defconfig @@ -59,3 +59,10 @@ CONFIG_LZ4=y CONFIG_LZMA=y # CONFIG_TOOLS_LIBCRYPTO is not set CONFIG_ENV_IS_NOWHERE=y +CONFIG_USB=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DOWNLOAD=y +CONFIG_G_DNL_MANUFACTURER="sipeed" +CONFIG_G_DNL_PRODUCT_NUM="0x0123" +CONFIG_G_DNL_VENDOR_NUM="0x4567" diff --git a/u-boot-2021.10/arch/riscv/include/asm/mach-types.h b/u-boot-2021.10/arch/riscv/include/asm/mach-types.h new file mode 100644 index 000000000..e69de29bb diff --git a/u-boot-2021.10/cmd/cvi_update.c b/u-boot-2021.10/cmd/cvi_update.c index 4060d7916..ea49f951f 100644 --- a/u-boot-2021.10/cmd/cvi_update.c +++ b/u-boot-2021.10/cmd/cvi_update.c @@ -411,6 +411,7 @@ static int do_cvi_update(struct cmd_tbl *cmdtp, int flag, int argc, int ret = 1; uint32_t usb_pid = 0; + /* if (argc == 1) { update_magic = readl((unsigned int *)BOOT_SOURCE_FLAG_ADDR); if (update_magic == UART_UPDATE_MAGIC) { @@ -428,6 +429,19 @@ static int do_cvi_update(struct cmd_tbl *cmdtp, int flag, int argc, } else { printf("Usage:\n%s\n", cmdtp->usage); } + */ + run_command("env default -a", 0); + usb_pid = in_be32(UBOOT_PID_SRAM_ADDR); + usb_pid = bcd2hex4(usb_pid); + ret = _usb_update(usb_pid); + if (ret < 0) { + run_command("env default -a", 0); + ret = _uart_update(); + if (ret < 0) { + run_command("env default -a", 0); + ret = _storage_update(sd_dl); + } + } return ret; #else diff --git a/u-boot-2021.10/drivers/usb/gadget/dwc2_udc_otg.c b/u-boot-2021.10/drivers/usb/gadget/dwc2_udc_otg.c index 2f3181444..19dcd942b 100644 --- a/u-boot-2021.10/drivers/usb/gadget/dwc2_udc_otg.c +++ b/u-boot-2021.10/drivers/usb/gadget/dwc2_udc_otg.c @@ -40,6 +40,7 @@ #include #include #include +#include #include @@ -455,7 +456,8 @@ static void reconfig_usbd(struct dwc2_udc *dev) { /* 2. Soft-reset OTG Core and then unreset again. */ int i; - unsigned int uTemp = writel(CORE_SOFT_RESET, ®->grstctl); + unsigned int uTemp; + writel(CORE_SOFT_RESET, ®->grstctl); uint32_t dflt_gusbcfg; uint32_t rx_fifo_sz, tx_fifo_sz, np_tx_fifo_sz; u32 max_hw_ep; diff --git a/u-boot-2021.10/include/configs/cv181x-asic.h b/u-boot-2021.10/include/configs/cv181x-asic.h index 70c6e54bf..b9ea296d7 100644 --- a/u-boot-2021.10/include/configs/cv181x-asic.h +++ b/u-boot-2021.10/include/configs/cv181x-asic.h @@ -169,11 +169,11 @@ */ #ifdef CONFIG_USB_GADGET -#define CONFIG_USB_FUNCTION_FASTBOOT -#define CONFIG_USB_GADGET_DOWNLOAD -#define CONFIG_G_DNL_MANUFACTURER "Cvitek" -#define CONFIG_G_DNL_VENDOR_NUM 0x18d1 -#define CONFIG_G_DNL_PRODUCT_NUM 0x4ee0 +//#define CONFIG_USB_FUNCTION_FASTBOOT +//#define CONFIG_USB_GADGET_DOWNLOAD +//#define CONFIG_G_DNL_MANUFACTURER "Cvitek" +//#define CONFIG_G_DNL_VENDOR_NUM 0x18d1 +//#define CONFIG_G_DNL_PRODUCT_NUM 0x4ee0 #endif #define CONFIG_IPADDR 192.168.0.3 @@ -306,7 +306,7 @@ #define CONFIG_BOOTCOMMAND SHOWLOGOCMD "cvi_update || run norboot || run nandboot ||run emmcboot" #endif #else - #define CONFIG_BOOTCOMMAND SHOWLOGOCMD "run sdboot" + #define CONFIG_BOOTCOMMAND SHOWLOGOCMD "run sdboot || cvi_update" #endif #if defined(CONFIG_NAND_SUPPORT)