All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot
@ 2021-03-31  8:17 Michal Simek
  2021-03-31  8:17 ` [PATCH 1/6] cmd: dfu: Propagate error if dfu gadget fails Michal Simek
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Michal Simek @ 2021-03-31  8:17 UTC (permalink / raw)
  To: u-boot

Hi,

usb dfu was handled differently then other boot commands.
First of all fix usb dfu boot mode for zynqmp where usb boot
mode is not usb host but usb dfu.
Align also versal, zynq and zynqmp implementations to each other.

Thanks,
Michal


Michal Simek (2):
  cmd: dfu: Propagate error if dfu gadget fails
  xilinx: zynqmp: Remove dfu_ram_info setup

T Karthik Reddy (4):
  xilinx: zynqmp: Add usb dfu/thor distro boot support
  xilinx: versal: Add usb dfu/thor distro boot support
  xilinx: zynq: Add usb dfu/thor distro boot support
  xilinx: Enable DFU_TIMEOUT config

 board/xilinx/versal/board.c          |  2 +-
 board/xilinx/zynqmp/zynqmp.c         |  2 +-
 cmd/dfu.c                            |  2 +-
 configs/xilinx_versal_virt_defconfig |  1 +
 configs/xilinx_zynq_virt_defconfig   |  1 +
 configs/xilinx_zynqmp_virt_defconfig |  1 +
 include/configs/syzygy_hub.h         |  1 -
 include/configs/topic_miami.h        |  1 -
 include/configs/xilinx_versal.h      | 52 ++++++++++++------------
 include/configs/xilinx_zynqmp.h      | 49 ++++++++++++++--------
 include/configs/zynq-common.h        | 61 ++++++++++++++--------------
 11 files changed, 94 insertions(+), 79 deletions(-)

-- 
2.31.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/6] cmd: dfu: Propagate error if dfu gadget fails
  2021-03-31  8:17 [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot Michal Simek
@ 2021-03-31  8:17 ` Michal Simek
  2021-03-31  8:17 ` [PATCH 2/6] xilinx: zynqmp: Add usb dfu/thor distro boot support Michal Simek
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Michal Simek @ 2021-03-31  8:17 UTC (permalink / raw)
  To: u-boot

On systems without usb gadget dfu core fails which was reported by error
but command itself returns pass which breaks any usage in a script.
That's why propagate error from run_usb_dnl_gadget().

Fixes: 16297cfb2a20 ("usb: new board-specific USB init interface")
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

Before this patch

ZynqMP> run bootcmd_usb_dfu0
No USB device found
usb_gadget_initialize failed
DFU0: Trying to boot script at 0x20000000
Wrong image format for "source" command
DFU0: SCRIPT FAILED: continuing...

After
ZynqMP> run bootcmd_usb_dfu0
No USB device found
usb_gadget_initialize failed
DFU0: SCRIPT FAILED: continuing...

---
 cmd/dfu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cmd/dfu.c b/cmd/dfu.c
index ef4f897ce070..4a288f74c2c2 100644
--- a/cmd/dfu.c
+++ b/cmd/dfu.c
@@ -68,7 +68,7 @@ static int do_dfu(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 	int controller_index = simple_strtoul(usb_controller, NULL, 0);
 	bool retry = false;
 	do {
-		run_usb_dnl_gadget(controller_index, "usb_dnl_dfu");
+		ret = run_usb_dnl_gadget(controller_index, "usb_dnl_dfu");
 
 		if (dfu_reinit_needed) {
 			dfu_free_entities();
-- 
2.31.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/6] xilinx: zynqmp: Add usb dfu/thor distro boot support
  2021-03-31  8:17 [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot Michal Simek
  2021-03-31  8:17 ` [PATCH 1/6] cmd: dfu: Propagate error if dfu gadget fails Michal Simek
