[PATCH] xilinx: zynqmp: Fix SPL_FS_LOAD_PAYLOAD_NAME usage

Michal Simek michal.simek at amd.com
Fri Dec 2 14:06:15 CET 2022


SPL_FS_LOAD_PAYLOAD_NAME depends on SPL to be enabled.
If SPL is not enabled code still expects SPL_FS_LOAD_PAYLOAD_NAME to be
present. That's why setup proper dependency in the code.
And by doing so also change the logic around dfu_alt_info string
composition to be simpler.

Signed-off-by: Michal Simek <michal.simek at amd.com>
---

 board/xilinx/zynqmp/zynqmp.c | 45 +++++++++++++++++++-----------------
 1 file changed, 24 insertions(+), 21 deletions(-)

diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
index 5fe0873fe221..579708d2e0cf 100644
--- a/board/xilinx/zynqmp/zynqmp.c
+++ b/board/xilinx/zynqmp/zynqmp.c
@@ -611,8 +611,7 @@ enum env_location env_get_location(enum env_operation op, int prio)
 
 void set_dfu_alt_info(char *interface, char *devstr)
 {
-	int multiboot;
-	int bootseq = 0;
+	int multiboot, bootseq = 0, len = 0;
 
 	ALLOC_CACHE_ALIGN_BUFFER(char, buf, DFU_ALT_BUF_LEN);
 
@@ -634,29 +633,33 @@ void set_dfu_alt_info(char *interface, char *devstr)
 	case SD1_LSHFT_MODE:
 	case SD_MODE1:
 		bootseq = mmc_get_env_dev();
-		if (!multiboot)
-			snprintf(buf, DFU_ALT_BUF_LEN,
-				 "mmc %d=boot.bin fat %d 1;"
-				 "%s fat %d 1",
-				 bootseq, bootseq,
-				 CONFIG_SPL_FS_LOAD_PAYLOAD_NAME, bootseq);
-		else
-			snprintf(buf, DFU_ALT_BUF_LEN,
-				 "mmc %d=boot%04d.bin fat %d 1;"
-				 "%s fat %d 1",
-				 bootseq, multiboot, bootseq,
-				 CONFIG_SPL_FS_LOAD_PAYLOAD_NAME, bootseq);
+
+		len += snprintf(buf + len, DFU_ALT_BUF_LEN, "mmc %d=boot",
+			       bootseq);
+
+		if (multiboot)
+			len += snprintf(buf + len, DFU_ALT_BUF_LEN,
+				       "%04d", multiboot);
+
+		len += snprintf(buf + len, DFU_ALT_BUF_LEN, ".bin fat %d 1",
+			       bootseq);
+#if defined(CONFIG_SPL_FS_LOAD_PAYLOAD_NAME)
+		len += snprintf(buf + len, DFU_ALT_BUF_LEN, ";%s fat %d 1",
+			       CONFIG_SPL_FS_LOAD_PAYLOAD_NAME, bootseq);
+#endif
 		break;
-#if defined(CONFIG_SYS_SPI_U_BOOT_OFFS)
 	case QSPI_MODE_24BIT:
 	case QSPI_MODE_32BIT:
-		snprintf(buf, DFU_ALT_BUF_LEN,
-			 "sf 0:0=boot.bin raw %x 0x1500000;"
-			 "%s raw 0x%x 0x500000",
-			 multiboot * SZ_32K, CONFIG_SPL_FS_LOAD_PAYLOAD_NAME,
-			 CONFIG_SYS_SPI_U_BOOT_OFFS);
-		break;
+		len += snprintf(buf + len, DFU_ALT_BUF_LEN,
+			       "sf 0:0=boot.bin raw %x 0x1500000",
+			       multiboot * SZ_32K);
+#if defined(CONFIG_SPL_FS_LOAD_PAYLOAD_NAME) && defined(CONFIG_SYS_SPI_U_BOOT_OFFS)
+		len += snprintf(buf + len, DFU_ALT_BUF_LEN,
+			       ";%s raw 0x%x 0x500000",
+			       CONFIG_SPL_FS_LOAD_PAYLOAD_NAME,
+			       CONFIG_SYS_SPI_U_BOOT_OFFS);
 #endif
+		break;
 	default:
 		return;
 	}
-- 
2.36.1



More information about the U-Boot mailing list