diff mbox series

[1/1] Write upper-case BOOT.BIN to zynqmp MMC

Message ID 20231118184426.2808502-2-jaredbaur@fastmail.com
State Rejected
Delegated to: Michal Simek
Headers show
Series Fix DFU updates on the zynqmp platform | expand

Commit Message

Jared Baur Nov. 18, 2023, 6:44 p.m. UTC
The zynqmp bootrom will not boot from an SD card with a fat32 fileystem
with a lowercase boot.bin file on it. This means that using DFU to
update the boot.bin file will render the device unusable since it is not
written in upper-case.

Signed-off-by: Jared Baur <jaredbaur@fastmail.com>
---
 board/xilinx/zynqmp/zynqmp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Michal Simek Nov. 21, 2023, 3:44 p.m. UTC | #1
so 18. 11. 2023 v 19:47 odesílatel Jared Baur <jaredbaur@fastmail.com> napsal:
>
> The zynqmp bootrom will not boot from an SD card with a fat32 fileystem
> with a lowercase boot.bin file on it. This means that using DFU to
> update the boot.bin file will render the device unusable since it is not
> written in upper-case.

Fat 32 is case-insensitive and case-preserving. It doesn't really
matter if you have boot.bin or BOOT.BIN on SD.
Bootrom doesn't really care about it.
I tested it on zcu102 with boot.bin and BOOT.BIN and both cases are
working for me.

Can you look at the partition type via fdisk?

Thanks,
Michal
diff mbox series

Patch

diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
index f162803084..bcccf5b7c1 100644
--- a/board/xilinx/zynqmp/zynqmp.c
+++ b/board/xilinx/zynqmp/zynqmp.c
@@ -647,14 +647,14 @@  void set_dfu_alt_info(char *interface, char *devstr)
 	case SD_MODE1:
 		bootseq = mmc_get_env_dev();
 
-		len += snprintf(buf + len, DFU_ALT_BUF_LEN, "mmc %d=boot",
+		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",
+		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",