Skip to content

Commit c1d5c9a

Browse files
committed
initial commit
1 parent 30b8fda commit c1d5c9a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+9059
-0
lines changed

.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Makefile
2+
*/Makefile
3+
autom4te.cache/
4+
config.h
5+
configure
6+
m4/
7+
src/.deps/
8+
src/dfu-suffix
9+
src/dfu-prefix
10+
src/dfu-util
11+
src/dfu-version.h
12+
stamp-h1
13+
Win32/
14+
msvc/ipch/
15+
*.log
16+
*.status
17+
*.m4
18+
*.o
19+
*.in
20+
*.suo
21+
*.user
22+
*.opensdf
23+
*.sdf
24+
*~

AUTHORS

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
Authors ordered by first contribution.
2+
3+
Harald Welte
4+
Werner Almesberger
5+
Michael Lauer
6+
Jim Huang
7+
Stefan Schmidt
8+
Daniel Willmann
9+
Mike Frysinger
10+
Uwe Hermann
11+
C. Scott Ananian
12+
Tormod Volden
13+
Bernard Blackham
14+
Holger Freyther
15+
Marc Singer
16+
James Perkins
17+
Tommi Keisala
18+
Pascal Schweizer
19+
Bradley Scott
20+
Uwe Bonnes
21+
Andrey Smirnov
22+
Jussi Timperi
23+
Hans Petter Selasky
24+
Bo Shen
25+
Henrique de Almeida Mendonca
26+
Bernd Krumboeck
27+
Dennis Meier
28+
Veli-Pekka Peltola
29+
Dave Hylands
30+
Michael Grzeschik
31+
Paul Fertser
32+
Dirk Castelijns
33+
Gordon McNab
34+
Stefan Zehl
35+
Timo Poikola
36+
Michael Everitt
37+
David G. Turner
38+
Geoffrey Hausheer
39+
Thilo Cestonaro
40+
Alex Mastro
41+
Colin Parker
42+
Xavier Domont
43+
Ievgenii Meshcheriakov
44+
Aleks Chakin
45+
Niels Skou Olsen
46+
Jörg Riechardt
47+
Thomas Hebb
48+
Jérôme Hamm
49+
Hendry Kaak

COPYING

Lines changed: 340 additions & 0 deletions
Large diffs are not rendered by default.

