Flashrom is a utility which can be used to detect, read, erase, or write BIOS chips (DIP, PLCC, SPI).
Note: There are probably some flash ROM chips which are compatible to the ones listed below.
1 Unsupported, disabled by default.
2 This includes the ICH, ICH0, ICH2, ICH2-M, ICH3-S, ICH3-M, ICH4/ICH4-L, ICH4-M, ICH5/ICH5R, ICH6/ICH6R, ICH6-M, ICH7DH, ICH7/ICH7R, ICH7M, ICH7MDH, ICH8/ICH8R, ICH8M-E, ICH8DH, ICH8DO, ICH8M, ICH9DH, ICH9DO, ICH9R, ICH9M-E, ICH9, ICH9M chipsets.
4 Untested, but should work.
5 Only reading the chip, but not writing to it has been tested. Both is expected to work, though.
6 Should work, but only reading (not writing or erasing) the chip has been tested.
This is a list of mainboards where we have verified that they either do or do not need any special initialization to make flashrom work (given flashrom supports the respective southbridge and ROM chip), or that they do not yet work at all. If they do not work, support may or may not be added later.
Mainboards which don't appear in the list may or may not work (we don't know, someone has to give it a try). Please report any further verified mainboards on the mailinglist or add them here directly.
Known-good (but special setup required)
1 Used in the IGEL WinNET III thin client.
2 Might also work for other CLE266 based EPIAs.
3 Interestingly flashrom does not work when the vendor BIOS is booted, but it does work flawlessly when the machine is booted with coreboot.
4 See http://www.coreboot.org/pipermail/coreboot/2007-September/025281.html.
5 Used in the IGEL-316 thin client.
6 See http://www.coreboot.org/pipermail/coreboot/2007-October/026496.html.
Flashrom requires the pciutils and zlib and the respective development packages in order to be built.
In Debian unstable these development packages are called pciutils-dev/libpci-dev and zlib1g-dev. Most other distributions call them pciutils-devel and zlib-devel.
$ svn co svn://coreboot.org/repos/trunk/util/flashrom $ cd flashrom $ make $ sudo make install
$ sudo aptitude install flashrom
$ sudo yum install flashrom
$ urpmi flashrom
$ yast -i coreboot-utils
For distributions older than openSUSE Factory (11.0) you find "backports" in the openSUSE Build Service.
There is a Windows port of the flashrom utility. Download the latest version at http://google-summer-of-code-2007-coresystems.googlecode.com/files/DarmawanMappatutu_Salihun.tar.gz
Detect whether flashrom knows about your chipset/mainboard/BIOS chip:
Read the current BIOS image into a file:
$ flashrom -r backup.bin
Write a BIOS image (proprietary or coreboot) on the ROM chip:
$ flashrom -wv newbios.bin
For more documentation please see the flashrom README or the manpage.
Fully testing flashrom chip/southbridge/mainboard support
See this page for instructions on how to test flashrom properly (this may be risky, make sure you have a working backup ROM chip).