diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c index dcfb8878c63d7e20480ff6df2e03944edcf705a2..abdd580c012bf51d4df30a4ecebbe38d08404bb4 100644 --- a/board/xilinx/versal/board.c +++ b/board/xilinx/versal/board.c @@ -106,6 +106,10 @@ int board_late_init(void) puts("Bootmode: "); switch (bootmode) { + case USB_MODE: + puts("USB_MODE\n"); + mode = "dfu_usb"; + break; case JTAG_MODE: puts("JTAG_MODE\n"); mode = "jtag pxe dhcp"; diff --git a/include/configs/xilinx_versal.h b/include/configs/xilinx_versal.h index 2f1cddbb6f0747df2871f6cf06409cbfdb85258a..67f5739555f3995b7107acfc8695b10cb9c8b73c 100644 --- a/include/configs/xilinx_versal.h +++ b/include/configs/xilinx_versal.h @@ -123,10 +123,21 @@ #define BOOTENV_DEV_NAME_JTAG(devtypeu, devtypel, instance) \ "jtag " +#define BOOT_TARGET_DEVICES_DFU_USB(func) func(DFU_USB, dfu_usb, 0) + +#define BOOTENV_DEV_DFU_USB(devtypeu, devtypel, instance) \ + "bootcmd_dfu_usb=setenv dfu_alt_info boot.scr ram $scriptaddr " \ + "$script_size_f; dfu 0 ram 0 && source $scriptaddr; " \ + "echo SCRIPT FAILED: continuing...;\0" + +#define BOOTENV_DEV_NAME_DFU_USB(devtypeu, devtypel, instance) \ + "dfu_usb " + #define BOOT_TARGET_DEVICES(func) \ BOOT_TARGET_DEVICES_JTAG(func) \ BOOT_TARGET_DEVICES_MMC(func) \ BOOT_TARGET_DEVICES_XSPI(func) \ + BOOT_TARGET_DEVICES_DFU_USB(func) \ func(PXE, pxe, na) \ func(DHCP, dhcp, na)