Flashrom: Difference between revisions

From flashrom
Jump to navigation Jump to search
(Change ROM chip to flash chip everywhere for less user confusion.)
No edit summary
 
(165 intermediate revisions by 12 users not shown)
Line 1: Line 1:
'''flashrom''' is a utility for identifying, reading, writing, verifying and erasing flash chips. It's often used to flash BIOS/EFI/coreboot/firmware images.
{{DISPLAYTITLE:flashrom}}<!-- it is called flashrom after all. -->
<table width="100%" valign="top"><tr valign="top"><td width="80%">


Highlights of flashrom include:
<div style="margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#eeeeee; align:right; border:1px solid #aabbcc;">
 
'''flashrom''' is a utility for identifying, reading, writing, verifying and erasing flash chips. It is designed to flash BIOS/EFI/coreboot/firmware/optionROM images on mainboards, network/graphics/storage controller cards, and various other programmer devices.
* Supports parallel, LPC, FWH and SPI flash interfaces.
<small>
* Supports more than 150 flash chip families and half a dozen variants of each family.
* Supports more than 476 flash chips, 291 chipsets, 500 mainboards, 79 PCI devices, 17 USB devices and various parallel/serial port-based programmers.
* Flash chip package agnostic. DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, TSOP40 and more have all been verified to work.
* Supports [[Technology#Communication_bus_protocol|parallel, LPC, FWH and SPI]] flash interfaces and various chip packages ([[Technology#DIP32:_Dual_In-line_Package.2C_32_pins|DIP32]], [[Technology#PLCC32:_Plastic_Leaded_Chip_Carrier.2C_32_pins|PLCC32]], [[Technology#DIP8:_Dual_In-line_Package.2C_8_pins|DIP8]], [[Technology#SO8.2FSOIC8:_Small-Outline_Integrated_Circuit.2C_8_pins|SO8/SOIC8]], [[Technology#TSOP:_Thin_Small-Outline_Package.2C_32.2C_40.2C_or_48_pins|TSOP32, TSOP40, TSOP48]], [[Technology#BGA:_Ball_Grid_Array|BGA]] and more)
* Supports more than 75 different chipsets, some with multiple flash controllers.
* No physical access needed, root access is sufficient (not needed for some programmers).
* Features special mainboard enabling code for dozens of nonstandard mainboards.
* No physical access needed, root access is sufficient.
* No bootable floppy disk, bootable CD-ROM or other media needed.
* No bootable floppy disk, bootable CD-ROM or other media needed.
* No keyboard or monitor needed. Simply reflash remotely via SSH.
* No keyboard or monitor needed. Simply reflash remotely via SSH.
* No instant reboot needed. Reflash your chip in a running system, verify it, be happy. The new firmware will be present next time you boot.
* No instant reboot needed. Reflash your chip 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.
* 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.
* '''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 often much faster than most vendor flash tools.
* '''Speed'''. flashrom is often much faster than most vendor flash tools.
* Supports Linux, FreeBSD, DragonFly BSD, Solaris, Mac OS X, and other Unix-like OSes.
* '''Portability'''. Supports DOS, Linux, FreeBSD (including Debian/kFreeBSD), NetBSD, OpenBSD, DragonFlyBSD, anything Solaris-like, Mac OS X, and other Unix-like OSes as well as GNU Hurd. Partial Windows support is available (no internal programmer support at the moment, hence no "BIOS flashing").
 
</small>
 
</div>
= Supported devices =
 
== Supported chips ==
 
{| border="0" valign="top"
| valign="top"|
 
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Flash part
! align="left" colspan="4" | Status
 
|- bgcolor="#6699ff"
| colspan="2" | &nbsp;
| Probe
| Read
| Write
| Erase
 
|- bgcolor="#eeeeee" valign="top"
| AMD
| Am29F002(N)BB
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| AMD
| Am29F002(N)BT
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| AMD
| Am29F016D
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| AMD
| Am29F040B
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| AMD
| Am29F080B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| AMD
| Am29LV040B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| AMD
| Am29LV081B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#dddddd" valign="top"
| ASD
| AE49F2008
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT25DF021
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT25DF041A
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT25DF081
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT25DF161
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT25DF321
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT25DF321A
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT25DF641
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT25F512B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT25FS010
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT25FS040
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT26DF041
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT26DF081A
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT26DF161
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT26DF161A
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT26F004
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT29C020
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT29C040A
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT45CS1282
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT45DB011D
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT45DB021D
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT45DB041D
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT45DB081D
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT45DB161D
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT45DB321C
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT45DB321D
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT45DB642D
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT49F002(N)
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Atmel
| AT49F002(N)T
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| AMIC
| A25L40P
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| AMIC
| A29002B
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| AMIC
| A29002T
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| AMIC
| A29040B
| {{OK}}
| {{OK}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| AMIC
| A49LF040A
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| EMST
| F49B002UA
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#dddddd" valign="top"
| EON
| EN29F002(A)(N)B
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| EON
| EN29F002(A)(N)T
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Fujitsu
| MBM29F004BC
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Fujitsu
| MBM29F004TC
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Fujitsu
| MBM29F400BC
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Fujitsu
| MBM29F400TC
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#dddddd" valign="top"
| Intel
| 82802AB
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| Intel
| 82802AC
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX25L512
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX25L1005
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX25L2005
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX25L4005
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX25L8005
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX25L1605
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
 
|}
 
| valign="top"|
 
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Flash part
! align="left" colspan="4" | Status
 
|- bgcolor="#6699ff"
| colspan="2" | &nbsp;
| Probe
| Read
| Write
| Erase
 
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX25L1635D
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX25L3205
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX25L3235D
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX25L6405
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX25L12805
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX29F002B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX29F002T
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Macronix
| MX29LV040C
| {{OK}}
| {{OK}}
| {{?2}}
| {{?2}}
|- bgcolor="#dddddd" valign="top"
| Numonyx
| M25PE10
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| Numonyx
| M25PE20
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| Numonyx
| M25PE40
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| Numonyx
| M25PE80
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| Numonyx
| M25PE16
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#eeeeee" valign="top"
| PMC
| Pm25LV010
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| PMC
| Pm25LV016B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| PMC
| Pm25LV020
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| PMC
| Pm25LV040
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| PMC
| Pm25LV080B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| PMC
| Pm25LV512
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| PMC
| Pm49FL002
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| PMC
| Pm49FL004
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| Sharp
| LHF00L04
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#eeeeee" valign="top"
| Spansion
| S25FL016A
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST25VF016B
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST25VF032B
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST25VF040B
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST25VF040.REMS
| {{OK}}
| {{OK}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST25VF040B.REMS
| {{OK}}
| {{OK}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST25VF080B
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST28SF040A
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST29EE010
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST29LE010
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST29EE020A
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST29LE020
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST39SF010A
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST39SF020A
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST39SF040
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST39VF512
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST39VF010
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST39VF020
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST39VF040
| {{OK}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST39VF080
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF002A/B
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF003A/B
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF004A/B
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF004C
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF008A
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF008C
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF016C
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF020
| {{OK}}
| {{OK}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF020A
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF040
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF040B
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF080A
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SST
| SST49LF160C
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
 
|}
 
| valign="top"|
 
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Flash part
! align="left" colspan="4" | Status


|- bgcolor="#6699ff"
<div style="margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#ff6666; align:right; border:1px solid #000000;">
| colspan="2" | &nbsp;
=== Emergency help ===
| Probe
| Read
| Write
| Erase


|- bgcolor="#eeeeee" valign="top"
'''IMPORTANT:''' If something went wrong during flashing, do '''NOT''' turn off/reboot your computer. Instead, let us help you recover. We can be contacted via [[Contact#IRC|IRC]] ('''#flashrom''' on [irc://irc.libera.chat/#flashrom libera.chat], [https://web.libera.chat/#flashrom webchat]) or [[Contact#Mailing_List|email]]. Please allow for a few hours until someone responds on IRC, we're all volunteers.
| ST
</div>
| M25P05-A
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M25P10-A
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M25P20
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M25P40
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M25P40-old
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M25P80
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M25P16
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M25P32
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M25P64
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M25P128
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M29F002B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M29F002T/NT
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M29F040B
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M29F400BT
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M29W010B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M29W040B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M50FLW040A
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M50FLW040B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M50FLW080A
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M50FLW080B
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M50FW002
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M50FW016
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M50FW040
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M50FW080
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| ST
| M50LPW116
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#dddddd" valign="top"
| SyncMOS
| S29C31004T
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SyncMOS
| S29C51001T
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#dddddd" valign="top"
| SyncMOS
| S29C51002T
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| SyncMOS
| S29C51004T
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W25x10
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W25x20
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W25x40
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W25x80
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W29C011
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W29C020C
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W29C040P
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W29EE011
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W39V040A
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W39V040B
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W39V040C
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W39V040FA
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W39V080A
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W49F002U
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W49V002A
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W49V002FA
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W39V080FA
| {{OK}}
| {{OK}}
| {{OK}}
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Winbond
| W39V080FA (dual mode)
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#dddddd" valign="top"
| Atmel
| unknown Atmel SPI chip
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#eeeeee" valign="top"
| EON
| unknown EON SPI chip
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#dddddd" valign="top"
| Macronix
| unknown Macronix SPI chip
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#eeeeee" valign="top"
| PMC
| unknown PMC SPI chip
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}
|- bgcolor="#dddddd" valign="top"
| SST
| unknown SST SPI chip
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|- bgcolor="#eeeeee" valign="top"
| ST
| unknown ST SPI chip
| {{?2}}
| {{?2}}
| {{?2}}
| {{?2}}


|}
{| cellspacing=5 cellpadding=15 border=0 valign="top" width=100%
| width=50% style="vertical-align:top"|


{|
|style="vertical-align:top"|
X
|style="vertical-align:top"|
'''<span style="font-variant:small-caps; font-size:150%">About</span>'''<br /><small>Find out more about flashrom.</small><small><hr />[[News]] | [[Press]] | [[Testimonials]] | [[History]] | [[Friendliness]] | Follow us on [https://twitter.com/flashrom_org Twitter] | [https://www.openhub.net/p/flashrom Open Hub] statistics</small>
|}
|}


== Supported chipsets ==
|style="vertical-align:top"|
 
{| border="0" valign="top"
| valign="top"|
 
{| border="0" style="font-size: smaller"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Southbridge
! align="left" | Status
 
|- bgcolor="#eeeeee" valign="top"
| ALi
| M1533
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| AMD
| AMD-768
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| AMD
| AMD8111
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| AMD
| CS5530(A)
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| AMD
| CS5536
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| AMD
| Elan SC520
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| AMD
| SB600
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| AMD
| SB700
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| AMD
| SC1100
| ?
|- bgcolor="#eeeeee" valign="top"
| ATI
| SB400
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| Broadcom
| HT-1000
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| 440MX
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| 6300ESB
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| 631xESB/632xESB/3100
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| EP80579
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH0
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH10
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH10D
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH10DO
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH10R
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH2
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH2-M
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH3-M
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH3-S
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH4/ICH4-L
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH4-M
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH5/ICH5R
| {{OK}}
 
|}
 
| valign="top"|
 
{| border="0" style="font-size: smaller"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Southbridge
! align="left" | Status
 
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH6/ICH6R
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH6-M
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH7DH
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH7/ICH7R
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH7M
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH7MDH
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH8DH
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH8DO
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH8/ICH8R
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH8M
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH8M-E
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH9
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH9DH
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH9DO
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH9M
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH9M-E
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| ICH9R
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| MPIIX
| ?
|- bgcolor="#eeeeee" valign="top"
| Intel
| PIIX3
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| PIIX4/4E/4M
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Intel
| PIIX
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| CK804
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| CK804
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| CK804
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP51
| ?
 
|}
 
| valign="top"|
 
{| border="0" style="font-size: smaller"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Southbridge
! align="left" | Status
 
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP51
| ?
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP51
| ?
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP51
| ?
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP55
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP55
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP55
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP55
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP55
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP55
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP55
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP55
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| NVIDIA
| MCP67
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| SiS
| SiS5595
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| SiS
| SiS630
| ?
|- bgcolor="#dddddd" valign="top"
| VIA
| CX700
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| VT8231
| ?
|- bgcolor="#dddddd" valign="top"
| VIA
| VT8235
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| VT8237
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| VT8237A
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| VT8237S
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| VT82C586A/B
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| VT82C686A/B
| ?
 
|}
 
|}
 
== Supported mainboards ==
 
In general, it is very likely that flashrom works out of the box even if your mainboard is not listed below.
 
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 chipset and flash 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|mailing list]].
 