@ 2021-03-31  8:17 ` Michal Simek
  2021-03-31  8:17 ` [PATCH 3/6] xilinx: zynqmp: Remove dfu_ram_info setup Michal Simek
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Michal Simek @ 2021-03-31  8:17 UTC (permalink / raw)
  To: u-boot

From: T Karthik Reddy <t.karthik.reddy@xilinx.com>

In usb boot mode distro boot should select usb device as primary boot
device instead of usb host. So make usb dfu as primary boot device. But do
not list it in boot_targets as fallback option because it is not classic
mode for booting. Using 60s timeout by default should be enough time for
dfu-utils to start transaction. In case none needs this please change
timeout value in the command or disable CONFIG_DFU_TIMEOUT.

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

 board/xilinx/zynqmp/zynqmp.c         |  2 +-
 configs/xilinx_zynqmp_virt_defconfig |  1 +
 include/configs/xilinx_zynqmp.h      | 30 ++++++++++++++++++++++++++++
 3 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
index 4466717ad4fe..9bf0f4c33744 100644
--- a/board/xilinx/zynqmp/zynqmp.c
+++ b/board/xilinx/zynqmp/zynqmp.c
@@ -571,7 +571,7 @@ int board_late_init(void)
 	switch (bootmode) {
 	case USB_MODE:
 		puts("USB_MODE\n");
-		mode = "usb";
+		mode = "usb_dfu0 usb_dfu1";
 		env_set("modeboot", "usb_dfu_spl");
 		break;
 	case JTAG_MODE:
diff --git a/configs/xilinx_zynqmp_virt_defconfig b/configs/xilinx_zynqmp_virt_defconfig
index 6eb566e30df0..a399c1761949 100644
--- a/configs/xilinx_zynqmp_virt_defconfig
+++ b/configs/xilinx_zynqmp_virt_defconfig
@@ -83,6 +83,7 @@ CONFIG_SCSI_AHCI=y
 CONFIG_SATA_CEVA=y
 CONFIG_CLK_ZYNQMP=y
 CONFIG_DFU_TFTP=y
+CONFIG_DFU_TIMEOUT=y
 CONFIG_DFU_RAM=y
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_FLASH=y
diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
index 15ad4198a6be..87704ff63077 100644
--- a/include/configs/xilinx_zynqmp.h
+++ b/include/configs/xilinx_zynqmp.h
@@ -179,11 +179,41 @@
 #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_USB_DFU(func) \
+	BOOT_TARGET_DEVICES_USB_THOR(func) \
 	BOOT_TARGET_DEVICES_USB(func) \
 	BOOT_TARGET_DEVICES_SCSI(func) \
 	BOOT_TARGET_DEVICES_PXE(func) \
-- 
2.31.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/6] xilinx: zynqmp: Remove dfu_ram_info setup
  2021-03-31  8:17 [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot Michal Simek
  2021-03-31  8:17 ` [PATCH 1/6] cmd: dfu: Propagate error if dfu gadget fails Michal Simek
  2021-03-31  8:17 ` [PATCH 2/6] xilinx: zynqmp: Add usb dfu/thor distro boot support Michal Simek
@ 2021-03-31  8:17 ` Michal Simek
  2021-03-31  8:17 ` [PATCH 4/6] xilinx: versal: Add usb dfu/thor distro boot support Michal Simek
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Michal Simek @ 2021-03-31  8:17 UTC (permalink / raw)
  To: u-boot

The dfu ram info is wired in connection to Linux kernel and certain setup.
We should change this to be more generic as others command. That's why
using boot via script is the way to go.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

 include/configs/xilinx_zynqmp.h | 19 +------------------
 1 file changed, 1 insertion(+), 18 deletions(-)

diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
index 87704ff63077..36f3d962e417 100644
--- a/include/configs/xilinx_zynqmp.h
+++ b/include/configs/xilinx_zynqmp.h
@@ -55,18 +55,6 @@
 #define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
 #define DFU_DEFAULT_POLL_TIMEOUT	300
 #define CONFIG_THOR_RESET_OFF
-#define DFU_ALT_INFO_RAM \
-	"dfu_ram_info=" \
-	"setenv dfu_alt_info " \
-	"Image ram 80000 $kernel_size_r\\\\;" \
-	"system.dtb ram $fdt_addr_r $fdt_size_r\0" \
-	"dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
-	"thor_ram=run dfu_ram_info && thordown 0 ram 0\0" \
-	"dfu_ram_tftp=run dfu_ram_info && setenv updatefile boot && " \
-	"setenv loadaddr 10000000 && dfu tftp ram 0\0"
-
-#define DFU_ALT_INFO  \
-		DFU_ALT_INFO_RAM
 
 #ifndef CONFIG_SPL_BUILD
 # define PARTS_DEFAULT \
@@ -76,10 +64,6 @@
 #endif
 #endif
 
-#if !defined(DFU_ALT_INFO)
-# define DFU_ALT_INFO
-#endif
-
 #if !defined(PARTS_DEFAULT)
 # define PARTS_DEFAULT
 #endif
@@ -225,8 +209,7 @@
 #ifndef CONFIG_EXTRA_ENV_SETTINGS
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	ENV_MEM_LAYOUT_SETTINGS \
-	BOOTENV \
-	DFU_ALT_INFO
+	BOOTENV
 #endif
 
 /* SPL can't handle all huge variables - define just DFU */
-- 
2.31.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/6] xilinx: versal: Add usb dfu/thor distro boot support
  2021-03-31  8:17 [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot Michal Simek
                   ` (2 preceding siblings ...)
  2021-03-31  8:17 ` [PATCH 3/6] xilinx: zynqmp: Remove dfu_ram_info setup Michal Simek
@ 2021-03-31  8:17 ` Michal Simek
  2021-03-31  8:17 ` [PATCH 5/6] xilinx: zynq: " Michal Simek
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Michal Simek @ 2021-03-31  8:17 UTC (permalink / raw)
  To: u-boot

From: T Karthik Reddy <t.karthik.reddy@xilinx.com>

Change "dfu_usb" to "usb_dfu" for better representation and change
required macros. Add 60s timeout of dfu-utils to start transaction.
Add support for usb thor to distro boot. Remove DFU_ALT_INFO_RAM
as we use bootcmd_usb_dfu instead of dfu_ram.

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

 board/xilinx/versal/board.c     |  2 +-
 include/configs/xilinx_versal.h | 52 +++++++++++++++++----------------
 2 files changed, 28 insertions(+), 26 deletions(-)

diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
index 042f3ec4f3a0..806e09b49f1e 100644
--- a/board/xilinx/versal/board.c
+++ b/board/xilinx/versal/board.c
@@ -130,7 +130,7 @@ int board_late_init(void)
 	switch (bootmode) {
 	case USB_MODE:
 		puts("USB_MODE\n");
-		mode = "dfu_usb";
+		mode = "usb_dfu0 usb_dfu1";
 		break;
 	case JTAG_MODE:
 		puts("JTAG_MODE\n");
diff --git a/include/configs/xilinx_versal.h b/include/configs/xilinx_versal.h
index f1d2594f3b32..380f93a2f68e 100644
--- a/include/configs/xilinx_versal.h
+++ b/include/configs/xilinx_versal.h
@@ -50,20 +50,6 @@
 #define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
 #define DFU_DEFAULT_POLL_TIMEOUT	300
 #define CONFIG_THOR_RESET_OFF
-#define DFU_ALT_INFO_RAM \
-	"dfu_ram_info=" \
-	"setenv dfu_alt_info " \
-	"Image ram 80000 $kernel_size_r\\\\;" \
-	"system.dtb ram $fdt_addr_r $fdt_size_r\0" \
-	"dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
-	"thor_ram=run dfu_ram_info && thordown 0 ram 0\0"
-
-#define DFU_ALT_INFO  \
-		DFU_ALT_INFO_RAM
-#endif
-
-#if !defined(DFU_ALT_INFO)
-# define DFU_ALT_INFO
 #endif
 
 /* Ethernet driver */
@@ -129,23 +115,40 @@
 #define BOOTENV_DEV_NAME_JTAG(devtypeu, devtypel, instance) \
 	"jtag "
 
-#define BOOT_TARGET_DEVICES_DFU_USB(func)  func(DFU_USB, dfu_usb, 0)
+#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_DFU_USB(devtypeu, devtypel, instance) \
-	"bootcmd_dfu_usb=setenv dfu_alt_info boot.scr ram $scriptaddr " \
-	"$script_size_f; dfu 0 ram 0 && " \
-	"echo DFU: Trying to boot script at ${scriptaddr} && " \
+#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 DFU: SCRIPT FAILED: continuing...;\0"
+	"echo THOR" #instance ": SCRIPT FAILED: continuing...;\0"
 
-#define BOOTENV_DEV_NAME_DFU_USB(devtypeu, devtypel, instance) \
-	"dfu_usb "
+#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_XSPI(func) \
-	BOOT_TARGET_DEVICES_DFU_USB(func) \
+	BOOT_TARGET_DEVICES_USB_DFU(func) \
+	BOOT_TARGET_DEVICES_USB_THOR(func) \
 	BOOT_TARGET_DEVICES_PXE(func) \
 	BOOT_TARGET_DEVICES_DHCP(func)
 
@@ -155,8 +158,7 @@
 #ifndef CONFIG_EXTRA_ENV_SETTINGS
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	ENV_MEM_LAYOUT_SETTINGS \
-	BOOTENV \
-	DFU_ALT_INFO
+	BOOTENV
 #endif
 
 #endif /* __XILINX_VERSAL_H */
-- 
2.31.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/6] xilinx: zynq: Add usb dfu/thor distro boot support
  2021-03-31  8:17 [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot Michal Simek
                   ` (3 preceding siblings ...)
  2021-03-31  8:17 ` [PATCH 4/6] xilinx: versal: Add usb dfu/thor distro boot support Michal Simek
@ 2021-03-31  8:17 ` Michal Simek
  2021-03-31  8:17 ` [PATCH 6/6] xilinx: Enable DFU_TIMEOUT config Michal Simek
  2021-04-23  6:45 ` [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot Michal Simek
  6 siblings, 0 replies; 8+ messages in thread
From: Michal Simek @ 2021-03-31  8:17 UTC (permalink / raw)
  To: u-boot

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 --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
 
-- 
2.31.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 6/6] xilinx: Enable DFU_TIMEOUT config
  2021-03-31  8:17 [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot Michal Simek
                   ` (4 preceding siblings ...)
  2021-03-31  8:17 ` [PATCH 5/6] xilinx: zynq: " Michal Simek
@ 2021-03-31  8:17 ` Michal Simek
  2021-04-23  6:45 ` [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot Michal Simek
  6 siblings, 0 replies; 8+ messages in thread
From: Michal Simek @ 2021-03-31  8:17 UTC (permalink / raw)
  To: u-boot

From: T Karthik Reddy <t.karthik.reddy@xilinx.com>

Enable CONFIG_DFU_TIMEOUT to set timeout waiting for dfu command.

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

 configs/xilinx_versal_virt_defconfig | 1 +
 configs/xilinx_zynq_virt_defconfig   | 1 +
 2 files changed, 2 insertions(+)

diff --git a/configs/xilinx_versal_virt_defconfig b/configs/xilinx_versal_virt_defconfig
index da3d2c2a936f..03c81e6c2751 100644
--- a/configs/xilinx_versal_virt_defconfig
+++ b/configs/xilinx_versal_virt_defconfig
@@ -49,6 +49,7 @@ CONFIG_NETCONSOLE=y
 CONFIG_IP_DEFRAG=y
 CONFIG_TFTP_BLOCKSIZE=4096
 CONFIG_CLK_VERSAL=y
+CONFIG_DFU_TIMEOUT=y
 CONFIG_DFU_RAM=y
 CONFIG_FPGA_XILINX=y
 CONFIG_FPGA_VERSALPL=y
diff --git a/configs/xilinx_zynq_virt_defconfig b/configs/xilinx_zynq_virt_defconfig
index 3892a71eac8b..7e56395a521f 100644
--- a/configs/xilinx_zynq_virt_defconfig
+++ b/configs/xilinx_zynq_virt_defconfig
@@ -65,6 +65,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_NETCONSOLE=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
+CONFIG_DFU_TIMEOUT=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_FPGA_XILINX=y
-- 
2.31.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot
  2021-03-31  8:17 [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot Michal Simek
                   ` (5 preceding siblings ...)
  2021-03-31  8:17 ` [PATCH 6/6] xilinx: Enable DFU_TIMEOUT config Michal Simek
@ 2021-04-23  6:45 ` Michal Simek
  6 siblings, 0 replies; 8+ messages in thread
From: Michal Simek @ 2021-04-23  6:45 UTC (permalink / raw)
  To: u-boot

st 31. 3. 2021 v 10:17 odes?latel Michal Simek <michal.simek@xilinx.com> napsal:
>
> Hi,
>
> usb dfu was handled differently then other boot commands.
> First of all fix usb dfu boot mode for zynqmp where usb boot
> mode is not usb host but usb dfu.
> Align also versal, zynq and zynqmp implementations to each other.
>
> Thanks,
> Michal
>
>
> Michal Simek (2):
>   cmd: dfu: Propagate error if dfu gadget fails
>   xilinx: zynqmp: Remove dfu_ram_info setup
>
> T Karthik Reddy (4):
>   xilinx: zynqmp: Add usb dfu/thor distro boot support
>   xilinx: versal: Add usb dfu/thor distro boot support
>   xilinx: zynq: Add usb dfu/thor distro boot support
>   xilinx: Enable DFU_TIMEOUT config
>
>  board/xilinx/versal/board.c          |  2 +-
>  board/xilinx/zynqmp/zynqmp.c         |  2 +-
>  cmd/dfu.c                            |  2 +-
>  configs/xilinx_versal_virt_defconfig |  1 +
>  configs/xilinx_zynq_virt_defconfig   |  1 +
>  configs/xilinx_zynqmp_virt_defconfig |  1 +
>  include/configs/syzygy_hub.h         |  1 -
>  include/configs/topic_miami.h        |  1 -
>  include/configs/xilinx_versal.h      | 52 ++++++++++++------------
>  include/configs/xilinx_zynqmp.h      | 49 ++++++++++++++--------
>  include/configs/zynq-common.h        | 61 ++++++++++++++--------------
>  11 files changed, 94 insertions(+), 79 deletions(-)
>
> --
> 2.31.0
>

Applied all.
M

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-04-23  6:45 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-31  8:17 [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot Michal Simek
2021-03-31  8:17 ` [PATCH 1/6] cmd: dfu: Propagate error if dfu gadget fails Michal Simek
2021-03-31  8:17 ` [PATCH 2/6] xilinx: zynqmp: Add usb dfu/thor distro boot support Michal Simek
2021-03-31  8:17 ` [PATCH 3/6] xilinx: zynqmp: Remove dfu_ram_info setup Michal Simek
2021-03-31  8:17 ` [PATCH 4/6] xilinx: versal: Add usb dfu/thor distro boot support Michal Simek
2021-03-31  8:17 ` [PATCH 5/6] xilinx: zynq: " Michal Simek
2021-03-31  8:17 ` [PATCH 6/6] xilinx: Enable DFU_TIMEOUT config Michal Simek
2021-04-23  6:45 ` [PATCH 0/6] xilinx: Align usb dfu boot mode and bootcommand with distroboot Michal Simek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.