Skip to content

boot: zephyr: enter USB DFU indefinitely on retention boot mode - #2751

Open
benner wants to merge 1 commit into
mcu-tools:mainfrom
benner:feat/usb-dfu-boot-mode
Open

boot: zephyr: enter USB DFU indefinitely on retention boot mode#2751
benner wants to merge 1 commit into
mcu-tools:mainfrom
benner:feat/usb-dfu-boot-mode

Conversation

@benner

@benner benner commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Adds BOOT_USB_DFU_BOOT_MODE, an independent USB DFU entrance method: an
application sets Zephyr's boot mode retention flag and reboots, and the
bootloader stays in USB DFU indefinitely. It mirrors BOOT_SERIAL_BOOT_MODE
for serial recovery.

@benner
benner marked this pull request as ready for review June 3, 2026 13:30
@benner
benner requested review from de-nordic and nordicjm as code owners June 3, 2026 13:30
Comment thread boot/zephyr/main.c Outdated
Comment on lines +600 to +606
#if defined(CONFIG_BOOT_USB_DFU_BOOT_MODE)
if (io_detect_boot_mode()) {
BOOT_LOG_DBG("Staying in USB DFU");
mcuboot_status_change(MCUBOOT_STATUS_USB_DFU_WAITING);
wait_for_usb_dfu(K_FOREVER);
} else
#endif

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to me it makes sense to have this as a new mode, not having to have it as part of waiting. For that the Kconfig choice should be changed to have options, like serial recovery does

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reworked after #2761 merge.

BOOT_USB_DFU_WAIT only waits a fixed duration, leaving no way for an
application to request DFU recovery on demand as BOOT_SERIAL_BOOT_MODE
does for serial recovery.

Add BOOT_USB_DFU_BOOT_MODE as an independent entrance method: an
application sets Zephyr's boot mode retention flag and reboots, and the
bootloader stays in USB DFU indefinitely. It can be used on its own or
combined with the wait and GPIO methods.

Signed-off-by: Nerijus Bendžiūnas <nerijus.bendziunas@gmail.com>
@benner
benner force-pushed the feat/usb-dfu-boot-mode branch from 991d0a2 to 20c461d Compare July 31, 2026 02:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: zephyr Affects the Zephyr port

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants