boot: zephyr: Add fallback to USB DFU

Allow bootloader to fallback to USB DFU if no application is present,
that can be booted from. Similar to config BOOT_SERIAL_NO_APPLICATION.

Signed-off-by: Fabian Pflug <fabian.pflug@gumulka.eu>
This commit is contained in:
Fabian Pflug 2024-08-24 11:15:39 +02:00 committed by Jamie
parent 84b56b6111
commit ca06b9fe6d
2 changed files with 14 additions and 0 deletions

View File

@ -573,6 +573,12 @@ config BOOT_USB_DFU_DETECT_DELAY
endif # BOOT_USB_DFU_GPIO
config BOOT_USB_DFU_NO_APPLICATION
bool "Stay in bootloader if no application"
help
Allows for entering USB DFU recovery mode if there is no bootable
application that the bootloader can jump to.
config BOOT_USE_BENCH
bool "Enable benchmark code"
default n

View File

@ -531,6 +531,14 @@ int main(void)
* recovery mode
*/
boot_serial_enter();
#elif defined(CONFIG_BOOT_USB_DFU_NO_APPLICATION)
rc = usb_enable(NULL);
if (rc && rc != -EALREADY) {
BOOT_LOG_ERR("Cannot enable USB");
} else {
BOOT_LOG_INF("Waiting for USB DFU");
wait_for_usb_dfu(K_FOREVER);
}
#endif
FIH_PANIC;