board: samsung: e850-96: Enter DFU automatically on USB boot

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>
This commit is contained in:
Sam Protsenko
2025-11-18 17:21:19 -06:00
committed by Minkyu Kang
parent 7b583b6663
commit 17d6b90a5f

View 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;
}