One year and about 60 commits after the release of flashrom 0.9.8 we have released flashrom 0.9.9 on 2016-03-12 including one important security fix. Many of the changes further improved our cross-platform compatibility that is currently tested by our build framework on over 40 OS/architecture/libc combinations. This made it possible to add and improve support to some rather uncommon platforms and architectures like GNU Hurd or Android. We now have also proper support for some alternative C library implementations (uClibc, musl and bionic) and allow to easily link flashrom statically.
Apart from these changes flashrom 0.9.9 brings support for some very common but quite different USB-based programmers. Thanks to documentation provided to the community by its producer the Dediprog SF100 and SF600 are now enabled by default and should work with all existing firmware versions. Also, support for a programmer family based on WCH CH341A that is very cheap (under 5€/$) has been added. Both require flashrom to be linked with libusb-1.0. Support/usage of the previously used version (libusb-0.1) in flashrom will fade in the future. Similarly, we now allow to use both major versions of libftdi but might drop support for the older one in the future.
While at it we also want to inform our fellow users and prospective contributors that we will change our version control shortly after this release (from subversion to git).
Below you find a summary of the most important changes in the previous development cycle.
New major user-visible features
- Allow to link flashrom statically (with make CONFIG_STATIC=yes)
- Ease debugging of build problems with libraries
- Output way more debug information to build_details.txt
- Provide list of set make configuration variables that make builds fail
- Allow to easily disable groups of programmers depending on a library (make CONFIG_ENABLE_LIBUSB0_PROGRAMMERS=no CONFIG_ENABLE_LIBUSB1_PROGRAMMERS=no CONFIG_ENABLE_LIBPCI_PROGRAMMERS=no)
- Ignore 0x00 as a flash chip manufacturer ID in the generic match to avoid ambiguous messages
- Various improvements for serprog-based programmers
- Support arbitrary UART baud rates on Windows
- Enable the dediprog module by default, add support for Dediprog SF600 and the new communication protocol of the SF100 with newer firmware.
- WCH CH341A
- VIA VT8251
- Add support to update the firmware of Promise UltraATA controllers
- ESI ES25P40, ES25P80 and ES25P16
- GigaDevice GD25VQ41B and GD25Q128C
- More GigaDevice GD25LQ chips (GD25LQ40, GD25LQ80, GD25LQ16, GD25LQ64(B), GD25LQ128)
- PMC Pm25LQ020, Pm25LQ040, Pm25LQ080, Pm25LQ016, Pm25LQ032C
- Sanyo LE25FU406C/LE25U40CMC
- SST SST25WF020A, SST25WF040B, SST25WF080B
- Winbond W29C512A/W29EE512
Infrastructural improvements and fixes
- Add support for libftdi1 (previous libftdi support still in place for backward compatibility but will eventually be removed)
- Add infrastructure to use libusb1 (programmers will be migrated from libusb0 continuously in the future)
- Many cross-platform and cross-architecture improvements:
- Fix compilation on OSX
- Add support for musl libc
- Use nanosleep() instead of usleep() where available (enables building with uclibc)
- Support compilation on Android (bionic libc)
- Rigorously check integrity of I/O stream data (e.g. to notice full filesystems when writing flash data to a file)
flashrom 0.9.9 can be downloaded in various ways:
Anonymous checkout from the subversion repository at svn://flashrom.org/flashrom/tags/flashrom-0.9.9
A tarball is available for download at
Please see the archived status page for the hardware supported by this release.