DFU-UTIL(1)

NAME
dfu-util - Device firmware update (DFU) USB programmer

SYNOPSIS
dfu-util -l [-v] [-d vid:pid] [-p path] [-i interface] [-a alt-intf]
dfu-util [-v] [-d pid:vid] [-p path] [-i interface] [-a alt-intf] [-t size] [-s address] [-R] [-D|-U file]
dfu-util [-hV]

DESCRIPTION
dfu-util is a program that implements the host (computer) side of the USB DFU (Universal Serial Bus Device Firmware Upgrade) protocol.

dfu-util communicates with devices that implement the device side of the USB DFU protocol, and is often used to upgrade the firmware of such devices.

OPTIONS

-l, --list
    List the currently attached DFU capable USB devices.

-d, --device [VENDOR]:[PRODUCT]
    Specify vendor and/or product ID of the DFU device. Both VENDOR and PRODUCT are hexadecimal numbers (no prefix needed). Example:

    $ dfu-util --device 1457:51ab

    If you only have one standards-compliant DFU device attached to your computer, this is optional. However, as soon as you have multiple DFU devices connected, dfu-util will detect this and abort, asking you to specify which device to use.

-p, --path BUS-PORT. ... .PORT
    Specify the path to the DFU device.

-c, --cfg CONFIG-NR
    Specify the configuration of the DFU device. Note that this is only used for matching, the configuration is not set by dfu-util.

-i, --intf INTF-NR
    Specify the DFU interface number.

-a, --alt ALT
    Specify the altsetting of the DFU interface by name or by number.

-t, --transfer-size  SIZE
    Specify the number of bytes per USB transfer. The optimal value is usually determined automatically so this option is rarely useful. If you need to use this option for a device, please report it as a bug.

-U, --upload FILE
    Read firmware from device into FILE.

-D, --download FILE
    Write firmware from FILE into device.

-R, --reset
    Issue USB reset signalling after upload or download has finished.

-s, --dfuse-address address
    Specify target address for raw binary download/upload on DfuSe devices. Do not use this for downloading DfuSe (.dfu) files. Modifiers can be added to the address, separated by a colon, to perform special DfuSE commands such as "leave" DFU mode, "unprotect" and "mass-erase" flash memory.

-v, --verbose
    Print more information about dfu-util's operation. A second -v will turn on verbose logging of USB requests. Repeat this option to further increase verbosity.

-h, --help
    Show a help text and exit.

-V, --version
    Show version information and exit.

EXAMPLES

  Using dfu-util in the OpenMoko project
(with the Neo1973 hardware)

Flashing the rootfs:
$ dfu-util -a rootfs -R -D /path/to/openmoko-devel-image.jffs2

Flashing the kernel:
$ dfu-util -a kernel -R -D /path/to/uImage

Flashing the bootloader:
$ dfu-util -a u-boot -R -D /path/to/u-boot.bin

Copying a kernel into RAM:
$ dfu-util -a 0 -R -D /path/to/uImage

Once this has finished, the kernel will be available at the default load address of 0x32000000 in Neo1973 RAM. Note: You cannot transfer more than 2MB of data into RAM using this method.

  Using dfu-util with a DfuSe device

Flashing a .dfu (special DfuSe format) file to the device:
$ dfu-util -a 0 -D /path/to/dfuse-image.dfu

Reading out 1 KB of flash starting at address 0x8000000:
$ dfu-util -a 0 -s 0x08000000:1024 -U newfile.bin

Flashing a binary file to address 0x8004000 of device memory and ask the device to leave DFU mode:
$ dfu-util -a 0 -s 0x08004000:leave -D /path/to/image.bin

BUGS
Please report any bugs to the dfu-util mailing list at dfu-util@lists.gnumonks.org. Please use the --verbose option (repeated as necessary) to provide more information in your bug report.

SEE ALSO
The dfu-util home page is http://dfu-util.gnumonks.org

HISTORY
dfu-util was originally written for the OpenMoko project by Weston Schmidt <weston_schmidt@yahoo.com> and Harald Welte <hwelte@hmw-consulting.de>. Over time, nearly complete support of DFU 1.0, DFU 1.1 and DfuSe ("1.1a") has been added.

LICENCE
dfu-util is covered by the GNU General Public License (GPL), version 2 or later.

COPYRIGHT
This manual page was originally written by Uwe Hermann <uwe@hermann-uwe.de>, and is now part of the dfu-util project.