After over ten years of development and constant improvement, the flashrom developers are happy to announce the release of the flashrom 0.9.5 series.
flashrom is a utility for reading, writing, erasing and verifying flash ROM chips.
flashrom is designed to flash BIOS/EFI/coreboot/firmware/optionROM images on mainboards, network/graphics/storage controller cards, and various programmer devices. It can do so without any special boot procedures and from your normal working environment.
Highlights of flashrom
- Parallel, LPC, FWH and SPI flash interfaces.
- Support for onboard programming and external programmers.
- 288 (+4 since 0.9.4) flash chip types with a number of variants each.
- 177 (+4 since 0.9.4) different chipsets, some with multiple flash controllers.
- 374 (+68 since 0.9.4) mainboards verified to be working.
- Flash chip package agnostic. DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32/40/48, BGA and more have all been verified to work.
- 50 PCI devices, various USB and parallel port devices, and all external serprog-based programmers can be flashed or used for flashing.
- No physical access needed. root access is sufficient.
- No bootable floppy disk, bootable CD-ROM or other media needed.
- No keyboard or monitor needed. Simply reflash remotely via SSH.
- No instant reboot needed. Reflash your ROM in a running system, verify it, be happy. The new firmware will be present next time you boot.
- Crossflashing and hotflashing is possible as long as the flash chips are electrically and logically compatible (same protocol). Great for recovery.
- Scriptability. Reflash a whole pool of identical machines at the same time from the command line. It is recommended to check flashrom output and error codes.
- Speed. flashrom is much faster than vendor flash tools.
- Supports Linux, FreeBSD, NetBSD, DragonFly BSD, OpenBSD, Nexenta, Solaris, Mac OS X and DOS. Please refer to the README for build instructions.
Thanks go to everyone who contributed to flashrom over the years.
Please note that rewriting your flash chip can be dangerous and flashrom developers make no guarantees whatsoever. That said, many users have successfully replaced proprietary tools such as awdflash, amiflash and afudos with flashrom.
flashrom has its own home page at http://www.flashrom.org/
New major user-visible features
- Support for new programmers:
- FTDI FT2232-based:
- Dangerous Prototypes Bus Blaster
- TIAO/DIYGADGET USB Multi-Protocol Adapter (TUMPA)
- GOEPEL PicoTAP
- Xilinx parallel III (DLC5)
- Linux SPI subsystem (spidev)
- Previous to 0.9.5.2 flashrom did not set set some basic SPI options to sane defaults at init. This could be mitigated by setting them manually with the spidev_test utility (from the kernel tree). Also, since 0.9.5.2 we no longer send empty read requests to the kernel which some versions did not like at all.
- AMD Hudson chipsets
- Intel Tunnelcreek chipset
- RDC R6030 chipset (found on the bifferboard)
- FTDI FT2232-based:
- SFDP (Serial Flash Discoverable Parameters) allows flashrom to support chips without having all properties hard-coded beforehand. Please read this blog post for further details. (Version 0.9.5 has a bug that prevents erase from working with SFDP. This is fixed in 0.9.5.2.)
- Intel Hardware Sequencing
- Intel chipsets can be accessed via Hardware Sequencing now. This is a major step for better support of current, locked-down Intel-based mainboards (but it is not enough yet).
- Intel locks
- Newer Intel chipsets provide various methods to lock (parts of) the flash address space. flashrom tries to inform the user better if such locks are detected.
- SPI support for serprog
- Speed up on dediprog
- The supported voltage ranges are now printed for each flash chip when called with -L, --list-supported (and -V).
- There are 3 levels of verbosity now, hence -VVV shows the most detailed messages.
- Replace --mainboard with -p internal:mainboard
Infrastructural improvements and fixes
- struct flashctx
- We have split the constant struct flashchip data from runtime-specific information which resides in struct flashctx. The latter contains the constant data too for the convenience of a simpler patch, but might change in the future.
- Programmer-centric probing
- Previously the probing was chip-centric which was a problem for more complex setups with more than one flash chip attached to multiple controllers.
- In that transmission we missed a problem with the ITE IT87 and Winbond W83627 programmer modules, which was fixed in 0.9.5.2.
- SPI command black-/ignorelisting for the SPI flash chip emulator
- Better build support for PPCs.
- Initial build support for the ARM architecture (little-endian only).
- Code cleanups, documentation fixes etc.
flashrom 0.9.5.2 can be downloaded in various ways:
Anonymous checkout from the subversion repository at svn://flashrom.org/flashrom/tags/flashrom-0.9.5.2
A tarball is available for download at
Older versions of flashrom (like 0.9.5) can be also obtained from that server.
Please see the archived status page for the hardware supported by this release.