ChangeLog

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
0.11:
2+
o Fix suffix check regression on Windows with Large File Support
3+
o Skip setting alternate interface when not needed
4+
o Only clamp transfer size on Linux
5+
o Quirk for GD32 leave request
6+
o Improve status and error messages and exit codes
7+
o dfuse: Process all alternate interfaces in a DfuSe file
8+
o dfuse-pack.py: Fix alternate settings if first is 0
9+
10+
2021-09-05 Tormod Volden <[email protected]>
11+
12+
0.10:
13+
o New --wait option for devices to appear (Jörg Riechardt)
14+
o New --devnum option to filter devices (Harald Welte)
15+
o Support DFU_STATE_dfuMANIFEST_WAIT_RST (Jérôme Hamm)
16+
o Support large files (Tormod Volden)
17+
o Quirks for Jabra devices (Niels Skou Olsen)
18+
o Quirks for OpenPICC, SIMtrace (Harald Welte)
19+
o Quirks for GD32VF103 (Thomas Hebb)
20+
o Fix numeric argument parsing (Timo Poikola)
21+
o Improve alternate interface index matching (Aleks Chakin)
22+
o Improve libusb error messages (Alex Mastro)
23+
o Improve Stellaris firmware detection (Aleks Chakin)
24+
o Improve warnings and debug output (Tormod Volden)
25+
o Update manual page (Thomas Hebb)
26+
o Manual pages for dfu-suffix and dfu-prefix (Tormod Volden)
27+
o Usage text describes DfuSe modifiers (Uwe Bonnes)
28+
o dfuse: Erase all pages before programming (Geoffrey Hausheer)
29+
o dfuse: New "will-reset" option (Ievgenii Meshcheriakov)
30+
o dfuse: Allow 0 as start address (Xavier Domont)
31+
o dfuse: Workaround for Black Magic Probe issue (Tormod Volden)
32+
o dfuse: Workaround for STM32L4 page erase stalls (Tormod Volden)
33+
o dfuse-pack.py: Set (multiple) alternate interfaces (Tormod Volden)
34+
o dfuse-pack.py: S19 and ihex support (Thilo Cestonaro)
35+
o dfuse-pack.py: Intel HEX multi-segment index fix (Colin Parker)
36+
o dfuse-pack.py: Correct DFUImageSize (Hendry Kaak)
37+
o dfuse-pack.py: Python 3 compatibility (Michael Everitt)
38+
39+
2020-11-21 Tormod Volden <[email protected]>
40+
41+
0.9:
42+
o Reimplemented USBPATH support (Stefan Zehl)
43+
o Better parsing of numeric arguments (Timo Poikola)
44+
o Avoid conflict with HID devices (Gordon McNab)
45+
o Mass erase timeout workaround for STM32F405 (Tormod Volden)
46+
o Workaround for LPC DFU bootloader (Dirk Castelijns)
47+
o Include example udev rules file (Tormod Volden)
48+
49+
2016-02-08 Tormod Volden <[email protected]>
50+
51+
0.8:
52+
o New, separate dfu-prefix tool (Uwe Bonnes)
53+
o Allow filtering on serial number (Uwe Bonnes)
54+
o Improved VID/PID/serial filtering (Bradley Scott)
55+
o Support reading firmware from stdin (Tormod Volden)
56+
o Warn if missing DFU suffix (Tormod Volden)
57+
o Improved progress bar (Hans Petter Selasky)
58+
o Fix dfuse leave option (Uwe Bonnes)
59+
o Major code rework (Hans Petter Selasky)
60+
o MS Visual Studio build support (Henrique Mendonca)
61+
o dfuse-pack.py tool for .dfu files (Antonio Galeo)
62+
o Many other fixes from many people
63+
64+
2014-09-13 Tormod Volden <[email protected]>
65+
66+
0.7:
67+
o Support for TI Stellaris devices (Tommi Keisala)
68+
o Fix libusb detection on MacOSX (Marc Singer)
69+
o Fix libusb detection on FreeBSD (Tormod Volden)
70+
o Improved DfuSe support (Tormod Volden)
71+
o Support all special commands (leave, unprotect, mass-erase)
72+
o Arbitrary upload lengths
73+
o "force" option for various possible (dangerous) overrides
74+
75+
2012-10-07 Tormod Volden <[email protected]>
76+
77+
0.6:
78+
o Add detach mode (Stefan Schmidt)
79+
o Check return value on all libusb calls (Tormod Volden)
80+
o Fix segmentation fault with -s option (Tormod Volden)
81+
o Add DFU suffix manipulation tool (Stefan Schmidt)
82+
o Port to Windows: (Tormod Volden, some parts based on work from Satz
83+
Klauer)
84+
o Port file handling to stdio streams
85+
o Sleep() macros
86+
o C99 types
87+
o Pack structs
88+
o Detect DfuSe device correctly on big-endian architectures (Tormod
89+
Volden)
90+
o Add dfuse progress indication on download (Tormod Volden)
91+
o Cleanup: gcc pedantic, gcc extension, ... (Tormod Volden)
92+
o Rely on page size from functional descriptor. Please report if you get
93+
an error about it. (Tormod Volden)
94+
o Add quirk for Maple since it reports wrong DFU version (Tormod Volden)
95+
96+
2012-04-22 Stefan Schmidt <[email protected]>
97+
98+
0.5:
99+
o DfuSe extension support for ST devices (Tormod Volden)
100+
o Add initial support for bitWillDetach flag from DFU 1.1 (Tormod
101+
Volden)
102+
o Internal cleanup and some manual page fixes (Tormod Volden)
103+
104+
2011-11-02 Stefan Schmidt <[email protected]>
105+
106+
0.4:
107+
o Rework to use libusb-1.0 (Stefan Schmidt)
108+
o DFU suffix support (Tormod Volden, Stefan Schmidt)
109+
o Sspeed up DFU downloads directly into memory (Bernard Blackham)
110+
o More flexible -d vid:pid parsing (Tormod Volden)
111+
o Many bug fixes and cleanups
112+
113+
2011-07-20 Stefan Schmidt <[email protected]>
114+
115+
0.3:
116+
o quirks: Add OpenOCD to the poll timeout quirk table.
117+
118+
2010-12-22 Stefan Schmidt <[email protected]>
119+
120+
0.2:
121+
o Fix some typos on the website and the README (Antonio Ospite, Uwe
122+
Hermann)
123+
o Remove build rule for a static binary. We can use autotools for this.
124+
(Mike Frysinger)
125+
o Fix infinite loop in download error path (C. Scott Ananian)
126+
o Break out to show the 'finished' in upload (C. Scott Ananian)
127+
o Add GPLv2+ headers (Harald Welte)
128+
o Remove dead code (commands.[ch]) remnescent of dfu-programmer (Harald
129+
Welte)
130+
o Simple quirk system with Openmoko quirk for missing bwPollTimeout (Tormod Volden)
131+
o New default (1024) and clamping of transfer size (Tormod Volden)
132+
o Verify sending of completion packet (Tormod Volden)
133+
o Look for DFU functional descriptor among all descriptors (Tormod
134+
Volden)
135+
o Print out in which direction we are transferring data
136+
o Abort in upload if the file already exists
137+
138+
2010-11-17 Stefan Schmidt <[email protected]>
139+
140+
0.1:
141+
Initial release
142+
143+
2010-05-23 Stefan Schmidt <[email protected]>

