board: samsung: e850-96: Enter DFU automatically on USB boot
authorSam Protsenko <semen.protsenko@linaro.org>
Tue, 18 Nov 2025 23:21:19 +0000 (17:21 -0600)
committerMinkyu Kang <mk7.kang@samsung.com>
Wed, 26 Nov 2025 08:55:57 +0000 (17:55 +0900)
Doing USB boot on E850-96 is most useful in two cases:

  1. For unbricking the board
  2. During the bootloader development

In both cases a U-Boot binary is being re-flashed to eMMC. The most
convenient way to update U-Boot in eMMC is by using DFU. Implement
entering DFU flashing mode automatically when U-Boot is executed on USB
boot. That makes it easier for users to re-flash U-Boot without even
having serial console running, e.g.:

    $ ./smdk-usbdl
    $ dfu-util -D u-boot.bin -a bootloader

See [1,2] for details.

Entering DFU mode is implemented by setting corresponding environment
variables:

    bootcmd="dfu 0 mmc 0"
    bootdelay=0

Do not save the U-Boot environment though, to avoid falling through to
DFU mode on a regular eMMC boot.

[1] doc/board/samsung/e850-96.rst
[2] https://gitlab.com/LinaroLtd/e850-96/tools/dltool/-/tree/uboot

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
board/samsung/e850-96/e850-96.c

index 3aa4992..415505f 100644 (file)
@@ -209,6 +209,12 @@ int board_late_init(void)
        else
                load_firmware_blk();
 
+       if (bootdev_is_usb()) {
+               env_set("bootcmd", "echo \"Entering DFU mode...\"; "
+                       "dfu 0 mmc 0");
+               env_set("bootdelay", "0");
+       }
+
        return 0;
 }