Is DFU working in Zephyr?


Li, Jun R
 

Hi Zephyr developers:

 

I’m trying to enable the DFU function inside the mcuboot bootloader so that I can use the bootloader to load a custom firmware file. I followed the sample “samples/subsys/usb/dfu/” and enabled the following options in MCUBOOT’s prj.conf:

 

CONFIG_USB_DEVICE_STACK=y

CONFIG_USB_DEVICE_PRODUCT="MCUboot DFU"

CONFIG_USB_DFU_CLASS=y

CONFIG_IMG_MANAGER=y

CONFIG_FLASH_PAGE_LAYOUT=y

 

And I also modified “main.c” to make it always wait for DFU instead of jumping to the slot 0. The bootloader can work normally, and I can see the following “dmesg” on the host computer:

[138144.555652] usb 2-2.1: new full-speed USB device number 29 using uhci_hcd

[138144.662455] usb 2-2.1: New USB device found, idVendor=2fe3, idProduct=0100

[138144.662458] usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[138144.662459] usb 2-2.1: Product: MCUBOOT

[138144.662460] usb 2-2.1: Manufacturer: ZEPHYR

[138144.662462] usb 2-2.1: SerialNumber: 0.01

 

It seems everything is ready. So, I ran the following command to try backing up the data in the slot 0:

sudo dfu-util -alt 0 --upload slot0_backup.bin

 

However, the command always fails with the following messages:

dfu-util 0.8

 

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.

Copyright 2010-2014 Tormod Volden and Stefan Schmidt

This program is Free Software and has ABSOLUTELY NO WARRANTY

Please report bugs to dfu-util@...

 

Opening DFU capable USB device...

ID 2fe3:0100

Run-time device DFU version 0110

Claiming USB DFU Runtime Interface...

Determining device status: state = appIDLE, status = 0

Device really in Runtime Mode, send DFU detach request...

Resetting USB...

dfu-util: Lost device after RESET?

 

Any idea how to resolve this issue?  The board I’m using is Nucleo-F429ZI, a ST-Micro eval board.

 

Regards,

Jun

 

Join {devel@lists.zephyrproject.org to automatically receive all group messages.