Difference between revisions of "Flashrom/0.9.9"

From flashrom
Jump to: navigation, search
(Infrastructural improvements and fixes: CONFIG_*)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{DISPLAYTITLE:flashrom/0.9.9}}
 
{{DISPLAYTITLE:flashrom/0.9.9}}
  
<div style="margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#ff6666; align:right; border:1px solid #000000;">
+
One year and about 60 commits after the release of flashrom [[flashrom/0.9.8|0.9.8]] we have released flashrom '''0.9.9''' on 2016-03-13 '''[https://www.flashrom.org/pipermail/flashrom/2016-March/014523.html including one important security fix]'''.
'''IMPORTANT:''' This is work in progress. Its purpose is to organize code review and track improvements as they are pushed to our repository. Some of the stuff mentioned below may not get included or even be removed later again.
+
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.
</div>
+
This made it possible to add and improve support for some rather uncommon platforms and architectures like GNU Hurd or s390x.
 +
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 <tt>'''libusb-1.0'''</tt>.
 +
Support/usage of the previously used version (<tt>libusb-0.1</tt>) in flashrom will fade in the future.
 +
Similarly, we now allow to use both major versions of <tt>libftdi</tt> but might drop support for the older one in the future.
  
=TODO list for this release=
+
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''').
* programmers
 
** [http://patchwork.coreboot.org/patch/2033/ buspirate speedup]
 
* chips
 
* chipsets
 
* boards
 
* platform/arch/os
 
** [http://patchwork.coreboot.org/patch/3439/ powerpc]
 
** [http://patchwork.coreboot.org/patch/3418/ macosx universal binaries]
 
* ui
 
* infrastructure
 
** [http://patchwork.coreboot.org/patch/3646/ Return code for spi_read_status_register]
 
  
 +
Below you find a summary of the most important changes in the previous development cycle.
  
 
==New major user-visible features==
 
==New major user-visible features==
 
* Allow to link flashrom statically (with <tt>make CONFIG_STATIC=yes</tt>)
 
* Allow to link flashrom statically (with <tt>make CONFIG_STATIC=yes</tt>)
 
* Ease debugging of build problems with libraries
 
* Ease debugging of build problems with libraries
** Output way more debug information to "build_details.txt"
+
** Output way more debug information to <tt>build_details.txt</tt>
 
** Provide list of set make configuration variables that make builds fail
 
** 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)
+
** Allow to easily disable groups of programmers depending on a library (<tt>make CONFIG_ENABLE_LIBUSB0_PROGRAMMERS=no CONFIG_ENABLE_LIBUSB1_PROGRAMMERS=no CONFIG_ENABLE_LIBPCI_PROGRAMMERS=no</tt>)
* Ignore 0x00 as a manufacturer IDs in the generic match to avoid ambiguous messages
+
* Ignore 0x00 as a flash chip manufacturer ID in the generic match to avoid ambiguous messages
 
* Various improvements for serprog-based programmers
 
* Various improvements for serprog-based programmers
 
* Support arbitrary UART baud rates on Windows
 
* Support arbitrary UART baud rates on Windows
Line 38: Line 35:
 
===New chips===
 
===New chips===
 
* ESI ES25P40, ES25P80 and ES25P16
 
* ESI ES25P40, ES25P80 and ES25P16
 +
* GigaDevice GD25VQ41B, GD25Q128C, GD25VQ21B, GD25VQ40C, GD25VQ80C and GD25VQ16C, GD25LQ40, GD25LQ80, GD25LQ16, GD25LQ64(B), GD25LQ128
 +
* PMC Pm25LQ020, Pm25LQ040, Pm25LQ080, Pm25LQ016, Pm25LQ032C
 
* Sanyo LE25FU406C/LE25U40CMC
 
* Sanyo LE25FU406C/LE25U40CMC
 
* SST SST25WF020A, SST25WF040B, SST25WF080B
 
* SST SST25WF020A, SST25WF040B, SST25WF080B
 
* Winbond W29C512A/W29EE512
 
* Winbond W29C512A/W29EE512
* PMC Pm25LQ020, Pm25LQ040, Pm25LQ080, Pm25LQ016, Pm25LQ032C
 
* More GigaDevice GD25LQ chips (GD25LQ40, GD25LQ80, GD25LQ16, GD25LQ64(B), GD25LQ128)
 
  
 
==Infrastructural improvements and fixes==
 
==Infrastructural improvements and fixes==
* Add support for libftdi1 (previous libftdi support still in place for backward compatibility)
+
* 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)
+
* Add infrastructure for libusb1 and use it for new programmers (existing code will be migrated from libusb0 continuously in the future)
 
* Many cross-platform and cross-architecture improvements:
 
* Many cross-platform and cross-architecture improvements:
** Fix compilation on OSX
+
** Fix compilation on OSX and Solaris-based systems
 +
** Add support for GNU Hurd
 
** Add support for musl libc
 
** Add support for musl libc
** Use nanosleep() instead of usleep() where available (enables building with uclibc)
+
** Use <tt>nanosleep()</tt> instead of <tt>usleep()</tt> where available (enables building with uclibc)
 
** Support compilation on Android (bionic libc)
 
** Support compilation on Android (bionic libc)
 +
** Partial architecture support for alpha hppa m68k sh s39
 
* Rigorously check integrity of I/O stream data (e.g. to notice full filesystems when writing flash data to a file)
 
* Rigorously check integrity of I/O stream data (e.g. to notice full filesystems when writing flash data to a file)
 +
* Add make parameters for easier disabling/enabling of various classes of programmers: CONFIG_NOTHING=yes CONFIG_EVERYTHING=yes CONFIG_ENABLE_LIBUSB0_PROGRAMMERS=no CONFIG_ENABLE_LIBUSB1_PROGRAMMERS=no CONFIG_ENABLE_LIBPCI_PROGRAMMERS=no
  
 
= Download =
 
= Download =

Latest revision as of 22:42, 23 March 2016


One year and about 60 commits after the release of flashrom 0.9.8 we have released flashrom 0.9.9 on 2016-03-13 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 for some rather uncommon platforms and architectures like GNU Hurd or s390x. 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

New programmers

  • 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

New chips

  • ESI ES25P40, ES25P80 and ES25P16
  • GigaDevice GD25VQ41B, GD25Q128C, GD25VQ21B, GD25VQ40C, GD25VQ80C and GD25VQ16C, 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 for libusb1 and use it for new programmers (existing code will be migrated from libusb0 continuously in the future)
  • Many cross-platform and cross-architecture improvements:
    • Fix compilation on OSX and Solaris-based systems
    • Add support for GNU Hurd
    • Add support for musl libc
    • Use nanosleep() instead of usleep() where available (enables building with uclibc)
    • Support compilation on Android (bionic libc)
    • Partial architecture support for alpha hppa m68k sh s39
  • Rigorously check integrity of I/O stream data (e.g. to notice full filesystems when writing flash data to a file)
  • Add make parameters for easier disabling/enabling of various classes of programmers: CONFIG_NOTHING=yes CONFIG_EVERYTHING=yes CONFIG_ENABLE_LIBUSB0_PROGRAMMERS=no CONFIG_ENABLE_LIBUSB1_PROGRAMMERS=no CONFIG_ENABLE_LIBPCI_PROGRAMMERS=no

Download

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

http://download.flashrom.org/releases/flashrom-0.9.9.tar.bz2 (GPG signature).

Supported hardware

Please see the archived status page for the hardware supported by this release.