'''Known good (worked out of the box)'''
 
{| border="0" valign="top"
| valign="top"|
 
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Mainboard
! align="left" | Status
 
|- bgcolor="#eeeeee" valign="top"
| Abit
| [http://www.abit.com.tw/page/en/motherboard/motherboard_detail.php?DEFTITLE=Y&fMTYPE=Socket%20939&pMODEL_NAME=AX8 AX8]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| Advantech
| [http://taiwan.advantech.com.tw/products/Model_Detail.asp?model_id=1-1TGZL8&BU=ACG&PD= PCM-5820]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| ASI
| [http://www.hojerteknik.com/winnet.htm MB-5BLMP]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.asus.com.tw/products.aspx?l1=3&l2=15&l3=171&l4=0&model=455&modelmenu=2 A8N-E]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.hardwareschotte.de/hardware/preise/proid_1266090/preis_ASUS+A8NE-FM A8NE-FM/S]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.asus.com.tw/products.aspx?l1=3&l2=15&l3=148&l4=0&model=539&modelmenu=1 A8N-SLI Premium]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.asus.com.tw/products.aspx?l1=3&l2=15&l3=143&l4=0&model=376&modelmenu=1 A8V-E Deluxe]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.asus.com.tw/products.aspx?l1=3&l2=101&l3=496&l4=0&model=1568&modelmenu=1 M2A-VM]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.asus.com/products.aspx?l1=3&l2=101&l3=308&l4=0&model=1181&modelmenu=1 M2N-E]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.motherboard.cz/mb/asus/P2B.htm P2B]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.motherboard.cz/mb/asus/P2B-F.htm P2B-F]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p2b-d/ P2B-D]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p2b-ds/ P2B-DS]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.asus.com.tw/products.aspx?l1=3&l2=13&l3=63&l4=0&model=228&modelmenu=1 A7V400-MX]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.asus.com.tw/products.aspx?l1=3&l2=13&l3=64&l4=0&model=229&modelmenu=1 A7V8X-MX]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.ciao.co.uk/ASUS_Intel_845D_Chipset_P4B266__5409807#productdetail P4B266]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.asus.com.tw/products.aspx?l1=3&l2=15&l3=143&l4=0&model=576&modelmenu=1 A8V-E SE]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.motherboard.cz/mb/asus/P2L97-S.htm P2L97-S]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| [http://www.asus.com/products.aspx?l1=3&l2=101&l3=583&l4=0&model=1909&modelmenu=1 M2A-MX]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| A-Trend
| [http://www.motherboard.cz/mb/atrend/atc6220.htm ATC-6220]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| BCOM
| [http://www.coreboot.org/BCOM_WINNET100_Build_Tutorial WinNET100]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| GIGABYTE
| [http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ClassValue=Motherboard&ProductID=1445&ProductName=GA-6BXC GA-6BXC]
| {{OK}}
 
|}
 
| valign="top"|
 
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Mainboard
! align="left" | Status
 
|- bgcolor="#eeeeee" valign="top"
| GIGABYTE
| [http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ProductID=1429 GA-6BXDU]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| MSI
| KT4V
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| MSI
| MS-7046
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| MSI
| MS-7065
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| MSI
| [http://global.msi.com.tw/index.php?func=prodmbspec&maincat_no=1&cat2_no=&cat3_no=&prod_no=1173#menu MS-7236 (945PL Neo3)]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| NEC
| [http://support.necam.com/mobilesolutions/hardware/Desktops/pm2000/celeron/ PowerMate 2000]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| PC Engines
| [http://pcengines.ch/alix1c.htm Alix.1c]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| PC Engines
| [http://pcengines.ch/alix2c2.htm Alix.2c2]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| PC Engines
| [http://pcengines.ch/alix2c3.htm Alix.2c3]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| PC Engines
| [http://pcengines.ch/alix3c3.htm Alix.3c3]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| RCA
| [http://www.settoplinux.org RM4100]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| Sun
| [http://www.sun.com/servers/blades/x6250/ Blade x6250]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Thomson
| [http://www.settoplinux.org IP1000]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| T-Online
| [http://wiki.freifunk-hannover.de/T-Online_S_100 S-100]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/archive/products/html/tsunamiatx.html S1846]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/archive/products/html/tomcatk7m.html S2498 (Tomcat K7M)]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=115 S2881]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=121 S2882]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=127 S2882-D]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=181 S3095]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=456 S5180]
| {{OK}}
 
|}
 
| valign="top"|
 
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Mainboard
! align="left" | Status
 
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=343 S5191]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=349 S5197]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=591 S5211]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=593 S5211-1U]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=597 S5220]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=566 S5375]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=610 iS5375-1U]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=605 S5376G2NR/S5376WAG2NR]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=601 S5377]
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Tyan
| [http://www.tyan.com/product_board_detail.aspx?pid=560 S5397]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| [http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=81 EPIA-M]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| [http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=202 EPIA-MII]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| [http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=400 EPIA-CN]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| [http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=473 EPIA-LN]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| [http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=490 VB700X]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| [http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=590 NAB74X0]
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| VIA
| [http://www.via.com.tw/en/initiatives/empowered/pc2500_mainboard/index.jsp pc2500e]
| {{OK}}
 
|}
 
|}
 
'''Known good (with write-enable code in flashrom)'''
 
{| border="0" valign="top"
| valign="top"|
 
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Mainboard
! align="left" | Required option
! align="left" | Status
 
|- bgcolor="#eeeeee" valign="top"
| Acorp
| 6A815EPD
| -m acorp:6a815epd
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| agami
| Aruma
| -m AGAMI:ARUMA
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Artec Group
| DBE61
| -m artecgroup:dbe61
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| Artec Group
| DBE62
| -m artecgroup:dbe62
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| A7V8-MX SE
| &mdash;
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| P4B266
| &mdash;
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| ASUS
| P5A
| -m asus:p5a
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| BioStar
| P4M80-M4
| &mdash;
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| EPoX
| EP-BX3
| -m epox:ep-bx3
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| GIGABYTE
| GA-2761GXDK
| -m gigabyte:2761gxdk
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| GIGABYTE
| GA-7VT600
| &mdash;
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| GIGABYTE
| GA-M57SLI-S4
| -m gigabyte:m57sli
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| GIGABYTE
| GA-M61P-S3
| -m gigabyte:m61p
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| GIGABYTE
| GA-MA78G-DS3H
| &mdash;
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| GIGABYTE
| GA-MA790FX-DQ6
| -m gigabyte:ma790fx-dq6
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| HP
| DL145 G3
| -m hp:dl145_g3
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| IBM
| x3455
| -m ibm:x3455
| {{OK}}
 
|}
 
| valign="top"|
 
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Mainboard
! align="left" | Required option
! align="left" | Status
 
|- bgcolor="#dddddd" valign="top"
| Intel
| D201GLY
| &mdash;
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| IWILL
| DK8-HTX
| -m iwill:dk8_htx
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| Kontron
| 986LCD-M
| -m kontron:986lcd-m
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| Kontron
| 986LCD-M
| -m kontron:986lcd-m
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| MSI
| K8N Neo3
| -m msi:k8n-neo3
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| MSI
| K8T Neo2
| &mdash;
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| MSI
| KT4V
| -m msi:kt4v
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| MSI
| MS-7046
| &mdash;
| {{OK}}
|- bgcolor="#dddddd" valign="top"
| Tyan
| Tomcat K7M
| &mdash;
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| VIA
| EPIA-CN
| &mdash;
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| VIA
| EPIA M/MII/...
| &mdash;
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| VIA
| EPIA SP
| &mdash;
| {{OK}}
|- bgcolor="#eeeeee" valign="top"
| VIA
| PC3500G
| -m via:pc3500g
| {{OK}}
 
|}


{|
|style="vertical-align:top"|
X
|style="vertical-align:top"|
'''<span style="font-variant:small-caps; font-size:150%">Developers</span>'''<br /><small>Get involved! Help us make flashrom better.</small><small><hr />[[Development Guidelines]] | [https://review.coreboot.org/plugins/gitiles/flashrom/+/refs/heads/master Browse Source] | [https://review.coreboot.org/#/q/project:flashrom Pending patches] | [[Technology]] | [[Random notes]] | [[Easy projects]] | [[Board Testing HOWTO]] | [[Board Enable]] | [http://docs.google.com/document/d/18qKvEbfPszjsJJGJhwi8kRVDUG3GZkADzQSH6WFsKqw/ Meeting notes] | [[Windows]] | [[libflashrom]] | [[https://www.flashrom.org/GSoC Google Summer of Code]]</small>
|}
|}


'''Not supported (yet)'''
|-
 
| width=50% style="vertical-align:top"|
{| border="0" valign="top"
| valign="top"|
 
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Mainboard
! align="left" | Status
 
|- bgcolor="#eeeeee" valign="top"
| ASUS
| [http://www.asus.com/products.aspx?l1=3&l2=13&l3=56&l4=0&model=217&modelmenu=1 A7N8X-E Deluxe]
| {{No}}
|- bgcolor="#eeeeee" valign="top"
| ASUS
| [ftp://ftp.asus.com.tw/pub/ASUS/mb/sock370/810/mew-am/ MEW-AM]
| {{No}}
|- bgcolor="#eeeeee" valign="top"
| ASUS
| [http://www.elhvb.com/mboards/OEM/HP/manual/ASUS%20MEW-VM.htm MEW-VM]
| {{No}}
|- bgcolor="#eeeeee" valign="top"
| ASUS
| [ftp://ftp.asus.com.tw/pub/ASUS/mb/slot1/440bx/p3b-f/ P3B-F]
| {{No}}
|- bgcolor="#dddddd" valign="top"
| Biostar
| [ftp://ftp.biostar-usa.com/manuals/M6TBA/ M6TBA]
| {{No}}
|- bgcolor="#eeeeee" valign="top"
| FIC
| [ftp://ftp.fic.com.tw/motherboard/manual/socket7/va-502/ VA-502]
| {{No}}
|- bgcolor="#dddddd" valign="top"
| MSI
| [http://global.msi.com.tw/index.php?func=proddesc&prod_no=255&maincat_no=1 MS-7260 (K9N Neo)]
| {{No}}
|- bgcolor="#eeeeee" valign="top"
| PCCHIPS
| [http://motherboards.mbarron.net/models/pcchips/m537dma.htm M537DMA33]
| {{No}}
|- bgcolor="#dddddd" valign="top"
| Soyo
| [http://www.soyo.com/content/Downloads/163/&c=80&p=464&l=English SY-5VD]
| {{No}}
|- bgcolor="#eeeeee" valign="top"
| Sun
| [http://www.sun.com/servers/x64/x4540/ Fire x4540]
| {{No}}
|- bgcolor="#eeeeee" valign="top"
| Sun
| [http://www.sun.com/servers/x64/x4150/ Fire x4150]
| {{No}}
|- bgcolor="#eeeeee" valign="top"
| Sun
| [http://www.sun.com/servers/entry/x4200/ Fire x4200]
| {{No}}
|- bgcolor="#eeeeee" valign="top"
| Sun
| [http://www.sun.com/servers/x64/x4600/ Fire x4600]
| {{No}}


{|
|style="vertical-align:top"|
X
|style="vertical-align:top"|
'''<span style="font-variant:small-caps; font-size:150%">Getting Started</span>'''<br /><small>Download flashrom and get started.</small><small><hr />[[Latest release]] | [[Supported hardware]] | [[Downloads]] | [[Documentation]] | [[Live CD]] | [[qflashrom]]</small>
|}
|}


|}
|style="vertical-align:top"|
 
== Board notes ==
 
* ASI MB-5BLMP: Used in the IGEL WinNET III thin client.
* MSI MS-7260 (K9N Neo): Interestingly flashrom does not work when the vendor BIOS is booted, but it ''does'' work flawlessly when the machine is booted with coreboot.
* ASUS M2A-VM: See http://www.coreboot.org/pipermail/coreboot/2007-September/025281.html.
* BCOM WinNET100: Used in the IGEL-316 thin client.
* ASUS A8V-E SE: See http://www.coreboot.org/pipermail/coreboot/2007-October/026496.html.
 
== Supported laptops/notebooks ==
 
In general, flashing laptops is more difficult because
 
* Laptops often use the flash chip for stuff besides the BIOS.
* Laptops often have special protection stuff which has to be handled by flashrom.
* Laptops often use flash translation circuits which need extra drivers in flashrom.
 
At this point we recommend to '''not''' use flashrom on untested laptops unless you have a means to recover from a flashing that goes wrong (a working backup flash chip and/or good soldering skills).
 
{| border="0" valign="top"
| valign="top"|
 
'''Known-good'''
 
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Model
! align="left" | Status
 
|- bgcolor="#eeeeee" valign="top"
| Lenovo
| [http://www5.pc.ibm.com/europe/products.nsf/products?openagent&brand=Lenovo3000Notebook&series=Lenovo+3000+V+Series#viewallmodelstop 3000 V100 TF05Cxx]
| {{OK}}


{|
|style="vertical-align:top"|
X
|style="vertical-align:top"|
'''<span style="font-variant:small-caps; font-size:150%">Support</span>'''<br /><small>Learn how to contact us and find help and support.</small><small><hr />[[FAQ]] | [[Contact]]  | [[Donations]] </small>
|}
|}
{| border="0" valign="top"
| valign="top"|
'''Known-bad'''
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Model
! align="left" | Status
|- bgcolor="#eeeeee" valign="top"
| IBM/Lenovo
| [http://www.thinkwiki.org/wiki/Category:T40p Thinkpad T40p]
| {{No}}


|}
|}
</td><td width="20%">
<!--
[[File:Flash-BGA.jpg|center|thumb|Flash chip in BGA package.]]
<br clear=all />
-->
'''<span style="font-variant:small-caps; font-size:120%">[[News]]</span>'''<hr />
<small>
* '''2023-02-08:''' [[Flashrom/1.3|flashrom 1.3 released]]
* '''2022-03-08:''' flashrom participates in [[GSoC]]
* '''2020-02-16:''' [[Flashrom/1.2|flashrom 1.2 released]]
* '''2019-06-22:''' [[Flashrom/1.1|flashrom 1.1 released]]
* '''2019-03-30:''' [[Flashrom/1.0.1|flashrom 1.0.1 released]]
* '''2018-01-02:''' [[Flashrom/1.0|flashrom 1.0 released]]
* '''2016-03-13:''' [[Flashrom/0.9.9|flashrom 0.9.9 released]]
* '''2015-03-01:''' [[Flashrom/0.9.8|flashrom 0.9.8 released]]
* '''2013-08-14:''' [[Flashrom/0.9.7|flashrom 0.9.7 released]]
* '''2013-04-08:''' flashrom participates in [[GSoC]]
* '''2012-08-08:''' [[Flashrom/0.9.6|flashrom 0.9.6.1 released]]
</small>


= Installation =
<!--
 
'''<span style="font-variant:small-caps; font-size:120%">[[Current events|Upcoming Events]]</span>'''<hr />
'''Requirements'''
-->
 
<!-- List of upcoming events (remove events after they have taken place). -->
Flashrom requires the '''pciutils''' and '''zlib''' and the respective development packages in order to be built. In addition, the '''subversion''' package is required to download it.
<small>
 
<!-- * '''2009/mon/day:''' coreboot event at [[Link]] in somecity -->
In Debian unstable these development packages are called '''pciutils-dev'''/'''libpci-dev''', '''zlib1g-dev''', and '''subversion'''. Most other distributions call them '''pciutils-devel''', '''zlib-devel''', and '''subversion'''.
<!-- * '''2009/12/27:''' coreboot presentation at [http://events.ccc.de/congress/2009/ 26C3] in Berlin -->
 
</small>
'''Manual Installation'''
 
$ svn co svn://coreboot.org/flashrom/trunk flashrom
$ cd flashrom
$ make
$ sudo make install
 
'''Debian'''
 
$ sudo aptitude install flashrom
 
'''Fedora'''
 
$ sudo yum install flashrom
 
'''Gentoo'''
 
$ emerge flashrom
 
'''Mandriva'''
 
$ urpmi flashrom
 
'''openSUSE'''
 
$ yast -i coreboot-utils
 
For distributions older than openSUSE Factory (11.0) you find "backports" in the [http://packages.opensuse-community.org/index.jsp?searchTerm=coreboot-utils openSUSE Build Service].
 
'''T2 SDE'''
 
Installation from source:
$ Emerge-Pkg flashrom
 
Installation of binaries:
$ mine -i flashrom-0.9.0.tar.bz2
 
'''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
 
Depening on the chip driver, you may have to erase the chip before writing:
 
$ flashrom -E
 
Write a BIOS image (proprietary or coreboot) on the flash chip:
 
$ flashrom -wv newbios.bin
 
<div style="color: red">WARNING: This will overwrite your current BIOS! Make sure you know what you're doing!</div>
 
For more documentation please see the [http://tracker.coreboot.org/trac/coreboot/browser/trunk/util/flashrom/README flashrom README] or the man page.
 
= Fully testing flashrom chip/southbridge/mainboard support =
 
See [[Board Testing HOWTO#Flashrom|this page]] for instructions on how to test flashrom properly (this may be risky, make sure you have a working backup flash chip).
 
= Flashrom Live CD =
 
[[Flashrom Live CD]]
 
= Flash chip overview =
 
Modern mainboards store the BIOS in a reprogrammable flash chip. There are hundreds of different flash (EEPROM) chips, with variables such as memory size, speed, communication bus (LPC vs. ISA/PCI) and packaging to name just a few. The three most common packages are called DIP, PLCC and TSOP. The BIOS copyright holders often place a fancy sticker on the BIOS chip showing a name or logotype, BIOS version, serial number and copyright notice.
 
== DIP32: Dual In-line Package, 32 pins ==
 
<gallery>
File:Dip32 chip.jpg
File:Dip32 chip back.jpg
</gallery>
 
A rectangular black plastic block with lots of pins along the two longer sides of the package. DIP chips can be socketed which means they are detachable from the mainboard using physical force. Since they haven't been moved in and out of the socket very much (yet, hehe) they can appear to be quite difficult to release from the socket. One way to remove a DIP from a socket is by prying a thin screwdriver in between the plastic package and the socket, along the shorter sides where there are no pins, and then gently bending the screwdriver to push the DIP upwards, away from the mainboard. Alternate between the two sides to avoid bending the pins, and don't touch any of the pins with the screwdriver, see FAQ about ESD, electro-static discharge. If the DIP is soldered directly to the mainboard, it has to be desoldered in order to be reprogrammed outside the mainboard. If you do this, it's a good idea to solder a socket to the mainboard instead, to ease any future experiments.
 
== PLCC32: Plastic Leaded Chip Carrier, 32 pins ==
 
<gallery>
File:Plcc32 chip.jpg
File:Plcc32 chip back.jpg
</gallery>
 
Black plastic block again, but this one is much more square. PLCC is becoming the standard for mainboards because of it's smaller physical size. PLCC can also be socketed or soldered directly to the mainboard. Socketed PLCC chips can be removed using a special PLCC removal tool, or using a piece of nylon line tied in a loop around the chip and pulled swiftly straight up, or bending/prying using small screwdrivers if one is careful. PLCC sockets are often fragile so the screwdriver approach is not recommended. While the nylon line method sounds onorthodox it works well. Desoldering PLCC can be painful without specialized desoldering equipment particularly because PLCC chips have leads on all four sides of the package.
 
== DIP8: Dual In-line Package, 8 pins ==
 
<gallery>
File:Dip8 chip.jpg
File:Dip8 chip back.jpg
</gallery>
 
== SOIC8: Small-Outline Integrated Circuit, 8 pins ==


<gallery>
File:Soic8_chip.jpg
</gallery>


== TSOP: Thin Small-Outline Package ==
</td></tr></table>


TSOPs are often used in embedded systems where size is important and there is no need for replacement in the field. It is possible to (de)solder TSOPs by hand, but it comes close to wizardry.
__NOTOC__
__NOEDITSECTION__

Latest revision as of 22:05, 22 February 2023

flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips. It is designed to flash BIOS/EFI/coreboot/firmware/optionROM images on mainboards, network/graphics/storage controller cards, and various other programmer devices.

  • Supports more than 476 flash chips, 291 chipsets, 500 mainboards, 79 PCI devices, 17 USB devices and various parallel/serial port-based programmers.
  • Supports parallel, LPC, FWH and SPI flash interfaces and various chip packages (DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, TSOP40, TSOP48, BGA and more)
  • No physical access needed, root access is sufficient (not needed for some programmers).
  • 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 chip 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 often much faster than most vendor flash tools.
  • Portability. Supports DOS, Linux, FreeBSD (including Debian/kFreeBSD), NetBSD, OpenBSD, DragonFlyBSD, anything Solaris-like, Mac OS X, and other Unix-like OSes as well as GNU Hurd. Partial Windows support is available (no internal programmer support at the moment, hence no "BIOS flashing").

Emergency help

IMPORTANT: If something went wrong during flashing, do NOT turn off/reboot your computer. Instead, let us help you recover. We can be contacted via IRC (#flashrom on libera.chat, webchat) or email. Please allow for a few hours until someone responds on IRC, we're all volunteers.

X

About
Find out more about flashrom.
News | Press | Testimonials | History | Friendliness | Follow us on Twitter | Open Hub statistics

X

Developers
Get involved! Help us make flashrom better.
Development Guidelines | Browse Source | Pending patches | Technology | Random notes | Easy projects | Board Testing HOWTO | Board Enable | Meeting notes | Windows | libflashrom | [Google Summer of Code]

X

Getting Started
Download flashrom and get started.
Latest release | Supported hardware | Downloads | Documentation | Live CD | qflashrom

X

Support
Learn how to contact us and find help and support.
FAQ | Contact | Donations
News