DEVICES.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
List of supported software and hardware products:
2+
3+
Software user (bootloader, etc)
4+
-------------------------------
5+
- Sam7DFU: http://git.osmocom.org/openpcd/
6+
- U-boot: http://www.denx.de/wiki/U-Boot/
7+
- Barebox: http://www.barebox.org/
8+
- Leaflabs: https://www.leaflabs.com/maple
9+
- Blackmagic: https://github.com/blacksphere/blackmagic/wiki
10+
11+
Products using DFU
12+
------------------
13+
- OpenPCD (sam7dfu)
14+
- Openmoko Neo 1973 and Freerunner (u-boot with DFU patches)
15+
- Leaflabs Maple
16+
- ATUSB from Qi Hardware
17+
- STM32F105/7, STM32F2/F3/F4 in System Bootloader
18+
- Black Magic Probe debugger
19+
- NXP LPC31xx/LPC43XX, e.g. LPC-Link and LPC-Link2, need binaries
20+
with LPC prefix and encoding (LPC-Link)

INSTALL

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
1. If building from git (not needed for release tarballs):
3+
Generate build system files (requires autoconf from autotools)
4+
5+
./autogen.sh
6+
7+
2. Generate makefiles
8+
(Run ./configure --help to see configuration options)
9+
10+
./configure
11+
12+
3. Build executables
13+
14+
make
15+
16+
4. Install executables and manual pages (optional)
17+
18+
make install
19+
20+
If installing to a system directory use
21+
22+
sudo make install
23+

Makefile.am

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
SUBDIRS = src doc
2+
3+
EXTRA_DIST = autogen.sh TODO DEVICES.txt dfuse-pack.py
4+
5+
wwwman: www/dfu-util.1.html www/dfu-suffix.1.html www/dfu-prefix.1.html
6+
7+
www/%.1.html : doc/%.1
8+
pandoc -f man -t html -s -o $@ $^
9+
10+
pdfman: dfu-util.1.man.pdf dfu-prefix.1.man.pdf dfu-suffix.1.man.pdf
11+
12+
%.1.man.pdf: doc/%.1
13+
man -Tpdf $^ > $@

README

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Dfu-util - Device Firmware Upgrade Utilities
2+
3+
Dfu-util is a host side implementation of the DFU 1.0 and DFU 1.1 [1]
4+
specification of the USB forum.
5+
6+
DFU is intended to download and upload firmware to devices connected over
7+
USB. It ranges from small devices like micro-controller boards up to mobile
8+
phones and single-board computers. dfu-util is able to download firmware
9+
to devices as well as to upload firmware from them.
10+
11+
dfu-util has been tested with Openmoko Neo1973 and Freerunner and many
12+
other devices.
13+
14+
The official website is:
15+
16+
http://dfu-util.sourceforge.net
17+
18+
See the INSTALL file for build instructions.
19+
20+
[1] DFU 1.1 specification:
21+
https://www.usb.org/sites/default/files/DFU_1.1.pdf

TODO

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
DfuSe:
2+
- Skip "Set Address" command when downloading contiguous blocks
3+
- Implement "Get Commands" command
4+
5+
Devices:
6+
- Research iPhone/iPod/iPad support
7+
Heavily modified dfu-util fork here:
8+
https://github.com/planetbeing/xpwn/tree/master/dfu-util
9+
- Test against Niftylights
10+
11+
Non-Code:
12+
- Logo
13+
- Re-License as LGPL for usage as library?

autogen.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#! /bin/sh
2+
autoreconf -v -i

0 commit comments

Comments
 (0)