Flashrom is a utility which can be used to detect, read, erase, or write BIOS chips (DIP, PLCC, SPI).
Supported devices
Note: There are probably some flash ROM chips which are compatible to the ones listed below.
Vendor
|
Flash part
|
Status
|
|
Probe
|
Read
|
Write
|
Erase
|
AMD
|
Am29F002(N)BB
|
?
|
?
|
?
|
?
|
AMD
|
Am29F002(N)BT
|
OK
|
OK
|
OK
|
OK
|
AMD
|
Am29F040B
|
OK
|
OK
|
OK
|
OK
|
AMD
|
Am29LV040B
|
?
|
?
|
?
|
?
|
AMD
|
Am29F016D
|
?
|
?
|
?
|
?
|
AMIC
|
A25L40P
|
OK
|
OK
|
OK
|
OK
|
AMIC
|
A29002B
|
?
|
?
|
?
|
?
|
AMIC
|
A29002T
|
OK
|
OK
|
OK
|
OK
|
AMIC
|
A29040B
|
OK
|
OK
|
?
|
?
|
AMIC
|
A49LF040A
|
OK
|
OK
|
OK
|
OK
|
ASD
|
AE49F2008
|
?
|
?
|
?
|
?
|
Atmel
|
AT25DF321
|
OK
|
OK
|
OK
|
OK
|
Atmel
|
AT29C040A
|
?
|
?
|
?
|
?
|
Atmel
|
AT29C020
|
OK
|
OK
|
OK
|
OK
|
Atmel
|
AT49F002(N)
|
OK
|
OK
|
?
|
?
|
Atmel
|
AT49F002(N)T
|
OK
|
OK
|
OK
|
OK
|
EON
|
EN29F002(A)(N)T
|
OK
|
OK
|
OK
|
OK
|
EON
|
EN29F002(A)(N)B
|
?
|
?
|
?
|
?
|
EMST
|
F49B002UA
|
?
|
?
|
?
|
?
|
Fujitsu
|
MBM29F400TC
|
OK
|
OK
|
?
|
?
|
Intel®
|
82802AB
|
OK
|
OK
|
OK
|
OK
|
Intel®
|
82802AC
|
OK
|
OK
|
OK
|
OK
|
Macronix
|
MX29F002
|
?
|
?
|
?
|
?
|
Macronix
|
MX29F002
|
?
|
?
|
?
|
?
|
Macronix
|
MX25L4005
|
OK
|
OK
|
OK
|
OK
|
Macronix
|
MX25L8005
|
OK
|
OK
|
OK
|
OK
|
Macronix
|
MX25L3205
|
OK
|
OK
|
OK
|
OK
|
Numonyx
|
M25PE10
|
?
|
?
|
?
|
?
|
Numonyx
|
M25PE20
|
?
|
?
|
?
|
?
|
Numonyx
|
M25PE40
|
?
|
?
|
?
|
?
|
Numonyx
|
M25PE80
|
OK
|
OK
|
OK
|
OK
|
Numonyx
|
M25PE16
|
?
|
?
|
?
|
?
|
PMC
|
Pm49FL002
|
OK
|
OK
|
OK
|
OK
|
PMC
|
Pm49FL004
|
OK
|
OK
|
OK
|
OK
|
PMC
|
Pm25LV512
|
?
|
?
|
?
|
?
|
PMC
|
Pm25LV010
|
?
|
?
|
?
|
?
|
PMC
|
Pm25LV020
|
?
|
?
|
?
|
?
|
PMC
|
Pm25LV040
|
?
|
?
|
?
|
?
|
PMC
|
Pm25LV080B
|
?
|
?
|
?
|
?
|
PMC
|
Pm25LV016B
|
?
|
?
|
?
|
?
|
Sharp
|
LHF00L04
|
?
|
?
|
?
|
?
|
Spansion
|
S25FL016A
|
OK
|
OK
|
OK
|
OK
|
|
Vendor
|
Flash part
|
Status
|
|
Probe
|
Read
|
Write
|
Erase
|
SST
|
SST25VF040B
|
?
|
?
|
?
|
?
|
SST
|
SST25VF016B
|
OK
|
OK
|
OK
|
OK
|
SST
|
SST29EE010A
|
OK
|
OK
|
OK
|
OK
|
SST
|
SST29EE020A
|
?
|
?
|
?
|
?
|
SST
|
SST28SF040A
|
?
|
?
|
?
|
?
|
SST
|
SST39SF010A
|
OK
|
OK
|
OK
|
OK
|
SST
|
SST39SF020A
|
?
|
?
|
?
|
?
|
SST
|
SST39SF020
|
OK
|
OK
|
OK
|
OK
|
SST
|
SST39SF040
|
?
|
?
|
?
|
?
|
SST
|
SST39VF020
|
?
|
?
|
?
|
?
|
SST
|
SST39VF040
|
OK
|
?
|
?
|
?
|
SST
|
SST49LF040B
|
OK
|
OK
|
OK
|
OK
|
SST
|
SST49LF040
|
OK
|
OK
|
OK
|
OK
|
SST
|
SST49LF020A
|
?
|
?
|
?
|
?
|
SST
|
SST49LF080A
|
OK
|
OK
|
OK
|
OK
|
SST
|
SST49LF002A/B
|
OK
|
OK
|
OK
|
OK
|
SST
|
SST49LF003A/B
|
?
|
?
|
?
|
?
|
SST
|
SST49LF004A/B
|
OK
|
OK
|
OK
|
OK
|
SST
|
SST49LF008A
|
OK
|
OK
|
OK
|
OK
|
SST
|
SST49LF004C
|
?
|
?
|
?
|
?
|
SST
|
SST49LF008C
|
?
|
?
|
?
|
?
|
SST
|
SST49LF016C
|
OK
|
OK
|
OK
|
OK
|
SST
|
SST49LF160C
|
OK
|
OK
|
OK
|
OK
|
|
Vendor
|
Flash part
|
Status
|
|
Probe
|
Read
|
Write
|
Erase
|
ST
|
M25P32
|
OK
|
OK
|
OK
|
OK
|
ST
|
M50FLW040A
|
?
|
?
|
?
|
?
|
ST
|
M50FLW040B
|
?
|
?
|
?
|
?
|
ST
|
M50FLW080A
|
OK
|
OK
|
OK
|
OK
|
ST
|
M50FLW080B
|
?
|
?
|
?
|
?
|
ST
|
M50FW002
|
?
|
?
|
?
|
?
|
ST
|
M50FW040
|
OK
|
OK
|
OK
|
OK
|
ST
|
M50FW080
|
OK
|
OK
|
OK
|
OK
|
ST
|
M50FW016
|
?
|
?
|
?
|
?
|
ST
|
M50LPW116
|
?
|
?
|
?
|
?
|
ST
|
M29F002B
|
?
|
?
|
?
|
?
|
ST
|
M29F002T
|
?
|
?
|
?
|
?
|
ST
|
M29F002NT
|
?
|
?
|
?
|
?
|
ST
|
M29F400BT
|
?
|
?
|
?
|
?
|
ST
|
M29F040B
|
OK
|
OK
|
OK
|
OK
|
ST
|
M29W010B
|
?
|
?
|
?
|
?
|
ST
|
M29W040B
|
?
|
?
|
?
|
?
|
SyncMOS
|
S29C51001T/B
|
?
|
?
|
?
|
?
|
SyncMOS
|
S29C51002T/B
|
OK
|
OK
|
OK
|
OK
|
SyncMOS
|
S29C51004T/B
|
?
|
?
|
?
|
?
|
SyncMOS
|
S29C31004T
|
?
|
?
|
?
|
?
|
Winbond™
|
W29C011
|
OK
|
OK
|
OK
|
OK
|
Winbond™
|
W29C020C
|
OK
|
OK
|
OK
|
OK
|
Winbond™
|
W29C040P
|
?
|
?
|
?
|
?
|
Winbond™
|
W29EE011
|
?
|
?
|
?
|
?
|
Winbond™
|
W49F002U
|
OK
|
OK
|
OK
|
OK
|
Winbond™
|
W49V002A
|
OK
|
OK
|
OK
|
OK
|
Winbond™
|
W49V002FA
|
?
|
?
|
?
|
?
|
Winbond™
|
W39V040FA
|
OK
|
OK
|
OK
|
OK
|
Winbond™
|
W39V040A
|
?
|
?
|
?
|
?
|
Winbond™
|
W39V040B
|
OK
|
OK
|
OK
|
OK
|
Winbond™
|
W39V040C
|
OK
|
OK
|
OK
|
OK
|
Winbond™
|
W39V080A
|
OK
|
OK
|
OK
|
OK
|
Winbond™
|
W39V080FA
|
OK
|
OK
|
OK
|
OK
|
Winbond™
|
W25x10
|
?
|
?
|
?
|
?
|
Winbond™
|
W25x20
|
?
|
?
|
?
|
?
|
Winbond™
|
W25x40
|
OK
|
OK
|
OK
|
OK
|
Winbond™
|
W25x80
|
OK
|
OK
|
OK
|
OK
|
|
Supported chipsets
Vendor
|
Southbridge
|
Status
|
ALi
|
M1533
|
OK
|
AMD
|
Geode™ CS5530/A
|
OK
|
AMD
|
Geode™ SC1100
|
?
|
AMD
|
AMD-8111
|
OK
|
AMD
|
SB600
|
OK
|
ATI
|
SB400
|
OK
|
Broadcom
|
HT-1000
|
OK
|
Intel®
|
ICH*
|
OK1
|
Intel®
|
6300ESB
|
OK
|
Intel®
|
EP80579
|
OK
|
Intel®
|
PIIX
|
OK
|
Intel®
|
MPIIX
|
?
|
Intel®
|
PIIX3
|
OK
|
Intel®
|
PIIX4/PIIX4E/PIIX4M
|
OK
|
Intel®
|
440MX
|
OK
|
|
Vendor
|
Southbridge
|
Status
|
NVIDIA
|
CK804
|
OK
|
NVIDIA
|
MCP51
|
?
|
NVIDIA
|
MCP55
|
OK
|
NVIDIA
|
MCP67
|
OK
|
SiS
|
630
|
?
|
SiS
|
5595
|
?
|
VIA
|
CX700
|
OK
|
VIA
|
VT8231
|
?
|
VIA
|
VT8235
|
OK
|
VIA
|
VT8237
|
OK
|
VIA
|
VT8237S
|
OK
|
VIA
|
VT82C586A/B
|
OK
|
VIA
|
VT82C686A/B
|
?
|
|
1 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, ICH10DO, ICH10R, ICH10, ICH10D chipsets.
Supported mainboards
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
|
Known-good (continued)
|
Known-good (but special setup required)
Known-bad
|
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.
Installation
Requirements
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.
Manual Installation
$ svn co svn://coreboot.org/repos/trunk/util/flashrom
$ cd flashrom
$ make
$ sudo make install
Debian
$ sudo aptitude install flashrom
Fedora
$ sudo yum install flashrom
Mandriva
$ urpmi flashrom
openSUSE
$ yast -i coreboot-utils
For distributions older than openSUSE Factory (11.0) you find "backports" in the openSUSE Build Service.
Windows
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
Usage
Detect whether flashrom knows about your chipset/mainboard/BIOS chip:
$ flashrom
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
WARNING: This will overwrite your current BIOS! Make sure you know what you're doing!
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).
Flashrom Live CD
Flashrom Live CD