diff mbox series

[5/6] xilinx: zynq: Add usb dfu/thor distro boot support

Message ID 55bfea18c82a96352728a16fe320d3f5c4b41deb.1617178642.git.michal.simek@xilinx.com
State New
Delegated to: Michal Simek
Headers show
Series xilinx: Align usb dfu boot mode and bootcommand with distroboot | expand

Commit Message

Michal Simek March 31, 2021, 8:17 a.m. UTC
From: T Karthik Reddy <t.karthik.reddy@xilinx.com>

Add support for usb dfu & thor to distro boot on zynq platform.
Add 60s timeout of dfu-utils to start transaction. Remove
DFU_ALT_INFO_RAM as we use bootcmd_usb_dfu instead of dfu_ram.
Remove DFU_ALT_INFO_MMC as part of distro boot cleanup.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

 include/configs/syzygy_hub.h  |  1 -
 include/configs/topic_miami.h |  1 -
 include/configs/zynq-common.h | 61 +++++++++++++++++------------------
 3 files changed, 30 insertions(+), 33 deletions(-)
diff mbox series

Patch

diff --git a/include/configs/syzygy_hub.h b/include/configs/syzygy_hub.h
index e31b77c0c0b7..7af7b08eb485 100644
--- a/include/configs/syzygy_hub.h
+++ b/include/configs/syzygy_hub.h
@@ -58,7 +58,6 @@ 
 	"jtagboot=echo TFTPing FIT to RAM... && " \
 		"tftpboot ${load_addr} ${fit_image} && " \
 		"bootm ${load_addr}\0" \
-		DFU_ALT_INFO \
 		BOOTENV
 
 #include <configs/zynq-common.h>
diff --git a/include/configs/topic_miami.h b/include/configs/topic_miami.h
index 010d28ac86f7..c12cd7ccad8f 100644
--- a/include/configs/topic_miami.h
+++ b/include/configs/topic_miami.h
@@ -49,7 +49,6 @@ 
 			"${devicetree_addr}; " \
 	"fi\0"
   /* Note that addresses here should match the addresses in the env */
-# undef DFU_ALT_INFO
 # define DFU_ALT_INFO \
 	"dfu_alt_info=" \
 	"uImage ram 0x2080000 0x500000;" \
diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
index 1607a8d06518..39035f8bebca 100644
--- a/include/configs/zynq-common.h
+++ b/include/configs/zynq-common.h
@@ -61,36 +61,6 @@ 
 # define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x600000
 # define DFU_DEFAULT_POLL_TIMEOUT	300
 # define CONFIG_THOR_RESET_OFF
-# define DFU_ALT_INFO_RAM \
-	"dfu_ram_info=" \
-	"setenv dfu_alt_info " \
-	"${kernel_image} ram 0x3000000 0x500000\\\\;" \
-	"${devicetree_image} ram 0x2A00000 0x20000\\\\;" \
-	"${ramdisk_image} ram 0x2000000 0x600000\0" \
-	"dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
-	"thor_ram=run dfu_ram_info && thordown 0 ram 0\0"
-
-# if defined(CONFIG_MMC_SDHCI_ZYNQ)
-#  define DFU_ALT_INFO_MMC \
-	"dfu_mmc_info=" \
-	"setenv dfu_alt_info " \
-	"${kernel_image} fat 0 1\\\\;" \
-	"${devicetree_image} fat 0 1\\\\;" \
-	"${ramdisk_image} fat 0 1\0" \
-	"dfu_mmc=run dfu_mmc_info && dfu 0 mmc 0\0" \
-	"thor_mmc=run dfu_mmc_info && thordown 0 mmc 0\0"
-
-#  define DFU_ALT_INFO	\
-	DFU_ALT_INFO_RAM \
-	DFU_ALT_INFO_MMC
-# else
-#  define DFU_ALT_INFO	\
-	DFU_ALT_INFO_RAM
-# endif
-#endif
-
-#if !defined(DFU_ALT_INFO)
-# define DFU_ALT_INFO
 #endif
 
 /* enable preboot to be loaded before CONFIG_BOOTDELAY */
@@ -180,12 +150,42 @@ 
 #define BOOTENV_DEV_NAME_JTAG(devtypeu, devtypel, instance) \
 	"jtag "
 
+#define BOOT_TARGET_DEVICES_USB_DFU(func) \
+	func(USB_DFU, usb_dfu, 0) func(USB_DFU, usb_dfu, 1)
+
+#define BOOTENV_DEV_USB_DFU(devtypeu, devtypel, instance) \
+	"bootcmd_" #devtypel #instance "=setenv dfu_alt_info boot.scr ram " \
+	"$scriptaddr $script_size_f && " \
+	"dfu " #instance " ram " #instance " 60 && " \
+	"echo DFU" #instance ": Trying to boot script at ${scriptaddr} && " \
+	"source ${scriptaddr}; " \
+	"echo DFU" #instance ": SCRIPT FAILED: continuing...;\0"
+
+#define BOOTENV_DEV_NAME_USB_DFU(devtypeu, devtypel, instance) \
+	""
+
+#define BOOT_TARGET_DEVICES_USB_THOR(func) \
+	func(USB_THOR, usb_thor, 0) func(USB_THOR, usb_thor, 1)
+
+#define BOOTENV_DEV_USB_THOR(devtypeu, devtypel, instance) \
+	"bootcmd_" #devtypel #instance "=setenv dfu_alt_info boot.scr ram " \
+	"$scriptaddr $script_size_f && " \
+	"thordown " #instance " ram " #instance " && " \
+	"echo THOR" #instance ": Trying to boot script at ${scriptaddr} && " \
+	"source ${scriptaddr}; " \
+	"echo THOR" #instance ": SCRIPT FAILED: continuing...;\0"
+
+#define BOOTENV_DEV_NAME_USB_THOR(devtypeu, devtypel, instance) \
+	""
+
 #define BOOT_TARGET_DEVICES(func) \
 	BOOT_TARGET_DEVICES_JTAG(func) \
 	BOOT_TARGET_DEVICES_MMC(func) \
 	BOOT_TARGET_DEVICES_QSPI(func) \
 	BOOT_TARGET_DEVICES_NAND(func) \
 	BOOT_TARGET_DEVICES_NOR(func) \
+	BOOT_TARGET_DEVICES_USB_DFU(func) \
+	BOOT_TARGET_DEVICES_USB_THOR(func) \
 	BOOT_TARGET_DEVICES_USB(func) \
 	BOOT_TARGET_DEVICES_PXE(func) \
 	BOOT_TARGET_DEVICES_DHCP(func)
@@ -203,7 +203,6 @@ 
 	"kernel_addr_r=0x2000000\0"     \
 	"scriptaddr=0x3000000\0"        \
 	"ramdisk_addr_r=0x3100000\0"    \
-	DFU_ALT_INFO \
 	BOOTENV
 #endif